@qt4798/pi-web 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +49 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +172 -0
- package/.next/react-loadable-manifest.json +2258 -0
- package/.next/required-server-files.js +347 -0
- package/.next/required-server-files.json +347 -0
- package/.next/routes-manifest.json +370 -0
- package/.next/server/app/_global-error/page.js +32 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +17 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +17 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/events/route.js +3 -0
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -0
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/running/route.js +1 -0
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/all-providers/route.js +1 -0
- package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/providers/route.js +1 -0
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/default-cwd/route.js +1 -0
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/file-index/route.js +1 -0
- package/.next/server/app/api/file-index/route.js.nft.json +1 -0
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +49 -0
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/diff/route.js +1 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/status/route.js +1 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/home/route.js +1 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -0
- package/.next/server/app/api/models-config/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/test/route.js +1 -0
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/project-trust/route.js +1 -0
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -0
- package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +10 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js +54 -0
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/queue-recovery/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/queue-recovery/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/queue-recovery/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/route.js +1 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/check/route.js +1 -0
- package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/install/route.js +1 -0
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/route.js +6 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/search/route.js +1 -0
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/update/route.js +1 -0
- package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/themes/[name]/route.js +1 -0
- package/.next/server/app/api/themes/[name]/route.js.nft.json +1 -0
- package/.next/server/app/api/themes/[name]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/themes/route.js +1 -0
- package/.next/server/app/api/themes/route.js.nft.json +1 -0
- package/.next/server/app/api/themes/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/route.js +1 -0
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
- package/.next/server/app/icon.ico/route.js +1 -0
- package/.next/server/app/icon.ico/route.js.nft.json +1 -0
- package/.next/server/app/icon.ico.body +0 -0
- package/.next/server/app/icon.ico.meta +1 -0
- package/.next/server/app/icon.png/route.js +1 -0
- package/.next/server/app/icon.png/route.js.nft.json +1 -0
- package/.next/server/app/icon.png.body +0 -0
- package/.next/server/app/icon.png.meta +1 -0
- package/.next/server/app/icon.svg/route.js +1 -0
- package/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/.next/server/app/icon.svg.body +1 -0
- package/.next/server/app/icon.svg.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +17 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -0
- package/.next/server/app/index.segments/_full.segment.rsc +17 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +6 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/page.js +16 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +49 -0
- package/.next/server/chunks/1030.js +1 -0
- package/.next/server/chunks/1048.js +1 -0
- package/.next/server/chunks/1198.js +5 -0
- package/.next/server/chunks/1213.js +1 -0
- package/.next/server/chunks/123.js +79 -0
- package/.next/server/chunks/165.js +1 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/2055.js +1 -0
- package/.next/server/chunks/2325.js +80 -0
- package/.next/server/chunks/2349.js +1 -0
- package/.next/server/chunks/258.js +1 -0
- package/.next/server/chunks/2778.js +1 -0
- package/.next/server/chunks/2943.js +1 -0
- package/.next/server/chunks/3000.js +4 -0
- package/.next/server/chunks/3052.js +1 -0
- package/.next/server/chunks/3054.js +148 -0
- package/.next/server/chunks/3181.js +1 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/3379.js +1 -0
- package/.next/server/chunks/3397.js +29 -0
- package/.next/server/chunks/358.js +19 -0
- package/.next/server/chunks/3672.js +1 -0
- package/.next/server/chunks/3818.js +1 -0
- package/.next/server/chunks/3961.js +6 -0
- package/.next/server/chunks/4120.js +148 -0
- package/.next/server/chunks/4266.js +1 -0
- package/.next/server/chunks/4365.js +43 -0
- package/.next/server/chunks/4407.js +23 -0
- package/.next/server/chunks/4741.js +20 -0
- package/.next/server/chunks/4768.js +80 -0
- package/.next/server/chunks/5409.js +1 -0
- package/.next/server/chunks/5414.js +1 -0
- package/.next/server/chunks/5460.js +255 -0
- package/.next/server/chunks/5582.js +3 -0
- package/.next/server/chunks/5737.js +24 -0
- package/.next/server/chunks/5773.js +104 -0
- package/.next/server/chunks/5985.js +24 -0
- package/.next/server/chunks/6073.js +64 -0
- package/.next/server/chunks/6346.js +1 -0
- package/.next/server/chunks/6429.js +1 -0
- package/.next/server/chunks/6900.js +90 -0
- package/.next/server/chunks/7058.js +166 -0
- package/.next/server/chunks/7162.js +287 -0
- package/.next/server/chunks/7287.js +141 -0
- package/.next/server/chunks/7307.js +1 -0
- package/.next/server/chunks/7452.js +1 -0
- package/.next/server/chunks/7702.js +93 -0
- package/.next/server/chunks/7960.js +1 -0
- package/.next/server/chunks/812.js +226 -0
- package/.next/server/chunks/8276.js +1 -0
- package/.next/server/chunks/8360.js +36 -0
- package/.next/server/chunks/8361.js +1 -0
- package/.next/server/chunks/8430.js +1 -0
- package/.next/server/chunks/8469.js +9 -0
- package/.next/server/chunks/8490.js +1 -0
- package/.next/server/chunks/8704.js +115 -0
- package/.next/server/chunks/9703.js +215 -0
- package/.next/server/chunks/974.js +1 -0
- package/.next/server/chunks/9963.js +1 -0
- package/.next/server/functions-config-manifest.json +23 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +18 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/-RoYqrN1Mf4JD9crC9rVq/_buildManifest.js +1 -0
- package/.next/static/-RoYqrN1Mf4JD9crC9rVq/_ssgManifest.js +1 -0
- package/.next/static/chunks/122.b1e3fc44817be033.js +287 -0
- package/.next/static/chunks/1407.28a7fb037c2b2f35.js +43 -0
- package/.next/static/chunks/164.6fae29420176f7f8.js +1 -0
- package/.next/static/chunks/1744.78ed01e4e93054c1.js +93 -0
- package/.next/static/chunks/1812.ef637078c9f27290.js +76 -0
- package/.next/static/chunks/1921.ae446a3997050473.js +90 -0
- package/.next/static/chunks/1978.260c2b48f817965f.js +1 -0
- package/.next/static/chunks/2082.b416a851d475c593.js +1 -0
- package/.next/static/chunks/288.d969aeba2ab92928.js +1 -0
- package/.next/static/chunks/318.6da8b31f6de9f83e.js +4 -0
- package/.next/static/chunks/330.f851561e21edfbbb.js +19 -0
- package/.next/static/chunks/348d3b01.fb91a19dc4a79ae1.js +148 -0
- package/.next/static/chunks/3762.c00350f7a2d20051.js +148 -0
- package/.next/static/chunks/3794-3dbd06ff79d82322.js +32 -0
- package/.next/static/chunks/3916.0ba385e8bbb9cc14.js +1 -0
- package/.next/static/chunks/4021.cdd3c8f1def79a10.js +1 -0
- package/.next/static/chunks/4178.1d0b11d1a84c0369.js +115 -0
- package/.next/static/chunks/4389.f885df278168a858.js +215 -0
- package/.next/static/chunks/4823.cf7b448a7f958f4a.js +141 -0
- package/.next/static/chunks/4829.cf1d50e43e6d9db5.js +1 -0
- package/.next/static/chunks/4bd1b696-df4c0fb946159b6a.js +1 -0
- package/.next/static/chunks/5019.b5a1a2b8daf17525.js +1 -0
- package/.next/static/chunks/5326.69460442bdcd6cd3.js +1 -0
- package/.next/static/chunks/5336.b28f09b91c1d0dd9.js +79 -0
- package/.next/static/chunks/5590.ef62922166d308b4.js +1 -0
- package/.next/static/chunks/5627.1bdd6b1465ab2199.js +23 -0
- package/.next/static/chunks/5690.9d6eb1edb1399995.js +1 -0
- package/.next/static/chunks/58bb9007.f3f9ebd4bb0a75f5.js +80 -0
- package/.next/static/chunks/6071.42a8d6636b9033c2.js +104 -0
- package/.next/static/chunks/6600.583c88eef37aa524.js +1 -0
- package/.next/static/chunks/6710.af8798a4594c6075.js +36 -0
- package/.next/static/chunks/744.b6c24a58cc3c531e.js +166 -0
- package/.next/static/chunks/7478.09a6d4e2da3d07f8.js +80 -0
- package/.next/static/chunks/75.70c23d2729f4ae2c.js +9 -0
- package/.next/static/chunks/7563.d8fbeed6a250a962.js +64 -0
- package/.next/static/chunks/7704.8fb2afe06ad069b8.js +5 -0
- package/.next/static/chunks/7874.dd3bf679b291d02e.js +1 -0
- package/.next/static/chunks/7948.aca281219bad1ab4.js +1 -0
- package/.next/static/chunks/8112-57500b5de3c7af0d.js +1 -0
- package/.next/static/chunks/8538.0e3dfece54d0656e.js +226 -0
- package/.next/static/chunks/8568.f85d8b36fc9a9037.js +1 -0
- package/.next/static/chunks/8603.7619d9ceac35ae03.js +1 -0
- package/.next/static/chunks/8783.71b0373a97acedff.js +24 -0
- package/.next/static/chunks/8863.bd7e87f75e046db5.js +1 -0
- package/.next/static/chunks/8889.8523226482455411.js +29 -0
- package/.next/static/chunks/895.a198d303969f1c01.js +24 -0
- package/.next/static/chunks/90542734.b75ad0df50bf68f5.js +1 -0
- package/.next/static/chunks/9242.a1894a4c754b979d.js +1 -0
- package/.next/static/chunks/9471.fdc6a39edb3dd821.js +1 -0
- package/.next/static/chunks/9500.1488aec06ee78127.js +1 -0
- package/.next/static/chunks/9529.98847b5d08f68fc7.js +1 -0
- package/.next/static/chunks/9633.155548b5fca6e580.js +1 -0
- package/.next/static/chunks/9779.673004a62d70e36a.js +1 -0
- package/.next/static/chunks/app/_global-error/page-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/_not-found/page-4e8d0b14be117d20.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/home/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/models/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/skills/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/themes/[name]/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/themes/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/app/layout-7b635840991e69cb.js +1 -0
- package/.next/static/chunks/app/page-47de6c92ff29e268.js +15 -0
- package/.next/static/chunks/c9a5f755.309e1bea31640a4c.js +119 -0
- package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
- package/.next/static/chunks/f2098590.3b5dbeddfb5af7eb.js +62 -0
- package/.next/static/chunks/framework-0d4f020ac5e9c3f4.js +1 -0
- package/.next/static/chunks/main-app-1fba0c581dfd167b.js +1 -0
- package/.next/static/chunks/main-e9857f44fcf8c636.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-9b3287a6309b286c.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1fddebcafb57d31a.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-2a4242ca2185b0c2.js +1 -0
- package/.next/static/css/3790610024d16435.css +1 -0
- package/.next/static/css/b7afdff64e37cc77.css +1 -0
- package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/.next/static/media/ia-writer-quattro-latin-400-italic.1041824d.woff2 +0 -0
- package/.next/static/media/ia-writer-quattro-latin-400-italic.e1e60bf7.woff +0 -0
- package/.next/static/media/ia-writer-quattro-latin-400-normal.179d7f9d.woff2 +0 -0
- package/.next/static/media/ia-writer-quattro-latin-400-normal.7404fbdc.woff +0 -0
- package/.next/static/media/ia-writer-quattro-latin-700-italic.5f79ad89.woff +0 -0
- package/.next/static/media/ia-writer-quattro-latin-700-italic.a08768ff.woff2 +0 -0
- package/.next/static/media/ia-writer-quattro-latin-700-normal.9d4027b4.woff +0 -0
- package/.next/static/media/ia-writer-quattro-latin-700-normal.af04a9c2.woff2 +0 -0
- package/.next/static/media/lilex-cyrillic-400-normal.0dd1e3b7.woff2 +0 -0
- package/.next/static/media/lilex-cyrillic-400-normal.8097f131.woff +0 -0
- package/.next/static/media/lilex-cyrillic-ext-400-normal.13382a44.woff +0 -0
- package/.next/static/media/lilex-cyrillic-ext-400-normal.a1c2a378.woff2 +0 -0
- package/.next/static/media/lilex-greek-400-normal.97f26b1d.woff2 +0 -0
- package/.next/static/media/lilex-greek-400-normal.eb5c7c4d.woff +0 -0
- package/.next/static/media/lilex-latin-400-normal.3a7b14b0.woff +0 -0
- package/.next/static/media/lilex-latin-400-normal.62552ea0.woff2 +0 -0
- package/.next/static/media/lilex-latin-ext-400-normal.0297da55.woff2 +0 -0
- package/.next/static/media/lilex-latin-ext-400-normal.dc9a3323.woff +0 -0
- package/.next/static/media/lilex-symbols2-400-normal.131e0f42.woff2 +0 -0
- package/.next/static/media/lilex-symbols2-400-normal.eb403d1f.woff +0 -0
- package/.next/static/media/lilex-vietnamese-400-normal.53b3f1dc.woff2 +0 -0
- package/.next/static/media/lilex-vietnamese-400-normal.dfbef8e4.woff +0 -0
- package/.next/trace +6 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +351 -0
- package/.next/types/app/api/agent/[id]/events/route.ts +351 -0
- package/.next/types/app/api/agent/[id]/route.ts +351 -0
- package/.next/types/app/api/agent/new/route.ts +351 -0
- package/.next/types/app/api/agent/running/route.ts +351 -0
- package/.next/types/app/api/auth/all-providers/route.ts +351 -0
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/login/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/logout/[provider]/route.ts +351 -0
- package/.next/types/app/api/auth/providers/route.ts +351 -0
- package/.next/types/app/api/cwd/browse/route.ts +351 -0
- package/.next/types/app/api/cwd/validate/route.ts +351 -0
- package/.next/types/app/api/default-cwd/route.ts +351 -0
- package/.next/types/app/api/file-index/route.ts +351 -0
- package/.next/types/app/api/files/[...path]/route.ts +351 -0
- package/.next/types/app/api/git/diff/route.ts +351 -0
- package/.next/types/app/api/git/status/route.ts +351 -0
- package/.next/types/app/api/home/route.ts +351 -0
- package/.next/types/app/api/models/route.ts +351 -0
- package/.next/types/app/api/models-config/catalog/route.ts +351 -0
- package/.next/types/app/api/models-config/discover/route.ts +351 -0
- package/.next/types/app/api/models-config/route.ts +351 -0
- package/.next/types/app/api/models-config/test/route.ts +351 -0
- package/.next/types/app/api/plugins/route.ts +351 -0
- package/.next/types/app/api/project-trust/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/context/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/export/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/queue-recovery/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/route.ts +351 -0
- package/.next/types/app/api/sessions/[id]/state/route.ts +351 -0
- package/.next/types/app/api/sessions/route.ts +351 -0
- package/.next/types/app/api/skills/check/route.ts +351 -0
- package/.next/types/app/api/skills/install/route.ts +351 -0
- package/.next/types/app/api/skills/route.ts +351 -0
- package/.next/types/app/api/skills/search/route.ts +351 -0
- package/.next/types/app/api/skills/update/route.ts +351 -0
- package/.next/types/app/api/themes/[name]/route.ts +351 -0
- package/.next/types/app/api/themes/route.ts +351 -0
- package/.next/types/app/api/worktrees/route.ts +351 -0
- package/.next/types/app/layout.ts +87 -0
- package/.next/types/app/page.ts +87 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +113 -0
- package/.next/types/validator.ts +439 -0
- package/LICENSE +22 -0
- package/README.en.md +88 -0
- package/README.ja.md +150 -0
- package/README.md +175 -0
- package/README.ru.md +155 -0
- package/bin/pi-web-options.js +30 -0
- package/bin/pi-web.js +81 -0
- package/next.config.ts +42 -0
- package/package.json +81 -0
- package/public/catppuccin-icons/LICENSE +25 -0
- package/public/catppuccin-icons/latte/3d.svg +3 -0
- package/public/catppuccin-icons/latte/_file.svg +3 -0
- package/public/catppuccin-icons/latte/_folder.svg +3 -0
- package/public/catppuccin-icons/latte/_folder_open.svg +3 -0
- package/public/catppuccin-icons/latte/_root.svg +7 -0
- package/public/catppuccin-icons/latte/_root_open.svg +5 -0
- package/public/catppuccin-icons/latte/adobe-ae.svg +6 -0
- package/public/catppuccin-icons/latte/adobe-ai.svg +6 -0
- package/public/catppuccin-icons/latte/adobe-id.svg +6 -0
- package/public/catppuccin-icons/latte/adobe-ps.svg +6 -0
- package/public/catppuccin-icons/latte/adobe-xd.svg +6 -0
- package/public/catppuccin-icons/latte/adonis.svg +6 -0
- package/public/catppuccin-icons/latte/alex.svg +6 -0
- package/public/catppuccin-icons/latte/amber.svg +3 -0
- package/public/catppuccin-icons/latte/android.svg +3 -0
- package/public/catppuccin-icons/latte/angular-component.svg +6 -0
- package/public/catppuccin-icons/latte/angular-directive.svg +6 -0
- package/public/catppuccin-icons/latte/angular-guard.svg +6 -0
- package/public/catppuccin-icons/latte/angular-pipe.svg +6 -0
- package/public/catppuccin-icons/latte/angular-service.svg +6 -0
- package/public/catppuccin-icons/latte/angular.svg +6 -0
- package/public/catppuccin-icons/latte/ansible-lint.svg +4 -0
- package/public/catppuccin-icons/latte/antlr.svg +6 -0
- package/public/catppuccin-icons/latte/apache.svg +7 -0
- package/public/catppuccin-icons/latte/api-blueprint.svg +3 -0
- package/public/catppuccin-icons/latte/apollo.svg +6 -0
- package/public/catppuccin-icons/latte/apple.svg +3 -0
- package/public/catppuccin-icons/latte/arduino.svg +3 -0
- package/public/catppuccin-icons/latte/asciidoc.svg +3 -0
- package/public/catppuccin-icons/latte/assembly.svg +4 -0
- package/public/catppuccin-icons/latte/astro-config.svg +7 -0
- package/public/catppuccin-icons/latte/astro.svg +6 -0
- package/public/catppuccin-icons/latte/audio.svg +6 -0
- package/public/catppuccin-icons/latte/autohotkey.svg +6 -0
- package/public/catppuccin-icons/latte/azure-pipelines.svg +3 -0
- package/public/catppuccin-icons/latte/babel.svg +3 -0
- package/public/catppuccin-icons/latte/bash.svg +7 -0
- package/public/catppuccin-icons/latte/batch.svg +6 -0
- package/public/catppuccin-icons/latte/bazel.svg +3 -0
- package/public/catppuccin-icons/latte/benchmark.svg +3 -0
- package/public/catppuccin-icons/latte/bicep.svg +5 -0
- package/public/catppuccin-icons/latte/binary.svg +6 -0
- package/public/catppuccin-icons/latte/biome.svg +3 -0
- package/public/catppuccin-icons/latte/bitbucket.svg +3 -0
- package/public/catppuccin-icons/latte/blink.svg +10 -0
- package/public/catppuccin-icons/latte/blitz.svg +3 -0
- package/public/catppuccin-icons/latte/bower.svg +9 -0
- package/public/catppuccin-icons/latte/browserslist.svg +6 -0
- package/public/catppuccin-icons/latte/bun-lock.svg +8 -0
- package/public/catppuccin-icons/latte/bun.svg +7 -0
- package/public/catppuccin-icons/latte/c-header.svg +3 -0
- package/public/catppuccin-icons/latte/c.svg +3 -0
- package/public/catppuccin-icons/latte/cabal.svg +7 -0
- package/public/catppuccin-icons/latte/caddy.svg +6 -0
- package/public/catppuccin-icons/latte/capacitor.svg +3 -0
- package/public/catppuccin-icons/latte/cargo-lock.svg +8 -0
- package/public/catppuccin-icons/latte/cargo.svg +7 -0
- package/public/catppuccin-icons/latte/certificate.svg +7 -0
- package/public/catppuccin-icons/latte/changelog.svg +3 -0
- package/public/catppuccin-icons/latte/circle-ci.svg +6 -0
- package/public/catppuccin-icons/latte/clojure.svg +10 -0
- package/public/catppuccin-icons/latte/cmake.svg +7 -0
- package/public/catppuccin-icons/latte/cobol.svg +3 -0
- package/public/catppuccin-icons/latte/code-climate.svg +3 -0
- package/public/catppuccin-icons/latte/code-of-conduct.svg +6 -0
- package/public/catppuccin-icons/latte/codeowners.svg +6 -0
- package/public/catppuccin-icons/latte/coffeescript.svg +6 -0
- package/public/catppuccin-icons/latte/commitlint.svg +6 -0
- package/public/catppuccin-icons/latte/config.svg +3 -0
- package/public/catppuccin-icons/latte/contributing.svg +6 -0
- package/public/catppuccin-icons/latte/cpp-header.svg +4 -0
- package/public/catppuccin-icons/latte/cpp.svg +4 -0
- package/public/catppuccin-icons/latte/crystal.svg +3 -0
- package/public/catppuccin-icons/latte/csharp.svg +3 -0
- package/public/catppuccin-icons/latte/cspell.svg +4 -0
- package/public/catppuccin-icons/latte/css-map.svg +8 -0
- package/public/catppuccin-icons/latte/css.svg +6 -0
- package/public/catppuccin-icons/latte/css3.svg +6 -0
- package/public/catppuccin-icons/latte/csv.svg +3 -0
- package/public/catppuccin-icons/latte/cucumber.svg +3 -0
- package/public/catppuccin-icons/latte/cuda.svg +6 -0
- package/public/catppuccin-icons/latte/cue.svg +4 -0
- package/public/catppuccin-icons/latte/cursor-ignore.svg +4 -0
- package/public/catppuccin-icons/latte/cursor.svg +4 -0
- package/public/catppuccin-icons/latte/cypress.svg +6 -0
- package/public/catppuccin-icons/latte/d.svg +3 -0
- package/public/catppuccin-icons/latte/darklua.svg +6 -0
- package/public/catppuccin-icons/latte/dart-generated.svg +6 -0
- package/public/catppuccin-icons/latte/dart.svg +6 -0
- package/public/catppuccin-icons/latte/database.svg +3 -0
- package/public/catppuccin-icons/latte/deno.svg +3 -0
- package/public/catppuccin-icons/latte/deno_lock.svg +6 -0
- package/public/catppuccin-icons/latte/dependabot.svg +3 -0
- package/public/catppuccin-icons/latte/devcontainer.svg +4 -0
- package/public/catppuccin-icons/latte/dhall.svg +3 -0
- package/public/catppuccin-icons/latte/diff.svg +7 -0
- package/public/catppuccin-icons/latte/django.svg +6 -0
- package/public/catppuccin-icons/latte/docker-compose.svg +3 -0
- package/public/catppuccin-icons/latte/docker-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/docker.svg +3 -0
- package/public/catppuccin-icons/latte/docusaurus.svg +7 -0
- package/public/catppuccin-icons/latte/drawio.svg +3 -0
- package/public/catppuccin-icons/latte/drizzle-orm.svg +3 -0
- package/public/catppuccin-icons/latte/dub-selections.svg +8 -0
- package/public/catppuccin-icons/latte/dub.svg +7 -0
- package/public/catppuccin-icons/latte/editorconfig.svg +3 -0
- package/public/catppuccin-icons/latte/ejs.svg +3 -0
- package/public/catppuccin-icons/latte/eleventy.svg +3 -0
- package/public/catppuccin-icons/latte/elixir.svg +3 -0
- package/public/catppuccin-icons/latte/elm.svg +3 -0
- package/public/catppuccin-icons/latte/ember.svg +3 -0
- package/public/catppuccin-icons/latte/env.svg +3 -0
- package/public/catppuccin-icons/latte/envrc.svg +6 -0
- package/public/catppuccin-icons/latte/erlang.svg +6 -0
- package/public/catppuccin-icons/latte/esbuild.svg +3 -0
- package/public/catppuccin-icons/latte/eslint-ignore.svg +6 -0
- package/public/catppuccin-icons/latte/eslint.svg +6 -0
- package/public/catppuccin-icons/latte/exe.svg +6 -0
- package/public/catppuccin-icons/latte/fastlane.svg +14 -0
- package/public/catppuccin-icons/latte/favicon.svg +3 -0
- package/public/catppuccin-icons/latte/figma.svg +9 -0
- package/public/catppuccin-icons/latte/firebase.svg +3 -0
- package/public/catppuccin-icons/latte/flutter.svg +8 -0
- package/public/catppuccin-icons/latte/folder_admin.svg +6 -0
- package/public/catppuccin-icons/latte/folder_admin_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_android.svg +6 -0
- package/public/catppuccin-icons/latte/folder_android_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_animation.svg +6 -0
- package/public/catppuccin-icons/latte/folder_animation_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_api.svg +6 -0
- package/public/catppuccin-icons/latte/folder_api_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_app.svg +7 -0
- package/public/catppuccin-icons/latte/folder_app_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_assets.svg +5 -0
- package/public/catppuccin-icons/latte/folder_assets_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_audio.svg +9 -0
- package/public/catppuccin-icons/latte/folder_audio_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_audit.svg +4 -0
- package/public/catppuccin-icons/latte/folder_audit_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_aws.svg +9 -0
- package/public/catppuccin-icons/latte/folder_aws_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_azure-devops.svg +4 -0
- package/public/catppuccin-icons/latte/folder_azure-devops_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_azure-pipelines.svg +6 -0
- package/public/catppuccin-icons/latte/folder_azure-pipelines_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_benchmark.svg +6 -0
- package/public/catppuccin-icons/latte/folder_benchmark_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_caddy.svg +7 -0
- package/public/catppuccin-icons/latte/folder_caddy_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_cargo.svg +6 -0
- package/public/catppuccin-icons/latte/folder_cargo_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_circle-ci.svg +9 -0
- package/public/catppuccin-icons/latte/folder_circle-ci_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_client.svg +6 -0
- package/public/catppuccin-icons/latte/folder_client_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_cloud.svg +6 -0
- package/public/catppuccin-icons/latte/folder_cloud_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_command.svg +6 -0
- package/public/catppuccin-icons/latte/folder_command_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_components.svg +6 -0
- package/public/catppuccin-icons/latte/folder_components_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_composables.svg +6 -0
- package/public/catppuccin-icons/latte/folder_composables_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_config.svg +6 -0
- package/public/catppuccin-icons/latte/folder_config_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_connection.svg +6 -0
- package/public/catppuccin-icons/latte/folder_connection_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_constant.svg +6 -0
- package/public/catppuccin-icons/latte/folder_constant_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_content.svg +4 -0
- package/public/catppuccin-icons/latte/folder_content_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_controllers.svg +6 -0
- package/public/catppuccin-icons/latte/folder_controllers_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_core.svg +6 -0
- package/public/catppuccin-icons/latte/folder_core_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_coverage.svg +6 -0
- package/public/catppuccin-icons/latte/folder_coverage_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_cursor.svg +4 -0
- package/public/catppuccin-icons/latte/folder_cursor_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_cypress.svg +6 -0
- package/public/catppuccin-icons/latte/folder_cypress_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_database.svg +6 -0
- package/public/catppuccin-icons/latte/folder_database_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_debug.svg +6 -0
- package/public/catppuccin-icons/latte/folder_debug_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_devcontainer.svg +7 -0
- package/public/catppuccin-icons/latte/folder_devcontainer_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_direnv.svg +6 -0
- package/public/catppuccin-icons/latte/folder_direnv_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_dist.svg +6 -0
- package/public/catppuccin-icons/latte/folder_dist_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_docker.svg +9 -0
- package/public/catppuccin-icons/latte/folder_docker_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_docs.svg +6 -0
- package/public/catppuccin-icons/latte/folder_docs_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_download.svg +6 -0
- package/public/catppuccin-icons/latte/folder_download_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_drizzle-orm.svg +6 -0
- package/public/catppuccin-icons/latte/folder_drizzle-orm_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_examples.svg +6 -0
- package/public/catppuccin-icons/latte/folder_examples_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_fastlane.svg +8 -0
- package/public/catppuccin-icons/latte/folder_fastlane_open.svg +8 -0
- package/public/catppuccin-icons/latte/folder_firebase.svg +6 -0
- package/public/catppuccin-icons/latte/folder_firebase_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_fonts.svg +6 -0
- package/public/catppuccin-icons/latte/folder_fonts_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_forgejo.svg +7 -0
- package/public/catppuccin-icons/latte/folder_forgejo_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_functions.svg +6 -0
- package/public/catppuccin-icons/latte/folder_functions_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_fvm.svg +6 -0
- package/public/catppuccin-icons/latte/folder_fvm_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_git.svg +6 -0
- package/public/catppuccin-icons/latte/folder_git_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_github.svg +6 -0
- package/public/catppuccin-icons/latte/folder_github_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_gitlab.svg +6 -0
- package/public/catppuccin-icons/latte/folder_gitlab_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_gradle.svg +7 -0
- package/public/catppuccin-icons/latte/folder_gradle_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_graphql.svg +4 -0
- package/public/catppuccin-icons/latte/folder_graphql_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_hooks.svg +6 -0
- package/public/catppuccin-icons/latte/folder_hooks_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_husky.svg +7 -0
- package/public/catppuccin-icons/latte/folder_husky_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_images.svg +8 -0
- package/public/catppuccin-icons/latte/folder_images_open.svg +8 -0
- package/public/catppuccin-icons/latte/folder_include.svg +5 -0
- package/public/catppuccin-icons/latte/folder_include_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_intellij.svg +8 -0
- package/public/catppuccin-icons/latte/folder_intellij_open.svg +8 -0
- package/public/catppuccin-icons/latte/folder_javascript.svg +4 -0
- package/public/catppuccin-icons/latte/folder_javascript_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_kubernetes.svg +9 -0
- package/public/catppuccin-icons/latte/folder_kubernetes_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_layouts.svg +6 -0
- package/public/catppuccin-icons/latte/folder_layouts_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_lib.svg +4 -0
- package/public/catppuccin-icons/latte/folder_lib_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_linux.svg +5 -0
- package/public/catppuccin-icons/latte/folder_linux_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_locales.svg +6 -0
- package/public/catppuccin-icons/latte/folder_locales_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_luau.svg +5 -0
- package/public/catppuccin-icons/latte/folder_luau_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_lune.svg +5 -0
- package/public/catppuccin-icons/latte/folder_lune_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_macos.svg +10 -0
- package/public/catppuccin-icons/latte/folder_macos_open.svg +10 -0
- package/public/catppuccin-icons/latte/folder_messages.svg +4 -0
- package/public/catppuccin-icons/latte/folder_messages_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_middleware.svg +6 -0
- package/public/catppuccin-icons/latte/folder_middleware_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_mocks.svg +6 -0
- package/public/catppuccin-icons/latte/folder_mocks_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_moonrepo.svg +5 -0
- package/public/catppuccin-icons/latte/folder_moonrepo_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_next.svg +6 -0
- package/public/catppuccin-icons/latte/folder_next_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_nix.svg +11 -0
- package/public/catppuccin-icons/latte/folder_nix_open.svg +11 -0
- package/public/catppuccin-icons/latte/folder_node.svg +6 -0
- package/public/catppuccin-icons/latte/folder_node_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_nuxt.svg +6 -0
- package/public/catppuccin-icons/latte/folder_nuxt_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_packages.svg +6 -0
- package/public/catppuccin-icons/latte/folder_packages_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_pesde.svg +6 -0
- package/public/catppuccin-icons/latte/folder_pesde_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_plugins.svg +6 -0
- package/public/catppuccin-icons/latte/folder_plugins_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_pre-commit.svg +5 -0
- package/public/catppuccin-icons/latte/folder_pre-commit_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_prisma.svg +6 -0
- package/public/catppuccin-icons/latte/folder_prisma_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_private.svg +5 -0
- package/public/catppuccin-icons/latte/folder_private_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_proto.svg +11 -0
- package/public/catppuccin-icons/latte/folder_proto_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_public.svg +6 -0
- package/public/catppuccin-icons/latte/folder_public_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_queue.svg +6 -0
- package/public/catppuccin-icons/latte/folder_queue_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_redux.svg +6 -0
- package/public/catppuccin-icons/latte/folder_redux_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_renovate.svg +7 -0
- package/public/catppuccin-icons/latte/folder_renovate_open.svg +7 -0
- package/public/catppuccin-icons/latte/folder_roblox.svg +3 -0
- package/public/catppuccin-icons/latte/folder_roblox_open.svg +3 -0
- package/public/catppuccin-icons/latte/folder_routes.svg +6 -0
- package/public/catppuccin-icons/latte/folder_routes_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_sass.svg +6 -0
- package/public/catppuccin-icons/latte/folder_sass_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_scripts.svg +6 -0
- package/public/catppuccin-icons/latte/folder_scripts_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_security.svg +4 -0
- package/public/catppuccin-icons/latte/folder_security_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_server.svg +6 -0
- package/public/catppuccin-icons/latte/folder_server_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_shared.svg +4 -0
- package/public/catppuccin-icons/latte/folder_shared_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_src.svg +6 -0
- package/public/catppuccin-icons/latte/folder_src_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_storybook.svg +6 -0
- package/public/catppuccin-icons/latte/folder_storybook_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_styles.svg +6 -0
- package/public/catppuccin-icons/latte/folder_styles_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_svg.svg +6 -0
- package/public/catppuccin-icons/latte/folder_svg_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_symlink.svg +5 -0
- package/public/catppuccin-icons/latte/folder_symlink_open.svg +5 -0
- package/public/catppuccin-icons/latte/folder_tauri.svg +9 -0
- package/public/catppuccin-icons/latte/folder_tauri_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_temp.svg +6 -0
- package/public/catppuccin-icons/latte/folder_temp_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_templates.svg +6 -0
- package/public/catppuccin-icons/latte/folder_templates_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_tests.svg +6 -0
- package/public/catppuccin-icons/latte/folder_tests_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_themes.svg +9 -0
- package/public/catppuccin-icons/latte/folder_themes_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_turbo.svg +9 -0
- package/public/catppuccin-icons/latte/folder_turbo_open.svg +10 -0
- package/public/catppuccin-icons/latte/folder_types.svg +6 -0
- package/public/catppuccin-icons/latte/folder_types_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_upload.svg +9 -0
- package/public/catppuccin-icons/latte/folder_upload_open.svg +9 -0
- package/public/catppuccin-icons/latte/folder_utils.svg +6 -0
- package/public/catppuccin-icons/latte/folder_utils_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_vercel.svg +6 -0
- package/public/catppuccin-icons/latte/folder_vercel_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_video.svg +6 -0
- package/public/catppuccin-icons/latte/folder_video_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_views.svg +6 -0
- package/public/catppuccin-icons/latte/folder_views_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_vscode.svg +6 -0
- package/public/catppuccin-icons/latte/folder_vscode_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_windows.svg +4 -0
- package/public/catppuccin-icons/latte/folder_windows_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_workflows.svg +6 -0
- package/public/catppuccin-icons/latte/folder_workflows_open.svg +6 -0
- package/public/catppuccin-icons/latte/folder_wxt.svg +4 -0
- package/public/catppuccin-icons/latte/folder_wxt_open.svg +4 -0
- package/public/catppuccin-icons/latte/folder_xcode.svg +12 -0
- package/public/catppuccin-icons/latte/folder_xcode_open.svg +10 -0
- package/public/catppuccin-icons/latte/folder_xmake.svg +8 -0
- package/public/catppuccin-icons/latte/folder_xmake_open.svg +8 -0
- package/public/catppuccin-icons/latte/folder_yarn.svg +7 -0
- package/public/catppuccin-icons/latte/folder_yarn_open.svg +9 -0
- package/public/catppuccin-icons/latte/font.svg +3 -0
- package/public/catppuccin-icons/latte/foreman.svg +9 -0
- package/public/catppuccin-icons/latte/forgejo.svg +6 -0
- package/public/catppuccin-icons/latte/fortran.svg +3 -0
- package/public/catppuccin-icons/latte/fsharp.svg +3 -0
- package/public/catppuccin-icons/latte/fvm.svg +3 -0
- package/public/catppuccin-icons/latte/gatsby.svg +6 -0
- package/public/catppuccin-icons/latte/gcp.svg +9 -0
- package/public/catppuccin-icons/latte/git-cliff.svg +5 -0
- package/public/catppuccin-icons/latte/git.svg +6 -0
- package/public/catppuccin-icons/latte/gitlab.svg +3 -0
- package/public/catppuccin-icons/latte/gitpod.svg +3 -0
- package/public/catppuccin-icons/latte/gleam-config.svg +5 -0
- package/public/catppuccin-icons/latte/gleam.svg +4 -0
- package/public/catppuccin-icons/latte/go-mod.svg +3 -0
- package/public/catppuccin-icons/latte/go-template.svg +4 -0
- package/public/catppuccin-icons/latte/go.svg +3 -0
- package/public/catppuccin-icons/latte/godot-assets.svg +3 -0
- package/public/catppuccin-icons/latte/godot.svg +3 -0
- package/public/catppuccin-icons/latte/gradle.svg +6 -0
- package/public/catppuccin-icons/latte/graphql.svg +3 -0
- package/public/catppuccin-icons/latte/groovy.svg +6 -0
- package/public/catppuccin-icons/latte/gulp.svg +3 -0
- package/public/catppuccin-icons/latte/hacking.svg +7 -0
- package/public/catppuccin-icons/latte/haml.svg +7 -0
- package/public/catppuccin-icons/latte/handlebars.svg +3 -0
- package/public/catppuccin-icons/latte/hardhat.svg +3 -0
- package/public/catppuccin-icons/latte/hare.svg +7 -0
- package/public/catppuccin-icons/latte/haskell.svg +3 -0
- package/public/catppuccin-icons/latte/haxe.svg +6 -0
- package/public/catppuccin-icons/latte/helm.svg +3 -0
- package/public/catppuccin-icons/latte/heroku.svg +6 -0
- package/public/catppuccin-icons/latte/histoire.svg +6 -0
- package/public/catppuccin-icons/latte/html.svg +6 -0
- package/public/catppuccin-icons/latte/http.svg +6 -0
- package/public/catppuccin-icons/latte/huff.svg +4 -0
- package/public/catppuccin-icons/latte/hugo.svg +6 -0
- package/public/catppuccin-icons/latte/humans.svg +13 -0
- package/public/catppuccin-icons/latte/husky.svg +3 -0
- package/public/catppuccin-icons/latte/image.svg +8 -0
- package/public/catppuccin-icons/latte/ionic.svg +6 -0
- package/public/catppuccin-icons/latte/java-annotation.svg +3 -0
- package/public/catppuccin-icons/latte/java-class-abstract.svg +3 -0
- package/public/catppuccin-icons/latte/java-class-final.svg +3 -0
- package/public/catppuccin-icons/latte/java-class-sealed.svg +3 -0
- package/public/catppuccin-icons/latte/java-class.svg +3 -0
- package/public/catppuccin-icons/latte/java-enum.svg +3 -0
- package/public/catppuccin-icons/latte/java-exception.svg +3 -0
- package/public/catppuccin-icons/latte/java-interface.svg +4 -0
- package/public/catppuccin-icons/latte/java-jar.svg +7 -0
- package/public/catppuccin-icons/latte/java-record.svg +4 -0
- package/public/catppuccin-icons/latte/java.svg +7 -0
- package/public/catppuccin-icons/latte/javascript-config.svg +7 -0
- package/public/catppuccin-icons/latte/javascript-map.svg +8 -0
- package/public/catppuccin-icons/latte/javascript-react.svg +8 -0
- package/public/catppuccin-icons/latte/javascript-test.svg +3 -0
- package/public/catppuccin-icons/latte/javascript.svg +6 -0
- package/public/catppuccin-icons/latte/jest.svg +8 -0
- package/public/catppuccin-icons/latte/jinja.svg +3 -0
- package/public/catppuccin-icons/latte/json-schema.svg +3 -0
- package/public/catppuccin-icons/latte/json.svg +3 -0
- package/public/catppuccin-icons/latte/juce.svg +14 -0
- package/public/catppuccin-icons/latte/jule.svg +5 -0
- package/public/catppuccin-icons/latte/julia.svg +7 -0
- package/public/catppuccin-icons/latte/jupyter.svg +6 -0
- package/public/catppuccin-icons/latte/just.svg +5 -0
- package/public/catppuccin-icons/latte/kdl.svg +5 -0
- package/public/catppuccin-icons/latte/key.svg +6 -0
- package/public/catppuccin-icons/latte/knip.svg +3 -0
- package/public/catppuccin-icons/latte/kotlin.svg +8 -0
- package/public/catppuccin-icons/latte/laravel.svg +8 -0
- package/public/catppuccin-icons/latte/latex.svg +3 -0
- package/public/catppuccin-icons/latte/latte.svg +6 -0
- package/public/catppuccin-icons/latte/lerna.svg +6 -0
- package/public/catppuccin-icons/latte/less.svg +3 -0
- package/public/catppuccin-icons/latte/lib.svg +3 -0
- package/public/catppuccin-icons/latte/license.svg +3 -0
- package/public/catppuccin-icons/latte/lint-staged.svg +8 -0
- package/public/catppuccin-icons/latte/liquid.svg +3 -0
- package/public/catppuccin-icons/latte/lisp.svg +6 -0
- package/public/catppuccin-icons/latte/lock.svg +3 -0
- package/public/catppuccin-icons/latte/log.svg +6 -0
- package/public/catppuccin-icons/latte/lua-check.svg +9 -0
- package/public/catppuccin-icons/latte/lua-client.svg +7 -0
- package/public/catppuccin-icons/latte/lua-rocks.svg +7 -0
- package/public/catppuccin-icons/latte/lua-server.svg +7 -0
- package/public/catppuccin-icons/latte/lua-test.svg +9 -0
- package/public/catppuccin-icons/latte/lua.svg +6 -0
- package/public/catppuccin-icons/latte/luau-check.svg +9 -0
- package/public/catppuccin-icons/latte/luau-client.svg +7 -0
- package/public/catppuccin-icons/latte/luau-config.svg +9 -0
- package/public/catppuccin-icons/latte/luau-server.svg +7 -0
- package/public/catppuccin-icons/latte/luau-test.svg +5 -0
- package/public/catppuccin-icons/latte/luau.svg +4 -0
- package/public/catppuccin-icons/latte/macos.svg +9 -0
- package/public/catppuccin-icons/latte/makefile.svg +6 -0
- package/public/catppuccin-icons/latte/mantle.svg +3 -0
- package/public/catppuccin-icons/latte/markdown-mdx.svg +3 -0
- package/public/catppuccin-icons/latte/markdown.svg +3 -0
- package/public/catppuccin-icons/latte/marko.svg +9 -0
- package/public/catppuccin-icons/latte/matlab.svg +6 -0
- package/public/catppuccin-icons/latte/mdbook.svg +4 -0
- package/public/catppuccin-icons/latte/mermaid.svg +3 -0
- package/public/catppuccin-icons/latte/meson.svg +6 -0
- package/public/catppuccin-icons/latte/midi.svg +6 -0
- package/public/catppuccin-icons/latte/mjml.svg +3 -0
- package/public/catppuccin-icons/latte/modernizr.svg +3 -0
- package/public/catppuccin-icons/latte/moonrepo.svg +4 -0
- package/public/catppuccin-icons/latte/moonwave.svg +3 -0
- package/public/catppuccin-icons/latte/ms-excel.svg +6 -0
- package/public/catppuccin-icons/latte/ms-powerpoint.svg +6 -0
- package/public/catppuccin-icons/latte/ms-word.svg +6 -0
- package/public/catppuccin-icons/latte/msbuild.svg +8 -0
- package/public/catppuccin-icons/latte/nativescript.svg +3 -0
- package/public/catppuccin-icons/latte/nest-controller.svg +3 -0
- package/public/catppuccin-icons/latte/nest-decorator.svg +3 -0
- package/public/catppuccin-icons/latte/nest-filter.svg +3 -0
- package/public/catppuccin-icons/latte/nest-gateway.svg +3 -0
- package/public/catppuccin-icons/latte/nest-guard.svg +3 -0
- package/public/catppuccin-icons/latte/nest-middleware.svg +3 -0
- package/public/catppuccin-icons/latte/nest-pipe.svg +3 -0
- package/public/catppuccin-icons/latte/nest-service.svg +3 -0
- package/public/catppuccin-icons/latte/nest.svg +3 -0
- package/public/catppuccin-icons/latte/netlify.svg +6 -0
- package/public/catppuccin-icons/latte/next.svg +6 -0
- package/public/catppuccin-icons/latte/nextflow.svg +3 -0
- package/public/catppuccin-icons/latte/nginx.svg +6 -0
- package/public/catppuccin-icons/latte/nim.svg +3 -0
- package/public/catppuccin-icons/latte/ninja.svg +6 -0
- package/public/catppuccin-icons/latte/nix-lock.svg +11 -0
- package/public/catppuccin-icons/latte/nix.svg +10 -0
- package/public/catppuccin-icons/latte/nodemon.svg +3 -0
- package/public/catppuccin-icons/latte/npm-ignore.svg +6 -0
- package/public/catppuccin-icons/latte/npm-lock.svg +7 -0
- package/public/catppuccin-icons/latte/npm.svg +6 -0
- package/public/catppuccin-icons/latte/nuget.svg +3 -0
- package/public/catppuccin-icons/latte/nunjucks.svg +3 -0
- package/public/catppuccin-icons/latte/nuxt-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/nuxt.svg +3 -0
- package/public/catppuccin-icons/latte/nx-ignore.svg +4 -0
- package/public/catppuccin-icons/latte/nx.svg +4 -0
- package/public/catppuccin-icons/latte/ocaml.svg +7 -0
- package/public/catppuccin-icons/latte/odin.svg +3 -0
- package/public/catppuccin-icons/latte/opentofu.svg +4 -0
- package/public/catppuccin-icons/latte/org.svg +7 -0
- package/public/catppuccin-icons/latte/package-json.svg +3 -0
- package/public/catppuccin-icons/latte/panda-css.svg +3 -0
- package/public/catppuccin-icons/latte/pdf.svg +3 -0
- package/public/catppuccin-icons/latte/perl.svg +3 -0
- package/public/catppuccin-icons/latte/pesde-lock.svg +7 -0
- package/public/catppuccin-icons/latte/pesde.svg +6 -0
- package/public/catppuccin-icons/latte/php.svg +3 -0
- package/public/catppuccin-icons/latte/phrase.svg +6 -0
- package/public/catppuccin-icons/latte/phtml.svg +6 -0
- package/public/catppuccin-icons/latte/pixi-lock.svg +6 -0
- package/public/catppuccin-icons/latte/pixi.svg +7 -0
- package/public/catppuccin-icons/latte/plantuml.svg +3 -0
- package/public/catppuccin-icons/latte/playwright.svg +9 -0
- package/public/catppuccin-icons/latte/plop.svg +3 -0
- package/public/catppuccin-icons/latte/pnpm-lock.svg +9 -0
- package/public/catppuccin-icons/latte/pnpm.svg +8 -0
- package/public/catppuccin-icons/latte/poetry-lock.svg +13 -0
- package/public/catppuccin-icons/latte/postcss.svg +8 -0
- package/public/catppuccin-icons/latte/powershell.svg +6 -0
- package/public/catppuccin-icons/latte/pre-commit.svg +4 -0
- package/public/catppuccin-icons/latte/premake.svg +7 -0
- package/public/catppuccin-icons/latte/prettier-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/prettier.svg +8 -0
- package/public/catppuccin-icons/latte/prisma.svg +3 -0
- package/public/catppuccin-icons/latte/prolog.svg +3 -0
- package/public/catppuccin-icons/latte/properties.svg +3 -0
- package/public/catppuccin-icons/latte/proto.svg +8 -0
- package/public/catppuccin-icons/latte/prototools.svg +3 -0
- package/public/catppuccin-icons/latte/pug.svg +3 -0
- package/public/catppuccin-icons/latte/puppet.svg +3 -0
- package/public/catppuccin-icons/latte/puppeteer.svg +5 -0
- package/public/catppuccin-icons/latte/python-compiled.svg +8 -0
- package/public/catppuccin-icons/latte/python-config.svg +9 -0
- package/public/catppuccin-icons/latte/python.svg +8 -0
- package/public/catppuccin-icons/latte/qwik.svg +6 -0
- package/public/catppuccin-icons/latte/r.svg +6 -0
- package/public/catppuccin-icons/latte/racket.svg +6 -0
- package/public/catppuccin-icons/latte/razor.svg +3 -0
- package/public/catppuccin-icons/latte/rdata.svg +4 -0
- package/public/catppuccin-icons/latte/readme.svg +6 -0
- package/public/catppuccin-icons/latte/reason.svg +6 -0
- package/public/catppuccin-icons/latte/redwood.svg +3 -0
- package/public/catppuccin-icons/latte/release.svg +6 -0
- package/public/catppuccin-icons/latte/remix.svg +3 -0
- package/public/catppuccin-icons/latte/renovate.svg +6 -0
- package/public/catppuccin-icons/latte/rescript.svg +6 -0
- package/public/catppuccin-icons/latte/rmd.svg +4 -0
- package/public/catppuccin-icons/latte/roblox.svg +3 -0
- package/public/catppuccin-icons/latte/robots.svg +6 -0
- package/public/catppuccin-icons/latte/rocket.svg +3 -0
- package/public/catppuccin-icons/latte/rojo.svg +3 -0
- package/public/catppuccin-icons/latte/rokit.svg +4 -0
- package/public/catppuccin-icons/latte/rollup.svg +6 -0
- package/public/catppuccin-icons/latte/rproj.svg +5 -0
- package/public/catppuccin-icons/latte/rsml.svg +10 -0
- package/public/catppuccin-icons/latte/ruby-gem-lock.svg +7 -0
- package/public/catppuccin-icons/latte/ruby-gem.svg +6 -0
- package/public/catppuccin-icons/latte/ruby.svg +3 -0
- package/public/catppuccin-icons/latte/ruff.svg +3 -0
- package/public/catppuccin-icons/latte/rust-alt-config.svg +4 -0
- package/public/catppuccin-icons/latte/rust-alt.svg +3 -0
- package/public/catppuccin-icons/latte/rust-config.svg +7 -0
- package/public/catppuccin-icons/latte/rust.svg +6 -0
- package/public/catppuccin-icons/latte/salesforce.svg +3 -0
- package/public/catppuccin-icons/latte/sass.svg +3 -0
- package/public/catppuccin-icons/latte/scala.svg +3 -0
- package/public/catppuccin-icons/latte/scheme.svg +3 -0
- package/public/catppuccin-icons/latte/search.svg +3 -0
- package/public/catppuccin-icons/latte/security.svg +4 -0
- package/public/catppuccin-icons/latte/semantic-release.svg +3 -0
- package/public/catppuccin-icons/latte/semgrep-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/semgrep.svg +3 -0
- package/public/catppuccin-icons/latte/sentry.svg +3 -0
- package/public/catppuccin-icons/latte/serverless.svg +3 -0
- package/public/catppuccin-icons/latte/shader.svg +3 -0
- package/public/catppuccin-icons/latte/sketch.svg +3 -0
- package/public/catppuccin-icons/latte/slidesk.svg +7 -0
- package/public/catppuccin-icons/latte/snowpack.svg +6 -0
- package/public/catppuccin-icons/latte/solid.svg +5 -0
- package/public/catppuccin-icons/latte/solidity.svg +3 -0
- package/public/catppuccin-icons/latte/sonar-cloud.svg +7 -0
- package/public/catppuccin-icons/latte/spwn.svg +7 -0
- package/public/catppuccin-icons/latte/squirrel.svg +4 -0
- package/public/catppuccin-icons/latte/stackblitz.svg +3 -0
- package/public/catppuccin-icons/latte/stata.svg +4 -0
- package/public/catppuccin-icons/latte/stencil.svg +3 -0
- package/public/catppuccin-icons/latte/stitches.svg +7 -0
- package/public/catppuccin-icons/latte/storybook-svelte.svg +6 -0
- package/public/catppuccin-icons/latte/storybook-vue.svg +6 -0
- package/public/catppuccin-icons/latte/storybook.svg +6 -0
- package/public/catppuccin-icons/latte/stylelint-ignore.svg +7 -0
- package/public/catppuccin-icons/latte/stylelint.svg +7 -0
- package/public/catppuccin-icons/latte/stylua-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/stylua.svg +7 -0
- package/public/catppuccin-icons/latte/sublime.svg +3 -0
- package/public/catppuccin-icons/latte/super-collider.svg +3 -0
- package/public/catppuccin-icons/latte/svelte-config.svg +6 -0
- package/public/catppuccin-icons/latte/svelte.svg +6 -0
- package/public/catppuccin-icons/latte/svg.svg +3 -0
- package/public/catppuccin-icons/latte/swift.svg +3 -0
- package/public/catppuccin-icons/latte/swiftformat.svg +4 -0
- package/public/catppuccin-icons/latte/symlink.svg +5 -0
- package/public/catppuccin-icons/latte/tailwind.svg +3 -0
- package/public/catppuccin-icons/latte/taskfile.svg +3 -0
- package/public/catppuccin-icons/latte/tauri-ignore.svg +6 -0
- package/public/catppuccin-icons/latte/tauri.svg +8 -0
- package/public/catppuccin-icons/latte/terraform.svg +3 -0
- package/public/catppuccin-icons/latte/text.svg +6 -0
- package/public/catppuccin-icons/latte/todo.svg +6 -0
- package/public/catppuccin-icons/latte/toml.svg +3 -0
- package/public/catppuccin-icons/latte/turbo.svg +10 -0
- package/public/catppuccin-icons/latte/twig.svg +4 -0
- package/public/catppuccin-icons/latte/twine.svg +6 -0
- package/public/catppuccin-icons/latte/typescript-config.svg +7 -0
- package/public/catppuccin-icons/latte/typescript-def.svg +7 -0
- package/public/catppuccin-icons/latte/typescript-react.svg +8 -0
- package/public/catppuccin-icons/latte/typescript-test.svg +3 -0
- package/public/catppuccin-icons/latte/typescript.svg +6 -0
- package/public/catppuccin-icons/latte/typst.svg +3 -0
- package/public/catppuccin-icons/latte/unity.svg +3 -0
- package/public/catppuccin-icons/latte/unocss.svg +6 -0
- package/public/catppuccin-icons/latte/url.svg +3 -0
- package/public/catppuccin-icons/latte/uv.svg +3 -0
- package/public/catppuccin-icons/latte/v.svg +6 -0
- package/public/catppuccin-icons/latte/vala.svg +3 -0
- package/public/catppuccin-icons/latte/vanilla-extract.svg +4 -0
- package/public/catppuccin-icons/latte/vapi.svg +3 -0
- package/public/catppuccin-icons/latte/vento.svg +5 -0
- package/public/catppuccin-icons/latte/vercel-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/vercel.svg +3 -0
- package/public/catppuccin-icons/latte/verilog.svg +6 -0
- package/public/catppuccin-icons/latte/vhs.svg +3 -0
- package/public/catppuccin-icons/latte/video.svg +6 -0
- package/public/catppuccin-icons/latte/vim.svg +3 -0
- package/public/catppuccin-icons/latte/visual-studio.svg +3 -0
- package/public/catppuccin-icons/latte/vital.svg +6 -0
- package/public/catppuccin-icons/latte/vite.svg +6 -0
- package/public/catppuccin-icons/latte/vitest.svg +6 -0
- package/public/catppuccin-icons/latte/vs-codium.svg +8 -0
- package/public/catppuccin-icons/latte/vscode-ignore.svg +3 -0
- package/public/catppuccin-icons/latte/vscode.svg +3 -0
- package/public/catppuccin-icons/latte/vue-config.svg +6 -0
- package/public/catppuccin-icons/latte/vue.svg +6 -0
- package/public/catppuccin-icons/latte/wally.svg +27 -0
- package/public/catppuccin-icons/latte/web-assembly.svg +7 -0
- package/public/catppuccin-icons/latte/webpack.svg +7 -0
- package/public/catppuccin-icons/latte/windi.svg +3 -0
- package/public/catppuccin-icons/latte/workflow.svg +3 -0
- package/public/catppuccin-icons/latte/wrangler.svg +4 -0
- package/public/catppuccin-icons/latte/wxt.svg +3 -0
- package/public/catppuccin-icons/latte/xaml.svg +8 -0
- package/public/catppuccin-icons/latte/xcode.svg +7 -0
- package/public/catppuccin-icons/latte/xmake.svg +7 -0
- package/public/catppuccin-icons/latte/xml.svg +3 -0
- package/public/catppuccin-icons/latte/yaml.svg +3 -0
- package/public/catppuccin-icons/latte/yarn-lock.svg +7 -0
- package/public/catppuccin-icons/latte/yarn.svg +6 -0
- package/public/catppuccin-icons/latte/zap.svg +3 -0
- package/public/catppuccin-icons/latte/zig.svg +3 -0
- package/public/catppuccin-icons/latte/zip.svg +3 -0
- package/public/catppuccin-icons/mocha/3d.svg +3 -0
- package/public/catppuccin-icons/mocha/_file.svg +3 -0
- package/public/catppuccin-icons/mocha/_folder.svg +3 -0
- package/public/catppuccin-icons/mocha/_folder_open.svg +3 -0
- package/public/catppuccin-icons/mocha/_root.svg +7 -0
- package/public/catppuccin-icons/mocha/_root_open.svg +5 -0
- package/public/catppuccin-icons/mocha/adobe-ae.svg +6 -0
- package/public/catppuccin-icons/mocha/adobe-ai.svg +6 -0
- package/public/catppuccin-icons/mocha/adobe-id.svg +6 -0
- package/public/catppuccin-icons/mocha/adobe-ps.svg +6 -0
- package/public/catppuccin-icons/mocha/adobe-xd.svg +6 -0
- package/public/catppuccin-icons/mocha/adonis.svg +6 -0
- package/public/catppuccin-icons/mocha/alex.svg +6 -0
- package/public/catppuccin-icons/mocha/amber.svg +3 -0
- package/public/catppuccin-icons/mocha/android.svg +3 -0
- package/public/catppuccin-icons/mocha/angular-component.svg +6 -0
- package/public/catppuccin-icons/mocha/angular-directive.svg +6 -0
- package/public/catppuccin-icons/mocha/angular-guard.svg +6 -0
- package/public/catppuccin-icons/mocha/angular-pipe.svg +6 -0
- package/public/catppuccin-icons/mocha/angular-service.svg +6 -0
- package/public/catppuccin-icons/mocha/angular.svg +6 -0
- package/public/catppuccin-icons/mocha/ansible-lint.svg +4 -0
- package/public/catppuccin-icons/mocha/antlr.svg +6 -0
- package/public/catppuccin-icons/mocha/apache.svg +7 -0
- package/public/catppuccin-icons/mocha/api-blueprint.svg +3 -0
- package/public/catppuccin-icons/mocha/apollo.svg +6 -0
- package/public/catppuccin-icons/mocha/apple.svg +3 -0
- package/public/catppuccin-icons/mocha/arduino.svg +3 -0
- package/public/catppuccin-icons/mocha/asciidoc.svg +3 -0
- package/public/catppuccin-icons/mocha/assembly.svg +4 -0
- package/public/catppuccin-icons/mocha/astro-config.svg +7 -0
- package/public/catppuccin-icons/mocha/astro.svg +6 -0
- package/public/catppuccin-icons/mocha/audio.svg +6 -0
- package/public/catppuccin-icons/mocha/autohotkey.svg +6 -0
- package/public/catppuccin-icons/mocha/azure-pipelines.svg +3 -0
- package/public/catppuccin-icons/mocha/babel.svg +3 -0
- package/public/catppuccin-icons/mocha/bash.svg +7 -0
- package/public/catppuccin-icons/mocha/batch.svg +6 -0
- package/public/catppuccin-icons/mocha/bazel.svg +3 -0
- package/public/catppuccin-icons/mocha/benchmark.svg +3 -0
- package/public/catppuccin-icons/mocha/bicep.svg +5 -0
- package/public/catppuccin-icons/mocha/binary.svg +6 -0
- package/public/catppuccin-icons/mocha/biome.svg +3 -0
- package/public/catppuccin-icons/mocha/bitbucket.svg +3 -0
- package/public/catppuccin-icons/mocha/blink.svg +10 -0
- package/public/catppuccin-icons/mocha/blitz.svg +3 -0
- package/public/catppuccin-icons/mocha/bower.svg +9 -0
- package/public/catppuccin-icons/mocha/browserslist.svg +6 -0
- package/public/catppuccin-icons/mocha/bun-lock.svg +8 -0
- package/public/catppuccin-icons/mocha/bun.svg +7 -0
- package/public/catppuccin-icons/mocha/c-header.svg +3 -0
- package/public/catppuccin-icons/mocha/c.svg +3 -0
- package/public/catppuccin-icons/mocha/cabal.svg +7 -0
- package/public/catppuccin-icons/mocha/caddy.svg +6 -0
- package/public/catppuccin-icons/mocha/capacitor.svg +3 -0
- package/public/catppuccin-icons/mocha/cargo-lock.svg +8 -0
- package/public/catppuccin-icons/mocha/cargo.svg +7 -0
- package/public/catppuccin-icons/mocha/certificate.svg +7 -0
- package/public/catppuccin-icons/mocha/changelog.svg +3 -0
- package/public/catppuccin-icons/mocha/circle-ci.svg +6 -0
- package/public/catppuccin-icons/mocha/clojure.svg +10 -0
- package/public/catppuccin-icons/mocha/cmake.svg +7 -0
- package/public/catppuccin-icons/mocha/cobol.svg +3 -0
- package/public/catppuccin-icons/mocha/code-climate.svg +3 -0
- package/public/catppuccin-icons/mocha/code-of-conduct.svg +6 -0
- package/public/catppuccin-icons/mocha/codeowners.svg +6 -0
- package/public/catppuccin-icons/mocha/coffeescript.svg +6 -0
- package/public/catppuccin-icons/mocha/commitlint.svg +6 -0
- package/public/catppuccin-icons/mocha/config.svg +3 -0
- package/public/catppuccin-icons/mocha/contributing.svg +6 -0
- package/public/catppuccin-icons/mocha/cpp-header.svg +4 -0
- package/public/catppuccin-icons/mocha/cpp.svg +4 -0
- package/public/catppuccin-icons/mocha/crystal.svg +3 -0
- package/public/catppuccin-icons/mocha/csharp.svg +3 -0
- package/public/catppuccin-icons/mocha/cspell.svg +4 -0
- package/public/catppuccin-icons/mocha/css-map.svg +8 -0
- package/public/catppuccin-icons/mocha/css.svg +6 -0
- package/public/catppuccin-icons/mocha/css3.svg +6 -0
- package/public/catppuccin-icons/mocha/csv.svg +3 -0
- package/public/catppuccin-icons/mocha/cucumber.svg +3 -0
- package/public/catppuccin-icons/mocha/cuda.svg +6 -0
- package/public/catppuccin-icons/mocha/cue.svg +4 -0
- package/public/catppuccin-icons/mocha/cursor-ignore.svg +4 -0
- package/public/catppuccin-icons/mocha/cursor.svg +4 -0
- package/public/catppuccin-icons/mocha/cypress.svg +6 -0
- package/public/catppuccin-icons/mocha/d.svg +3 -0
- package/public/catppuccin-icons/mocha/darklua.svg +6 -0
- package/public/catppuccin-icons/mocha/dart-generated.svg +6 -0
- package/public/catppuccin-icons/mocha/dart.svg +6 -0
- package/public/catppuccin-icons/mocha/database.svg +3 -0
- package/public/catppuccin-icons/mocha/deno.svg +3 -0
- package/public/catppuccin-icons/mocha/deno_lock.svg +6 -0
- package/public/catppuccin-icons/mocha/dependabot.svg +3 -0
- package/public/catppuccin-icons/mocha/devcontainer.svg +4 -0
- package/public/catppuccin-icons/mocha/dhall.svg +3 -0
- package/public/catppuccin-icons/mocha/diff.svg +7 -0
- package/public/catppuccin-icons/mocha/django.svg +6 -0
- package/public/catppuccin-icons/mocha/docker-compose.svg +3 -0
- package/public/catppuccin-icons/mocha/docker-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/docker.svg +3 -0
- package/public/catppuccin-icons/mocha/docusaurus.svg +7 -0
- package/public/catppuccin-icons/mocha/drawio.svg +3 -0
- package/public/catppuccin-icons/mocha/drizzle-orm.svg +3 -0
- package/public/catppuccin-icons/mocha/dub-selections.svg +8 -0
- package/public/catppuccin-icons/mocha/dub.svg +7 -0
- package/public/catppuccin-icons/mocha/editorconfig.svg +3 -0
- package/public/catppuccin-icons/mocha/ejs.svg +3 -0
- package/public/catppuccin-icons/mocha/eleventy.svg +3 -0
- package/public/catppuccin-icons/mocha/elixir.svg +3 -0
- package/public/catppuccin-icons/mocha/elm.svg +3 -0
- package/public/catppuccin-icons/mocha/ember.svg +3 -0
- package/public/catppuccin-icons/mocha/env.svg +3 -0
- package/public/catppuccin-icons/mocha/envrc.svg +6 -0
- package/public/catppuccin-icons/mocha/erlang.svg +6 -0
- package/public/catppuccin-icons/mocha/esbuild.svg +3 -0
- package/public/catppuccin-icons/mocha/eslint-ignore.svg +6 -0
- package/public/catppuccin-icons/mocha/eslint.svg +6 -0
- package/public/catppuccin-icons/mocha/exe.svg +6 -0
- package/public/catppuccin-icons/mocha/fastlane.svg +14 -0
- package/public/catppuccin-icons/mocha/favicon.svg +3 -0
- package/public/catppuccin-icons/mocha/figma.svg +9 -0
- package/public/catppuccin-icons/mocha/firebase.svg +3 -0
- package/public/catppuccin-icons/mocha/flutter.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_admin.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_admin_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_android.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_android_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_animation.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_animation_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_api.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_api_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_app.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_app_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_assets.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_assets_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_audio.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_audio_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_audit.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_audit_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_aws.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_aws_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_azure-devops.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_azure-devops_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_azure-pipelines.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_azure-pipelines_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_benchmark.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_benchmark_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_caddy.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_caddy_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_cargo.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_cargo_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_circle-ci.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_circle-ci_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_client.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_client_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_cloud.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_cloud_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_command.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_command_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_components.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_components_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_composables.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_composables_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_config.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_config_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_connection.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_connection_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_constant.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_constant_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_content.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_content_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_controllers.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_controllers_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_core.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_core_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_coverage.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_coverage_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_cursor.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_cursor_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_cypress.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_cypress_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_database.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_database_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_debug.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_debug_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_devcontainer.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_devcontainer_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_direnv.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_direnv_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_dist.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_dist_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_docker.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_docker_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_docs.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_docs_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_download.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_download_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_drizzle-orm.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_drizzle-orm_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_examples.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_examples_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_fastlane.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_fastlane_open.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_firebase.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_firebase_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_fonts.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_fonts_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_forgejo.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_forgejo_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_functions.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_functions_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_fvm.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_fvm_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_git.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_git_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_github.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_github_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_gitlab.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_gitlab_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_gradle.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_gradle_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_graphql.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_graphql_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_hooks.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_hooks_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_husky.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_husky_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_images.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_images_open.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_include.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_include_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_intellij.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_intellij_open.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_javascript.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_javascript_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_kubernetes.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_kubernetes_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_layouts.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_layouts_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_lib.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_lib_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_linux.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_linux_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_locales.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_locales_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_luau.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_luau_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_lune.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_lune_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_macos.svg +10 -0
- package/public/catppuccin-icons/mocha/folder_macos_open.svg +10 -0
- package/public/catppuccin-icons/mocha/folder_messages.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_messages_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_middleware.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_middleware_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_mocks.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_mocks_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_moonrepo.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_moonrepo_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_next.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_next_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_nix.svg +11 -0
- package/public/catppuccin-icons/mocha/folder_nix_open.svg +11 -0
- package/public/catppuccin-icons/mocha/folder_node.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_node_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_nuxt.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_nuxt_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_packages.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_packages_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_pesde.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_pesde_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_plugins.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_plugins_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_pre-commit.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_pre-commit_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_prisma.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_prisma_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_private.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_private_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_proto.svg +11 -0
- package/public/catppuccin-icons/mocha/folder_proto_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_public.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_public_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_queue.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_queue_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_redux.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_redux_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_renovate.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_renovate_open.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_roblox.svg +3 -0
- package/public/catppuccin-icons/mocha/folder_roblox_open.svg +3 -0
- package/public/catppuccin-icons/mocha/folder_routes.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_routes_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_sass.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_sass_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_scripts.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_scripts_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_security.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_security_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_server.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_server_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_shared.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_shared_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_src.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_src_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_storybook.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_storybook_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_styles.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_styles_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_svg.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_svg_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_symlink.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_symlink_open.svg +5 -0
- package/public/catppuccin-icons/mocha/folder_tauri.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_tauri_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_temp.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_temp_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_templates.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_templates_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_tests.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_tests_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_themes.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_themes_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_turbo.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_turbo_open.svg +10 -0
- package/public/catppuccin-icons/mocha/folder_types.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_types_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_upload.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_upload_open.svg +9 -0
- package/public/catppuccin-icons/mocha/folder_utils.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_utils_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_vercel.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_vercel_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_video.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_video_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_views.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_views_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_vscode.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_vscode_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_windows.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_windows_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_workflows.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_workflows_open.svg +6 -0
- package/public/catppuccin-icons/mocha/folder_wxt.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_wxt_open.svg +4 -0
- package/public/catppuccin-icons/mocha/folder_xcode.svg +12 -0
- package/public/catppuccin-icons/mocha/folder_xcode_open.svg +10 -0
- package/public/catppuccin-icons/mocha/folder_xmake.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_xmake_open.svg +8 -0
- package/public/catppuccin-icons/mocha/folder_yarn.svg +7 -0
- package/public/catppuccin-icons/mocha/folder_yarn_open.svg +9 -0
- package/public/catppuccin-icons/mocha/font.svg +3 -0
- package/public/catppuccin-icons/mocha/foreman.svg +9 -0
- package/public/catppuccin-icons/mocha/forgejo.svg +6 -0
- package/public/catppuccin-icons/mocha/fortran.svg +3 -0
- package/public/catppuccin-icons/mocha/fsharp.svg +3 -0
- package/public/catppuccin-icons/mocha/fvm.svg +3 -0
- package/public/catppuccin-icons/mocha/gatsby.svg +6 -0
- package/public/catppuccin-icons/mocha/gcp.svg +9 -0
- package/public/catppuccin-icons/mocha/git-cliff.svg +5 -0
- package/public/catppuccin-icons/mocha/git.svg +6 -0
- package/public/catppuccin-icons/mocha/gitlab.svg +3 -0
- package/public/catppuccin-icons/mocha/gitpod.svg +3 -0
- package/public/catppuccin-icons/mocha/gleam-config.svg +5 -0
- package/public/catppuccin-icons/mocha/gleam.svg +4 -0
- package/public/catppuccin-icons/mocha/go-mod.svg +3 -0
- package/public/catppuccin-icons/mocha/go-template.svg +4 -0
- package/public/catppuccin-icons/mocha/go.svg +3 -0
- package/public/catppuccin-icons/mocha/godot-assets.svg +3 -0
- package/public/catppuccin-icons/mocha/godot.svg +3 -0
- package/public/catppuccin-icons/mocha/gradle.svg +6 -0
- package/public/catppuccin-icons/mocha/graphql.svg +3 -0
- package/public/catppuccin-icons/mocha/groovy.svg +6 -0
- package/public/catppuccin-icons/mocha/gulp.svg +3 -0
- package/public/catppuccin-icons/mocha/hacking.svg +7 -0
- package/public/catppuccin-icons/mocha/haml.svg +7 -0
- package/public/catppuccin-icons/mocha/handlebars.svg +3 -0
- package/public/catppuccin-icons/mocha/hardhat.svg +3 -0
- package/public/catppuccin-icons/mocha/hare.svg +7 -0
- package/public/catppuccin-icons/mocha/haskell.svg +3 -0
- package/public/catppuccin-icons/mocha/haxe.svg +6 -0
- package/public/catppuccin-icons/mocha/helm.svg +3 -0
- package/public/catppuccin-icons/mocha/heroku.svg +6 -0
- package/public/catppuccin-icons/mocha/histoire.svg +6 -0
- package/public/catppuccin-icons/mocha/html.svg +6 -0
- package/public/catppuccin-icons/mocha/http.svg +6 -0
- package/public/catppuccin-icons/mocha/huff.svg +4 -0
- package/public/catppuccin-icons/mocha/hugo.svg +6 -0
- package/public/catppuccin-icons/mocha/humans.svg +13 -0
- package/public/catppuccin-icons/mocha/husky.svg +3 -0
- package/public/catppuccin-icons/mocha/image.svg +8 -0
- package/public/catppuccin-icons/mocha/ionic.svg +6 -0
- package/public/catppuccin-icons/mocha/java-annotation.svg +3 -0
- package/public/catppuccin-icons/mocha/java-class-abstract.svg +3 -0
- package/public/catppuccin-icons/mocha/java-class-final.svg +3 -0
- package/public/catppuccin-icons/mocha/java-class-sealed.svg +3 -0
- package/public/catppuccin-icons/mocha/java-class.svg +3 -0
- package/public/catppuccin-icons/mocha/java-enum.svg +3 -0
- package/public/catppuccin-icons/mocha/java-exception.svg +3 -0
- package/public/catppuccin-icons/mocha/java-interface.svg +4 -0
- package/public/catppuccin-icons/mocha/java-jar.svg +7 -0
- package/public/catppuccin-icons/mocha/java-record.svg +4 -0
- package/public/catppuccin-icons/mocha/java.svg +7 -0
- package/public/catppuccin-icons/mocha/javascript-config.svg +7 -0
- package/public/catppuccin-icons/mocha/javascript-map.svg +8 -0
- package/public/catppuccin-icons/mocha/javascript-react.svg +8 -0
- package/public/catppuccin-icons/mocha/javascript-test.svg +3 -0
- package/public/catppuccin-icons/mocha/javascript.svg +6 -0
- package/public/catppuccin-icons/mocha/jest.svg +8 -0
- package/public/catppuccin-icons/mocha/jinja.svg +3 -0
- package/public/catppuccin-icons/mocha/json-schema.svg +3 -0
- package/public/catppuccin-icons/mocha/json.svg +3 -0
- package/public/catppuccin-icons/mocha/juce.svg +14 -0
- package/public/catppuccin-icons/mocha/jule.svg +5 -0
- package/public/catppuccin-icons/mocha/julia.svg +7 -0
- package/public/catppuccin-icons/mocha/jupyter.svg +6 -0
- package/public/catppuccin-icons/mocha/just.svg +5 -0
- package/public/catppuccin-icons/mocha/kdl.svg +5 -0
- package/public/catppuccin-icons/mocha/key.svg +6 -0
- package/public/catppuccin-icons/mocha/knip.svg +3 -0
- package/public/catppuccin-icons/mocha/kotlin.svg +8 -0
- package/public/catppuccin-icons/mocha/laravel.svg +8 -0
- package/public/catppuccin-icons/mocha/latex.svg +3 -0
- package/public/catppuccin-icons/mocha/latte.svg +6 -0
- package/public/catppuccin-icons/mocha/lerna.svg +6 -0
- package/public/catppuccin-icons/mocha/less.svg +3 -0
- package/public/catppuccin-icons/mocha/lib.svg +3 -0
- package/public/catppuccin-icons/mocha/license.svg +3 -0
- package/public/catppuccin-icons/mocha/lint-staged.svg +8 -0
- package/public/catppuccin-icons/mocha/liquid.svg +3 -0
- package/public/catppuccin-icons/mocha/lisp.svg +6 -0
- package/public/catppuccin-icons/mocha/lock.svg +3 -0
- package/public/catppuccin-icons/mocha/log.svg +6 -0
- package/public/catppuccin-icons/mocha/lua-check.svg +9 -0
- package/public/catppuccin-icons/mocha/lua-client.svg +7 -0
- package/public/catppuccin-icons/mocha/lua-rocks.svg +7 -0
- package/public/catppuccin-icons/mocha/lua-server.svg +7 -0
- package/public/catppuccin-icons/mocha/lua-test.svg +9 -0
- package/public/catppuccin-icons/mocha/lua.svg +6 -0
- package/public/catppuccin-icons/mocha/luau-check.svg +9 -0
- package/public/catppuccin-icons/mocha/luau-client.svg +7 -0
- package/public/catppuccin-icons/mocha/luau-config.svg +9 -0
- package/public/catppuccin-icons/mocha/luau-server.svg +7 -0
- package/public/catppuccin-icons/mocha/luau-test.svg +5 -0
- package/public/catppuccin-icons/mocha/luau.svg +4 -0
- package/public/catppuccin-icons/mocha/macos.svg +9 -0
- package/public/catppuccin-icons/mocha/makefile.svg +6 -0
- package/public/catppuccin-icons/mocha/mantle.svg +3 -0
- package/public/catppuccin-icons/mocha/markdown-mdx.svg +3 -0
- package/public/catppuccin-icons/mocha/markdown.svg +3 -0
- package/public/catppuccin-icons/mocha/marko.svg +9 -0
- package/public/catppuccin-icons/mocha/matlab.svg +6 -0
- package/public/catppuccin-icons/mocha/mdbook.svg +4 -0
- package/public/catppuccin-icons/mocha/mermaid.svg +3 -0
- package/public/catppuccin-icons/mocha/meson.svg +6 -0
- package/public/catppuccin-icons/mocha/midi.svg +6 -0
- package/public/catppuccin-icons/mocha/mjml.svg +3 -0
- package/public/catppuccin-icons/mocha/modernizr.svg +3 -0
- package/public/catppuccin-icons/mocha/moonrepo.svg +4 -0
- package/public/catppuccin-icons/mocha/moonwave.svg +3 -0
- package/public/catppuccin-icons/mocha/ms-excel.svg +6 -0
- package/public/catppuccin-icons/mocha/ms-powerpoint.svg +6 -0
- package/public/catppuccin-icons/mocha/ms-word.svg +6 -0
- package/public/catppuccin-icons/mocha/msbuild.svg +8 -0
- package/public/catppuccin-icons/mocha/nativescript.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-controller.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-decorator.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-filter.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-gateway.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-guard.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-middleware.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-pipe.svg +3 -0
- package/public/catppuccin-icons/mocha/nest-service.svg +3 -0
- package/public/catppuccin-icons/mocha/nest.svg +3 -0
- package/public/catppuccin-icons/mocha/netlify.svg +6 -0
- package/public/catppuccin-icons/mocha/next.svg +6 -0
- package/public/catppuccin-icons/mocha/nextflow.svg +3 -0
- package/public/catppuccin-icons/mocha/nginx.svg +6 -0
- package/public/catppuccin-icons/mocha/nim.svg +3 -0
- package/public/catppuccin-icons/mocha/ninja.svg +6 -0
- package/public/catppuccin-icons/mocha/nix-lock.svg +11 -0
- package/public/catppuccin-icons/mocha/nix.svg +10 -0
- package/public/catppuccin-icons/mocha/nodemon.svg +3 -0
- package/public/catppuccin-icons/mocha/npm-ignore.svg +6 -0
- package/public/catppuccin-icons/mocha/npm-lock.svg +7 -0
- package/public/catppuccin-icons/mocha/npm.svg +6 -0
- package/public/catppuccin-icons/mocha/nuget.svg +3 -0
- package/public/catppuccin-icons/mocha/nunjucks.svg +3 -0
- package/public/catppuccin-icons/mocha/nuxt-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/nuxt.svg +3 -0
- package/public/catppuccin-icons/mocha/nx-ignore.svg +4 -0
- package/public/catppuccin-icons/mocha/nx.svg +4 -0
- package/public/catppuccin-icons/mocha/ocaml.svg +7 -0
- package/public/catppuccin-icons/mocha/odin.svg +3 -0
- package/public/catppuccin-icons/mocha/opentofu.svg +4 -0
- package/public/catppuccin-icons/mocha/org.svg +7 -0
- package/public/catppuccin-icons/mocha/package-json.svg +3 -0
- package/public/catppuccin-icons/mocha/panda-css.svg +3 -0
- package/public/catppuccin-icons/mocha/pdf.svg +3 -0
- package/public/catppuccin-icons/mocha/perl.svg +3 -0
- package/public/catppuccin-icons/mocha/pesde-lock.svg +7 -0
- package/public/catppuccin-icons/mocha/pesde.svg +6 -0
- package/public/catppuccin-icons/mocha/php.svg +3 -0
- package/public/catppuccin-icons/mocha/phrase.svg +6 -0
- package/public/catppuccin-icons/mocha/phtml.svg +6 -0
- package/public/catppuccin-icons/mocha/pixi-lock.svg +6 -0
- package/public/catppuccin-icons/mocha/pixi.svg +7 -0
- package/public/catppuccin-icons/mocha/plantuml.svg +3 -0
- package/public/catppuccin-icons/mocha/playwright.svg +9 -0
- package/public/catppuccin-icons/mocha/plop.svg +3 -0
- package/public/catppuccin-icons/mocha/pnpm-lock.svg +9 -0
- package/public/catppuccin-icons/mocha/pnpm.svg +8 -0
- package/public/catppuccin-icons/mocha/poetry-lock.svg +13 -0
- package/public/catppuccin-icons/mocha/postcss.svg +8 -0
- package/public/catppuccin-icons/mocha/powershell.svg +6 -0
- package/public/catppuccin-icons/mocha/pre-commit.svg +4 -0
- package/public/catppuccin-icons/mocha/premake.svg +7 -0
- package/public/catppuccin-icons/mocha/prettier-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/prettier.svg +8 -0
- package/public/catppuccin-icons/mocha/prisma.svg +3 -0
- package/public/catppuccin-icons/mocha/prolog.svg +3 -0
- package/public/catppuccin-icons/mocha/properties.svg +3 -0
- package/public/catppuccin-icons/mocha/proto.svg +8 -0
- package/public/catppuccin-icons/mocha/prototools.svg +3 -0
- package/public/catppuccin-icons/mocha/pug.svg +3 -0
- package/public/catppuccin-icons/mocha/puppet.svg +3 -0
- package/public/catppuccin-icons/mocha/puppeteer.svg +5 -0
- package/public/catppuccin-icons/mocha/python-compiled.svg +8 -0
- package/public/catppuccin-icons/mocha/python-config.svg +9 -0
- package/public/catppuccin-icons/mocha/python.svg +8 -0
- package/public/catppuccin-icons/mocha/qwik.svg +6 -0
- package/public/catppuccin-icons/mocha/r.svg +6 -0
- package/public/catppuccin-icons/mocha/racket.svg +6 -0
- package/public/catppuccin-icons/mocha/razor.svg +3 -0
- package/public/catppuccin-icons/mocha/rdata.svg +4 -0
- package/public/catppuccin-icons/mocha/readme.svg +6 -0
- package/public/catppuccin-icons/mocha/reason.svg +6 -0
- package/public/catppuccin-icons/mocha/redwood.svg +3 -0
- package/public/catppuccin-icons/mocha/release.svg +6 -0
- package/public/catppuccin-icons/mocha/remix.svg +3 -0
- package/public/catppuccin-icons/mocha/renovate.svg +6 -0
- package/public/catppuccin-icons/mocha/rescript.svg +6 -0
- package/public/catppuccin-icons/mocha/rmd.svg +4 -0
- package/public/catppuccin-icons/mocha/roblox.svg +3 -0
- package/public/catppuccin-icons/mocha/robots.svg +6 -0
- package/public/catppuccin-icons/mocha/rocket.svg +3 -0
- package/public/catppuccin-icons/mocha/rojo.svg +3 -0
- package/public/catppuccin-icons/mocha/rokit.svg +4 -0
- package/public/catppuccin-icons/mocha/rollup.svg +6 -0
- package/public/catppuccin-icons/mocha/rproj.svg +5 -0
- package/public/catppuccin-icons/mocha/rsml.svg +10 -0
- package/public/catppuccin-icons/mocha/ruby-gem-lock.svg +7 -0
- package/public/catppuccin-icons/mocha/ruby-gem.svg +6 -0
- package/public/catppuccin-icons/mocha/ruby.svg +3 -0
- package/public/catppuccin-icons/mocha/ruff.svg +3 -0
- package/public/catppuccin-icons/mocha/rust-alt-config.svg +4 -0
- package/public/catppuccin-icons/mocha/rust-alt.svg +3 -0
- package/public/catppuccin-icons/mocha/rust-config.svg +7 -0
- package/public/catppuccin-icons/mocha/rust.svg +6 -0
- package/public/catppuccin-icons/mocha/salesforce.svg +3 -0
- package/public/catppuccin-icons/mocha/sass.svg +3 -0
- package/public/catppuccin-icons/mocha/scala.svg +3 -0
- package/public/catppuccin-icons/mocha/scheme.svg +3 -0
- package/public/catppuccin-icons/mocha/search.svg +3 -0
- package/public/catppuccin-icons/mocha/security.svg +4 -0
- package/public/catppuccin-icons/mocha/semantic-release.svg +3 -0
- package/public/catppuccin-icons/mocha/semgrep-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/semgrep.svg +3 -0
- package/public/catppuccin-icons/mocha/sentry.svg +3 -0
- package/public/catppuccin-icons/mocha/serverless.svg +3 -0
- package/public/catppuccin-icons/mocha/shader.svg +3 -0
- package/public/catppuccin-icons/mocha/sketch.svg +3 -0
- package/public/catppuccin-icons/mocha/slidesk.svg +7 -0
- package/public/catppuccin-icons/mocha/snowpack.svg +6 -0
- package/public/catppuccin-icons/mocha/solid.svg +5 -0
- package/public/catppuccin-icons/mocha/solidity.svg +3 -0
- package/public/catppuccin-icons/mocha/sonar-cloud.svg +7 -0
- package/public/catppuccin-icons/mocha/spwn.svg +7 -0
- package/public/catppuccin-icons/mocha/squirrel.svg +4 -0
- package/public/catppuccin-icons/mocha/stackblitz.svg +3 -0
- package/public/catppuccin-icons/mocha/stata.svg +4 -0
- package/public/catppuccin-icons/mocha/stencil.svg +3 -0
- package/public/catppuccin-icons/mocha/stitches.svg +7 -0
- package/public/catppuccin-icons/mocha/storybook-svelte.svg +6 -0
- package/public/catppuccin-icons/mocha/storybook-vue.svg +6 -0
- package/public/catppuccin-icons/mocha/storybook.svg +6 -0
- package/public/catppuccin-icons/mocha/stylelint-ignore.svg +7 -0
- package/public/catppuccin-icons/mocha/stylelint.svg +7 -0
- package/public/catppuccin-icons/mocha/stylua-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/stylua.svg +7 -0
- package/public/catppuccin-icons/mocha/sublime.svg +3 -0
- package/public/catppuccin-icons/mocha/super-collider.svg +3 -0
- package/public/catppuccin-icons/mocha/svelte-config.svg +6 -0
- package/public/catppuccin-icons/mocha/svelte.svg +6 -0
- package/public/catppuccin-icons/mocha/svg.svg +3 -0
- package/public/catppuccin-icons/mocha/swift.svg +3 -0
- package/public/catppuccin-icons/mocha/swiftformat.svg +4 -0
- package/public/catppuccin-icons/mocha/symlink.svg +5 -0
- package/public/catppuccin-icons/mocha/tailwind.svg +3 -0
- package/public/catppuccin-icons/mocha/taskfile.svg +3 -0
- package/public/catppuccin-icons/mocha/tauri-ignore.svg +6 -0
- package/public/catppuccin-icons/mocha/tauri.svg +8 -0
- package/public/catppuccin-icons/mocha/terraform.svg +3 -0
- package/public/catppuccin-icons/mocha/text.svg +6 -0
- package/public/catppuccin-icons/mocha/todo.svg +6 -0
- package/public/catppuccin-icons/mocha/toml.svg +3 -0
- package/public/catppuccin-icons/mocha/turbo.svg +10 -0
- package/public/catppuccin-icons/mocha/twig.svg +4 -0
- package/public/catppuccin-icons/mocha/twine.svg +6 -0
- package/public/catppuccin-icons/mocha/typescript-config.svg +7 -0
- package/public/catppuccin-icons/mocha/typescript-def.svg +7 -0
- package/public/catppuccin-icons/mocha/typescript-react.svg +8 -0
- package/public/catppuccin-icons/mocha/typescript-test.svg +3 -0
- package/public/catppuccin-icons/mocha/typescript.svg +6 -0
- package/public/catppuccin-icons/mocha/typst.svg +3 -0
- package/public/catppuccin-icons/mocha/unity.svg +3 -0
- package/public/catppuccin-icons/mocha/unocss.svg +6 -0
- package/public/catppuccin-icons/mocha/url.svg +3 -0
- package/public/catppuccin-icons/mocha/uv.svg +3 -0
- package/public/catppuccin-icons/mocha/v.svg +6 -0
- package/public/catppuccin-icons/mocha/vala.svg +3 -0
- package/public/catppuccin-icons/mocha/vanilla-extract.svg +4 -0
- package/public/catppuccin-icons/mocha/vapi.svg +3 -0
- package/public/catppuccin-icons/mocha/vento.svg +5 -0
- package/public/catppuccin-icons/mocha/vercel-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/vercel.svg +3 -0
- package/public/catppuccin-icons/mocha/verilog.svg +6 -0
- package/public/catppuccin-icons/mocha/vhs.svg +3 -0
- package/public/catppuccin-icons/mocha/video.svg +6 -0
- package/public/catppuccin-icons/mocha/vim.svg +3 -0
- package/public/catppuccin-icons/mocha/visual-studio.svg +3 -0
- package/public/catppuccin-icons/mocha/vital.svg +6 -0
- package/public/catppuccin-icons/mocha/vite.svg +6 -0
- package/public/catppuccin-icons/mocha/vitest.svg +6 -0
- package/public/catppuccin-icons/mocha/vs-codium.svg +8 -0
- package/public/catppuccin-icons/mocha/vscode-ignore.svg +3 -0
- package/public/catppuccin-icons/mocha/vscode.svg +3 -0
- package/public/catppuccin-icons/mocha/vue-config.svg +6 -0
- package/public/catppuccin-icons/mocha/vue.svg +6 -0
- package/public/catppuccin-icons/mocha/wally.svg +27 -0
- package/public/catppuccin-icons/mocha/web-assembly.svg +7 -0
- package/public/catppuccin-icons/mocha/webpack.svg +7 -0
- package/public/catppuccin-icons/mocha/windi.svg +3 -0
- package/public/catppuccin-icons/mocha/workflow.svg +3 -0
- package/public/catppuccin-icons/mocha/wrangler.svg +4 -0
- package/public/catppuccin-icons/mocha/wxt.svg +3 -0
- package/public/catppuccin-icons/mocha/xaml.svg +8 -0
- package/public/catppuccin-icons/mocha/xcode.svg +7 -0
- package/public/catppuccin-icons/mocha/xmake.svg +7 -0
- package/public/catppuccin-icons/mocha/xml.svg +3 -0
- package/public/catppuccin-icons/mocha/yaml.svg +3 -0
- package/public/catppuccin-icons/mocha/yarn-lock.svg +7 -0
- package/public/catppuccin-icons/mocha/yarn.svg +6 -0
- package/public/catppuccin-icons/mocha/zap.svg +3 -0
- package/public/catppuccin-icons/mocha/zig.svg +3 -0
- package/public/catppuccin-icons/mocha/zip.svg +3 -0
- package/public/favicon.svg +7 -0
- package/public/gruvbox-dark.json +91 -0
- package/public/icon.ico +0 -0
- package/public/icon.png +0 -0
- package/public/icon.svg +1 -0
- package/public/pi-original.svg +1 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{14755:(e,t,r)=>{"use strict";r.d(t,{getPresetFromTools:()=>l,xG:()=>a});let o=[],n=["read","bash","edit","write"],s=["bash","read","edit","write","grep","find","ls"],i=new Set(s);function l(e){let t=e.filter(e=>e.active);if(0===t.length)return"none";let r=t.map(e=>e.name).filter(e=>i.has(e)).sort().join(",");return r===[...n].sort().join(",")?"default":r===[...s].sort().join(",")?"full":"default"}function a(e){return"none"===e?[...o]:"full"===e?[...s]:[...n]}},39247:(e,t,r)=>{"use strict";r.d(t,{I18nProvider:()=>c,s:()=>p});var o=r(95155),n=r(12115);let s=new Map;function i(e){if(!e.id.trim())throw Error("Locale id must not be empty");if(s.has(e.id))throw Error(`Locale already registered: ${e.id}`);s.set(e.id,e)}function l(e){return s.get(e)}i({id:"en",label:"English",messages:{"i18n.close":"Close","i18n.cancel":"Cancel","i18n.checking":"Checking…","desktop.settings":"Settings","desktop.settingsSections":"Settings sections","desktop.closeSettings":"Close settings","desktop.display":"Display","desktop.chat":"Chat","desktop.models":"Models","desktop.skills":"Skills","desktop.plugins":"Plugins","desktop.inputShortcut":"Input shortcut","desktop.inputShortcutDescription":"Choose how to send messages with the Enter key.","desktop.useCtrlEnter":"Ctrl+Enter to send","desktop.useCtrlEnterDescription":"Enter inserts a newline, Ctrl+Enter sends the message.","desktop.useEnter":"Enter to send","desktop.useEnterDescription":"Enter sends the message, Shift+Enter inserts a newline.","desktop.theme":"Theme","desktop.themes":"Themes","desktop.language":"Language","desktop.light":"Light","desktop.dark":"Dark","desktop.system":"System","desktop.english":"English","desktop.chinese":"简体中文","desktop.themeDescription":"Choose the appearance of Pi Web.","desktop.languageDescription":"Choose the display language for the interface.","desktop.colorScheme":"Color Scheme","desktop.openThemeFolder":"Open Pi theme folder","desktop.learnPiThemes":"Learn about Pi themes","desktop.defaultTheme":"Default","desktop.appearanceMode":"Appearance Mode","desktop.loadingThemes":"Loading themes…","desktop.borderVisibility":"Border Visibility","desktop.borderSubtle":"Subtle","desktop.borderBold":"Bold","desktop.noCustomThemes":"No custom themes installed.","desktop.noCustomThemesHint":"Add JSON files to","desktop.noCustomThemesHint2":"to see them here.","desktop.darkVariant":"Dark variant available","desktop.lightVariant":"Light variant available","desktop.switchToLight":"Switch to light mode","desktop.switchToDark":"Switch to dark mode","desktop.showSidebar":"Show sidebar","desktop.hideSidebar":"Hide sidebar","desktop.resizeSidebar":"Resize sidebar","desktop.resizeFilePanel":"Resize file panel","desktop.trustProject":"Trust project","desktop.trustingProject":"Trusting…","desktop.projectResourcesRestricted":"Project resources are restricted","desktop.projectSkillsRestricted":"Project skills are unavailable until you trust this project.","desktop.projectSkillInstallUnavailable":"Trust this project before installing project skills.","desktop.shellCommand":"Shell command","desktop.shellOutputLocal":"output stays local","desktop.shellOutputModel":"output is available to the model","desktop.runningShellCommand":"Running shell command…","desktop.loadFullOutput":"Load full output","desktop.download":"Download","desktop.trustProjectTitle":"Trust this project?","desktop.trustProjectBody":"Project extensions, skills, prompts, and package resources can execute code. Trust this project only if you recognize its contents.","desktop.minimize":"Minimize","desktop.maximize":"Maximize","desktop.restore":"Restore","desktop.close":"Close","desktop.viewFullHistory":"View full history","desktop.fullHistoryAvailableAfterSave":"Full history is available after the session is saved","desktop.systemPrompt":"System prompt","desktop.sessionInfo":"Session info","desktop.hideFilePanel":"Hide file panel","desktop.showFilePanel":"Show file panel","desktop.sessionInfoTitle":"Session Info","desktop.sessionInfoFile":"File","desktop.sessionInfoId":"ID","desktop.sessionInfoInMemory":"In-memory","desktop.sessionInfoMessages":"Messages","desktop.sessionInfoTokens":"Tokens","desktop.sessionInfoUser":"User","desktop.sessionInfoAssistant":"Assistant","desktop.sessionInfoToolCalls":"Tool Calls","desktop.sessionInfoToolResults":"Tool Results","desktop.sessionInfoTotal":"Total","desktop.sessionInfoInput":"Input","desktop.sessionInfoOutput":"Output","desktop.sessionInfoCacheRead":"Cache Read","desktop.sessionInfoCacheWrite":"Cache Write","desktop.sessionInfoCost":"Cost","desktop.sessionInfoContext":"Context","desktop.copyFilePath":"Copy file path","desktop.copySessionId":"Copy session ID","desktop.sendMessageForSessionInfo":"Send a message or run /session to load session info","desktop.selectSessionFromSidebar":"Select a session from the sidebar","desktop.getStarted":"Get Started","desktop.selectProjectDirectory":"Select a project directory from the sidebar","desktop.addModelsFromBottom":"Add models via the Models button at the bottom","desktop.loadingSession":"Loading session...","desktop.scrollToLoadEarlierMessages":"Scroll up to load earlier messages ({count} hidden)","desktop.runningTool":"Running tool...","desktop.runningTools":"Running {tools}...","desktop.waitingForModel":"Waiting for model...","desktop.runningCommand":"Running command...","desktop.thinking":"Thinking...","desktop.extensionRequest":"extension request","desktop.extensionPanel":"Extension panel","desktop.cancel":"Cancel","desktop.confirm":"Confirm","desktop.submit":"Submit","desktop.queued":"Queued","desktop.queueMoveUp":"Move up","desktop.queueMoveDown":"Move down","desktop.queueRecallOne":"Recall to input","desktop.queueRemove":"Remove queued message","desktop.recalledEditing":"Editing a queued message. Sending puts it back at its original position.","desktop.steer":"Steer","desktop.followUp":"Follow-up","desktop.recallToInput":"Recall to input","desktop.recallQueuedMessages":"Remove all queued messages and put them back into the input box for editing","desktop.retrying":"Retrying","desktop.compacted":"Compacted","desktop.tokens":"tokens","desktop.saved":"saved","desktop.removeImage":"Remove image","desktop.loadingCommands":"Loading commands...","desktop.slashCommands":"Slash commands","desktop.tabOrEnter":"Tab / Enter","desktop.noSlashCommands":"No extension, prompt, or skill commands found","desktop.builtIn":"Built-in","desktop.extensions":"Extensions","desktop.prompts":"Prompts","desktop.commandSkills":"Skills","desktop.match":"match","desktop.matches":"matches","desktop.command":"command","desktop.commands":"commands","desktop.loadingFiles":"Loading files...","desktop.files":"Files","desktop.searchingAllFiles":"searching all files...","desktop.indexTruncated":"index truncated","desktop.searching":"Searching...","desktop.search":"Search","desktop.noMatchingFiles":"No matching files","desktop.steerOrQueueFollowUp":"Steer now / queue follow-up...","desktop.agentRunning":"Agent is running...","desktop.messageWithCommands":"Message... Type / for commands, @ for files","desktop.inputHistory":"Input history","desktop.quickChanges":"Quick Changes","desktop.changedFiles":"{count} changed files","desktop.imageAttachmentsCannotQueue":"Image attachments cannot be queued while the agent is running","desktop.injectMessageNow":"Interrupt the current run and inject this message now","desktop.queueMessageAfterFinish":"Queue this message after the agent finishes","desktop.attachImage":"Attach image","desktop.disableCompletionSound":"Disable completion sound","desktop.enableCompletionSound":"Enable completion sound","desktop.soundLabelOn":"Sound: On","desktop.soundLabelOff":"Sound: Off","desktop.changeReasoningLevel":"Change reasoning level: {level}","desktop.reasoningLevel":"Change reasoning level","desktop.moreControls":"More controls","desktop.more":"More","desktop.stopCompaction":"Stop compaction","desktop.compactContext":"Compact context","desktop.compacting":"Compacting...","desktop.compact":"Compact","desktop.changeToolPreset":"Change tool preset: {preset}","desktop.toolPreset":"Change tool preset","desktop.sendMessage":"Send message","desktop.stopAgent":"Stop agent","desktop.stop":"Stop","desktop.collapseControls":"Collapse controls","desktop.usePiDefault":"Use pi default","desktop.reasoningOff":"Reasoning off","desktop.minimalReasoning":"Minimal reasoning","desktop.lowReasoning":"Low reasoning","desktop.mediumReasoning":"Medium reasoning","desktop.highReasoning":"High reasoning","desktop.extraHighReasoning":"Extra-high reasoning","desktop.maxReasoning":"Max reasoning","desktop.noToolsReadOnly":"No tools, read-only","desktop.fourBuiltInTools":"4 built-in tools","desktop.allBuiltInTools":"All built-in tools","desktop.toolOff":"off","desktop.toolDefault":"default","desktop.toolFull":"full","desktop.thinkingAuto":"auto","desktop.thinkingOff":"off","desktop.thinkingMinimal":"minimal","desktop.thinkingLow":"low","desktop.thinkingMedium":"medium","desktop.thinkingHigh":"high","desktop.thinkingExtraHigh":"xhigh","desktop.thinkingMax":"max","desktop.compactCommandDescription":"Compress context, optionally with instructions","desktop.reloadCommandDescription":"Reload extensions, skills, prompts, and tools","desktop.nameCommandDescription":"Set the session display name","desktop.sessionCommandDescription":"Show session message, token, and cost stats","desktop.copyCommandDescription":"Copy the last assistant message","desktop.selectProject":"Select project","desktop.selectProjectFirst":"Select a project first","desktop.noMatchingProjects":"No matching projects","desktop.noProjectsYet":"No projects yet","desktop.useDefaultDirectory":"Use default directory","desktop.customPath":"Custom path…","desktop.projectPathPlaceholder":"/path/to/project","desktop.filterProjects":"Filter projects…","desktop.searchProjects":"Search projects…","desktop.recentProjects":"Recent Projects","desktop.quickWorkspace":"Quick workspace","desktop.selectFolder":"Select folder","desktop.checking":"Checking…","desktop.open":"Open","directoryPicker.selectDirectory":"Select directory","directoryPicker.goToParent":"Go to parent directory","directoryPicker.loadingDirectories":"Loading directories…","directoryPicker.noSubdirectories":"No subdirectories","directoryPicker.selectCurrentDirectory":"Select current directory","directoryPicker.selectThisFolder":"Select this folder","directoryPicker.noDrives":"No drives found","desktop.switchWorktree":"Switch worktree","desktop.switchWorktreeWithPath":"Switch worktree: {path}","desktop.openRepoRoot":"Open repo root","desktop.openRepoRootDescription":"Open the repository root to manage worktrees.","desktop.gitRepoRootOnly":"Git repo root only","desktop.gitRepoRootOnlyDescription":"Worktrees are available in Git repository roots.","desktop.checkingWorktrees":"Checking worktrees for this directory.","desktop.worktreesLoading":"Worktrees...","desktop.createWorktree":"Create a worktree checkout for a branch","desktop.newWorktree":"New worktree…","desktop.branchName":"branch name","desktop.creating":"Creating…","desktop.create":"Create","desktop.main":"main","desktop.removeWorktree":"Remove worktree checkout {path}; the branch is kept","desktop.uncommittedChanges":"Uncommitted changes. Force remove checkout?","desktop.force":"Force","desktop.sessions":"Sessions","desktop.newSession":"New","desktop.newSessionIn":"New session in {cwd}","desktop.refresh":"Refresh","desktop.loading":"Loading...","desktop.noSessionsFound":"No sessions found","desktop.explorer":"Explorer","desktop.uploadFiles":"Upload files","desktop.uploadFilesToProjectRoot":"Upload files to project root","desktop.refreshExplorer":"Refresh explorer","desktop.agentRunningLabel":"Agent running","desktop.newActivity":"New activity","desktop.newSessionActivity":"New session activity","desktop.deleteSession":"Delete {title}?","desktop.delete":"Delete","desktop.deleteWithShift":"Delete (Shift-click to skip confirmation)","desktop.openingWorkspace":"Opening workspace…","desktop.unableToOpenWorkspace":"Unable to open this workspace","desktop.rename":"Rename","desktop.generateTitle":"Generate title","desktop.generatingTitle":"Generating title...","desktop.titleNeedsMessages":"No messages to generate a title from","desktop.expandForks":"Expand forks","desktop.collapseForks":"Collapse forks","desktop.messagesCount":"{count} msgs","desktop.worktree":"Worktree: {cwd}","desktop.justNow":"just now","desktop.minutesAgo":"{count}m ago","desktop.hoursAgo":"{count}h ago","desktop.daysAgo":"{count}d ago","desktop.closeTab":"Close","desktop.closeTabWithLabel":"Close {label}","desktop.modelsHideApiKey":"Hide API key","desktop.modelsShowApiKey":"Show API key","desktop.modelsInheritNone":"— inherit / none —","desktop.modelsProvider":"Provider","desktop.modelsProviderName":"Provider name","desktop.modelsBaseUrl":"Base URL","desktop.modelsApiKey":"API Key","desktop.modelsApiKeyHelp":"Prefix with ! to run a shell command, or use an env var name","desktop.modelsApiKeyPlaceholder":"ENV_VAR_NAME, !shell-command, or literal key","desktop.modelsApi":"API","desktop.modelsDefault":"Default","desktop.modelsDisabled":"Disabled","desktop.modelsCustom":"Custom","desktop.modelsModelSection":"Model","desktop.modelsTestingConnection":"Testing model connection...","desktop.modelsConnected":"Connected","desktop.modelsFailed":"Failed","desktop.modelsTestConnection":"Test model connection","desktop.modelsTesting":"Testing…","desktop.modelsTest":"Test","desktop.modelsOk":"OK","desktop.modelsRemove":"Remove","desktop.modelsIdRequired":"ID *","desktop.modelsName":"Name","desktop.modelsDisplayName":"Display name","desktop.modelsApiOverride":"API override","desktop.modelsReasoningThinking":"Reasoning / thinking","desktop.modelsImageInput":"Image input","desktop.modelsDeepSeekCompat":"DeepSeek thinking compat","desktop.modelsThinkingLevelMap":"Thinking level map","desktop.modelsClearAll":"clear all","desktop.modelsDiscoveryFetching":"Importing models…","desktop.modelsDiscoveryFetch":"Import models…","desktop.modelsDiscoveryFilterPlaceholder":"Filter {count} models…","desktop.modelsDiscoveryFilter":"Filter upstream models","desktop.modelsDiscoverySelectShown":"Select shown","desktop.modelsDiscoveryNoMatches":"No matching models.","desktop.modelsDiscoveryAdded":"added","desktop.modelsDiscoveryShowing":"Showing first {shown} of {total}","desktop.modelsDiscoveryFetched":"{count} models fetched","desktop.modelsDiscoveryAddSelected":"Add selected","desktop.modelsDiscoveryAddSelectedCount":"Add selected ({count})","desktop.modelsCatalogSource":"source: models.dev ↗","desktop.modelsCatalogFilling":"Filling details…","desktop.modelsCatalogFill":"Fill model details","desktop.modelsCatalogFilled":"{count} fields filled","desktop.modelsCatalogNoEmptyFields":"No empty fields to fill","desktop.modelsCatalogNoExactMatch":"No exact models.dev match","desktop.modelsCatalogPriceProvider":"Price matched Provider {provider}","desktop.modelsCatalogPriceBaseUrl":"Price matched Base URL to {provider}","desktop.modelsCatalogPriceConsensus":"Price agreed by {support}/{total} records","desktop.modelsCatalogPriceUnreliable":"No reliable price found","desktop.modelsCatalogUndo":"Undo","desktop.modelsContextWindow":"Context window (tokens)","desktop.modelsMaxOutputTokens":"Max output tokens","desktop.modelsCostPerMillionTokens":"Cost (per million tokens)","desktop.modelsSubscription":"Subscription","desktop.modelsNotConnected":"not connected","desktop.modelsAlreadyConnected":"Already connected. You can re-login or disconnect.","desktop.modelsConnectAccount":"Connect your {provider} account.","desktop.modelsOpeningBrowser":"Opening browser…","desktop.modelsCompleteSignIn":"Complete sign-in in the browser, then copy the redirect URL from the address bar and paste it below.","desktop.modelsBrowserDidNotOpen":"If the browser window did not open,","desktop.modelsOpenLoginPage":"click here to open the login page","desktop.modelsEnterValue":"Enter value…","desktop.modelsOpenVerificationPage":"Open the verification page and enter this code:","desktop.modelsExpiresInMinutes":"Expires in {count} minutes.","desktop.modelsConnectedSuccessfully":"Connected successfully.","desktop.modelsReLogin":"Re-login","desktop.modelsLogin":"Login","desktop.modelsDisconnect":"Disconnect","desktop.modelsConnectionLost":"Connection lost","desktop.modelsAuthenticationStateChanged":"Authentication state changed. Please refresh and try again.","desktop.modelsVerifying":"Verifying…","desktop.modelsContinuing":"Continuing…","desktop.modelsServerError":"Server error {status}","desktop.modelsNetworkError":"Network error","desktop.modelsConfigured":"configured","desktop.modelsNotConfigured":"not configured","desktop.modelsApiKeyStored":"API key is stored. Enter a new key below to replace it, or disconnect to remove it.","desktop.modelsEnableModels":"Enter your {provider} API key to enable {count} {models}.","desktop.modelsSingular":"model","desktop.modelsPlural":"models","desktop.modelsEnterNewKey":"Enter new key to replace…","desktop.modelsSaving":"Saving…","desktop.modelsSaved":"Saved","desktop.modelsRemoving":"Removing…","desktop.modelsSearchProviders":"Search providers…","desktop.modelsNoProvidersMatch":"No providers match","desktop.modelsCompatibleProvider":"OpenAI / Anthropic compatible","desktop.modelsCustomEndpointFormat":"Custom endpoint format","desktop.modelsSubscriptions":"Subscriptions","desktop.modelsCount":"{count} models","desktop.modelsLoading":"Loading…","desktop.modelsNewModel":"new model","desktop.modelsAddModel":"+ model","desktop.modelsAddProvider":"+ Add provider","desktop.modelsSelectProviderOrModel":"Select a provider or model","desktop.modelsClose":"Close models","desktop.modelsSave":"Save","desktop.searchModels":"Search models…","desktop.noModelsMatch":"No matching models","desktop.global":"global","desktop.project":"project","desktop.path":"path","desktop.addPlugin":"Add plugin","desktop.addPluginTitle":"Add Plugin","desktop.pluginSource":"Source","desktop.install":"Install","desktop.installing":"Installing...","desktop.examples":"Examples","desktop.disabled":"Disabled","desktop.filtered":"filtered","desktop.noResources":"No resources","desktop.packageDisabled":"Package disabled","desktop.noResolvedResources":"No resolved resources","desktop.unknown":"Unknown","desktop.installedVersion":"installed {version}","desktop.configuredVersion":"configured {version}","desktop.enablePackage":"Enable package","desktop.disablePackage":"Disable package","desktop.update":"Update","desktop.updating":"Updating...","desktop.reloadSession":"Reload session","desktop.reloading":"Reloading...","desktop.reloadCurrentSession":"Reload current session","desktop.openSessionToReload":"Open a session to reload","desktop.remove":"Remove","desktop.removing":"Removing...","desktop.status":"Status","desktop.version":"Version","desktop.package":"Package","desktop.resources":"Resources","desktop.installedPath":"Installed path","desktop.notFound":"Not found","desktop.cwd":"Cwd","desktop.resolvedResources":"Resolved Resources","desktop.packageRemoved":"Package removed.","desktop.packageInstalled":"Package installed.","desktop.packageUpdated":"Package updated.","desktop.packageDisabledMessage":"Package disabled.","desktop.packageEnabled":"Package enabled.","desktop.sessionReloaded":"Session reloaded.","desktop.noPluginsConfigured":"No plugins configured","desktop.selectPackage":"Select a package","desktop.diagnosticsCount":"{count} diagnostic{suffix}","desktop.pluginResourceTotals":"{extensions} ext \xb7 {skills} skills \xb7 {prompts} prompts \xb7 {themes} themes","desktop.extensionsCount":"{count} ext","desktop.skillsCount":"{count} skills","desktop.promptsCount":"{count} prompts","desktop.themesCount":"{count} themes","desktop.addSkill":"Add skill","desktop.addSkillTitle":"Add Skill","desktop.skillSearchPlaceholder":"e.g. react, testing, deploy","desktop.noSkillsFound":"No skills found","desktop.skillSearchHint":"Search skills.sh to discover and install skills for your agent.","desktop.visibleInModelPrompt":"Visible in model prompt — click to disable","desktop.hiddenFromModelPrompt":"Hidden from model prompt — click to enable","desktop.dormant":"Dormant","desktop.hiddenButInvocable":"Hidden from the model, still manually invocable","desktop.check":"Check","desktop.upToDate":"Up to date","desktop.automaticChecksUnavailable":"Automatic checks unavailable","desktop.checkFailed":"Check failed","desktop.name":"Name","desktop.description":"Description","desktop.selectSkill":"Select a skill","desktop.checkUpdates":"Check updates","desktop.updateAvailable":"Update available","desktop.installed":"Installed","desktop.updatesCount":"{count} update{suffix}","desktop.downloadFile":"Download file","desktop.loadingFile":"Loading...","desktop.noChanges":"No changes","desktop.unchangedLines":"... {count} unchanged lines ...","desktop.lines":"{count} lines","desktop.mentionFile":"Mention file","desktop.mentionSelectedLines":"Mention selected lines {start}-{end}","desktop.source":"Source","desktop.diff":"Diff","desktop.enableWordWrap":"Enable word wrap","desktop.disableWordWrap":"Disable word wrap","desktop.wrap":"wrap","desktop.code":"Code","desktop.preview":"Preview","desktop.raw":"Raw","desktop.htmlPreview":"HTML preview","desktop.image":"image","desktop.audio":"audio","desktop.docxPreview":"docx preview","desktop.failedToLoadImage":"Failed to load image","desktop.failedToLoadAudio":"Failed to load audio","desktop.docxTooLargeForPreview":"DOCX too large for preview (>10MB)","desktop.previewFile":"Preview {file}","desktop.branches":"Branches","desktop.noActiveSession":"No active session","desktop.sessionHasNoBranches":"This session has no branches","desktop.copyMessage":"Copy message","desktop.editFromHere":"Edit from here — branches within this session","desktop.creatingNewSession":"Creating new session…","desktop.newSessionFromHere":"New session — creates an independent copy from here","desktop.estimatedStreamingTokenCount":"Estimated token count while streaming","desktop.tokensPerSecond":"{count} t/s","desktop.thinkingContentUnavailable":"Thinking content unavailable","desktop.loadingThinking":"Loading thinking...","desktop.conversationCompacted":"Conversation compacted","desktop.compactionSummaryDescription":"The conversation history before this point was compacted into the following summary:","desktop.noSummary":"(no summary)","desktop.fileContext":"File context: {context}","desktop.readFilesCount":"{count} read","desktop.modifiedFilesCount":"{count} modified","desktop.modifiedFiles":"Modified files","desktop.readFiles":"Read files","desktop.hiddenExtensionMessage":"hidden extension message","desktop.noMessage":"(no message)","desktop.showExtensionMessage":"Show extension message","desktop.copied":"Copied","desktop.copy":"Copy","desktop.collapse":"Collapse","desktop.expand":"Expand","desktop.hideDetails":"Hide details","desktop.showDetails":"Show details","desktop.before":"Before","desktop.after":"After","desktop.noOutput":"(no output)","desktop.extension":"extension","desktop.assistant":"assistant","desktop.favorites":"Favorites","desktop.favorite":"Favorite","desktop.unfavorite":"Unfavorite","desktop.processStepThinking":"Thinking","desktop.processStepFileRead":"Read","desktop.processStepFileCreate":"Create","desktop.processStepFileEdit":"Edit","desktop.processStepFileDelete":"Delete","desktop.processStepSearch":"Search","desktop.processStepFind":"Find","desktop.processStepList":"List","desktop.processStepRead":"Read","desktop.processStepFetch":"Fetch","desktop.processStepDelete":"Delete","desktop.processStepCopy":"Copy","desktop.processStepCommand":"Run","desktop.processStepTool":"Tool","desktop.processStepTodo":"Todo","desktop.processStepArtifact":"Artifact","desktop.processStepCompaction":"Compaction","desktop.processStepError":"Error","desktop.processWorking":"Working...","desktop.processUsed":"Used {summary}","desktop.processToolCount":"{count} tool","desktop.processToolsCount":"{count} tools","desktop.processFailedCount":" ({failed} failed)","desktop.processThoughtCount":"{count} thought","desktop.processThoughtsCount":"{count} thoughts","desktop.processThoughtDone":"Thought {duration}s","desktop.processThoughtDoneNoDuration":"Thought","desktop.processCustomCount":"{count} event","desktop.processCustomsCount":"{count} events","desktop.processCompleted":"Process complete","desktop.processOutput":"Process output","desktop.processTabMode":"Tab mode","desktop.processTimelineMode":"Timeline mode","desktop.processFailedStep":"failed","desktop.markdownPreviewAvailableAfterStreaming":"Preview available after streaming","desktop.markdownPreviewMermaidDiagram":"Preview Mermaid diagram","desktop.markdownInvalidMermaidDiagram":"Invalid Mermaid diagram","desktop.markdownRenderingMermaidDiagram":"Rendering Mermaid diagram","desktop.openMermaidViewer":"Open Mermaid viewer","desktop.mermaidDiagram":"Mermaid diagram","desktop.mermaidViewer":"Mermaid diagram viewer","desktop.zoomPanHint":"Drag to pan \xb7 Scroll to zoom","desktop.selectText":"Select text","desktop.zoomOut":"Zoom out","desktop.resetZoom":"Reset to 100% (fit)","desktop.zoomIn":"Zoom in","desktop.fitToViewport":"Fit to viewport","desktop.quoteReply":"Quote reply","desktop.quoteReplyHint":"Click to quote reply","desktop.openFile":"Open","desktop.queueRecoveryTitle":"Recover queued messages","desktop.queueImportTitle":"Imported queued messages","desktop.queueRecoveryDescription":"These messages were saved before the previous server session ended. Choose what to re-queue; nothing is sent automatically.","desktop.queueImportDescription":"Choose which imported messages to re-queue. Nothing is sent automatically.","desktop.selectAll":"Select all","desktop.selectNone":"Select none","desktop.import":"Import","desktop.queueImages":"Image attachment","desktop.queueNoText":"(image-only message)","desktop.queueExported":"Exported {count} message(s)","desktop.queueImportEmpty":"No valid queued messages found","desktop.queueImported":"Imported {count} message(s) for review","desktop.dismiss":"Dismiss","desktop.discard":"Discard","desktop.requeue":"Re-queue","desktop.requeueAndContinue":"Re-queue & continue","desktop.markdownPlainText":"text"}}),i({id:"zh-CN",label:"简体中文",messages:{"i18n.close":"关闭","i18n.cancel":"取消","i18n.checking":"正在检查…","desktop.settings":"设置","desktop.settingsSections":"设置分类","desktop.closeSettings":"关闭设置","desktop.display":"显示","desktop.chat":"聊天","desktop.models":"模型","desktop.skills":"技能","desktop.plugins":"插件","desktop.inputShortcut":"输入快捷键","desktop.inputShortcutDescription":"选择使用 Enter 键发送消息的方式。","desktop.useCtrlEnter":"使用 Ctrl+Enter 发送","desktop.useCtrlEnterDescription":"Enter 用于换行,Ctrl+Enter 发送消息。","desktop.useEnter":"使用 Enter 发送","desktop.useEnterDescription":"Enter 发送消息,Shift+Enter 用于换行。","desktop.theme":"主题","desktop.themes":"主题","desktop.language":"语言","desktop.light":"浅色","desktop.dark":"深色","desktop.system":"跟随系统","desktop.english":"English","desktop.chinese":"简体中文","desktop.themeDescription":"选择 Pi Web 的外观。","desktop.languageDescription":"选择界面的显示语言。","desktop.colorScheme":"配色方案","desktop.openThemeFolder":"打开本地 Pi theme 文件夹","desktop.learnPiThemes":"了解 Pi theme","desktop.defaultTheme":"默认","desktop.appearanceMode":"外观模式","desktop.loadingThemes":"加载主题中…","desktop.borderVisibility":"边框可见度","desktop.borderSubtle":"浅淡","desktop.borderBold":"浓重","desktop.noCustomThemes":"未安装自定义主题。","desktop.noCustomThemesHint":"将 JSON 文件放入","desktop.noCustomThemesHint2":"即可在此处看到。","desktop.darkVariant":"深色变体可用","desktop.lightVariant":"浅色变体可用","desktop.switchToLight":"切换至浅色模式","desktop.switchToDark":"切换至深色模式","desktop.showSidebar":"显示侧边栏","desktop.hideSidebar":"隐藏侧边栏","desktop.resizeSidebar":"调整侧边栏宽度","desktop.resizeFilePanel":"调整文件面板宽度","desktop.trustProject":"信任项目","desktop.trustingProject":"正在信任…","desktop.projectResourcesRestricted":"项目资源已受限","desktop.projectSkillsRestricted":"信任此项目后才能使用项目技能。","desktop.projectSkillInstallUnavailable":"请先信任此项目,再安装项目技能。","desktop.shellCommand":"Shell 命令","desktop.shellOutputLocal":"输出仅保留在本地","desktop.shellOutputModel":"输出将提供给模型","desktop.runningShellCommand":"正在运行 Shell 命令…","desktop.loadFullOutput":"加载完整输出","desktop.download":"下载","desktop.trustProjectTitle":"信任此项目?","desktop.trustProjectBody":"项目扩展、技能、提示词和软件包资源可能执行代码。仅在确认项目内容可信时授予信任。","desktop.minimize":"最小化","desktop.maximize":"最大化","desktop.restore":"还原","desktop.close":"关闭","desktop.viewFullHistory":"查看完整历史","desktop.fullHistoryAvailableAfterSave":"保存会话后可查看完整历史","desktop.systemPrompt":"系统提示词","desktop.sessionInfo":"会话信息","desktop.hideFilePanel":"隐藏文件面板","desktop.showFilePanel":"显示文件面板","desktop.sessionInfoTitle":"会话信息","desktop.sessionInfoFile":"文件","desktop.sessionInfoId":"ID","desktop.sessionInfoInMemory":"内存中","desktop.sessionInfoMessages":"消息","desktop.sessionInfoTokens":"令牌","desktop.sessionInfoUser":"用户","desktop.sessionInfoAssistant":"助手","desktop.sessionInfoToolCalls":"工具调用","desktop.sessionInfoToolResults":"工具结果","desktop.sessionInfoTotal":"总计","desktop.sessionInfoInput":"输入","desktop.sessionInfoOutput":"输出","desktop.sessionInfoCacheRead":"缓存读取","desktop.sessionInfoCacheWrite":"缓存写入","desktop.sessionInfoCost":"费用","desktop.sessionInfoContext":"上下文","desktop.copyFilePath":"复制文件路径","desktop.copySessionId":"复制会话 ID","desktop.sendMessageForSessionInfo":"发送消息或运行 /session 以加载会话信息","desktop.selectSessionFromSidebar":"请从侧边栏选择会话","desktop.getStarted":"开始使用","desktop.selectProjectDirectory":"从侧边栏选择项目目录","desktop.addModelsFromBottom":"通过底部的“模型”按钮添加模型","desktop.loadingSession":"正在加载会话...","desktop.scrollToLoadEarlierMessages":"向上滚动以加载更早的消息(隐藏了 {count} 条)","desktop.runningTool":"正在运行工具...","desktop.runningTools":"正在运行 {tools}...","desktop.waitingForModel":"正在等待模型...","desktop.runningCommand":"正在运行命令...","desktop.thinking":"思考中...","desktop.extensionRequest":"扩展请求","desktop.extensionPanel":"扩展面板","desktop.cancel":"取消","desktop.confirm":"确认","desktop.submit":"提交","desktop.queued":"已排队","desktop.queueMoveUp":"上移","desktop.queueMoveDown":"下移","desktop.queueRecallOne":"取回到输入框","desktop.queueRemove":"移除排队消息","desktop.recalledEditing":"正在编辑一条已取回的排队消息;发送后会回到原来的队列位置。","desktop.steer":"引导","desktop.followUp":"后续消息","desktop.recallToInput":"恢复到输入框","desktop.recallQueuedMessages":"移除所有排队消息,并将其放回输入框以便编辑","desktop.retrying":"正在重试","desktop.compacted":"已压缩","desktop.tokens":"令牌","desktop.saved":"已节省","desktop.removeImage":"移除图片","desktop.loadingCommands":"正在加载命令...","desktop.slashCommands":"斜杠命令","desktop.tabOrEnter":"Tab / Enter","desktop.noSlashCommands":"未找到扩展、提示词或技能命令","desktop.builtIn":"内置","desktop.extensions":"扩展","desktop.prompts":"提示词","desktop.commandSkills":"技能","desktop.match":"个匹配项","desktop.matches":"个匹配项","desktop.command":"个命令","desktop.commands":"个命令","desktop.loadingFiles":"正在加载文件...","desktop.files":"文件","desktop.searchingAllFiles":"正在搜索所有文件...","desktop.indexTruncated":"索引已截断","desktop.searching":"正在搜索...","desktop.search":"搜索","desktop.noMatchingFiles":"没有匹配的文件","desktop.steerOrQueueFollowUp":"立即引导 / 排队后续消息...","desktop.agentRunning":"Agent 正在运行...","desktop.messageWithCommands":"输入消息... 输入 / 查看命令,@ 查看文件","desktop.inputHistory":"输入历史","desktop.quickChanges":"快速变更","desktop.changedFiles":"{count} 个变更文件","desktop.imageAttachmentsCannotQueue":"Agent 运行时无法将图片附件加入队列","desktop.injectMessageNow":"中断当前运行并立即注入此消息","desktop.queueMessageAfterFinish":"在 Agent 完成后将此消息加入队列","desktop.attachImage":"添加图片","desktop.disableCompletionSound":"关闭完成提示音","desktop.enableCompletionSound":"开启完成提示音","desktop.soundLabelOn":"提示音:开启","desktop.soundLabelOff":"提示音:关闭","desktop.changeReasoningLevel":"更改推理级别:{level}","desktop.reasoningLevel":"更改推理级别","desktop.moreControls":"更多控件","desktop.more":"更多","desktop.stopCompaction":"停止压缩","desktop.compactContext":"压缩上下文","desktop.compacting":"正在压缩...","desktop.compact":"压缩","desktop.changeToolPreset":"更改工具预设:{preset}","desktop.toolPreset":"更改工具预设","desktop.sendMessage":"发送消息","desktop.stopAgent":"停止 Agent","desktop.stop":"停止","desktop.collapseControls":"收起控件","desktop.usePiDefault":"使用 pi 默认设置","desktop.reasoningOff":"关闭推理","desktop.minimalReasoning":"最小推理","desktop.lowReasoning":"低推理","desktop.mediumReasoning":"中等推理","desktop.highReasoning":"高推理","desktop.extraHighReasoning":"超高推理","desktop.maxReasoning":"最高推理","desktop.noToolsReadOnly":"不使用工具,只读","desktop.fourBuiltInTools":"4 个内置工具","desktop.allBuiltInTools":"所有内置工具","desktop.toolOff":"关闭","desktop.toolDefault":"默认","desktop.toolFull":"完整","desktop.thinkingAuto":"自动","desktop.thinkingOff":"关闭","desktop.thinkingMinimal":"最小","desktop.thinkingLow":"低","desktop.thinkingMedium":"中等","desktop.thinkingHigh":"高","desktop.thinkingExtraHigh":"超高","desktop.thinkingMax":"最高","desktop.compactCommandDescription":"压缩上下文,可选择附加指令","desktop.reloadCommandDescription":"重新加载扩展、技能、提示词和工具","desktop.nameCommandDescription":"设置会话显示名称","desktop.sessionCommandDescription":"显示会话消息、令牌和费用统计","desktop.copyCommandDescription":"复制最后一条助手消息","desktop.selectProject":"选择项目","desktop.selectProjectFirst":"请先选择项目","desktop.noMatchingProjects":"没有匹配的项目","desktop.noProjectsYet":"尚无项目","desktop.useDefaultDirectory":"使用默认目录","desktop.customPath":"自定义路径…","desktop.projectPathPlaceholder":"/path/to/project","desktop.filterProjects":"筛选项目…","desktop.searchProjects":"搜索项目…","desktop.recentProjects":"最近项目","desktop.quickWorkspace":"快速工作区","desktop.selectFolder":"选择文件夹","desktop.checking":"正在检查…","desktop.open":"打开","directoryPicker.selectDirectory":"选择目录","directoryPicker.goToParent":"转到上级目录","directoryPicker.loadingDirectories":"正在加载目录…","directoryPicker.noSubdirectories":"没有子目录","directoryPicker.selectCurrentDirectory":"选择当前目录","directoryPicker.selectThisFolder":"选择此文件夹","directoryPicker.noDrives":"未找到盘符","desktop.switchWorktree":"切换工作树","desktop.switchWorktreeWithPath":"切换工作树:{path}","desktop.openRepoRoot":"打开仓库根目录","desktop.openRepoRootDescription":"打开仓库根目录以管理工作树。","desktop.gitRepoRootOnly":"仅 Git 仓库根目录","desktop.gitRepoRootOnlyDescription":"工作树仅在 Git 仓库根目录可用。","desktop.checkingWorktrees":"正在检查此目录的工作树。","desktop.worktreesLoading":"工作树…","desktop.createWorktree":"为分支创建工作树检出","desktop.newWorktree":"新建工作树…","desktop.branchName":"分支名称","desktop.creating":"正在创建…","desktop.create":"创建","desktop.main":"主工作树","desktop.removeWorktree":"移除工作树检出 {path};分支将保留","desktop.uncommittedChanges":"存在未提交的更改。要强制移除检出吗?","desktop.force":"强制移除","desktop.sessions":"会话","desktop.newSession":"新建","desktop.newSessionIn":"在 {cwd} 中新建会话","desktop.refresh":"刷新","desktop.loading":"正在加载…","desktop.noSessionsFound":"未找到会话","desktop.explorer":"资源管理器","desktop.uploadFiles":"上传文件","desktop.uploadFilesToProjectRoot":"上传文件到项目根目录","desktop.refreshExplorer":"刷新资源管理器","desktop.agentRunningLabel":"Agent 正在运行","desktop.newActivity":"有新动态","desktop.newSessionActivity":"会话有新动态","desktop.deleteSession":"删除“{title}”?","desktop.delete":"删除","desktop.deleteWithShift":"删除(按住 Shift 点击跳过确认)","desktop.openingWorkspace":"正在打开工作区…","desktop.unableToOpenWorkspace":"无法打开此工作区","desktop.rename":"重命名","desktop.generateTitle":"生成标题","desktop.generatingTitle":"正在生成标题…","desktop.titleNeedsMessages":"会话暂无消息,无法生成标题","desktop.expandForks":"展开分支","desktop.collapseForks":"折叠分支","desktop.messagesCount":"{count} 条消息","desktop.worktree":"工作树:{cwd}","desktop.justNow":"刚刚","desktop.minutesAgo":"{count} 分钟前","desktop.hoursAgo":"{count} 小时前","desktop.daysAgo":"{count} 天前","desktop.closeTab":"关闭","desktop.closeTabWithLabel":"关闭 {label}","desktop.modelsHideApiKey":"隐藏 API 密钥","desktop.modelsShowApiKey":"显示 API 密钥","desktop.modelsInheritNone":"— 继承 / 无 —","desktop.modelsProvider":"提供商","desktop.modelsProviderName":"提供商名称","desktop.modelsBaseUrl":"基础 URL","desktop.modelsApiKey":"API 密钥","desktop.modelsApiKeyHelp":"使用 ! 前缀运行 shell 命令,或使用环境变量名称","desktop.modelsApiKeyPlaceholder":"环境变量名称、!shell 命令或原始密钥","desktop.modelsApi":"API","desktop.modelsDefault":"默认","desktop.modelsDisabled":"已禁用","desktop.modelsCustom":"自定义","desktop.modelsModelSection":"模型","desktop.modelsTestingConnection":"正在测试模型连接...","desktop.modelsConnected":"已连接","desktop.modelsFailed":"失败","desktop.modelsTestConnection":"测试模型连接","desktop.modelsTesting":"测试中…","desktop.modelsTest":"测试","desktop.modelsOk":"正常","desktop.modelsRemove":"移除","desktop.modelsIdRequired":"ID *","desktop.modelsName":"名称","desktop.modelsDisplayName":"显示名称","desktop.modelsApiOverride":"覆盖 API","desktop.modelsReasoningThinking":"推理 / 思考","desktop.modelsImageInput":"图片输入","desktop.modelsDeepSeekCompat":"DeepSeek 思考兼容模式","desktop.modelsThinkingLevelMap":"思考级别映射","desktop.modelsClearAll":"清除全部","desktop.modelsDiscoveryFetching":"正在导入模型…","desktop.modelsDiscoveryFetch":"导入模型…","desktop.modelsDiscoveryFilterPlaceholder":"筛选 {count} 个模型…","desktop.modelsDiscoveryFilter":"筛选上游模型","desktop.modelsDiscoverySelectShown":"选择当前结果","desktop.modelsDiscoveryNoMatches":"没有匹配的模型。","desktop.modelsDiscoveryAdded":"已添加","desktop.modelsDiscoveryShowing":"显示前 {shown} 个,共 {total} 个","desktop.modelsDiscoveryFetched":"已获取 {count} 个模型","desktop.modelsDiscoveryAddSelected":"添加所选模型","desktop.modelsDiscoveryAddSelectedCount":"添加所选模型({count})","desktop.modelsCatalogSource":"来源:models.dev ↗","desktop.modelsCatalogFilling":"正在填入模型信息…","desktop.modelsCatalogFill":"填入模型信息","desktop.modelsCatalogFilled":"已填入 {count} 个字段","desktop.modelsCatalogNoEmptyFields":"没有需要填入的空字段","desktop.modelsCatalogNoExactMatch":"models.dev 中没有精确匹配","desktop.modelsCatalogPriceProvider":"价格已匹配 Provider {provider}","desktop.modelsCatalogPriceBaseUrl":"价格已按 Base URL 匹配 {provider}","desktop.modelsCatalogPriceConsensus":"价格得到 {support}/{total} 条记录支持","desktop.modelsCatalogPriceUnreliable":"未找到可靠价格","desktop.modelsCatalogUndo":"撤销","desktop.modelsContextWindow":"上下文窗口(令牌)","desktop.modelsMaxOutputTokens":"最大输出令牌数","desktop.modelsCostPerMillionTokens":"费用(每百万令牌)","desktop.modelsSubscription":"订阅","desktop.modelsNotConnected":"未连接","desktop.modelsAlreadyConnected":"已连接。你可以重新登录或断开连接。","desktop.modelsConnectAccount":"连接你的 {provider} 账户。","desktop.modelsOpeningBrowser":"正在打开浏览器…","desktop.modelsCompleteSignIn":"请在浏览器中完成登录,然后复制地址栏中的重定向 URL 并粘贴到下方。","desktop.modelsBrowserDidNotOpen":"如果浏览器窗口未打开,","desktop.modelsOpenLoginPage":"点击此处打开登录页面","desktop.modelsEnterValue":"输入值…","desktop.modelsOpenVerificationPage":"打开验证页面并输入此代码:","desktop.modelsExpiresInMinutes":"将在 {count} 分钟后过期。","desktop.modelsConnectedSuccessfully":"连接成功。","desktop.modelsReLogin":"重新登录","desktop.modelsLogin":"登录","desktop.modelsDisconnect":"断开连接","desktop.modelsConnectionLost":"连接已断开","desktop.modelsAuthenticationStateChanged":"认证状态已变化,请刷新后重试。","desktop.modelsVerifying":"验证中…","desktop.modelsContinuing":"正在继续…","desktop.modelsServerError":"服务器错误 {status}","desktop.modelsNetworkError":"网络错误","desktop.modelsConfigured":"已配置","desktop.modelsNotConfigured":"未配置","desktop.modelsApiKeyStored":"API 密钥已保存。请在下方输入新密钥以替换它,或断开连接以移除它。","desktop.modelsEnableModels":"输入你的 {provider} API 密钥以启用 {count} 个{models}。","desktop.modelsSingular":"模型","desktop.modelsPlural":"模型","desktop.modelsEnterNewKey":"输入新密钥以替换…","desktop.modelsSaving":"保存中…","desktop.modelsSaved":"已保存","desktop.modelsRemoving":"移除中…","desktop.modelsSearchProviders":"搜索提供商…","desktop.modelsNoProvidersMatch":"没有匹配的提供商","desktop.modelsCompatibleProvider":"兼容 OpenAI / Anthropic","desktop.modelsCustomEndpointFormat":"自定义端点格式","desktop.modelsSubscriptions":"订阅","desktop.modelsCount":"{count} 个模型","desktop.modelsLoading":"加载中…","desktop.modelsNewModel":"新模型","desktop.modelsAddModel":"+ 添加模型","desktop.modelsAddProvider":"+ 添加提供商","desktop.modelsSelectProviderOrModel":"选择提供商或模型","desktop.modelsClose":"关闭模型设置","desktop.modelsSave":"保存","desktop.searchModels":"搜索模型…","desktop.noModelsMatch":"没有匹配的模型","desktop.global":"全局","desktop.project":"项目","desktop.path":"路径","desktop.addPlugin":"添加插件","desktop.addPluginTitle":"添加插件","desktop.pluginSource":"来源","desktop.install":"安装","desktop.installing":"正在安装...","desktop.examples":"示例","desktop.disabled":"已禁用","desktop.filtered":"已筛选","desktop.noResources":"没有资源","desktop.packageDisabled":"软件包已禁用","desktop.noResolvedResources":"没有已解析的资源","desktop.unknown":"未知","desktop.installedVersion":"已安装 {version}","desktop.configuredVersion":"已配置 {version}","desktop.enablePackage":"启用软件包","desktop.disablePackage":"禁用软件包","desktop.update":"更新","desktop.updating":"正在更新...","desktop.reloadSession":"重新加载会话","desktop.reloading":"正在重新加载...","desktop.reloadCurrentSession":"重新加载当前会话","desktop.openSessionToReload":"打开一个会话以重新加载","desktop.remove":"移除","desktop.removing":"正在移除...","desktop.status":"状态","desktop.version":"版本","desktop.package":"软件包","desktop.resources":"资源","desktop.installedPath":"安装路径","desktop.notFound":"未找到","desktop.cwd":"当前目录","desktop.resolvedResources":"已解析资源","desktop.packageRemoved":"软件包已移除。","desktop.packageInstalled":"软件包已安装。","desktop.packageUpdated":"软件包已更新。","desktop.packageDisabledMessage":"软件包已禁用。","desktop.packageEnabled":"软件包已启用。","desktop.sessionReloaded":"会话已重新加载。","desktop.noPluginsConfigured":"未配置插件","desktop.selectPackage":"选择一个软件包","desktop.diagnosticsCount":"{count} 条诊断信息","desktop.pluginResourceTotals":"{extensions} 个扩展 \xb7 {skills} 个技能 \xb7 {prompts} 个提示词 \xb7 {themes} 个主题","desktop.extensionsCount":"{count} 个扩展","desktop.skillsCount":"{count} 个技能","desktop.promptsCount":"{count} 个提示词","desktop.themesCount":"{count} 个主题","desktop.addSkill":"添加技能","desktop.addSkillTitle":"添加技能","desktop.skillSearchPlaceholder":"例如:react、testing、deploy","desktop.noSkillsFound":"未找到技能","desktop.skillSearchHint":"搜索 skills.sh,发现并为你的 Agent 安装技能。","desktop.visibleInModelPrompt":"在模型提示词中可见 — 点击以禁用","desktop.hiddenFromModelPrompt":"在模型提示词中隐藏 — 点击以启用","desktop.dormant":"休眠","desktop.hiddenButInvocable":"已从模型中隐藏,仍可手动调用","desktop.check":"检查","desktop.upToDate":"已是最新","desktop.automaticChecksUnavailable":"无法自动检查更新","desktop.checkFailed":"检查失败","desktop.name":"名称","desktop.description":"描述","desktop.selectSkill":"选择一个技能","desktop.checkUpdates":"检查更新","desktop.updateAvailable":"有可用更新","desktop.installed":"已安装","desktop.updatesCount":"{count} 个更新","desktop.downloadFile":"下载文件","desktop.loadingFile":"正在加载...","desktop.noChanges":"没有更改","desktop.unchangedLines":"... {count} 行未更改 ...","desktop.lines":"{count} 行","desktop.mentionFile":"提及文件","desktop.mentionSelectedLines":"提及所选行 {start}-{end}","desktop.source":"源文件","desktop.diff":"差异","desktop.enableWordWrap":"启用自动换行","desktop.disableWordWrap":"禁用自动换行","desktop.wrap":"换行","desktop.code":"代码","desktop.preview":"预览","desktop.raw":"原始内容","desktop.htmlPreview":"HTML 预览","desktop.image":"图片","desktop.audio":"音频","desktop.docxPreview":"DOCX 预览","desktop.failedToLoadImage":"加载图片失败","desktop.failedToLoadAudio":"加载音频失败","desktop.docxTooLargeForPreview":"DOCX 文件过大,无法预览(超过 10MB)","desktop.previewFile":"预览 {file}","desktop.branches":"分支","desktop.noActiveSession":"没有活动会话","desktop.sessionHasNoBranches":"此会话没有分支","desktop.copyMessage":"复制消息","desktop.editFromHere":"从此处编辑 — 在此会话内创建分支","desktop.creatingNewSession":"正在创建新会话…","desktop.newSessionFromHere":"新建会话 — 从此处创建独立副本","desktop.estimatedStreamingTokenCount":"流式输出期间的预估令牌数","desktop.tokensPerSecond":"{count} 令牌/秒","desktop.thinkingContentUnavailable":"思考内容不可用","desktop.loadingThinking":"正在加载思考内容...","desktop.conversationCompacted":"对话已压缩","desktop.compactionSummaryDescription":"此处之前的对话历史已压缩为以下摘要:","desktop.noSummary":"(无摘要)","desktop.fileContext":"文件上下文:{context}","desktop.readFilesCount":"已读取 {count} 个","desktop.modifiedFilesCount":"已修改 {count} 个","desktop.modifiedFiles":"已修改的文件","desktop.readFiles":"已读取的文件","desktop.hiddenExtensionMessage":"隐藏的扩展消息","desktop.noMessage":"(无消息)","desktop.showExtensionMessage":"显示扩展消息","desktop.copied":"已复制","desktop.copy":"复制","desktop.collapse":"收起","desktop.expand":"展开","desktop.hideDetails":"隐藏详情","desktop.showDetails":"显示详情","desktop.before":"之前","desktop.after":"之后","desktop.noOutput":"(无输出)","desktop.extension":"扩展","desktop.assistant":"助手","desktop.favorites":"收藏","desktop.favorite":"收藏","desktop.unfavorite":"取消收藏","desktop.processStepThinking":"思考","desktop.processStepFileRead":"读取","desktop.processStepFileCreate":"创建","desktop.processStepFileEdit":"编辑","desktop.processStepFileDelete":"删除","desktop.processStepSearch":"搜索","desktop.processStepFind":"查找","desktop.processStepList":"列出","desktop.processStepRead":"读取","desktop.processStepFetch":"抓取","desktop.processStepDelete":"删除","desktop.processStepCopy":"复制","desktop.processStepCommand":"运行","desktop.processStepTool":"工具","desktop.processStepTodo":"待办","desktop.processStepArtifact":"产物","desktop.processStepCompaction":"压缩","desktop.processStepError":"错误","desktop.processWorking":"工作中...","desktop.processUsed":"使用了 {summary}","desktop.processToolCount":"{count} 个工具","desktop.processToolsCount":"{count} 个工具","desktop.processFailedCount":"({failed} 个失败)","desktop.processThoughtCount":"{count} 条思考","desktop.processThoughtsCount":"{count} 条思考","desktop.processThoughtDone":"已思考 {duration}s","desktop.processThoughtDoneNoDuration":"已思考","desktop.processCustomCount":"{count} 个事件","desktop.processCustomsCount":"{count} 个事件","desktop.processCompleted":"处理完成","desktop.processOutput":"处理输出","desktop.processTabMode":"标签页模式","desktop.processTimelineMode":"时间线模式","desktop.processFailedStep":"失败","desktop.markdownPreviewAvailableAfterStreaming":"流式输出结束后可预览","desktop.markdownPreviewMermaidDiagram":"预览 Mermaid 图表","desktop.markdownInvalidMermaidDiagram":"无效的 Mermaid 图表","desktop.markdownRenderingMermaidDiagram":"正在渲染 Mermaid 图表","desktop.openMermaidViewer":"打开 Mermaid 查看器","desktop.mermaidDiagram":"Mermaid 图表","desktop.mermaidViewer":"Mermaid 图表查看器","desktop.zoomPanHint":"拖动平移 \xb7 滚轮缩放","desktop.selectText":"选择文本","desktop.zoomOut":"缩小","desktop.resetZoom":"重置为 100%(适应窗口)","desktop.zoomIn":"放大","desktop.fitToViewport":"适应窗口","desktop.quoteReply":"引用回复","desktop.quoteReplyHint":"点击引用回复","desktop.openFile":"打开","desktop.queueRecoveryTitle":"恢复排队消息","desktop.queueImportTitle":"导入的排队消息","desktop.queueRecoveryDescription":"这些消息在上一个服务会话结束前已保存。请选择要重新入队的消息;系统不会自动发送。","desktop.queueImportDescription":"请选择要重新入队的导入消息;系统不会自动发送。","desktop.selectAll":"全选","desktop.selectNone":"取消全选","desktop.import":"导入","desktop.queueImages":"图片附件","desktop.queueNoText":"(仅图片消息)","desktop.queueExported":"已导出 {count} 条消息","desktop.queueImportEmpty":"未找到有效的排队消息","desktop.queueImported":"已导入 {count} 条消息,等待确认","desktop.dismiss":"暂不处理","desktop.discard":"丢弃","desktop.requeue":"重新入队","desktop.requeueAndContinue":"重新入队并继续","desktop.markdownPlainText":"文本"}});let a="pi-locale",d=(0,n.createContext)(null);function c({children:e}){let[t,r]=(0,n.useState)("en"),[i,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=function(){try{let e=window.localStorage.getItem(a);if("en"===e||"zh-CN"===e)return e}catch{}for(let e of window.navigator.languages.length?window.navigator.languages:[window.navigator.language]){let t=e.toLowerCase();if("en"===t||t.startsWith("en-"))break;if("zh"===t||t.startsWith("zh-"))return"zh-CN"}return"en"}();r(e),document.documentElement.lang=e,p(!0)},[]);let u=(0,n.useMemo)(()=>(function(){let e=l("en"),t=l("zh-CN");if(!e||!t)throw Error("Built-in locales must be registered before rendering I18nProvider");return{en:e.messages,"zh-CN":t.messages}})(),[]),h=(0,n.useMemo)(()=>[...s.keys()].map(e=>l(e)).filter(e=>!!e),[]),g=(0,n.useCallback)(e=>{if(l(e)){r(e);document.documentElement.lang=e,document.documentElement.dataset.language=e;try{window.localStorage.setItem(a,e)}catch{}}},[]),m=(0,n.useCallback)((e,r)=>(function(e,t,r,o={}){let n=r[e]?.[t]??r.en?.[t];return void 0===n?t:function(e,t={}){return e.replace(/\{([\w.-]+)\}/g,(e,r)=>{let o=t[r];return void 0===o?e:String(o)})}(n,o)})(t,e,u,r),[t,u]),f=(0,n.useMemo)(()=>({locale:t,setLocale:g,t:m,supportedLocales:h}),[t,g,m,h]);return(0,o.jsx)(d.Provider,{value:f,children:i?e:null})}function p(){let e=(0,n.useContext)(d);if(!e)throw Error("useI18n must be used inside I18nProvider");return e}},58933:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>ir});var o=r(95155),n=r(12115),s=r(53516),i=r(73321);let l=null;var a=r(47650),d=r(25349),c=r(9720),p=r(98664),u=r(49467),h=r(56123),g=r(85265),m=r(94125),f=r(6033),x=r(41780),k=r(11693),v=r(77862),b=r(73988),y=r(20077),w=r(39247);async function j(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),o=await r.json();if(!r.ok||o.error)throw Error(o.error??`HTTP ${r.status}`);return o}function S(){return(0,o.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function C(){return(0,o.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,o.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,o.jsx)("path",{d:"M2 9h12"}),(0,o.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function I({onCancel:e,onSelect:t,busy:r=!1,error:s}){let{t:i}=(0,w.s)(),[l,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(""),[u,h]=(0,n.useState)(null),[g,m]=(0,n.useState)([]),[f,x]=(0,n.useState)(null),[k,v]=(0,n.useState)(null),[b,y]=(0,n.useState)(!0),T=(0,n.useCallback)(async e=>{y(!0),v(null);try{let t=await j(e),r=t.path??e??"/";p(r),h(t.parentPath??null),m(t.directories??[]),x(t.drives??null)}catch(e){v(e instanceof Error?e.message:String(e))}finally{y(!1)}},[]);(0,n.useEffect)(()=>{d(document.body),T()},[T]);let R=!!c&&!r,z=!!u||/^[a-zA-Z]:[\\/]?$/.test(c);return l?(0,a.createPortal)((0,o.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":i("directoryPicker.selectDirectory"),onClick:t=>{t.target!==t.currentTarget||r||e()},onKeyDown:t=>{"Escape"!==t.key||r||e()},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,o.jsxs)("div",{className:"directory-picker-panel",style:{width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("div",{style:{minWidth:0,flex:1},children:(0,o.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:i("directoryPicker.selectDirectory")})}),(0,o.jsx)("button",{type:"button",onClick:e,disabled:r,title:i("i18n.close"),"aria-label":i("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:r?"default":"pointer",opacity:r?.5:1},children:"\xd7"})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void T(u??void 0),disabled:b||!z,title:i("directoryPicker.goToParent"),"aria-label":i("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:z?"pointer":"default",opacity:z?1:.45},children:(0,o.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,o.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,o.jsx)("div",{title:c,style:{minWidth:0,flex:1,height:36,display:"flex",alignItems:"center",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c||i("directoryPicker.loadingDirectories")})]}),(0,o.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[b?(0,o.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:i("directoryPicker.loadingDirectories")}):null!==f?(0,o.jsx)(o.Fragment,{children:f.length>0?f.map(e=>(0,o.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void T(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,o.jsx)(C,{}),(0,o.jsx)("span",{children:e.name})]},e.path)):(0,o.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:i("directoryPicker.noDrives")})}):g.length>0?g.map(e=>(0,o.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void T(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,o.jsx)(S,{}),(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,o.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:i("directoryPicker.noSubdirectories")}),(k||s)&&(0,o.jsx)("div",{style:{padding:"8px",color:"#dc2626",fontSize:11},children:k??s})]}),(0,o.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,o.jsx)("button",{className:"directory-picker-action",type:"button",onClick:e,disabled:r,style:{padding:"6px 14px",border:"1px solid var(--border)",borderRadius:6,background:"none",color:"var(--text-muted)",cursor:r?"default":"pointer",fontSize:13},children:i("i18n.cancel")}),(0,o.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(c),disabled:!R,title:i("directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"#fff",fontSize:13,fontWeight:600,opacity:R?1:.6,cursor:R?"pointer":"default"},children:i(r?"i18n.checking":"directoryPicker.selectThisFolder")})]})]})}),l):null}var T=r(63256),R=r(64178),z=r(19413),M=r(36824),E=r(69248),P=r(95516),N=r(6513);function $(e,t){return`url(/catppuccin-icons/${e}/${t}.svg)`}function L({icon:e,size:t=14}){let r={"--catppuccin-icon-light":$("latte",e),"--catppuccin-icon-dark":$("mocha",e),width:t,height:t};return(0,o.jsx)("span",{className:"catppuccin-file-icon",style:r,"aria-hidden":"true"})}let F={".github":"github",".git":"git",".vscode":"vscode",".next":"next",".nuxt":"nuxt",".storybook":"storybook",".turbo":"turbo",".yarn":"yarn",".husky":"husky",".cursor":"cursor",api:"api",app:"app",assets:"assets",components:"components",config:"config",docs:"docs",examples:"examples",hooks:"hooks",lib:"lib",node_modules:"node",pages:"routes",public:"public",scripts:"scripts",src:"src",styles:"styles",test:"tests",tests:"tests",__tests__:"tests",types:"types",utils:"utils"};function W({size:e=14,open:t=!1,name:r}){let n=r?F[r.toLowerCase()]:void 0,s=n?`folder_${n}${t?"_open":""}`:`_${t?"folder_open":"folder"}`;return(0,o.jsx)(L,{icon:s,size:e})}function D({size:e=14}){return(0,o.jsx)(L,{icon:"_file",size:e})}function A({icon:e,size:t=14}){return(0,o.jsx)(L,{icon:e,size:t})}let O={".babelrc":"babel",".dockerignore":"docker-ignore",".env":"env",".eslintignore":"eslint-ignore",".eslintrc":"eslint",".gitattributes":"git",".gitignore":"git",".gitmodules":"git",".npmignore":"npm-ignore",".prettierignore":"prettier-ignore",".prettierrc":"prettier",".yarnrc":"yarn","bun.lock":"bun-lock","bun.lockb":"bun-lock","cargo.lock":"cargo-lock","cargo.toml":"cargo",codeowners:"codeowners","docker-compose.yaml":"docker-compose","docker-compose.yml":"docker-compose",dockerfile:"docker","eslint.config.js":"eslint","eslint.config.mjs":"eslint","eslint.config.ts":"eslint","next.config.js":"next","next.config.mjs":"next","next.config.ts":"next","package-lock.json":"npm-lock","package.json":"package-json","pnpm-lock.yaml":"pnpm-lock","pnpm-workspace.yaml":"pnpm","prettier.config.js":"prettier","prettier.config.mjs":"prettier","prettier.config.ts":"prettier","tailwind.config.js":"tailwind","tailwind.config.ts":"tailwind","tsconfig.json":"typescript-config","vite.config.js":"vite","vite.config.mjs":"vite","vite.config.ts":"vite","vitest.config.ts":"vitest","yarn.lock":"yarn-lock"},H={astro:"astro",bash:"bash",c:"c",cpp:"cpp",css:"css",csv:"csv",cjs:"javascript",cts:"typescript",dockerfile:"docker",env:"env",go:"go",gql:"graphql",graphql:"graphql",hcl:"terraform",htm:"html",html:"html",ini:"config",java:"java",js:"javascript",json:"json",jsonc:"json",jsonl:"json",jsx:"javascript-react",less:"less",lua:"lua",md:"markdown",mdx:"markdown-mdx",mjs:"javascript",mts:"typescript",pdf:"pdf",php:"php",py:"python",rs:"rust",sass:"sass",scss:"sass",sh:"bash",sql:"database",svg:"svg",svelte:"svelte",tf:"terraform",toml:"toml",ts:"typescript",tsx:"typescript-react",txt:"text",vue:"vue",xml:"xml",yaml:"yaml",yml:"yaml",zsh:"bash"};function B(e,t=14){let r=e.toLowerCase(),n=O[r];if(n)return(0,o.jsx)(A,{icon:n,size:t});if(".env"===r||r.startsWith(".env."))return(0,o.jsx)(A,{icon:"env",size:t});if("dockerfile"===r||r.startsWith("dockerfile."))return(0,o.jsx)(A,{icon:"docker",size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs"))return(0,o.jsx)(A,{icon:r.startsWith("vite.")?"vite":"config",size:t});let s=H[r.split(".").pop()??""];return s?(0,o.jsx)(A,{icon:s,size:t}):(0,o.jsx)(D,{size:t})}function U(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function _(e){return U(e).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function q(e){let t=U(e).replace(/\/+$/,"");return t.split("/").pop()??t}function K(e,t){if(!t)return e;let r=U(e),o=U(t).replace(/\/$/,"");return r.startsWith(o+"/")?r.slice(o.length+1):e}function V(e,t){return`${U(e).replace(/\/$/,"")}/${t}`}function J(e){let t=e.replace(/\\/g,"/").replace(/\/+$/,"");return/^[a-zA-Z]:\//.test(t)?t.toLowerCase():t}function Y(e){return"added"===e?"var(--git-status-added)":"deleted"===e?"var(--git-status-deleted)":"modified"===e?"var(--git-status-modified)":"var(--text)"}function G(e){return"deleted"===e?3:"added"===e?2:1}async function Q(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`,{cache:"no-store"});if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}async function Z(e){let t=_(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=`Failed to load files (HTTP ${r.status})`;try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:V(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}function X({size:e=11}){return(0,o.jsx)(T.At,{size:e,weight:"regular","aria-hidden":"true"})}function ee({onClick:e,title:t}){return(0,o.jsx)("button",{type:"button",onClick:e,title:t,"aria-label":t,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,o.jsx)(R.X,{size:13,weight:"regular","aria-hidden":"true"})})}function et({node:e,depth:t,cwd:r,onOpenFile:s,onAtMention:i,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:p,changedFiles:u}){let h=l.has(e.fullPath),g=c.has(e.fullPath),f=J(e.fullPath),x=function(e,t){if(t.has(e))return!0;for(let r of t)if(e.startsWith(`${r}/`))return!0;return!1}(f,p),k=function(e,t,r){let o,n=r.get(e);if(n||!t)return n;for(let[t,n]of r)t.startsWith(`${e}/`)&&(!o||G(n)>G(o))&&(o=n);return o}(f,e.isDir,u),[v,b]=(0,n.useState)(e.children??[]),[y,w]=(0,n.useState)(e.loaded??!1),[j,S]=(0,n.useState)(!1),[C,I]=(0,n.useState)(!1),T=(0,n.useCallback)(async(t=!1)=>{if(!y||t){S(!0);try{let t=await Z(e.fullPath);b(t),w(!0)}catch{}finally{S(!1)}}},[y,e.fullPath]);(0,n.useEffect)(()=>{h&&y&&T(!0)},[d]);let R=(0,n.useCallback)(()=>{if(e.isDir){let t=!h;a(e.fullPath,t),t&&!y&&T()}else s(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,y,h,T,s,a]);return(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{onClick:R,onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*t,paddingRight:8,height:24,cursor:"pointer",background:C?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",opacity:x?C?.72:.5:1},children:[e.isDir&&(0,o.jsx)(m.K,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0,transform:h?"rotate(90deg)":"none",transition:"transform 0.1s"},"aria-hidden":"true"}),!e.isDir&&(0,o.jsx)("span",{style:{width:10,flexShrink:0}}),(0,o.jsxs)("span",{style:{position:"relative",width:14,height:14,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[e.isDir?(0,o.jsx)(W,{size:14,open:h,name:e.name}):B(e.name,14),k&&(0,o.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:-1,top:"50%",transform:"translateY(-50%)",zIndex:1,width:7,height:7,border:"1px solid var(--bg-panel)",borderRadius:"50%",background:Y(k)}})]}),(0,o.jsx)("span",{style:{fontSize:12,color:Y(k),overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),g&&(0,o.jsx)("span",{title:"Newly uploaded","aria-label":"Newly uploaded",style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"#3b82f6"}}),j&&(0,o.jsx)(z.y,{size:10,color:"var(--text-dim)",weight:"regular","aria-hidden":"true"}),i&&C&&(0,o.jsxs)("button",{onClick:t=>{t.stopPropagation(),i(K(e.fullPath,r),e.isDir)},title:"Insert path into chat",style:{position:"absolute",right:e.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,o.jsx)(X,{}),"mention"]}),C&&!e.isDir&&(0,o.jsx)("a",{href:`/api/files/${_(e.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:"Download file",style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap",textDecoration:"none"},children:(0,o.jsx)(M.z,{size:11,weight:"regular","aria-hidden":"true"})})]}),e.isDir&&h&&(0,o.jsxs)("div",{children:[v.map(e=>(0,o.jsx)(et,{node:e,depth:t+1,cwd:r,onOpenFile:s,onAtMention:i,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:p,changedFiles:u},e.fullPath)),0===v.length&&y&&(0,o.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"})]})]})}let er=(0,n.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:s,onAtMentions:i,onUploadBusyChange:l},a){let[d,c]=(0,n.useState)([]),[u,h]=(0,n.useState)(null),[g,m]=(0,n.useState)(!0),[f,x]=(0,n.useState)(null),[k,b]=(0,n.useState)(new Set),[y,w]=(0,n.useState)(0),[j,S]=(0,n.useState)(new Set),[C,I]=(0,n.useState)("idle"),[T,R]=(0,n.useState)(0),[M,$]=(0,n.useState)(null),[L,F]=(0,n.useState)(null),[W,D]=(0,n.useState)(null),A=(0,n.useRef)(null),O=(0,n.useRef)(null),H=`${r??0}:${y}`,B="idle"!==C,U=(0,n.useMemo)(()=>new Set((u?.ignoredPaths??[]).map(J)),[u]),q=(0,n.useMemo)(()=>new Map((u?.files??[]).map(e=>{var t;return[J(e.filePath),"added"===(t=e.status)||"untracked"===t?"added":"deleted"===t||"conflict"===t?"deleted":"modified"]})),[u]),Y=(0,n.useCallback)((e,t)=>{b(r=>{let o=new Set(r);return t?o.add(e):o.delete(e),o})},[]),G=(0,n.useCallback)(t=>{let r=t.uploaded??[];F({uploaded:r,skipped:t.skipped??[],errors:t.errors??[]}),r.length>0&&(S(new Set(r.map(t=>V(e,t)))),w(e=>e+1))},[e]),er=(0,n.useCallback)(async(t,r)=>{D(null),$(null),R(0),I("uploading");try{let{status:o,data:n}=await new Promise((o,n)=>{let s=new FormData;t.forEach(e=>s.append("files",e,e.name));let i=new XMLHttpRequest;i.open("POST",`/api/files/${_(e)}?type=upload&conflict=${r}`),i.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&R(Math.round(e.loaded/e.total*100))},i.onerror=()=>n(Error("Network error while uploading files")),i.onabort=()=>n(Error("Upload cancelled")),i.onload=()=>{let e={};try{e=JSON.parse(i.responseText)}catch{i.responseText&&(e.error=i.responseText)}o({status:i.status,data:e})},i.send(s)});if(409===o&&n.conflicts?.length)return void D({files:t,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});if(o<200||o>=300)throw Error(n.error??`Upload failed (HTTP ${o})`);R(100),G(n)}catch(e){$(e instanceof Error?e.message:String(e))}finally{I("idle")}},[G,e]),eo=(0,n.useCallback)(async t=>{if(0!==t.length&&!B){F(null),S(new Set),D(null),$(null),R(0),I("checking");try{let r=await fetch(`/api/files/${_(e)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:t.map(e=>e.name)})}),o=await r.json().catch(()=>({}));if(!r.ok)throw Error(o.error??`Upload check failed (HTTP ${r.status})`);if(o.conflicts?.length)return void D({files:t,conflicts:o.conflicts,nonReplaceable:o.nonReplaceable??[]});await er(t,"error")}catch(e){$(e instanceof Error?e.message:String(e))}finally{I("idle")}}},[e,er,B]),en=(0,n.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",eo(t)},[eo]);(0,n.useImperativeHandle)(a,()=>({openUploadPicker(){B||O.current?.click()}}),[B]),(0,n.useEffect)(()=>{l?.(B)},[l,B]),(0,n.useEffect)(()=>()=>l?.(!1),[l]),(0,n.useEffect)(()=>{let t=A.current!==e;A.current=e,t&&(b(new Set),S(new Set),F(null),D(null),$(null)),m(t),x(null);let r=!1;return Promise.all([Z(e),Q(e).catch(()=>null)]).then(([e,t])=>{r||(c(e),h(t))}).catch(e=>{r||x(e instanceof Error?e.message:String(e))}).finally(()=>{r||m(!1)}),()=>{r=!0}},[e,r,y]);let es=B||null!==W||null!==M||null!==L,ei=(0,n.useCallback)(()=>{L&&0!==L.uploaded.length&&i?.(L.uploaded.map(t=>K(V(e,t),e)))},[e,i,L]);return(0,o.jsxs)("div",{style:{minHeight:"100%"},children:[(0,o.jsx)("input",{ref:O,type:"file",multiple:!0,hidden:!0,onChange:en}),es&&(0,o.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[B&&(0,o.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===C?"Checking files":`Uploading, ${T}%`,children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===C?(0,o.jsx)(z.y,{size:13,weight:"regular",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,o.jsx)(v.C,{size:13,weight:"regular","aria-hidden":"true"}),"uploading"===C&&(0,o.jsxs)("span",{style:{fontSize:10},children:[T,"%"]})]}),"uploading"===C&&(0,o.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,o.jsx)("div",{style:{width:`${T}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),W&&(0,o.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,o.jsxs)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:[W.conflicts.length," file",1===W.conflicts.length?"":"s"," already exist: ",W.conflicts.join(", ")]}),W.nonReplaceable.length>0&&(0,o.jsxs)("div",{style:{marginTop:3,fontSize:10,color:"#f59e0b",lineHeight:1.35,overflowWrap:"anywhere"},children:["Cannot replace: ",W.nonReplaceable.join(", ")]}),(0,o.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,o.jsx)("button",{type:"button",onClick:()=>void er(W.files,"overwrite"),style:{height:22,padding:"0 7px",border:"1px solid #ef4444",borderRadius:4,background:"transparent",color:"#ef4444",cursor:"pointer",fontSize:10},children:"Replace"}),(0,o.jsx)("button",{type:"button",onClick:()=>void er(W.files,"skip"),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:"Skip existing"}),(0,o.jsx)("button",{type:"button",onClick:()=>D(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:"Cancel"})]})]}),M&&(0,o.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"#f87171"},children:[(0,o.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:M}),(0,o.jsx)(ee,{onClick:()=>$(null),title:"Dismiss error"})]}),L&&(0,o.jsxs)("div",{"aria-live":"polite",children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,o.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[L.uploaded.length>0&&(0,o.jsxs)("span",{title:`${L.uploaded.length} uploaded`,"aria-label":`${L.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"#22c55e"},children:[(0,o.jsx)(p.J,{size:13,weight:"regular","aria-hidden":"true"}),(0,o.jsx)("span",{children:L.uploaded.length})]}),L.skipped.length>0&&(0,o.jsxs)("span",{title:`${L.skipped.length} skipped`,"aria-label":`${L.skipped.length} skipped`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,o.jsx)(E.F,{size:13,weight:"regular","aria-hidden":"true"}),(0,o.jsx)("span",{children:L.skipped.length})]}),L.errors.length>0&&(0,o.jsxs)("span",{title:`${L.errors.length} failed`,"aria-label":`${L.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"#f87171"},children:[(0,o.jsx)(P.N,{size:13,weight:"regular","aria-hidden":"true"}),(0,o.jsx)("span",{children:L.errors.length})]})]}),L.uploaded.length>0&&i&&(0,o.jsxs)("button",{type:"button",onClick:ei,title:1===L.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat","aria-label":1===L.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat",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,o.jsx)(X,{}),"mention"]}),(0,o.jsx)(ee,{onClick:()=>F(null),title:"Dismiss upload results"})]}),L.errors.map(e=>(0,o.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"#f87171"},children:[(0,o.jsx)(N.R,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),(0,o.jsxs)("div",{style:{padding:"2px 4px"},children:[g?(0,o.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):f?(0,o.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"#f87171"},children:f}):d.map(r=>(0,o.jsx)(et,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:s,expandedPaths:k,onToggleExpanded:Y,refreshToken:H,highlightedPaths:j,ignoredPaths:U,changedFiles:q},r.fullPath)),!g&&!f&&0===d.length&&(0,o.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"No files found"})]})]})}),eo={modified:"var(--git-status-modified)",added:"var(--git-status-added)",deleted:"var(--git-status-deleted)",renamed:"var(--git-status-modified)",untracked:"var(--git-status-added)",conflict:"var(--git-status-deleted)"};async function en(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`);if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}function es({status:e,cwd:t,onOpenFile:r}){let[s,i]=(0,n.useState)(!1),l=K(e.filePath,t);return(0,o.jsxs)("button",{type:"button",onClick:()=>r(e.filePath,q(e.filePath),{initialDisplayMode:"diff"}),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),title:e.filePath,style:{width:"100%",display:"flex",alignItems:"center",gap:4,padding:"0 5px",height:24,border:"none",borderRadius:4,background:s?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,o.jsx)("span",{style:{width:14,flexShrink:0,color:eo[e.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:e.code}),(0,o.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:B(q(e.filePath),13)}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,fontSize:12},children:l})]})}function ei({cwd:e,refreshKey:t,onOpenFile:r}){let{t:s}=(0,w.s)(),[i,l]=(0,n.useState)(!1),[a,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(!1),u=(0,n.useCallback)(async()=>{p(!0);try{d(await en(e))}catch{d(null)}finally{p(!1)}},[e]);if((0,n.useEffect)(()=>{u()},[u,t]),!a?.isGitRepository||0===a.files.length)return null;let h=a.files.reduce((e,t)=>("added"===t.status||"untracked"===t.status?e.added+=1:"deleted"===t.status||"conflict"===t.status?e.deleted+=1:e.modified+=1,e),{modified:0,added:0,deleted:0});return(0,o.jsxs)("section",{style:{flex:"0 0 auto",minHeight:0,borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,o.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":i,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,o.jsx)(m.K,{size:9,weight:"regular",style:{transform:i?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s("desktop.quickChanges")})]}),(0,o.jsxs)("div",{className:"git-changes-indicator","aria-label":`Changed files: ${h.modified} modified, ${h.added} added, ${h.deleted} deleted`,children:[h.modified>0&&(0,o.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-modified",children:h.modified}),h.added>0&&(0,o.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-added",children:h.added}),h.deleted>0&&(0,o.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-deleted",children:h.deleted})]}),(0,o.jsxs)("span",{style:{marginLeft:6,color:"var(--git-status-added)",fontFamily:"var(--font-mono)",fontSize:11},children:["+",a.additions]}),(0,o.jsxs)("span",{style:{marginLeft:5,color:"var(--git-status-deleted)",fontFamily:"var(--font-mono)",fontSize:11},children:["-",a.deletions]}),(0,o.jsx)("button",{type:"button",onClick:()=>void u(),disabled:c,title:s("desktop.refresh"),"aria-label":s("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginLeft:4,marginRight:6,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:c?"wait":"pointer",opacity:c?.55:1},children:c?(0,o.jsx)(z.y,{size:12,style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,o.jsx)(x.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),i&&(0,o.jsx)("div",{style:{minHeight:0,maxHeight:"min(35vh, 280px)",overflowY:"auto",overflowX:"hidden",padding:"2px 4px 4px"},children:a.files.map(t=>(0,o.jsx)(es,{status:t,cwd:e,onOpenFile:r},t.filePath))})]})}let el="pi-web:unread-session-ids";function ea(e){let t=new Map;for(let r of e){let e=r.projectRoot??r.cwd;if(!e)continue;let o=t.get(e);(!o||r.modified>o)&&t.set(e,r.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function ed(e,t){return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function ec(e){return e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??e}function ep({text:e,style:t}){return(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,o.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function eu({open:e,children:t,style:r}){let[s,i]=(0,n.useState)(e),[l,a]=(0,n.useState)(e);return((0,n.useEffect)(()=>{let t,r;return e?(i(!0),a(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>a(!0))})):(a(!1),r=setTimeout(()=>i(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),r&&clearTimeout(r)}},[e]),s)?(0,o.jsx)("div",{style:{...r,opacity:+!!l,transform:l?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}function eh({selectedSessionId:e,onSelectSession:t,onNewSession:r,initialSessionId:s,onInitialRestoreDone:i,refreshKey:l,onSessionDeleted:b,selectedCwd:y,onCwdChange:j,onOpenFile:S,explorerRefreshKey:C,onAtMention:T,onAtMentions:R,workspaceControlsHosts:z,showWorkspaceControls:M=!0}){let{t:E}=(0,w.s)(),[P,N]=(0,n.useState)([]),[$,L]=(0,n.useState)(!0),[F,W]=(0,n.useState)(null),[D,A]=(0,n.useState)(null),[O,H]=(0,n.useState)(""),[B,U]=(0,n.useState)(!1),[_,q]=(0,n.useState)(null),[K,V]=(0,n.useState)(null),[J,Y]=(0,n.useState)(""),[G,Q]=(0,n.useState)(!1),[Z,X]=(0,n.useState)(null),[ee,et]=(0,n.useState)(!1),eo=(0,n.useRef)(null),en=(0,n.useRef)({title:null,welcome:null}),[es,em]=(0,n.useState)(null),[ef,ex]=(0,n.useState)(!1),[ek,ev]=(0,n.useState)(!1),[eb,ey]=(0,n.useState)(""),[ew,ej]=(0,n.useState)(null),[eS,eC]=(0,n.useState)(!1),[eI,eT]=(0,n.useState)(null),[eR,ez]=(0,n.useState)(null),eM=(0,n.useRef)(null),eE=(0,n.useRef)(null),[eP,eN]=(0,n.useState)(!0),[e$,eL]=(0,n.useState)(!0),[eF,eW]=(0,n.useState)(0),[eD,eA]=(0,n.useState)(!1),[eO,eH]=(0,n.useState)(!1),[eB,eU]=(0,n.useState)(!1),[e_,eq]=(0,n.useState)(()=>new Set),[eK,eV]=(0,n.useState)(()=>(function(){try{let e=window.localStorage.getItem(el);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),eJ=(0,n.useRef)(new Set),eY=(0,n.useRef)(!1),eG=(0,n.useRef)(null),eQ=(0,n.useRef)(null),eZ=(0,n.useRef)(null),eX=(0,n.useCallback)(async(e=!1)=>{try{e&&L(!0);let t=await fetch("/api/sessions");if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();N(r.sessions),eY.current||eq(new Set(r.runningSessionIds??[]));let o=new Set(r.sessions.map(e=>e.id));eV(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>o.has(e)));return t.size===e.size?e:t}),W(null),e||(eH(!0),eG.current&&clearTimeout(eG.current),eG.current=setTimeout(()=>eH(!1),2e3))}catch(e){W(String(e))}finally{e&&L(!1)}},[]),e0=(0,n.useRef)(!1);(0,n.useEffect)(()=>{let e=!e0.current;e0.current=!0,eX(e)},[eX,l]),(0,n.useEffect)(()=>{try{0===eK.size?window.localStorage.removeItem(el):window.localStorage.setItem(el,JSON.stringify([...eK]))}catch{}},[eK]),(0,n.useEffect)(()=>{let e=!0,t=null,r=null,o=async()=>{if(!e||"visible"!==document.visibilityState)return;t?.abort();let n=new AbortController;t=n;try{let r=await fetch("/api/agent/running",{cache:"no-store",signal:n.signal});if(!r.ok||!e||t!==n)return;let o=await r.json();if(!e||t!==n)return;eY.current=!0,eq(new Set(o.runningSessionIds??[]))}catch(e){"AbortError"!==e.name&&console.warn("Failed to poll running sessions",e)}finally{e&&t===n&&"visible"===document.visibilityState&&(r=setTimeout(o,2500))}},n=()=>{"visible"===document.visibilityState?o():(t?.abort(),r&&clearTimeout(r),r=null)};return o(),document.addEventListener("visibilitychange",n),()=>{e=!1,t?.abort(),r&&clearTimeout(r),document.removeEventListener("visibilitychange",n)}},[]),(0,n.useEffect)(()=>{let t=[...eJ.current].filter(t=>!e_.has(t)&&t!==e),r=[...e_];(t.length>0||r.length>0)&&eV(e=>{let o=new Set(e);return r.forEach(e=>o.delete(e)),t.forEach(e=>o.add(e)),o}),eJ.current=e_},[e_,e]),(0,n.useEffect)(()=>{e&&eV(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,n.useEffect)(()=>{void 0!==C&&eW(e=>e+1)},[C]),(0,n.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&H(e.home)}).catch(()=>{})},[]);let e1=(0,n.useRef)(!1),e2=(0,n.useCallback)(e=>{if(!e)return null;if(es&&es.forCwd===e||es?.worktrees.some(t=>t.path===e))return es.projectRoot;let t=P.find(t=>t.cwd===e);return t?.projectRoot??e},[es,P]),e4=(0,n.useRef)(null);(0,n.useEffect)(()=>{e4.current!==D&&(e4.current=D,j?.(D,e2(D)))},[D,j,e2]);let e6=(0,n.useRef)(null);(0,n.useEffect)(()=>{y&&y!==e6.current&&(e6.current=y,A(y))},[y]);let[e5,e3]=(0,n.useState)(0);(0,n.useLayoutEffect)(()=>{if(!D){em(null),ez(null);return}let e=!1;return ez(D),fetch(`/api/worktrees?cwd=${encodeURIComponent(D)}`).then(e=>e.json()).then(t=>{if(!e){if(ez(null),t.error||!t.projectRoot)return void em(null);em({forCwd:D,projectRoot:t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]})}}).catch(()=>{e||(ez(null),em(null))}),()=>{e=!0}},[D,e5,l]),(0,n.useEffect)(()=>{if(0!==P.length&&null===D){if(s&&!e1.current){e1.current=!0;let e=P.find(e=>e.id===s);if(e){A(e.cwd),t(e,!0);return}i?.()}let e=ea(P);e.length>0&&A(e[0])}},[P,D,s,t,i]);let e8=(0,n.useCallback)(async e=>{let t=e.trim();if(t&&!ee){et(!0),X(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error)return void X(r.error??`HTTP ${e.status}`);A(r.cwd??t),Q(!1),U(!1),q(null)}catch(e){X(e instanceof Error?e.message:String(e))}finally{et(!1)}}},[ee]),e7=(0,n.useCallback)(()=>{X(null),Q(!0)},[]),e9=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();t.cwd&&(A(t.cwd),Q(!1),X(null),U(!1),q(null))}catch{}},[]),te=(0,n.useCallback)(async()=>{let e=eb.trim();if(e&&!eS&&es){eC(!0),ej(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:es.projectRoot,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path)return void ej(r.error??`HTTP ${t.status}`);ev(!1),ey(""),ex(!1),V(null),em(t=>t?{...t,forCwd:r.path,worktrees:[...t.worktrees,{path:r.path,branch:e,isMain:!1}]}:t),A(r.path),e3(e=>e+1)}catch(e){ej(e instanceof Error?e.message:String(e))}finally{eC(!1)}}},[eb,eS,es]),tt=(0,n.useCallback)(async(e,t)=>{if(es&&!eS){eC(!0),ej(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:es.projectRoot,path:e,force:t})}),o=await r.json().catch(()=>({}));if(!r.ok){if(o.dirty&&!t)return void eT(e);ej(o.error??`HTTP ${r.status}`);return}eT(null),D===e&&A(es.projectRoot),e3(e=>e+1)}catch(e){ej(e instanceof Error?e.message:String(e))}finally{eC(!1)}}},[es,eS,D]);(0,n.useEffect)(()=>{let e=e=>{let t=e.target;eo.current?.contains(t)||eM.current?.contains(t)||Object.values(en.current).some(e=>e?.contains(t))||(U(!1),q(null),ex(!1),V(null),Y(""),X(null),ev(!1),ey(""),ej(null),eT(null))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let tr=(0,n.useCallback)(e=>{e.cwd&&A(e.cwd),t(e)},[t]),to=(0,n.useCallback)(()=>{if(!D)return;let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;r?.(e,D)},[D,r]),tn=ea(P),ts=J.trim()?tn.filter(e=>e.toLowerCase().includes(J.trim().toLowerCase())):tn,ti=e2(D),tl=ti?P.filter(e=>(e.projectRoot??e.cwd)===ti):P,ta=!!(es?.isGit&&es.isTopLevel&&D&&ti===es.projectRoot),td=D&&es&&ti===es.projectRoot&&!ta?es.isGit?{label:E("desktop.openRepoRoot"),title:E("desktop.openRepoRootDescription")}:{label:E("desktop.gitRepoRootOnly"),title:E("desktop.gitRepoRootOnlyDescription")}:null,tc=!!(D&&eR===D),tp=td??(tc&&!ta?{label:E("desktop.worktreesLoading"),title:E("desktop.checkingWorktrees")}:null),tu=function(e){let t=new Map;for(let r of e)t.set(r.id,{session:r,children:[]});let r=new Map;for(let t of e)t.parentSessionId&&r.set(t.id,t.parentSessionId);let o=[];for(let e of t.values()){let n=function(e){let o=r.get(e),n=new Set;for(;o&&!n.has(o);){if(n.add(o),t.has(o))return o;o=r.get(o)}return null}(e.session.id);n?t.get(n).children.push(e):o.push(e)}let n=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>n(e.children))};return n(o),o}(tl),th=es?.worktrees.find(e=>e.path===D)??es?.worktrees.find(e=>e.isMain)??null,tg=D?ec(ti??D):s&&!e1.current?"":`${E("desktop.selectProject")}…`,tm=(0,o.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,o.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,o.jsx)(d.e,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"},"aria-hidden":"true"}),(0,o.jsx)("input",{value:J,onChange:e=>Y(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(J?Y(""):(U(!1),q(null)))},placeholder:E("desktop.searchProjects"),"aria-label":E("desktop.searchProjects"),autoFocus:!0,style:{width:"100%",padding:"8px 12px 8px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",boxSizing:"border-box"}})]})}),tf=(0,o.jsxs)("div",{style:{maxHeight:"min(32vh, 240px)",overflowY:"auto",flex:1,minHeight:0,padding:"4px"},children:[ts.length>0&&(0,o.jsx)("div",{style:{padding:"5px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:E("desktop.recentProjects")}),ts.map(e=>{let t=e===ti,r=function(e,t){if(!t)return!1;let r=e.replace(/\\/g,"/"),o=t.replace(/\\/g,"/");if(!r.startsWith(o))return!1;let n=r.slice(o.length).replace(/^\/+/,"").split("/")[0]??"";return/^pi-cwd-\d{8}$/.test(n)}(e,O);return(0,o.jsxs)("button",{onClick:()=>{A(e),Y(""),Q(!1),X(null),U(!1),q(null)},title:e,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"3px 8px",background:t?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,color:t?"var(--accent)":"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12,fontFamily:"var(--font-mono)",minWidth:0},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[r?(0,o.jsx)(c.l,{size:12,color:t?"var(--accent)":"var(--text-dim)",weight:t?"fill":"regular",style:{flexShrink:0},"aria-hidden":"true"}):t?(0,o.jsx)(p.J,{size:12,color:"var(--accent)",weight:"bold",style:{flexShrink:0},"aria-hidden":"true"}):(0,o.jsx)("span",{style:{width:12,flexShrink:0}}),(0,o.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ec(e)})]},e)}),0===ts.length&&(0,o.jsx)("div",{style:{padding:"8px",fontSize:12,color:"var(--text-dim)"},children:J.trim()?E("desktop.noMatchingProjects"):E("desktop.noProjectsYet")})]}),tx=(0,o.jsxs)("div",{style:{borderTop:"1px solid var(--border)",padding:"4px",flexShrink:0},children:[(0,o.jsxs)("button",{onClick:e=>{e.stopPropagation(),e9()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},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-muted)"},children:[(0,o.jsx)(c.l,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{children:E("desktop.quickWorkspace")})]}),(0,o.jsxs)("button",{onClick:e=>{e.stopPropagation(),e7()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},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-muted)"},children:[(0,o.jsx)(u.Bm,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{children:E("desktop.selectFolder")})]})]}),tk=th?th.branch??ec(th.path):tp?.label,tv=!!(z?.title||z?.welcome);return(0,o.jsxs)(o.Fragment,{children:[G&&(0,o.jsx)(I,{busy:ee,error:Z,onCancel:()=>{ee||(Q(!1),X(null))},onSelect:e=>void e8(e)}),Object.entries(z??{}).map(([e,t])=>{let r,n,s;return t&&(0,a.createPortal)((0,o.jsx)("div",{ref:t=>{en.current[e]=t},children:(r="welcome"===e,n=_===e,s=K===e,M?(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",gap:r?6:2,height:r?"auto":"100%",minWidth:0,width:r?"100%":void 0},children:[(0,o.jsxs)("div",{style:{position:"relative",minWidth:0,width:r?"fit-content":void 0,maxWidth:r?"min(100%, 560px)":void 0},children:[(0,o.jsxs)("button",{className:`app-no-drag app-titlebar-context-control workspace-project-control${r?" workspace-project-control-large":""}`,onClick:()=>q(t=>t===e?null:e),title:ti??D??E("desktop.selectProject"),"aria-label":E("desktop.selectProject"),"aria-expanded":n,style:{height:r?48:36,width:r?"100%":void 0,maxWidth:r?"100%":260,minWidth:0,display:"flex",alignItems:"center",gap:r?10:6,padding:r?"0 12px":"0 8px",background:n?"var(--bg-selected)":"none",border:"none",borderRadius:8*!!r,color:n?"var(--text)":D?r?"var(--text)":"var(--text-muted)":"var(--text-dim)",cursor:"pointer",fontSize:r?24:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,textAlign:"left",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=D?"var(--text)":"var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background=n?"var(--bg-selected)":"none",e.currentTarget.style.color=n?"var(--text)":D?"var(--text-muted)":"var(--text-dim)"},children:[(0,o.jsx)(ep,{text:tg,style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}}),(0,o.jsx)(h.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:n?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,o.jsxs)(eu,{open:n,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:320,zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[tm,tf,tx]})]}),(ta||tp)&&(0,o.jsxs)("div",{style:{position:"relative",minWidth:0},children:[(0,o.jsxs)("button",{className:"app-no-drag app-titlebar-context-control workspace-worktree-control",onClick:()=>{ta&&V(t=>t===e?null:e)},"aria-label":E("desktop.switchWorktree"),"aria-expanded":ta?s:void 0,"aria-disabled":!ta,tabIndex:ta?0:-1,title:ta&&th?E("desktop.switchWorktreeWithPath",{path:th.path}):tp?.title,style:{height:36,maxWidth:220,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:s?"var(--bg-selected)":"none",border:"none",color:s?"var(--text)":ta?"var(--text-muted)":"var(--text-dim)",cursor:ta?"pointer":"default",fontSize:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,opacity:ta?1:.82,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{ta&&(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=s?"var(--bg-selected)":"none",e.currentTarget.style.color=s?"var(--text)":ta?"var(--text-muted)":"var(--text-dim)"},children:[(0,o.jsx)(g.Z,{size:16,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)(ep,{text:tk??"",style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}}),ta&&(0,o.jsx)(h.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:s?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,o.jsxs)(eu,{open:ta&&s,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:320,zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{maxHeight:"min(40vh, 300px)",overflowY:"auto"},children:es?.worktrees.map(e=>{let t=e.path===D||e.isMain&&!es.worktrees.some(e=>e.path===D);return(0,o.jsxs)("button",{onClick:()=>{A(e.path),ex(!1),V(null),ej(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,o.jsx)(p.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,o.jsx)("span",{style:{width:10,flexShrink:0}}),(0,o.jsx)(ep,{text:e.branch??ed(e.path,O),style:{flex:1}}),e.isMain&&(0,o.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:E("desktop.main")})]},e.path)})}),ek?(0,o.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,o.jsx)("input",{ref:eE,value:eb,onChange:e=>{ey(e.target.value),ej(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),te()),"Escape"===e.key&&(ev(!1),ey(""),ej(null))},placeholder:E("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,o.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,o.jsx)("button",{onClick:()=>void te(),disabled:eS||!eb.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:eS||!eb.trim()?"not-allowed":"pointer",opacity:eS||!eb.trim()?.65:1},children:eS?E("desktop.creating"):E("desktop.create")}),(0,o.jsx)("button",{onClick:()=>{ev(!1),ey(""),ej(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:E("desktop.cancel")})]}),ew&&(0,o.jsx)("div",{style:{marginTop:5,color:"#dc2626",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:ew})]}):(0,o.jsx)("button",{onClick:e=>{e.stopPropagation(),ev(!0),ej(null),setTimeout(()=>eE.current?.focus(),0)},title:E("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,o.jsx)("span",{children:E("desktop.newWorktree")})})]})]})]}):null)}),t,e)}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,o.jsxs)("button",{onClick:()=>eN(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,o.jsx)(m.K,{size:9,weight:"regular",style:{transform:eP?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),E("desktop.sessions")]}),(0,o.jsx)("button",{onClick:to,disabled:!D,title:D?E("desktop.newSessionIn",{cwd:D}):E("desktop.selectProjectFirst"),"aria-label":E("desktop.newSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:D?"pointer":"default",borderRadius:5,flexShrink:0,opacity:D?1:.6,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{D&&(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,o.jsx)(f.F,{size:13,weight:"regular","aria-hidden":"true"})}),(0,o.jsx)("button",{onClick:()=>eX(!1),title:E("desktop.refresh"),"aria-label":E("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:eO?"rgba(74,222,128,0.18)":"none",border:"none",color:eO?"#4ade80":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{eO||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{eO||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:eO?(0,o.jsx)(p.J,{size:13,color:"#4ade80",weight:"regular","aria-hidden":"true"}):(0,o.jsx)(x.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),!tv&&(0,o.jsxs)("div",{ref:eo,style:{position:"relative"},children:[(0,o.jsx)("button",{onClick:()=>U(e=>!e),title:ti??D??"",style:{width:"100%",display:"flex",alignItems:"center",padding:"6px 10px",background:D?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:D?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left",transition:"border-color 0.15s, background 0.15s"},children:D?(0,o.jsx)(ep,{text:ed(ti??D,O),style:{flex:1,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text)"}}):(0,o.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:s&&!e1.current?"":"Select project…"})}),(0,o.jsxs)(eu,{open:B,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[tm,tf,tx]})]}),!tv&&ta&&(()=>{if(!es)return null;let e=es.worktrees.find(e=>e.path===D)??es.worktrees.find(e=>e.isMain);return(0,o.jsxs)("div",{ref:eM,style:{position:"relative",marginTop:6},children:[(0,o.jsxs)("button",{onClick:()=>ex(e=>!e),title:e?E("desktop.switchWorktreeWithPath",{path:e.path}):E("desktop.switchWorktree"),style:{width:"100%",height:29,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 10px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",fontSize:11,lineHeight:1.35,color:"var(--text-muted)",textAlign:"left"},children:[(0,o.jsx)(g.Z,{size:11,weight:"regular",style:{flexShrink:0,color:e&&!e.isMain?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true"}),(0,o.jsx)(ep,{text:e?e.branch??ed(e.path,O):"…",style:{flex:1,fontFamily:"var(--font-mono)",color:"var(--text)"}}),e?.isMain&&(0,o.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:E("desktop.main")}),es.worktrees.length>1&&(0,o.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:es.worktrees.length}),(0,o.jsx)(h.a,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"})]}),(0,o.jsxs)(eu,{open:ef,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{maxHeight:"min(40vh, 300px)",overflowY:"auto"},children:es.worktrees.map(e=>{let t=e.path===D||e.isMain&&!es.worktrees.some(e=>e.path===D);return eI===e.path?(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"rgba(239,68,68,0.06)"},children:[(0,o.jsx)("span",{style:{flex:1,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:E("desktop.uncommittedChanges")}),(0,o.jsx)("button",{onClick:()=>void tt(e.path,!0),disabled:eS,style:{padding:"3px 9px",background:"#ef4444",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:E("desktop.force")}),(0,o.jsx)("button",{onClick:()=>eT(null),style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:E("desktop.cancel")})]},e.path):(0,o.jsxs)("div",{className:"wt-row",style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border)"},children:[(0,o.jsxs)("button",{onClick:()=>{A(e.path),ex(!1),ej(null)},title:e.path,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px",background:"var(--bg)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,o.jsx)(p.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,o.jsx)("span",{style:{width:10,flexShrink:0}}),(0,o.jsx)(ep,{text:e.branch??ed(e.path,O),style:{flex:1}}),e.isMain&&(0,o.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:E("desktop.main")})]}),!e.isMain&&(0,o.jsx)("button",{onClick:()=>void tt(e.path,!1),disabled:eS,title:E("desktop.removeWorktree",{path:e.path}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:34,height:28,padding:0,marginRight:4,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="#ef4444",e.currentTarget.style.background="rgba(239,68,68,0.08)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,o.jsx)(k.l,{size:12,weight:"regular","aria-hidden":"true"})})]},e.path)})}),ek?(0,o.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,o.jsx)("input",{ref:eE,value:eb,onChange:e=>{ey(e.target.value),ej(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),te()),"Escape"===e.key&&(ev(!1),ey(""),ej(null))},placeholder:E("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,o.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,o.jsx)("button",{onClick:()=>void te(),disabled:eS||!eb.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:eS||!eb.trim()?"not-allowed":"pointer",opacity:eS||!eb.trim()?.65:1},children:eS?E("desktop.creating"):E("desktop.create")}),(0,o.jsx)("button",{onClick:()=>{ev(!1),ey(""),ej(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:E("desktop.cancel")})]})]}):(0,o.jsxs)("button",{onClick:e=>{e.stopPropagation(),ev(!0),ej(null),setTimeout(()=>eE.current?.focus(),0)},title:E("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,o.jsx)(f.F,{size:10,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{children:E("desktop.newWorktree")})]}),ew&&(0,o.jsx)("div",{style:{padding:"5px 10px 8px",color:"#dc2626",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:ew})]})]})})(),!tv&&tp&&(0,o.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:tp.title,style:{width:"100%",height:29,boxSizing:"border-box",marginTop:6,display:"flex",alignItems:"center",gap:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-hover)",color:"var(--text-dim)",fontSize:11,lineHeight:1.35,whiteSpace:"nowrap",textAlign:"left",cursor:"default",opacity:.82},children:[(0,o.jsx)(g.Z,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:tp.label})]})]}),eP&&(0,o.jsxs)("div",{style:{flex:e$?"0 1 auto":"1 1 0",overflowY:"auto",padding:"0",minHeight:0,maxHeight:e$?"min(40%, 360px)":"none"},children:[$&&(0,o.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:E("desktop.loading")}),F&&(0,o.jsx)("div",{style:{padding:"12px 14px",color:"#f87171",fontSize:12},children:F}),!$&&!F&&0===tl.length&&(0,o.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:E("desktop.noSessionsFound")}),tu.map(t=>(0,o.jsx)(eg,{node:t,selectedSessionId:e,runningSessionIds:e_,unreadSessionIds:eK,onSelectSession:tr,onRenamed:eX,onSessionDeleted:e=>{b?.(e),eX()},depth:0},t.session.id))]}),(y||D)&&(0,o.jsxs)("div",{style:{borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",flex:e$?"1 1 0":"0 0 auto",minHeight:0,overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,o.jsxs)("button",{onClick:()=>eL(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,o.jsx)(m.K,{size:9,weight:"regular",style:{transform:e$?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),E("desktop.explorer")]}),e$&&(0,o.jsx)("button",{onClick:()=>eZ.current?.openUploadPicker(),disabled:eD,title:E("desktop.uploadFilesToProjectRoot"),"aria-label":E("desktop.uploadFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:eD?"default":"pointer",borderRadius:5,flexShrink:0,opacity:eD?.6:1,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{eD||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{eD||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,o.jsx)(v.C,{size:13,weight:"regular","aria-hidden":"true"})}),(0,o.jsx)("button",{onClick:()=>{eW(e=>e+1),eU(!0),eQ.current&&clearTimeout(eQ.current),eQ.current=setTimeout(()=>eU(!1),2e3)},title:E("desktop.refreshExplorer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:eB?"rgba(74,222,128,0.18)":"none",border:"none",color:eB?"#4ade80":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{eB||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{eB||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:eB?(0,o.jsx)(p.J,{size:13,color:"#4ade80",weight:"regular","aria-hidden":"true"}):(0,o.jsx)(x.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),e$&&(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",overflowX:"hidden"},children:(0,o.jsx)(er,{ref:eZ,cwd:D??y,onOpenFile:S??(()=>{}),refreshKey:eF,onAtMention:T,onAtMentions:R,onUploadBusyChange:eA})})]}),(y||D)&&(0,o.jsx)(ei,{cwd:D??y,refreshKey:eF,onOpenFile:S??(()=>{})})]})]})}function eg({node:e,selectedSessionId:t,runningSessionIds:r,unreadSessionIds:s,onSelectSession:i,onRenamed:l,onSessionDeleted:a,depth:d}){let[c,p]=(0,n.useState)(!1),u=e.children.length>0;return(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{style:{position:"relative"},children:[d>0&&(0,o.jsx)("div",{style:{position:"absolute",left:12*d+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,o.jsx)(ex,{session:e.session,isSelected:e.session.id===t,isRunning:r.has(e.session.id),isUnread:s.has(e.session.id),onClick:()=>i(e.session),onRenamed:l,onDeleted:e=>a?.(e),depth:d,hasChildren:u,collapsed:c,onToggleCollapse:()=>p(e=>!e)})]}),u&&!c&&(0,o.jsx)("div",{children:e.children.map(e=>(0,o.jsx)(eg,{node:e,selectedSessionId:t,runningSessionIds:r,unreadSessionIds:s,onSelectSession:i,onRenamed:l,onSessionDeleted:a,depth:d+1},e.session.id))})]})}function em(){let{t:e}=(0,w.s)();return(0,o.jsx)("span",{title:e("desktop.agentRunning"),"aria-label":e("desktop.agentRunningLabel"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,o.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{display:"block"},children:(0,o.jsxs)("g",{children:[(0,o.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4",stroke:"currentColor",strokeWidth:"2.8",strokeLinecap:"round"}),(0,o.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"0.9s",repeatCount:"indefinite"})]})})})}function ef(){let{t:e}=(0,w.s)();return(0,o.jsx)("span",{title:e("desktop.newActivity"),"aria-label":e("desktop.newSessionActivity"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,o.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",style:{display:"block"},children:(0,o.jsx)("circle",{cx:"7",cy:"7",r:"3",fill:"currentColor",children:(0,o.jsx)("animate",{attributeName:"opacity",values:"1;0.25;1",dur:"1.6s",repeatCount:"indefinite"})})})})}function ex({session:e,isSelected:t,isRunning:r,isUnread:s,onClick:i,onRenamed:l,onDeleted:a,depth:d=0,hasChildren:c=!1,collapsed:p=!1,onToggleCollapse:u}){var m;let f,x,v,j,S,{t:C}=(0,w.s)(),[I,T]=(0,n.useState)(!1),[R,z]=(0,n.useState)(!1),[M,E]=(0,n.useState)(""),[P,N]=(0,n.useState)(0),[$,L]=(0,n.useState)(0),[F,W]=(0,n.useState)(!1),[D,A]=(0,n.useState)(!1),[O,H]=(0,n.useState)(!1),[B,U]=(0,n.useState)(null),_=(0,n.useRef)(null),q=(0,n.useRef)(null),K=e.name||e.firstMessage.slice(0,50)||e.id.slice(0,12);(0,n.useLayoutEffect)(()=>{R&&L(q.current?.getBoundingClientRect().width??0)},[R,M,P]);let V=(0,n.useCallback)(e=>{e.stopPropagation(),E(K),N(K.length),z(!0),setTimeout(()=>_.current?.select(),0)},[K]),J=(0,n.useCallback)(async()=>{let t=M.trim();if(z(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),l?.()}catch{}},[M,e.id,e.name,l]),Y=(0,n.useCallback)(async t=>{if(t.stopPropagation(),!O&&0!==e.messageCount){H(!0),U(null);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||`HTTP ${t.status}`);l?.()}catch(e){U(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[O,e.id,e.messageCount,l]),G=(0,n.useCallback)(async()=>{A(!0);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"});if(!t.ok)throw Error(`HTTP ${t.status}`);a?.(e.id)}catch{A(!1)}},[e.id,a]),Q=(0,n.useCallback)(e=>{e.stopPropagation(),e.shiftKey?G():W(!0)},[G]),Z=(0,n.useCallback)(e=>{e.stopPropagation(),W(!1),G()},[G]),X=(0,n.useCallback)(e=>{e.stopPropagation(),W(!1)},[]);return(0,o.jsx)("div",{onClick:F||R?void 0:i,onMouseEnter:()=>T(!0),onMouseLeave:()=>{T(!1)},style:{height:50,display:"flex",alignItems:"center",paddingLeft:d>0?12*d+14:14,paddingRight:8,cursor:F||R?"default":"pointer",background:F?"rgba(239,68,68,0.06)":t?"var(--bg-selected)":I?"var(--bg-hover)":"transparent",borderLeft:F?"2px solid #ef4444":t?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.1s",opacity:D?.5:1,gap:6,overflow:"hidden"},children:F?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:C("desktop.deleteSession",{title:`“${K.slice(0,22)}${K.length>22?"…":""}”`})}),(0,o.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,o.jsxs)("button",{onClick:Z,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"#ef4444",border:"none",borderRadius:6,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,o.jsx)(k.l,{size:12,weight:"regular","aria-hidden":"true"}),C("desktop.delete")]}),(0,o.jsx)("button",{onClick:X,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:C("desktop.cancel")})]})]}):(0,o.jsxs)(o.Fragment,{children:[d>0&&(0,o.jsx)(g.Z,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20,fontSize:12,fontWeight:t?500:400,lineHeight:"20px",color:"var(--text)"},title:r?`${K} \xb7 ${C("desktop.agentRunning")}`:s?`${K} \xb7 ${C("desktop.newActivity")}`:K,children:[r?(0,o.jsx)(em,{}):s?(0,o.jsx)(ef,{}):null,R?(0,o.jsxs)("div",{style:{position:"relative",flex:"1 1 0",alignSelf:"stretch",width:"100%",minWidth:0,height:20,background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",borderRadius:3},children:[(0,o.jsx)("span",{ref:q,"aria-hidden":"true",style:{position:"absolute",visibility:"hidden",whiteSpace:"pre",font:"inherit",lineHeight:"inherit"},children:M.slice(0,P)}),(0,o.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:2,bottom:2,left:$,width:2,background:"var(--accent)",borderRadius:1,animation:"blink 1s step-end infinite",pointerEvents:"none"}}),(0,o.jsx)("input",{ref:_,value:M,onChange:e=>{E(e.target.value),N(e.target.selectionStart??e.target.value.length)},onSelect:e=>N(e.currentTarget.selectionEnd??0),onBlur:J,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),J()),"Escape"===e.key&&(e.preventDefault(),z(!1))},"aria-label":C("desktop.rename"),autoFocus:!0,style:{width:"100%",minWidth:0,height:20,margin:0,padding:0,border:"none",outline:"none",background:"transparent",borderRadius:"inherit",color:"inherit",font:"inherit",lineHeight:"inherit",caretColor:"transparent"}})]}):(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1},children:K}),c&&(0,o.jsx)("button",{onClick:e=>{e.stopPropagation(),u?.()},title:C(p?"desktop.expandForks":"desktop.collapseForks"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:p?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,o.jsx)(h.a,{size:10,weight:"regular","aria-hidden":"true"})}),I&&!R&&(0,o.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,o.jsx)("button",{onClick:Y,disabled:O||0===e.messageCount,title:B??C(0===e.messageCount?"desktop.titleNeedsMessages":O?"desktop.generatingTitle":"desktop.generateTitle"),"aria-label":C("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:B?"#ef4444":"var(--text-dim)",cursor:O||0===e.messageCount?"default":"pointer",flexShrink:0,opacity:O?.7:0===e.messageCount?.35:1,transition:"color 0.12s"},onMouseEnter:t=>{O||0===e.messageCount||(t.currentTarget.style.color=B?"#ef4444":"var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=B?"#ef4444":"var(--text-dim)"},children:O?(0,o.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,o.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,o.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,o.jsx)(b.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,o.jsx)("button",{onClick:V,title:C("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,o.jsx)(y.I,{size:13,weight:"regular","aria-hidden":"true"})}),(0,o.jsx)("button",{onClick:Q,title:C("desktop.deleteWithShift"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="#ef4444"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,o.jsx)(k.l,{size:13,weight:"regular","aria-hidden":"true"})})]})]}),(0,o.jsxs)("div",{style:{marginTop:2,display:"flex",gap:8,color:"var(--text-dim)",fontSize:11,minWidth:0},children:[(0,o.jsx)("span",{title:e.modified,children:(m=e.modified,f=new Date(m),v=Math.floor((x=new Date().getTime()-f.getTime())/6e4),j=Math.floor(x/36e5),S=Math.floor(x/864e5),v<1?C("desktop.justNow"):v<60?C("desktop.minutesAgo",{count:v}):j<24?C("desktop.hoursAgo",{count:j}):S<7?C("desktop.daysAgo",{count:S}):f.toLocaleDateString())}),(0,o.jsx)("span",{children:C("desktop.messagesCount",{count:e.messageCount})}),e.worktreeBranch&&(0,o.jsxs)("span",{title:C("desktop.worktree",{cwd:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,o.jsx)(g.Z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]})]})})}let ek=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,ev=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,eb=/\x1B\[([0-9;]*)m/g,ey=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],ew=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function ej(e){return e.replace(ek,"")}function eS(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(ev);if(t){r+=t[0].length;continue}}let o=e.codePointAt(r);if(void 0===o)break;let n=String.fromCodePoint(o);t.push({start:r,end:r+n.length,char:n}),r+=n.length}return t}function eC(e,t){let r=eS(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function eI(e){return eS(e)[0]?.char}function eT(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function eR(e,t={}){return(e.content??[]).filter(e=>!eT(e,t))}function ez(e,t={}){let r=eR(e,t),o=r.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===o?{answerBlocks:r,processBlocks:[]}:{answerBlocks:r.slice(o+1),processBlocks:r.slice(0,o+1)}}function eM(e,t){return(e.content??[]).filter(e=>"thinking"!==e.type||e.deferred||t||e.thinking.trim().length>0)}function eE(e,t,r){return`${e??`message-${t}`}:${r}`}function eP(e,t){let{messageIndex:r,entryId:o,phase:n,toolResults:s,isStreaming:i=!1}=t;return"custom"===e.role?e.display?[{id:eE(o,r,0),type:"custom",customType:e.customType,message:e,origin:{phase:n,placement:"standalone",sourceMessageIndex:r,sourceEntryId:o}}]:[]:"assistant"!==e.role?[]:(t.blocks??eM(e,i)).map((t,i)=>{let l=e.content.indexOf(t),a=l>=0?l:i,d={phase:n,placement:"standalone",sourceMessageIndex:r,sourceEntryId:o,sourceBlockIndex:a},c=eE(o,r,a);if("text"===t.type)return{id:c,type:"text",text:t.text,origin:d};if("image"===t.type)return{id:c,type:"image",source:t.source,origin:d};if("thinking"===t.type)return{id:c,type:"thinking",thinking:t.thinking,deferred:t.deferred,origin:d};let p=s?.get(t.toolCallId);return{id:c,type:"toolCall",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input,result:p,duration:function(e,t){if(!e.timestamp||!t?.timestamp)return;let r=Math.round((t.timestamp-e.timestamp)/1e3);return r>0?r:void 0}(e,p),status:p?.isError?"error":p?"success":"running",origin:{...d,groupId:t.toolCallId}}})}function eN(e,t){let r=eM(e,t.isStreaming??!1),o=r.findLastIndex(e=>"text"!==e.type&&"image"!==e.type),n=-1===o?[]:r.slice(0,o+1),s=-1===o?r:r.slice(o+1);return{processBlocks:eP(e,{...t,phase:"process",blocks:n}),resultBlocks:eP(e,{...t,phase:"result",blocks:s})}}function e$(e,t,r,o){return r.flatMap(r=>eP(e[r],{messageIndex:r,entryId:t[r],phase:"process",toolResults:o}))}var eL=r(19447),eF=r(32316),eW=r(16764);let eD=new Set;function eA(e){return eD.add(e),()=>{eD.delete(e)}}function eO(){eD.forEach(e=>e())}let eH="pi-theme-mode",eB="pi-theme",eU="pi-border-depth";function e_(){try{if(null===localStorage.getItem(eB)){let e=function(){try{let e=localStorage.getItem("pi-theme-dark"),t=localStorage.getItem("pi-theme-light");for(let r of[e,t]){if(!r||"dark"===r||"light"===r)continue;let e=r.replace(/-dark$/i,"").replace(/-light$/i,"");if(e&&e!==r)return localStorage.setItem(eB,e),localStorage.removeItem("pi-theme-dark"),localStorage.removeItem("pi-theme-light"),e}let r=e||t;if(r&&"dark"!==r&&"light"!==r)return localStorage.setItem(eB,r),localStorage.removeItem("pi-theme-dark"),localStorage.removeItem("pi-theme-light"),r}catch{}return null}();if(e)return e}let e=localStorage.getItem(eB);if(e)return e}catch{}return""}function eq(){try{let e=localStorage.getItem(eU);if(null!==e){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<=100)return t}}catch{}return 50}function eK(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function eV(e){return"system"===e?eK()?"dark":"light":e}function eJ(){if("u"<typeof document)return"dark";let e=document.documentElement.dataset.themeMode;if("dark"===e||"light"===e||"system"===e)return e;try{let e=localStorage.getItem(eH);if("dark"===e||"light"===e||"system"===e)return e}catch{}return"dark"}function eY(){if("u"<typeof document)return"";let e=document.documentElement.dataset.theme;return e||e_()}function eG(){return"dark"}let eQ=["--bg","--bg-panel","--bg-secondary","--bg-card","--bg-hover","--bg-selected","--bg-card-hover","--bg-subtle","--border","--border-hover","--text","--text-muted","--text-dim","--accent","--accent-hover","--accent-blue","--accent-red","--accent-green","--accent-orange","--git-status-added","--git-status-modified","--git-status-deleted","--git-status-added-bg","--git-status-modified-bg","--git-status-deleted-bg","--user-bg","--assistant-bg","--tool-bg","--hatch-color"],eZ=["--border-orig","--border-hover-orig"];function eX(){let e=document.documentElement;for(let t of eQ)e.style.removeProperty(t);for(let t of eZ)e.style.removeProperty(t)}function e0(e){let t=document.documentElement,r=document.documentElement,o=r.style.getPropertyValue("--border-orig").trim(),n=r.style.getPropertyValue("--border-hover-orig").trim();if(!o||!n){let e=getComputedStyle(r);!o&&(o=e.getPropertyValue("--border").trim())&&r.style.setProperty("--border-orig",o),!n&&(n=e.getPropertyValue("--border-hover").trim())&&r.style.setProperty("--border-hover-orig",n)}if(50===e){let e=t.style.getPropertyValue("--border-orig").trim(),r=t.style.getPropertyValue("--border-hover-orig").trim();e?t.style.setProperty("--border",e):t.style.removeProperty("--border"),r?t.style.setProperty("--border-hover",r):t.style.removeProperty("--border-hover");return}let s=e/100,i=e=>{if(s<=.5){let t=Math.round(2*s*100);return`color-mix(in srgb, var(${e}) ${t}%, var(--bg) ${100-t}%)`}{let t=Math.round((s-.5)*200);return`color-mix(in srgb, var(${e}) ${100-t}%, var(--text) ${t}%)`}};t.style.setProperty("--border",i("--border-orig")),t.style.setProperty("--border-hover",i("--border-hover-orig"))}let e1=new Map;async function e2(e,t){let r=`${e}::${t}`;if(e1.has(r))return e1.get(r);try{let o=await fetch(`/api/themes/${encodeURIComponent(e)}?mode=${t}`);if(!o.ok)return null;let n=await o.json();return e1.set(r,n),n}catch{return null}}async function e4(e,t){let r=document.documentElement;if("dark"===e?r.classList.add("dark"):r.classList.remove("dark"),!t){delete r.dataset.theme,eX();return}r.dataset.theme=t;let o=await e2(t,e);if(o){var n=o.cssVars;let e=document.documentElement;for(let t of eQ)n[t]?e.style.setProperty(t,n[t]):e.style.removeProperty(t);n["--border"]?e.style.setProperty("--border-orig",n["--border"]):e.style.removeProperty("--border-orig"),n["--border-hover"]?e.style.setProperty("--border-hover-orig",n["--border-hover"]):e.style.removeProperty("--border-hover-orig")}else console.warn(`Theme "${t}" variant "${e}" not found, using defaults`),eX()}function e6(){let e=(0,n.useSyncExternalStore)(eA,eJ,eG),t=(0,n.useSyncExternalStore)(eA,eY,()=>""),[r,o]=(0,n.useState)(()=>{if("u">typeof document){let e=document.documentElement.dataset.themeResolvedMode;if("dark"===e||"light"===e)return e}return eV(eJ())}),[s,i]=(0,n.useState)(()=>eq()),l=(0,n.useCallback)(e=>{let t=Math.max(0,Math.min(100,Math.round(e)));i(t);try{localStorage.setItem(eU,String(t))}catch{}e0(t)},[]),a="dark"===r,d=(0,n.useRef)(!1),c=(0,n.useCallback)((e,t,r)=>{let n=document.documentElement;n.dataset.themeMode=t,n.dataset.themeResolvedMode=e,"dark"===e?n.classList.add("dark"):n.classList.remove("dark"),r?n.dataset.theme=r:delete n.dataset.theme,o(e)},[]);(0,n.useEffect)(()=>{let r=document.documentElement,o=r.dataset.themeMode,n=r.dataset.theme,s="dark"===o||"light"===o||"system"===o?o:e,i=n||t;if(d.current)return;d.current=!0;let l=eV(s);c(l,s,i),e4(l,i).finally(()=>{d.current=!1;try{localStorage.setItem(eH,s)}catch{}try{localStorage.setItem(eB,i)}catch{}e0(eq()),eO()})},[]),(0,n.useEffect)(()=>{var e;let t;return e=()=>{if("system"===eJ()){let e=eK()?"dark":"light",t=e_();c(e,"system",t),e4(e,t),e0(eq()),eO()}},(t=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",e),()=>t.removeEventListener("change",e)},[c]);let p=(0,n.useCallback)(async e=>{if(!d.current){d.current=!0;try{await e4(r,e);try{localStorage.setItem(eB,e)}catch{}let t=eJ();c(r,t,e),e0(eq()),eO()}finally{d.current=!1}}},[r,c]),u=(0,n.useCallback)(async e=>{if(d.current)return;d.current=!0;let t=eV(e),r=e_();try{await e4(t,r);try{localStorage.setItem(eH,e)}catch{}c(t,e,r),e0(eq()),eO()}finally{d.current=!1}},[c]),h=(0,n.useCallback)(e=>{let t=eJ(),o="system"===t?"dark"===r?"light":"dark":"dark"===t?"light":"dark",n=()=>{u(o)},s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||s)return void n();let i=e?.x??window.innerWidth/2,l=e?.y??window.innerHeight/2,a=Math.hypot(Math.max(i,window.innerWidth-i),Math.max(l,window.innerHeight-l));document.startViewTransition(()=>{n()}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${i}px ${l}px)`,`circle(${a}px at ${i}px ${l}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[r,u]);return{mode:e,resolvedMode:r,themeName:t,setMode:u,setTheme:p,toggleTheme:h,isDark:a,borderDepth:s,setBorderDepth:l}}function e5(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}function e3(e){try{return decodeURIComponent(e)}catch{return e}}function e8(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function e7(e){let t=e8(e),r=/^[a-zA-Z]:\//.test(t),o=t.startsWith("//"),n=t.startsWith("/")&&!r&&!o,s=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){s.length>0&&".."!==s[s.length-1]?s.pop():n||r||o||s.push(e);continue}s.push(e)}let i=s.join("/");return r?i:o?`//${i}`:n?`/${i}`:i}function e9(e,t,r=t){let o,n,s,i,l;if(!e)return null;let a=e.split("#",1)[0].split("?",1)[0].trim();if(!a)return null;let d=null,c=null,p=e3(a),u=p.startsWith("\\\\"),h=e8(p),g=h.toLowerCase();if(g.startsWith("/api/")||g.startsWith("/_next/")||!u&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!g.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(g.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=e3(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(h))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(d=h,c="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(d=`${e8(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let m=e7(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&r&&(o=e7(m).replace(/\/+$/,""),n=e7(r).replace(/\/+$/,""),i=(s=/^[a-zA-Z]:\//.test(o)||/^[a-zA-Z]:\//.test(n))?o.toLowerCase():o,!(i===(l=s?n.toLowerCase():n)||i.startsWith(`${l}/`)))?null:m}function te(e,t,r){let o=function(e){let t=0xdeadbeef,r=0x41c6ce57;for(let o=0;o<e.length;o++){let n=e.charCodeAt(o);t=Math.imul(t^n,0x9e3779b1),r=Math.imul(r^n,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(r^r>>>13,0xc2b2ae35),(0x100000000*(2097151&(r=Math.imul(r^r>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35)))+(t>>>0)).toString(36)}(e);if(r){let n=r.get(o);if(void 0!==n)return{id:o,text:n,tail:t};r.set(o,e)}return{id:o,text:e,tail:t}}let tt=/^ {0,3}(`{3,}|~{3,})/;var tr=r(88374),to=r(63280),tn=r(94764),ts=r(63835),ti=r(84678),tl=r(98164);let ta={...tn.j,attributes:{...tn.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...tn.j.strip||[],"iframe","object","style","form"]},td=[ti.A,tl.A],tc=[to.A,[ts.A,ta],[tr.A,{throwOnError:!1,strict:!1}]];function tp(e){return String(e).toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g,"-").replace(/^-+|-+$/g,"")}function tu(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),o=null;return r.map(e=>{let r=e.match(/^ {0,3}(`{3,}|~{3,})/);if(r){let t=r[1][0],n=r[1].length;return o?t===o.marker&&n>=o.size&&(o=null):o={marker:t,size:n},e}if(o)return e;let n=e.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!n)return e;let s=n[2].trim();return s?`${n[1]}$$${t}${s}${t}${n[1]}$$`:e}).join(t)}let th={'pre[class*="language-"]':{color:"var(--text)",background:"transparent"},'code[class*="language-"]':{color:"var(--text)",background:"transparent"},comment:{color:"var(--text-dim)",fontStyle:"italic"},prolog:{color:"var(--text-dim)",fontStyle:"italic"},doctype:{color:"var(--text-dim)",fontStyle:"italic"},cdata:{color:"var(--text-dim)"},punctuation:{color:"var(--text-muted)"},operator:{color:"var(--text-muted)"},string:{color:"var(--accent-orange)"},char:{color:"var(--accent-orange)"},builtin:{color:"var(--accent-orange)"},"attr-value":{color:"var(--accent-orange)"},keyword:{color:"var(--accent)"},atrule:{color:"var(--accent)"},property:{color:"var(--accent-blue)"},"attr-name":{color:"var(--accent-blue)"},variable:{color:"var(--accent-blue)"},parameter:{color:"var(--accent-blue)"},constant:{color:"var(--accent-blue)"},number:{color:"var(--accent-blue)"},boolean:{color:"var(--accent-blue)"},symbol:{color:"var(--accent-blue)"},function:{color:"var(--accent-green)"},"class-name":{color:"var(--accent-green)"},"maybe-class-name":{color:"var(--accent-green)"},tag:{color:"var(--accent-red)"},selector:{color:"var(--accent-red)"},regex:{color:"var(--accent-red)"},entity:{color:"var(--accent-red)"},deleted:{color:"var(--accent-red)"},inserted:{color:"var(--accent-green)"},important:{color:"var(--accent-orange)",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};function tg(e){return e.replace(/[*_`~]/g,"").trim()}function tm(e,t){return e.length>t?e.slice(0,t).trimEnd()+"…":e}function tf(e){return e.replace(/^(我要|我想我?|你想要?|你想我?|你想要?|想要?|需要|你来|你来?|用|使用|选|选择|我|你)\s*/u,"").replace(/[吗吧呢]?$/u,"").replace(/[??,,。.!!、]$/gu,"").trim()}function tx({segments:e,onPick:t,onOpenFile:r,cwd:s,innerRef:i}){let{t:l}=(0,w.s)(),[a,d]=(0,n.useState)([]);return((0,n.useEffect)(()=>{let t=!1;return Promise.all(Array.from(new Set(e.flatMap(e=>(function(e){let t=new Set,r=[];for(let o of e.matchAll(/(?:\.[\w-]+\/|[\w-]+\/)+[\w.@-]+\.\w+|\b[A-Za-z0-9_.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|md|mdx|json|py|go|rs|css|scss|html|sh|yml|yaml|toml|lock|txt|sql|env)\b/gu)){let e=o[0];(e=e.replace(/[),。、;:!!??)>"'`]$/u,"")).length>=3&&!t.has(e)&&(t.add(e),r.push(e))}return r})(e.text)))).map(e=>e.startsWith("/")?e:s?V(s,e):e).map(async e=>{try{return(await fetch(`/api/files/${_(e)}?type=meta`)).ok?e:null}catch{return null}})).then(e=>{t||d(e.filter(e=>!!e))}),()=>{t=!0}},[e,s]),0===e.length)?null:(0,o.jsxs)("span",{ref:i,style:{display:"flex",flexDirection:"column",gap:3,marginTop:4,width:"fit-content",maxWidth:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:4,boxShadow:"0 4px 14px rgba(0,0,0,0.14)"},onMouseDown:e=>e.preventDefault(),onClick:e=>e.stopPropagation(),children:[r&&a.length>0&&(0,o.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:a.map(e=>(0,o.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},title:l("desktop.openFile"),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:"var(--accent)",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis"},children:[(0,o.jsx)(tv,{}),l("desktop.openFile"),": ",e.split("/").pop()]},e))}),e.map((e,r)=>(0,o.jsx)(tk,{segment:e,onPick:t,t:l},r))]})}function tk({segment:e,onPick:t,t:r}){let n=e.options??[{label:r("desktop.quoteReply"),value:""}];return(0,o.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:n.map((r,n)=>(0,o.jsx)("button",{onClick:o=>{var n,s;let i;o.stopPropagation(),t((n=e.text,s=r.value||void 0,i=tg(n).split("\n").map(e=>`> ${e}`).join("\n"),s?`${i}
|
|
2
|
+
${s}`:`${i}
|
|
3
|
+
`))},title:e.text.slice(0,60),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:r.value?"var(--accent)":"var(--text-muted)",background:r.value?"color-mix(in srgb, var(--accent) 10%, transparent)":"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis",transition:"background 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)"},children:r.label},n))})}function tv(){return(0,o.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})}function tb(e,t,r){return Math.min(r,Math.max(t,e))}function ty(e,t,r,o){return r<=0||o<=0||e<=0||t<=0?1:Math.min(.9*e/r,.9*t/o)}function tw({children:e,contentWidth:t,contentHeight:r,title:s,ariaLabel:i,onClose:l}){let{t:a}=(0,w.s)(),d=(0,n.useRef)(null),c=(0,n.useRef)(null),p=t+26,u=r+26,[h,g]=(0,n.useState)(1),[m,f]=(0,n.useState)({scale:1,tx:0,ty:0}),[x,k]=(0,n.useState)(!1),[v,b]=(0,n.useState)(!1),y=(0,n.useRef)(0),j=(0,n.useRef)(h),S=(0,n.useRef)(m);j.current=h,S.current=m;let C=(0,n.useRef)(null),I=(0,n.useCallback)((e,t,r)=>{let{scale:o,tx:n,ty:s}=S.current,i=j.current,l=tb(e,.25*i,3*i);l!==o&&f({scale:l,tx:t-(t-n)*l/o,ty:r-(r-s)*l/o})},[]),T=(0,n.useCallback)(e=>{let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),o=r.width/2,n=r.height/2,s=j.current;I((S.current.scale/s+.25*e)*s,o,n)},[I]),R=(0,n.useCallback)(()=>{let e=c.current;if(!e)return;let{clientWidth:t,clientHeight:r}=e,o=ty(t,r,p,u);g(o),f({scale:o,tx:(t-p*o)/2,ty:(r-u*o)/2})},[p,u]);(0,n.useEffect)(()=>{let e=d.current;if(!e)return;let t=document.body.style.overflow;document.body.style.overflow="hidden",e.showModal();let r=requestAnimationFrame(()=>{R()});return()=>{cancelAnimationFrame(r),document.body.style.overflow=t,e.open&&e.close()}},[R]),(0,n.useEffect)(()=>{let e=c.current;if(!e||"u"<typeof ResizeObserver)return;let t=!1,r=new ResizeObserver(()=>{if(!t){t=!0;return}let{clientWidth:r,clientHeight:o}=e;if(r<=0||o<=0)return;let n=j.current,s=S.current,i=s.scale/n,l=ty(r,o,p,u),a=tb(i*l,.25*l,3*l),d=r/2,c=o/2,h=(d-s.tx)/s.scale,m=(c-s.ty)/s.scale;g(l),f({scale:a,tx:d-h*a,ty:c-m*a})});return r.observe(e),()=>r.disconnect()},[p,u]);let z=e=>{let t=C.current;if(!t||t.pointerId!==e.pointerId)return;t.capturing&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId);let r=t.moved;C.current=null,k(!1),r&&(y.current=Date.now())},M=Math.round(m.scale/h*100),E=.25*h,P=3*h;return(0,o.jsx)("dialog",{ref:d,className:"mermaid-zoom-dialog","aria-label":i,onCancel:e=>{e.preventDefault(),l()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),l())},children:(0,o.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,o.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[s?(0,o.jsx)("span",{className:"mermaid-zoom-title",children:s}):null,!v&&(0,o.jsx)("span",{className:"mermaid-zoom-hint",children:a("desktop.zoomPanHint")}),(0,o.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,o.jsx)("button",{type:"button",className:["mermaid-zoom-icon-button","mermaid-zoom-select-button",v?"is-active":""].filter(Boolean).join(" "),onClick:()=>b(e=>!e),title:a("desktop.selectText"),"aria-label":a("desktop.selectText"),"aria-pressed":v,children:(0,o.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M4 6V4h16v2M4 18v2h16v-2M12 4v16"})})}),(0,o.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,o.jsx)("button",{type:"button",onClick:()=>T(-1),disabled:m.scale<=E+1e-9,title:a("desktop.zoomOut"),"aria-label":a("desktop.zoomOut"),children:(0,o.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M5 12h14"})})}),(0,o.jsxs)("button",{type:"button",className:"mermaid-zoom-value",onClick:()=>{R()},title:a("desktop.resetZoom"),"aria-label":`${M}%`,children:[M,"%"]}),(0,o.jsx)("button",{type:"button",onClick:()=>T(1),disabled:m.scale>=P-1e-9,title:a("desktop.zoomIn"),"aria-label":a("desktop.zoomIn"),children:(0,o.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,o.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:R,title:a("desktop.fitToViewport"),"aria-label":a("desktop.fitToViewport"),children:(0,o.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,o.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,o.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:l,title:a("desktop.close"),"aria-label":a("desktop.close"),children:(0,o.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,o.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,o.jsx)("div",{ref:c,className:["mermaid-zoom-viewport",v?"is-selecting":"",x?"is-dragging":""].filter(Boolean).join(" "),onWheel:e=>{e.preventDefault();let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),o=e.clientX-r.left,n=e.clientY-r.top,s=Math.exp(-(.0015*e.deltaY));I(S.current.scale*s,o,n)},onPointerDown:e=>{0!==e.button||v||(C.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originTx:S.current.tx,originTy:S.current.ty,moved:!1,capturing:!1})},onPointerMove:e=>{let t=C.current;if(!t||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX,o=e.clientY-t.startY;if(!t.moved){if(4>Math.hypot(r,o))return;t.moved=!0,t.capturing=!0,k(!0),e.currentTarget.setPointerCapture(e.pointerId)}f(e=>({...e,tx:t.originTx+r,ty:t.originTy+o}))},onPointerUp:z,onPointerCancel:z,onClick:e=>{if(Date.now()-y.current<500||e.target!==e.currentTarget)return;let t=window.getSelection();(!t||t.isCollapsed)&&l()},onDoubleClick:e=>{if(v)return;e.preventDefault();let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),o=e.clientX-r.left,n=e.clientY-r.top,s=j.current,i=.05>Math.abs(S.current.scale/s-1)?2:1;1===i?R():I(i*s,o,n)},children:(0,o.jsx)("div",{className:"mermaid-zoom-world",style:{width:t*m.scale+26,height:r*m.scale+26,left:m.tx,top:m.ty},children:(0,o.jsx)("div",{className:"mermaid-zoom-canvas",children:e})})})]})})}let tj=(0,n.createContext)({openId:null,setOpenId:()=>{}});function tS({isStreaming:e,cwd:t,onOpenFile:r,onQuoteReply:n,quoteScope:s="markdown"}){return{h1:({children:e})=>(0,o.jsx)("h1",{id:tp(e),className:"scroll-mt-24 text-xl font-semibold mt-4 mb-2 text-(--text)",children:e}),h2:({children:e})=>(0,o.jsx)("h2",{id:tp(e),className:"scroll-mt-24 text-lg font-semibold mt-3 mb-2 text-(--text)",children:e}),h3:({children:e})=>(0,o.jsx)("h3",{id:tp(e),className:"scroll-mt-24 text-base font-semibold mt-3 mb-1 text-(--text)",children:e}),code({className:t,children:r,...n}){let s=t?.replace("language-","").toLowerCase()??"",i=String(r);return t?.includes("language-")||i.includes("\n")?"mermaid"===s?(0,o.jsx)(tR,{code:i.replace(/\n$/,""),isStreaming:e}):(0,o.jsx)(tE,{code:i.replace(/\n$/,""),lang:s,isStreaming:e}):(0,o.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...n,children:r})},pre:({children:e})=>(0,o.jsx)(o.Fragment,{children:e}),p({children:e,node:i,...l}){let a=`${s}-p-${i?.position?.start?.offset??0}`;return n?(0,o.jsx)(tM,{pid:a,onQuoteReply:n,onOpenFile:r,cwd:t,children:e}):(0,o.jsx)("p",{...l,children:e})},li({children:e,node:i,...l}){let a=`${s}-li-${i?.position?.start?.offset??0}`;return n?(0,o.jsx)(tM,{as:"li",pid:a,onQuoteReply:n,onOpenFile:r,cwd:t,children:e}):(0,o.jsx)("li",{...l,children:e})},a({href:e,children:n,...s}){delete s.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=r?e9(e,t):null;return l&&r?(0,o.jsx)("a",{href:e,...s,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),r(l))},children:n}):(0,o.jsx)("a",{href:e,...s,className:i,target:"_blank",rel:"noopener noreferrer",children:n})},img({src:e,alt:r,...n}){delete n.node;let s="string"==typeof e?e9(e,t):null,i=s?`/api/files/${_(s)}?type=read`:e;return(0,o.jsx)("img",{src:i,alt:r??"",loading:"lazy",...n})},table:({children:e})=>(0,o.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,o.jsx)("div",{className:"overflow-x-auto",children:(0,o.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})}),tr({children:e,node:i,...l}){let a=`${s}-tr-${i?.position?.start?.offset??0}`;return n?(0,o.jsx)(tM,{as:"tr",pid:a,onQuoteReply:n,onOpenFile:r,cwd:t,children:e}):(0,o.jsx)("tr",{...l,children:e})}}}let tC=(0,n.memo)(function({text:e,isStreaming:t,cwd:r,onOpenFile:s,onQuoteReply:i,quoteScope:l}){let a=(0,n.useMemo)(()=>tu(e),[e]),d=(0,n.useMemo)(()=>tS({isStreaming:t,cwd:r,onOpenFile:s,onQuoteReply:i,quoteScope:l}),[t,r,s,i,l]);return(0,o.jsx)(eF.oz,{remarkPlugins:td,rehypePlugins:tc,components:d,children:a})});function tI({children:e,className:t,isStreaming:r,cwd:s,onOpenFile:i,onQuoteReply:l}){let a=(0,n.useMemo)(()=>tu(e),[e]),d=(0,n.useRef)(new Map),c=(0,n.useMemo)(()=>(function(e,t){let r;if(0===e.length)return[];let o=e.split(/\r?\n/),n="",s=0,i=!1,l=-1;for(let e=0;e<o.length;e++){let t=tt.exec(o[e]);i?t&&t[1][0]===n&&t[1].length>=s&&(i=!1,n="",s=0,l=-1):t&&(n=t[1][0],s=t[1].length,i=!0,l=e)}if(l>=0)r=l;else{let e=-1;for(let t=0;t<o.length;t++)""===o[t]&&(e=t);r=e+1}let a=o.slice(0,r),d=o.slice(r),c=[],p=[],u=()=>{for(;p.length>0&&""===p[p.length-1];)p.pop();for(;p.length>0&&""===p[0];)p.shift();p.length>0&&(c.push(te(p.join("\n"),!1,t)),p=[])};for(let e of a)""===e&&p.length>0?u():p.push(e);for(p.length>0&&u();d.length>0&&""===d[0];)d.shift();return d.length>0&&c.push(te(d.join("\n"),!0,t)),c})(a,d.current),[a]),p=r&&c.length>1,u=(0,n.useMemo)(()=>tS({isStreaming:r,cwd:s,onOpenFile:i,onQuoteReply:l,quoteScope:"full"}),[r,s,i,l]);return(0,o.jsx)(tT,{children:(0,o.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:p?c.map(e=>(0,o.jsx)(tC,{text:e.text,isStreaming:!!e.tail&&r,cwd:s,onOpenFile:i,onQuoteReply:l,quoteScope:e.id},e.id)):(0,o.jsx)(eF.oz,{remarkPlugins:td,rehypePlugins:tc,components:u,children:a})})})}function tT({children:e}){let[t,r]=(0,n.useState)(null),s=(0,n.useMemo)(()=>({openId:t,setOpenId:r}),[t]);return(0,o.jsx)(tj.Provider,{value:s,children:e})}function tR({code:e,isStreaming:t}){let{t:s}=(0,w.s)(),{isDark:i}=e6(),[l,a]=(0,n.useState)(!1),[d,c]=(0,n.useState)(null),[p,u]=(0,n.useState)(""),[h,g]=(0,n.useState)(null),[m,f]=(0,n.useState)(!1),x=`${i?"dark":"light"}
|
|
4
|
+
${e}`;(0,n.useEffect)(()=>{if(!l||t)return;let o=!1;return g(null),(async()=>{let{default:t}=await Promise.all([r.e(5958),r.e(3716),r.e(1812)]).then(r.bind(r,28776));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:i?"dark":"default"}),!await t.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let n="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,s=await t.render(n,e);o||(c(s.svg),u(x))})().catch(()=>{o||g(x)}),()=>{o=!0}},[e,x,i,t,l]);let k=(0,o.jsx)("button",{onClick:()=>a(e=>!e),disabled:t,title:s(t?"desktop.markdownPreviewAvailableAfterStreaming":l?"desktop.source":"desktop.markdownPreviewMermaidDiagram"),className:["markdown-code-action",l?"is-active":""].filter(Boolean).join(" "),children:s(l?"desktop.source":"desktop.preview")});if(!l||t)return(0,o.jsx)(tE,{code:e,lang:"mermaid",headerAction:k,isStreaming:t});let v=h===x?(0,o.jsx)("div",{className:"mermaid-block mermaid-block-error",children:s("desktop.markdownInvalidMermaidDiagram")}):d&&p===x?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:s("desktop.openMermaidViewer"),"aria-label":s("desktop.openMermaidViewer"),onClick:()=>f(!0),dangerouslySetInnerHTML:{__html:d}}),m&&(0,o.jsx)(tz,{svg:d,onClose:()=>f(!1)})]}):(0,o.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":s("desktop.markdownRenderingMermaidDiagram")});return(0,o.jsxs)("div",{className:"markdown-code-block",children:[(0,o.jsxs)("div",{className:"markdown-code-header",children:[(0,o.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),(0,o.jsx)("div",{className:"markdown-code-actions",children:k})]}),v]})}function tz({svg:e,onClose:t}){let{t:r}=(0,w.s)(),s=(0,n.useMemo)(()=>(function(e){if("u"<typeof DOMParser)return{html:e,width:800,height:600};let t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(!t||"svg"!==t.tagName.toLowerCase())return{html:e,width:800,height:600};let r=0,o=0,n=t.getAttribute("viewBox");if(n){let e=n.trim().split(/[\s,]+/).map(Number);4===e.length&&e.every(e=>Number.isFinite(e))&&(r=e[2],o=e[3])}return r>0&&o>0||(r=parseFloat(t.getAttribute("width")||""),o=parseFloat(t.getAttribute("height")||"")),r>0&&o>0||(r=800,o=600),t.removeAttribute("width"),t.removeAttribute("height"),t.style.maxWidth="none",t.getAttribute("viewBox")||t.setAttribute("viewBox",`0 0 ${r} ${o}`),{html:t.outerHTML,width:r,height:o}})(e),[e]);return(0,o.jsx)(tw,{contentWidth:s.width,contentHeight:s.height,title:r("desktop.mermaidDiagram"),ariaLabel:r("desktop.mermaidViewer"),onClose:t,children:(0,o.jsx)("div",{dangerouslySetInnerHTML:{__html:s.html}})})}function tM({children:e,onQuoteReply:t,onOpenFile:r,cwd:s,as:i="p",pid:l}){let{openId:a,setOpenId:d}=(0,n.useContext)(tj),{t:c}=(0,w.s)(),p=a===l,u=(0,n.useRef)(null),[h,g]=(0,n.useState)(null),[m,f]=(0,n.useState)(!1),[x,k]=(0,n.useState)(1),v=(0,n.useRef)(null),[b]=(0,n.useState)(()=>window.matchMedia?.("(pointer: coarse)").matches);(0,n.useEffect)(()=>{!p&&h&&g(null)},[p,h]);let y=(0,n.useRef)(null);(0,n.useEffect)(()=>{h&&y.current&&y.current.scrollIntoView({block:"nearest"})},[h]);let j=()=>{g(null),d(null)},S=()=>{h?j():(()=>{let e;if(h||p)return;let t=u.current,r=(!(e=tg("tr"===i&&t?Array.from(t.querySelectorAll("td, th")).map(e=>(e.textContent??"").trim()).join(" | "):t?.textContent??""))?[]:e.split(/(?<=[??])|[;;]/u).map(e=>e.trim()).filter(e=>e.length>0)).map(e=>({text:e,options:function(e){let t=tg(e);if(!t)return null;let r=t.match(/^(.+?)\s*(?:还是|或者|或者还是|\bor\b)\s*(.+?)[??]?\s*$/iu);if(r){let e=tf(r[1]),t=tf(r[2]);if(e&&t&&e!==t)return[{label:tm(e,12),value:e},{label:tm(t,12),value:t}]}if(!/怎么|如何|怎样|哪个|哪些|什么|为什么|为何|谁|多少|几(个|点|时)?|what|how|why|who|where/u.test(t)&&(/[??]\s*$/u.test(t)||/(?:吗|吧|呢)[??]?\s*$/u.test(t)||/是否|要不要|能不能|可不可以|要不要我|需要我/u.test(t))){let e=t.replace(/^(要我|需要我|要不要我?|是否|能不能|可不可以|要不要|或者|还是|你能|你可以|请|麻烦)\s*/u,"").replace(/[吗吧呢啊呀]?[??]+$/u,"").replace(/[吗吧呢啊呀]$/u,"").trim();return e&&e.length<=16?[{label:`好,${tm(e,10)}`,value:"是的"},{label:"不用",value:"不用了"}]:[{label:"是",value:"是的"},{label:"否",value:"不用了"}]}return null}(e)}));r.length>0&&("tr"===i&&t&&k(Math.max(1,t.querySelectorAll("td, th").length)),g(r),d(l))})()},C=(e,t)=>{v.current&&(v.current.style.left=`${e+12}px`,v.current.style.top=`${t+14}px`)},I=h&&(0,o.jsx)(tx,{innerRef:y,segments:h,onPick:e=>{t(e),j()},onOpenFile:r,cwd:s});return"tr"===i?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("tr",{ref:e=>{u.current=e},onClick:S,title:b||h?void 0:c("desktop.quoteReplyHint"),style:{cursor:"pointer"},children:e}),I&&(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:x,children:I})})]}):(0,o.jsxs)(i,{ref:u,onMouseEnter:e=>{if(b)return;f(!0);let{clientX:t,clientY:r}=e;requestAnimationFrame(()=>C(t,r))},onMouseMove:b?void 0:e=>C(e.clientX,e.clientY),onMouseLeave:()=>f(!1),onClick:S,style:{position:"relative",cursor:"pointer"},children:[e,m&&!h&&(0,o.jsx)("span",{ref:v,style:{position:"fixed",left:-9999,top:-9999,fontSize:11,color:"var(--text-dim)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,padding:"2px 6px",pointerEvents:"none",zIndex:50,whiteSpace:"nowrap"},children:c("desktop.quoteReplyHint")}),I]})}function tE({code:e,lang:t,headerAction:r,isStreaming:s}){let{t:i}=(0,w.s)(),[l,a]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1);return(0,o.jsxs)("div",{className:"markdown-code-block",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,o.jsxs)("div",{style:{position:"absolute",top:6,right:8,zIndex:1,display:"flex",alignItems:"center",gap:6,opacity:+!!d,pointerEvents:d?"auto":"none",transition:"opacity 0.12s"},children:[(0,o.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",userSelect:"none"},children:t||i("desktop.markdownPlainText")}),r,(0,o.jsx)("button",{onClick:()=>{e5(e).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},title:i(l?"desktop.copied":"desktop.copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,border:"none",borderRadius:5,background:"transparent",color:l?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:10,transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:l?(0,o.jsx)(p.J,{size:11,"aria-hidden":"true"}):(0,o.jsx)(eL.Q,{size:11,"aria-hidden":"true"})})]}),s?(0,o.jsx)("pre",{className:"markdown-code-streaming",children:(0,o.jsx)("code",{children:e})}):(0,o.jsx)(eW.A,{language:t||"text",style:th,showLineNumbers:!1,customStyle:{margin:0,padding:"10px 16px",fontSize:13,lineHeight:1.65,borderRadius:0,border:"none",background:"var(--bg-secondary)"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:e})]})}let tP=/^<skill name="([^"]+)" location="([^"]+)">/,tN="\n</skill>",t$=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,tL=/(?:\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 tF({content:e}){var t,r,s;let i,{t:l}=(0,w.s)(),[a,d]=(0,n.useState)(!1),c="string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),p=(0,n.useMemo)(()=>{let e,t,r,o,n;return e=[],t=[],r=c.match(tL),o=r?.[1]??"",n=r?.index===void 0?c:c.slice(0,r.index),o.replace(t$,(r,o,n)=>{let s=n.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===o?e.push(...s):t.push(...s),""}),{body:n.trim(),readFiles:e,modifiedFiles:t}},[c]),u=(t=p.readFiles.length,r=p.modifiedFiles.length,s=l,i=[],t>0&&i.push(s("desktop.readFilesCount",{count:t})),r>0&&i.push(s("desktop.modifiedFilesCount",{count:r})),i.length>0?i.join(", "):null),[h,g]=(0,n.useState)(!1),[f,x]=(0,n.useState)(!1),k=(0,n.useRef)(null),v=(0,n.useCallback)(()=>{let e=k.current;e&&(g(e.scrollTop>0),x(e.scrollHeight-e.scrollTop-e.clientHeight>1))},[]);return(0,n.useEffect)(()=>{let e=k.current;if(!e||!a)return;let t=new ResizeObserver(v);return e.addEventListener("scroll",v,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),v(),()=>{e.removeEventListener("scroll",v),t.disconnect()}},[a,v]),(0,o.jsxs)("div",{className:"group/process relative mb-3 min-w-0",children:[(0,o.jsx)("div",{className:"group/summary-row flex items-center justify-between",children:(0,o.jsxs)("button",{type:"button",onClick:()=>d(e=>!e),className:"group/summary flex min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed text-text-muted transition-colors hover:text-text","aria-expanded":a,children:[(0,o.jsx)("span",{className:"truncate",children:l("desktop.conversationCompacted")}),(0,o.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${a?"rotate-90":""}`,children:(0,o.jsx)(m.J,{size:12,className:"shrink-0 transition-all duration-150"})})]})}),a&&(0,o.jsxs)("div",{className:"relative mt-2",children:[(0,o.jsxs)("div",{ref:k,className:"max-h-[280px] overflow-y-auto pr-2 text-text-dim",children:[(0,o.jsx)("p",{className:"mb-2 text-xs leading-relaxed",children:l("desktop.compactionSummaryDescription")}),p.body?(0,o.jsx)(tI,{className:"!text-text-dim",children:p.body}):(0,o.jsx)("span",{className:"text-xs",children:l("desktop.noSummary")}),u&&(0,o.jsxs)("div",{className:"mt-3 border-t border-border pt-2 text-xs",children:[(0,o.jsx)("div",{className:"font-medium",children:l("desktop.fileContext",{context:u})}),p.modifiedFiles.length>0&&(0,o.jsx)(tW,{title:l("desktop.modifiedFiles"),files:p.modifiedFiles}),p.readFiles.length>0&&(0,o.jsx)(tW,{title:l("desktop.readFiles"),files:p.readFiles})]})]}),h&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),f&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]})]})}function tW({title:e,files:t}){return(0,o.jsxs)("div",{className:"mt-2",children:[(0,o.jsx)("div",{className:"mb-1 font-mono text-[11px] font-medium text-text",children:e}),(0,o.jsx)("ul",{className:"max-h-45 overflow-auto rounded-sm border border-border bg-bg-subtle px-2 py-1.5 font-mono text-[11px] leading-relaxed",children:t.map(e=>(0,o.jsx)("li",{className:"break-all",children:e},e))})]})}function tD(e){let t,r=[],o=null,n=0,s=0,i=[],l=[],a=()=>({lineNo:null,text:"",type:"empty"}),d=()=>{if(!o){i=[],l=[];return}let e=Math.max(i.length,l.length);for(let t=0;t<e;t++){let e=i[t]?{lineNo:i[t].lineNo,text:i[t].text,type:"removed"}:a(),r=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"added"}:a();o.rows.push({type:"line",left:e,right:r})}i=[],l=[]};for(let a of e.split(/\r?\n/)){if(a.startsWith("--- ")){d(),t=tA(a.slice(4));continue}if(a.startsWith("+++ ")){d(),o={oldPath:t,newPath:tA(a.slice(4)),rows:[]},r.push(o);continue}let e=a.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){o||(o={rows:[]},r.push(o)),d(),n=Number(e[1]),s=Number(e[2]),o.rows.push({type:"hunk",text:a});continue}if(!o)continue;if(a.startsWith("\\ ")){d(),o.rows.push({type:"hunk",text:a});continue}let c=a[0],p=a.slice(1);" "===c?(d(),o.rows.push({type:"line",left:{lineNo:n++,text:p,type:"context"},right:{lineNo:s++,text:p,type:"context"}})):"-"===c?i.push({lineNo:n++,text:p}):"+"===c?l.push({lineNo:s++,text:p}):""!==a&&(d(),o.rows.push({type:"hunk",text:a}))}d();let c=r.filter(e=>e.rows.some(e=>"line"===e.type));return c.length>0?c:null}function tA(e){return e.split(" ")[0].trim()}var tO=r(35831),tH=r(63522),tB=r(22540),tU=r(36462),t_=r(26131),tq=r(47142),tK=r(44368);let tV=new Map;function tJ(e,t,r){let o=`${e}:${t}:${r}`,n=tV.get(o);if(n)return tV.delete(o),tV.set(o,n),n;let s=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${r}`).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 tV.delete(o),e});if(tV.set(o,s),tV.size>100){let e=tV.keys().next().value;e&&tV.delete(e)}return s}function tY(e){if(!e)return null;let t=new Date(e),r=new Date,o=t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate(),n=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(o)return n;let s=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0});return`${s} ${n}`}let tG=(0,n.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:n,cwd:s,onOpenFile:i,onQuoteReply:l,entryId:a,onFork:d,forking:c,onNavigate:p,prevAssistantEntryId:u,onEditContent:h,showTimestamp:g,prevTimestamp:m,sessionId:f}){return"user"===e.role?(0,o.jsx)(tQ,{message:e,cwd:s,onOpenFile:i,entryId:a,onFork:d,forking:c,onNavigate:p,prevAssistantEntryId:u,onEditContent:h}):"assistant"===e.role?(0,o.jsx)(tZ,{message:e,isStreaming:t,toolResults:r,modelNames:n,cwd:s,onOpenFile:i,onQuoteReply:l,showTimestamp:g,prevTimestamp:m,sessionId:f,entryId:a}):"toolResult"===e.role?null:"custom"===e.role?"compaction"===e.customType?(0,o.jsx)(tF,{content:e.content}):(0,o.jsx)(re,{message:e,isStreaming:t,cwd:s,onOpenFile:i}):"bashExecution"===e.role?(0,o.jsx)(rt,{message:e,sessionId:f}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,r){if(t===r||"assistant"!==e.role)return!0;for(let o of e.content??[])if("toolCall"===o.type&&t?.get(o.toolCallId)!==r?.get(o.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.onQuoteReply===t.onQuoteReply&&e.entryId===t.entryId&&e.onFork===t.onFork&&e.forking===t.forking&&e.onNavigate===t.onNavigate&&e.prevAssistantEntryId===t.prevAssistantEntryId&&e.onEditContent===t.onEditContent&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId);function tQ({message:e,cwd:t,onOpenFile:r,entryId:s,onFork:i,forking:l,onNavigate:a,prevAssistantEntryId:d,onEditContent:c}){let{t:u}=(0,w.s)(),[h,g]=(0,n.useState)(!1),[m,f]=(0,n.useState)(!1),x="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),k="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),v=(x&&x.trim()?x.trim().startsWith("/")?x:function(e){let t=e.match(tP);if(!t)return null;let r=t[1],o=e.indexOf(tN),n="";if(-1!==o){let t=e.slice(o+tN.length);t.startsWith("\n\n")&&(n=t.slice(2).trim())}return n?`/skill:${r} ${n}`:`/skill:${r}`}(x):null)??x,b=tY(e.timestamp),y=!!s&&!!i,j=!!d&&!!a;return(0,o.jsxs)("div",{className:"chat-user-message",onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:[(0,o.jsx)("div",{className:"chat-user-bubble-wrap",children:(0,o.jsxs)("div",{className:"chat-user-bubble",children:[k.length>0&&(0,o.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!x},children:k.map((e,t)=>{let r=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,o.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}},t)})}),v&&(0,o.jsx)(tI,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:v})]})}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,o.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!h,pointerEvents:h?"auto":"none",transition:"opacity 0.12s"},children:(0,o.jsx)("button",{onClick:()=>{e5(x).then(()=>{f(!0),setTimeout(()=>f(!1),1500)})},title:u("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:m?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{m||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{m||(e.currentTarget.style.color="var(--text-dim)")},children:m?(0,o.jsx)(p.S,{size:11}):(0,o.jsx)(eL.T,{size:11})})}),(y||j)&&(0,o.jsxs)("div",{style:{display:"flex",gap:3,opacity:h||l?1:0,pointerEvents:h||l?"auto":"none",transition:"opacity 0.12s"},children:[j&&(0,o.jsx)("button",{onClick:()=>{a(d),c?.(x)},title:u("desktop.editFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,o.jsx)(tO.S,{size:11})}),y&&(0,o.jsx)("button",{onClick:()=>{i(s)},disabled:l,title:u(l?"desktop.creatingNewSession":"desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:l?"not-allowed":"pointer",transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:(0,o.jsx)(tK.C,{size:11})})]}),b&&(0,o.jsx)("span",{style:{fontSize:11,color:h?"var(--text-muted)":"var(--text-dim)",opacity:h?1:.5,transition:"color 0.15s, opacity 0.15s"},children:b})]})]})}function tZ({message:e,isStreaming:t,toolResults:r,modelNames:s,cwd:i,onOpenFile:l,onQuoteReply:a,showTimestamp:d,prevTimestamp:c,sessionId:u,entryId:h}){let{t:g}=(0,w.s)(),m=d?tY(e.timestamp):null,f=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!eT(e,{isStreaming:t})),x=f.map(({block:e})=>e),[k,v]=(0,n.useState)(!1),[b,y]=(0,n.useState)(!1),j=(0,n.useRef)(null),[S,C]=(0,n.useState)(null),I=(0,n.useRef)(f);I.current=f;let T=(0,n.useRef)(new Map),[R,z]=(0,n.useState)(new Map),M=(0,n.useMemo)(()=>{if(!e.timestamp||!c)return;let t=Math.round((e.timestamp-c)/1e3);return t>0?t:void 0},[e.timestamp,c]),E=(0,n.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[o,n]of r)if(n.timestamp&&e.timestamp){let r=Math.round((n.timestamp-e.timestamp)/1e3);r>0&&t.set(o,r)}return t},[r,e.timestamp]),P=x.filter(e=>"text"===e.type).map(e=>e.text).join("\n");(0,n.useEffect)(()=>{if(!t){let e=new Date().getTime();z(t=>{let r=new Map(t);for(let[t,o]of T.current)r.has(t)||r.set(t,Math.round((e-o)/1e3));return r}),j.current=null,C(null);return}let e=setInterval(()=>{let e=I.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{T.current.has(e)||T.current.set(e,r)}),z(t=>{let o=!1,n=new Map(t);for(let t=0;t<e.length-1;t++){let s=e[t].originalIndex,i=e[t+1].originalIndex;if(!n.has(s)&&T.current.has(s)){let e=T.current.get(s),t=T.current.get(i)??r;n.set(s,Math.round((t-e)/1e3)),o=!0}}return o?n:t});let o=0;for(let e of t)"text"===e.type?o+=e.text?.length??0:"thinking"===e.type?o+=e.thinking?.length??0:"toolCall"===e.type&&(o+=JSON.stringify(e.input??{}).length);if(0===o)return;null===j.current&&(j.current=r);let n=(r-j.current)/1e3;n>.5&&C(o/4/n)},300);return()=>clearInterval(e)},[t]);let N=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString(),$="error"===e.stopReason&&e.errorMessage?e.errorMessage:null;return 0!==x.length||t||$?(0,o.jsxs)("div",{className:["chat-assistant-message",t?"is-streaming":""].filter(Boolean).join(" "),onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),children:[t&&(0,o.jsx)("div",{className:"chat-assistant-meta",children:(()=>{let e,t=0;for(let e of x)"text"===e.type?t+=e.text?.length??0:"thinking"===e.type?t+=e.thinking?.length??0:"toolCall"===e.type&&(t+=JSON.stringify(e.input??{}).length);let r=Math.round(t/4);return(0,o.jsx)(o.Fragment,{children:r>0&&(0,o.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:g("desktop.estimatedStreamingTokenCount"),children:[(0,o.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,o.jsx)(tU.g,{size:13}),r]}),null!==S&&(e=S>=50?"--accent-green":S>=30?"--accent-blue":S>=15?"--accent-orange":"--accent-red",(0,o.jsx)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:`var(${e})`,color:"var(--bg)",fontSize:11,fontWeight:400},children:g("desktop.tokensPerSecond",{count:S.toFixed(1)})}))]})})})()}),(0,o.jsxs)("div",{className:"chat-assistant-content",children:[$&&(0,o.jsxs)("div",{className:"chat-assistant-error",role:"alert",children:[(0,o.jsx)(tq.M,{size:13,weight:"bold"}),(0,o.jsx)("span",{children:$})]}),f.map(({block:e,originalIndex:n})=>(0,o.jsx)(tX,{block:e,toolResults:r,isStreaming:t,streamingDuration:R.get(n)??("thinking"===e.type?M:void 0),toolCallDurations:E,cwd:i,onOpenFile:l,onQuoteReply:a,sessionId:u,entryId:h,blockIndex:n},`${h??"stream"}-${n}`))]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[!t&&(e.provider||e.usage)&&(0,o.jsxs)("div",{style:{fontSize:11,color:k?"var(--text-muted)":"var(--text-dim)",opacity:k?1:.5,display:"flex",alignItems:"center",gap:5,flexWrap:"wrap",transition:"color 0.15s, opacity 0.15s"},children:[e.provider&&(0,o.jsx)("span",{children:s?.[`${e.provider}:${e.model}`]??s?.[e.model]??e.model}),e.usage&&e.usage.input>0&&(0,o.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)(tB.K,{size:10}),N(e.usage.input)]}),e.usage&&e.usage.output>0&&(0,o.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)(tH.Z,{size:10}),N(e.usage.output)]}),e.usage&&e.usage.cacheRead>0&&(0,o.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)(t_.b,{size:10}),N(e.usage.cacheRead)]}),e.usage&&e.usage.cost?.total>0&&(0,o.jsxs)("span",{children:["$",e.usage.cost.total.toFixed(4)]})]}),P&&!t&&(0,o.jsx)("button",{onClick:()=>{e5(P).then(()=>{y(!0),setTimeout(()=>y(!1),1500)})},title:g("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:b?"var(--accent)":"var(--text-dim)",cursor:"pointer",opacity:+!!k,pointerEvents:k?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{b||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{b||(e.currentTarget.style.color="var(--text-dim)")},children:b?(0,o.jsx)(p.S,{size:11}):(0,o.jsx)(eL.T,{size:11})}),m&&!t&&(0,o.jsx)("span",{style:{fontSize:11,color:k?"var(--text-muted)":"var(--text-dim)",opacity:k?1:.5,marginLeft:"auto",transition:"color 0.15s, opacity 0.15s"},children:m})]})]}):null}function tX({block:e,toolResults:t,isStreaming:r,streamingDuration:n,toolCallDurations:s,cwd:i,onOpenFile:l,onQuoteReply:a,sessionId:d,entryId:c,blockIndex:p}){if("text"===e.type)return(0,o.jsx)(t0,{block:e,isStreaming:r,cwd:i,onOpenFile:l,onQuoteReply:a});if("thinking"===e.type)return(0,o.jsx)(t1,{block:e,duration:n,sessionId:d,entryId:c,blockIndex:p});if("toolCall"===e.type){let r=t?.get(e.toolCallId),n=s?.get(e.toolCallId);return(0,o.jsx)(t4,{block:e,result:r,duration:n})}return null}function t0({block:e,isStreaming:t,cwd:r,onOpenFile:n,onQuoteReply:s}){return(0,o.jsx)(tI,{isStreaming:t,cwd:r,onOpenFile:n,onQuoteReply:s,children:e.text})}function t1({block:e,duration:t,sessionId:r,entryId:s,blockIndex:i,contentOnly:l=!1,isStreaming:a,cwd:d,onOpenFile:c,className:p}){let{t:u}=(0,w.s)(),[h,g]=(0,n.useState)(!1),[m,f]=(0,n.useState)(null),[x,k]=(0,n.useState)(!1),[v,b]=(0,n.useState)(null),y=async()=>{let t=!h;if(g(t),t&&e.deferred&&null===m){if(!r||!s)return void b(u("desktop.thinkingContentUnavailable"));k(!0),b(null);try{f(await tJ(r,s,i))}catch(e){b(e instanceof Error?e.message:String(e))}finally{k(!1)}}};return l?(0,o.jsx)(t2,{block:e,sessionId:r,entryId:s,blockIndex:i,isStreaming:a,cwd:d,onOpenFile:c,className:p}):(0,o.jsxs)("div",{className:"thinking-block",children:[(0,o.jsxs)("button",{onClick:()=>void y(),className:"thinking-block-trigger","aria-expanded":h,children:[(0,o.jsx)("span",{className:`thinking-block-caret ${h?"is-expanded":""}`,"aria-hidden":"true",children:"›"}),(0,o.jsx)("span",{className:"thinking-block-icon","aria-hidden":"true",children:"✦"}),(0,o.jsx)("span",{children:u("desktop.thinking")}),void 0!==t&&(0,o.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[t,"s"]})]}),h&&(0,o.jsx)("div",{className:`thinking-block-content ${v?"is-error":""}`,children:x?u("desktop.loadingThinking"):v??(e.deferred?m:e.thinking)})]})}function t2({block:e,sessionId:t,entryId:r,blockIndex:s,isStreaming:i,cwd:l,onOpenFile:a,className:d}){let{t:c}=(0,w.s)(),[p,u]=(0,n.useState)(null),[h,g]=(0,n.useState)(!0===e.deferred),[m,f]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let o=!1;if(!e.deferred)return void g(!1);if(!t||!r){g(!1),f(c("desktop.thinkingContentUnavailable"));return}return g(!0),f(null),tJ(t,r,s).then(e=>{o||u(e)}).catch(e=>{o||f(e instanceof Error?e.message:String(e))}).finally(()=>{o||g(!1)}),()=>{o=!0}},[e.deferred,s,r,t,c]),h)?(0,o.jsx)("div",{className:"text-xs text-text-dim",children:c("desktop.loadingThinking")}):m?(0,o.jsx)("div",{className:"text-xs text-red-400",children:m}):(0,o.jsx)(tI,{isStreaming:i,cwd:l,onOpenFile:a,className:d,children:e.deferred?p??"":e.thinking})}let t4=(0,n.memo)(function({block:e,result:t,duration:r,processStyle:s=!1}){let i,[l,a]=(0,n.useState)(!1),d=(0,n.useMemo)(()=>JSON.stringify(e.input,null,2),[e.input]),c="edit"===(i=e.toolName.toLowerCase())||i.startsWith("edit_")||i.endsWith(".edit")||i.endsWith("_edit")||i.includes("str_replace")||i.includes("replace_editor"),p=t&&!t.isError?function(e){var t;let r=e.details;if(!("object"==typeof(t=r)&&null!==t&&!Array.isArray(t)))return null;let o="string"==typeof r.patch?r.patch:null;if(o)return{text:o};let n="string"==typeof r.diff?r.diff:null;return n?{text:n}:null}(t):null,u=(0,n.useMemo)(()=>t?t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,[t]),h=null!==u&&("(no output)"===u.trim()||""===u.trim()),g=t?.isError??!1;return(0,o.jsxs)("div",{className:`tool-call-block ${s?"is-process":""} ${g?"is-error":""}`,children:[(0,o.jsxs)("button",{onClick:()=>a(e=>!e),className:"tool-call-trigger","aria-expanded":l,children:[(0,o.jsx)("span",{className:"tool-call-name",children:e.toolName}),(0,o.jsx)("span",{className:"tool-call-preview",children:function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let r=Object.keys(t);return 0===r.length?"":"command"in t?String(t.command).slice(0,120):"path"in t?String(t.path).slice(0,120):"file_path"in t?String(t.file_path).slice(0,120):"pattern"in t?String(t.pattern).slice(0,120):"query"in t?String(t.query).slice(0,120):String(t[r[0]]).slice(0,120)}(e)}),void 0!==r&&(0,o.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[r,"s"]}),(0,o.jsx)("span",{className:`tool-call-caret ${l?"is-expanded":""}`,"aria-hidden":"true",children:(0,o.jsx)(m.J,{size:12})})]}),l&&!c&&(0,o.jsx)("pre",{className:"tool-call-input",children:d}),l&&t&&(p?(0,o.jsx)(t6,{diff:p,processStyle:s}):(0,o.jsx)(t9,{text:u??"",isEmpty:h,isError:g,processStyle:s}))]})});function t6({diff:e,processStyle:t=!1}){return(0,o.jsx)("div",{style:{borderTop:t?"1px solid var(--border)":"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,o.jsx)(t5,{text:e.text})})}function t5({text:e}){let{t}=(0,w.s)(),r=(0,n.useMemo)(()=>tD(e),[e]);if(!r)return(0,o.jsx)(t7,{text:e});let s=r.length>1;return(0,o.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:r.map((e,r)=>(0,o.jsxs)("div",{style:{minWidth:0,borderTop:0===r?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[s&&(0,o.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,o.jsx)(t3,{title:e.oldPath||t("desktop.before"),side:"left"}),(0,o.jsx)(t3,{title:e.newPath||t("desktop.after"),side:"right"})]}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,o.jsxs)("div",{style:{display:"contents"},children:[(0,o.jsx)(t8,{cell:e.left,side:"left"}),(0,o.jsx)(t8,{cell:e.right,side:"right"})]},t))})]},r))})}function t3({title:e,side:t}){return(0,o.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function t8({cell:e,side:t}){let r="added"===e.type?"rgba(34,197,94,0.12)":"removed"===e.type?"rgba(248,113,113,0.13)":"empty"===e.type?"var(--bg-subtle)":"transparent",n="added"===e.type?"+":"removed"===e.type?"-":" ",s="added"===e.type?"#22c55e":"removed"===e.type?"#f87171":"var(--text-dim)";return(0,o.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,o.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:e.lineNo??""}),(0,o.jsx)("span",{style:{width:18,padding:"0 5px",color:s,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:n}),(0,o.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.text||"\xa0"})]})}function t7({text:e}){let t=e.split(/\r?\n/);return(0,o.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let r=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,o.jsxs)("div",{style:{display:"flex",background:"added"===r?"rgba(34,197,94,0.12)":"removed"===r?"rgba(248,113,113,0.13)":"hunk"===r?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===r?"3px solid #22c55e":"removed"===r?"3px solid #f87171":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,o.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,o.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"#22c55e":"removed"===r?"#f87171":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function t9({text:e,isEmpty:t,isError:r,processStyle:s=!1}){let{t:i}=(0,w.s)(),[l,a]=(0,n.useState)(!1),d=!t&&e.length>8e3&&!l,c=d?e.slice(0,8e3):e;return(0,o.jsxs)("div",{style:{borderTop:`1px solid ${s?"var(--border)":r?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:s?"var(--bg-subtle)":r?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:[(0,o.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:r?"#f87171":t?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?i("desktop.noOutput"):c}),d&&(0,o.jsx)("button",{onClick:()=>a(!0),style:{display:"block",margin:"6px 8px 8px",padding:"4px 10px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-dim)",fontSize:11,cursor:"pointer"},children:i("desktop.loadFullOutput")})]})}function re({message:e,isStreaming:t,cwd:r,onOpenFile:s}){var i,l,a,d,c,p;let u,{t:h}=(0,w.s)(),g=!1===e.display,[m,f]=(0,n.useState)(!g),[x,k]=(0,n.useState)(!1),[v,b]=(0,n.useState)(!1),y="string"==typeof(i=e.content)?i:i.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),j="string"==typeof(l=e.content)?[]:l.filter(e=>"image"===e.type),S=void 0!==e.details,C=S?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",I=(a=e.customType,d=h("desktop.extension"),a||d),T=tY(e.timestamp);return(0,o.jsx)("div",{style:{marginBottom:16},children:(0,o.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:g?"var(--bg-subtle)":"var(--bg)",opacity:g&&!m?.82:1},children:[(0,o.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)",fontSize:12},children:[(0,o.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:I}),g&&(0,o.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:h("desktop.hiddenExtensionMessage")}),T&&(0,o.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:T})]}),m?(0,o.jsxs)("div",{style:{padding:"6px 9px"},children:[j.length>0&&(0,o.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!y},children:j.map((e,t)=>{var r;let n=(r=e).source?"base64"===r.source.type?`data:${r.source.media_type};base64,${r.source.data}`:r.source.url??"":r.data?`data:${r.mimeType};base64,${r.data}`:"";return n?(0,o.jsx)("img",{src:n,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},t):null})}),y?(0,o.jsx)(tI,{className:"markdown-custom-message",isStreaming:t,cwd:r,onOpenFile:s,children:y}):(0,o.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:h("desktop.noMessage")})]}):(0,o.jsx)("button",{onClick:()=>f(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:y?(c=y,p=h("desktop.showExtensionMessage"),(u=c.replace(/\s+/g," ").trim())?u.length>140?`${u.slice(0,140)}...`:u:p):h("desktop.showExtensionMessage")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[y||C?(0,o.jsx)("button",{onClick:()=>{e5(y||C).then(()=>{b(!0),setTimeout(()=>b(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:v?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(v?"desktop.copied":"desktop.copy")}):null,(S||g)&&(0,o.jsx)("button",{onClick:()=>{g?f(e=>!e):k(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(g?m?"desktop.collapse":"desktop.expand":x?"desktop.hideDetails":"desktop.showDetails")})]}),S&&(g&&m||!g&&x)&&(0,o.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:C})]})})}function rt({message:e,sessionId:t}){let{t:r}=(0,w.s)(),[s,i]=(0,n.useState)(null),[l,a]=(0,n.useState)(!1),[d,c]=(0,n.useState)(null),p=!e.output&&void 0===e.exitCode&&!e.cancelled,u=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,h=t&&e.fullOutputPath?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`:null,g=s??e.output,m=async()=>{if(h){a(!0),c(null);try{let e=await fetch(h),t=await e.json();if(!e.ok||!t.success)throw Error(t.error??`HTTP ${e.status}`);i(t.data?.output??"")}catch(e){c(e instanceof Error?e.message:String(e))}finally{a(!1)}}},f=e.excludeFromContext?"bash (local)":"bash",x={type:"toolCall",toolCallId:`bash-${e.timestamp??e.command}`,toolName:f,input:{command:e.command}},k=p?void 0:{role:"toolResult",toolCallId:x.toolCallId,toolName:f,content:g?[{type:"text",text:g}]:[],isError:u,timestamp:e.timestamp};return(0,o.jsxs)("div",{style:{margin:"6px 0"},children:[(0,o.jsx)(t4,{block:x,result:k}),e.truncated&&h&&null===s&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[(0,o.jsx)("button",{type:"button",onClick:()=>void m(),disabled:l,style:{padding:"3px 8px",border:"1px solid var(--border)",borderRadius:4,background:"none",color:"var(--text-muted)",cursor:l?"wait":"pointer",fontSize:11},children:r(l?"desktop.loading":"desktop.loadFullOutput")}),(0,o.jsx)("a",{href:`${h}&download=1`,style:{fontSize:11,color:"var(--accent)"},children:r("desktop.download")})]}),d&&(0,o.jsx)("div",{style:{marginTop:4,color:"var(--accent-red)",fontSize:11},children:d})]})}let rr="pi-process-display-mode",ro="tabs",rn="pi-process-display-mode-change";function rs(){let e=window.localStorage.getItem(rr);return"timeline"===e||"tabs"===e?e:ro}function ri(e){let t=t=>{t.key===rr&&e()};return window.addEventListener(rn,e),window.addEventListener("storage",t),()=>{window.removeEventListener(rn,e),window.removeEventListener("storage",t)}}function rl(){return ro}function ra(e,t){if(!e)return!1;let r=new Set(t.map(e=>e.toLowerCase()));return Object.keys(e).some(e=>r.has(e.toLowerCase()))}function rd(e,t){if(!e)return;let r=new Set(t.map(e=>e.toLowerCase()));for(let[t,o]of Object.entries(e)){if(!r.has(t.toLowerCase())||"string"!=typeof o)continue;let e=o.trim();if(e)return e}}function rc(e){return"object"==typeof e&&null!==e?e:{}}function rp(e){return"add"===e||"added"===e||"create"===e?"create":"delete"===e||"deleted"===e||"remove"===e||"removed"===e?"delete":"update"===e||"modified"===e||"edit"===e||"move"===e?"edit":void 0}function ru(e){if(0!==e.length)return 1===new Set(e).size?e[0]:"edit"}function rh(e){if(Array.isArray(e))return ru(e.map(e=>rp(rc(e).type||rc(e).status||rc(e).changeType)).filter(e=>!!e))}function rg(e){if(!e)return;let t=(e.match(/^\*\*\* Add File:/gm)||[]).length,r=(e.match(/^\*\*\* Delete File:/gm)||[]).length,o=(e.match(/^\*\*\* (Update File|Move to):/gm)||[]).length;if(t||r||o){let e=[];if(t)for(let r=0;r<t;r++)e.push("create");if(r)for(let t=0;t<r;t++)e.push("delete");if(o)for(let t=0;t<o;t++)e.push("edit");return ru(e)}return/^@@ -0,0 \+\d+/m.test(e)?"create":/^@@ -\d+(?:,\d+)? \+0,0/m.test(e)?"delete":void 0}function rm(e){let t=rd(e.args,["path","file","filePath","filepath"]);if(t)return t;let r=rd(e.metadata,["relativePath","filePath","filepath","path","file"]);if(r)return r;let o=rd(Array.isArray(e.metadata?.files)?rc(e.metadata.files[0]):{},["relativePath","filePath","filepath","path","file"]);if(o)return o}function rf(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}let rx=new Set(["cd","chdir","pwd","echo","set","export","source",".","pushd","popd","dirs"]),rk=new Set(["timeout"]),rv=new Set(["ls","dir","ll","la","l","tree","eza","exa"]),rb=new Set(["rg","grep","egrep","fgrep","ack","ag","ripgrep"]),ry=new Set(["find","fd","fdfind","locate","mlocate","glob"]),rw=new Set(["cat","head","tail","less","more","bat","nl","wc"]),rj=new Set(["curl","wget","fetch","http","xh","httpx"]),rS=new Set(["rm","del","rmdir","unlink","erase"]),rC=new Set(["cp","mv","copy","move","rename","ren"]);var rI=r(36705),rT=r(94366),rR=r(66129),rz=r(2152),rM=r(30515),rE=r(59304),rP=r(8727),rN=r(60721),r$=r(47208),rL=r(95951),rF=r(29886),rW=r(86756);function rD(e,t){var r,o,n;let s,i,l,a,d,c,p,u,h,g="string"==typeof(a=e.input.label)&&a.trim()?a:e.toolName;if("error"===e.status)return{displayLabel:g,iconName:"warning",tone:void 0};let m=(d=[(o=r={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).toolName,o.title,o.label].filter(Boolean).join("\n").toLowerCase(),c=ra(r.args,["path","file","filePath","filepath"]),p=ra(r.args,["content","oldString","old_string","newString","new_string","patch","diff","edits","text"]),u=ra(r.args,["command","cmd","script"]),h=ra(r.args,["pattern","query"]),u||/\b(bash|shell|terminal|command|run|exec|execute|python|node|npm|pnpm|yarn|cargo|go|pytest|test|build|make|git|docker|kubectl|curl|wget)\b/i.test(d)?"command_execution":/\b(todo|todowrite|todo_write|write_todo|task_list|task\s*list)\b/i.test(d)?"todo_update":/\b(edit|write|patch|apply|modify|replace|update|create|delete|remove|insert|rename|move)\b/i.test(d)||c&&p?"document_change":"ls"===(s=r.toolName.toLowerCase())||"list"===s||"dir"===s||s.startsWith("list_")||s.endsWith("_list")||s.includes("list_directory")||s.includes("list_dir")||/\b(ls|list\s*directory|list\s*dir|dir\s*list|listdir)\b/i.test(d)?"directory_list":"find"===(i=r.toolName.toLowerCase())||"glob"===i||"scan"===i||i.includes("file_search")||i.includes("file_find")||i.startsWith("find_")||i.startsWith("glob_")||i.startsWith("scan_")||/\b(find[_\s]*files?|file[_\s]*find|glob|scan[_\s]*files?)\b/i.test(d)?"file_find":/\b(grep|rg|search|semantic|fuzzy|ripgrep)\b/i.test(d)||(l=r.toolName.toLowerCase()).includes("grep")||l.includes("search")||l.includes("fuzzy")||l.includes("ripgrep")||h&&!p&&!u?"document_search":/\b(read|view|open|cat|show|display)\b/i.test(d)||c&&!p&&!u?"document_read":void 0),f="toolbox";if("document_change"===m){let r,o,s,i=(o=rc((r=(n={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).metadata||{}).filediff),s=function(e){if(!e)return{};try{return rc(JSON.parse(e))}catch{return{}}}(n.result),rh(r.files)??rh(s.files)??rp(r.type||r.status||r.changeType)??(!1===r.exists?"create":void 0)??(!0===r.exists?"edit":void 0)??rg("string"==typeof r.diff?r.diff:"")??rg("string"==typeof r.patch?r.patch:"")??rg("string"==typeof o.patch?o.patch:"")??rg("string"==typeof n.args?.patchText?n.args.patchText:"")??function(e){if(!e)return;let t=e.split(/\r?\n/).map(e=>e.trim()).filter(e=>/^[ADM]\s+/.test(e));if(0!==t.length)return ru(t.map(e=>e.startsWith("A ")?"create":e.startsWith("D ")?"delete":"edit"))}(n.result)??function(e){if(!e)return;let t=e.trim().replace(/\s+/g," ").toLowerCase();return/^(?:rm|del|erase|unlink)\b/.test(t)||/^remove-item\b/.test(t)?"delete":/^mkdir\b/.test(t)?"create":void 0}("string"==typeof n.args?.command?n.args.command:void 0)??"edit");f="create"===i?"filePlus":"delete"===i?"trash":"pencilSimpleLine";let l=t("create"===i?"desktop.processStepFileCreate":"delete"===i?"desktop.processStepFileDelete":"desktop.processStepFileEdit"),a=rm({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return a?{displayLabel:`${l} ${rf(a)}`,iconName:f,target:a,tone:m,typeLabel:l}:{displayLabel:`${l}: ${g}`.slice(0,100),iconName:f,tone:m,typeLabel:l}}if("document_read"===m){f="bookOpen";let r=t("desktop.processStepFileRead"),o=rm({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return o?{displayLabel:`${r} ${rf(o)}`,iconName:f,target:o,tone:m,typeLabel:r}:{displayLabel:g,iconName:f,tone:m,typeLabel:r}}if("document_search"===m){f="magnifyingGlass";let r=t("desktop.processStepSearch"),o="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.query?e.input.query:"";return o?{displayLabel:`${r} "${o.slice(0,60)}"`,iconName:f,tone:m,typeLabel:r}:{displayLabel:g,iconName:f,tone:m,typeLabel:r}}if("directory_list"===m){f="folder";let r=t("desktop.processStepList"),o=rm({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return o?{displayLabel:`${r} ${rf(o)}`,iconName:f,target:o,tone:m,typeLabel:r}:{displayLabel:g,iconName:f,tone:m,typeLabel:r}}if("file_find"===m){f="magnifyingGlass";let r=t("desktop.processStepFind"),o="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.glob?e.input.glob:"";return o?{displayLabel:`${r} "${o.slice(0,60)}"`,iconName:f,tone:m,typeLabel:r}:{displayLabel:g,iconName:f,tone:m,typeLabel:r}}if("command_execution"===m){let r="string"==typeof e.input.command?e.input.command:"string"==typeof e.input.cmd?e.input.cmd:"";if(r){let e=function(e){let t=e.split(/&&|\n|;(?!;)|(?<!\|)\|(?!\|)/),r=e.split(/\s+/)[0]?.replace(/^[.\\/]+/,"")||"sh";for(let e of t){var o;let t=(o=e.trim(),o.match(/"[^"]+"|'[^']+'|\S+/g)?.map(e=>e.replace(/^(["'])(.*)\1$/,"$2"))??[]);if(0===t.length)continue;let r=0;for(;r<t.length&&(rx.has(t[r].toLowerCase())||rk.has(t[r].toLowerCase()));){let e=t[r].toLowerCase();if((r+=1)<t.length&&["cd","chdir","pushd"].includes(e)&&(r+=1),"timeout"===e)for(;r<t.length&&(t[r].startsWith("-")||/^\d/.test(t[r]));)r++}if(r>=t.length)continue;let n=t[r].replace(/^[.\\/]+/,"").toLowerCase(),s=n.split(/[/\\]/).pop()||n,i=r+1;for(;i<t.length&&t[i].startsWith("-");)i+=1;let l=i<t.length?t[i]:void 0;if(rv.has(s))return{kind:"list",binary:s,argument:l};if(rb.has(s))return{kind:"search",binary:s,argument:l};if(ry.has(s))return{kind:"find",binary:s,argument:l};if(rw.has(s))return{kind:"read",binary:s,argument:l};if(rj.has(s))return{kind:"fetch",binary:s,argument:l};if(rS.has(s))return{kind:"delete",binary:s,argument:l};if(rC.has(s))return{kind:"copy",binary:s,argument:l};return{kind:"run",binary:s,argument:l}}return{kind:"run",binary:r}}(r);if("list"===e.kind){f="folder";let r=t("desktop.processStepList"),o=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}if("search"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepSearch"),o=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}if("find"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepFind"),o=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}if("read"===e.kind){f="bookOpen";let r=t("desktop.processStepRead"),o=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r,target:e.argument||void 0}}if("fetch"===e.kind){f="download";let r=t("desktop.processStepFetch"),o=e.argument?` ${e.argument.slice(0,80)}`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}if("delete"===e.kind){f="trash";let r=t("desktop.processStepDelete"),o=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}if("copy"===e.kind){f="copy";let r=t("desktop.processStepCopy"),o=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${o}`,iconName:f,tone:m,typeLabel:r}}f="terminal";let o=t("desktop.processStepCommand"),n=e.argument?`${e.binary} ${e.argument.length>60?e.argument.slice(0,57)+"...":e.argument}`:e.binary;return{displayLabel:`${o} ${n}`,iconName:f,tone:m,typeLabel:o}}return{displayLabel:g,iconName:f="terminal",tone:m}}return"todo_update"===m?{displayLabel:g,iconName:f="checklist",tone:m,typeLabel:t("desktop.processStepTodo")}:{displayLabel:g,iconName:f,tone:m}}function rA({expanded:e}){return(0,o.jsx)(m.J,{size:12,className:`shrink-0 transition-all duration-150 ${e?"rotate-90":""}`})}function rO(e,t=14){switch(e){case"brain":return(0,o.jsx)(rI.$,{size:t});case"bookOpen":return(0,o.jsx)(rT.R,{size:t});case"magnifyingGlass":return(0,o.jsx)(d.$,{size:t});case"pencilSimpleLine":return(0,o.jsx)(r$.B,{size:t});case"filePlus":return(0,o.jsx)(rM.u,{size:t});case"trash":return(0,o.jsx)(k.u,{size:t});case"folder":return(0,o.jsx)(rE.sj,{size:t});case"download":return(0,o.jsx)(M.e,{size:t});case"copy":return(0,o.jsx)(rz.t,{size:t});case"terminal":return(0,o.jsx)(rF.k,{size:t});case"toolbox":default:return(0,o.jsx)(rW.D,{size:t});case"image":return(0,o.jsx)(rP.x,{size:t});case"listBullets":case"checklist":return(0,o.jsx)(rN.j,{size:t});case"warning":case"circleX":return(0,o.jsx)(tq.M,{size:t})}}function rH({step:e,ts:t}){if("thinking"===e.kind)return rO("brain");if("image"===e.kind)return rO("image");if("custom"===e.kind)return rO("listBullets");if("toolGroup"===e.kind)return rO(e.iconName);let{iconName:r}=rD(e.block,t);return rO(r)}function rB({targets:e,typeLabel:t,count:r,label:n}){if(0===e.length)return(0,o.jsx)("span",{className:"max-w-52 truncate",title:n,children:n});if(2===e.length)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"shrink-0",children:t}),(0,o.jsx)(rU,{filePath:e[0]}),(0,o.jsx)(rU,{filePath:e[1]})]});let s=e[0].split(".").pop()?.toLowerCase()||"",i=[],l=new Set([s]);for(let t=1;t<e.length&&i.length<2;t++){let r=e[t].split(".").pop()?.toLowerCase()||"";l.has(r)||(l.add(r),i.push({key:e[t],node:B(e[t],12)}))}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"shrink-0",children:t}),i.length>0&&(0,o.jsx)("span",{className:"shrink-0 inline-flex gap-px",children:i.map(e=>(0,o.jsx)("span",{className:"inline-flex",children:e.node},e.key))}),(0,o.jsx)(rU,{filePath:e[0]}),(0,o.jsxs)("span",{className:"shrink-0 text-[10px] tabular-nums text-text-dim",children:["+",r-1]})]})}function rU({filePath:e}){let t=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,o.jsxs)("span",{className:"process-file-tag",title:e,children:[B(e,12),(0,o.jsx)("span",{children:t})]})}function r_({mode:e}){return"timeline"===e?(0,o.jsx)(rL.D,{size:14}):(0,o.jsx)(rR.j,{size:14})}function rq({step:e,cwd:t,onOpenFile:r,sessionId:n,ts:s,isStreaming:i}){let l;if("thinking"===e.kind)return(0,o.jsx)(rK,{blocks:e.blocks,cwd:t,onOpenFile:r,sessionId:n,isStreaming:i});if("tool"===e.kind)return(0,o.jsxs)("div",{className:"space-y-2",children:[e.leadBlocks.length>0&&(0,o.jsx)(rK,{blocks:e.leadBlocks,cwd:t,onOpenFile:r,sessionId:n,isStreaming:i}),(0,o.jsx)(t4,{block:{type:"toolCall",toolCallId:e.block.toolCallId,toolName:e.block.toolName,input:e.block.input},result:e.block.result,duration:e.block.duration,processStyle:!0})]});if("toolGroup"===e.kind)return(0,o.jsx)("div",{className:"space-y-2",children:e.blocks.map((s,l)=>(0,o.jsxs)("div",{children:[e.leadBlocks[l]&&e.leadBlocks[l].length>0&&(0,o.jsx)("div",{className:"mb-2",children:(0,o.jsx)(rK,{blocks:e.leadBlocks[l],cwd:t,onOpenFile:r,sessionId:n,isStreaming:i})}),(0,o.jsx)(t4,{block:{type:"toolCall",toolCallId:s.toolCallId,toolName:s.toolName,input:s.input},result:s.result,duration:s.duration,processStyle:!0})]},s.id))});if("custom"===e.kind)return(0,o.jsx)(tG,{message:e.block.message,cwd:t,onOpenFile:r,isStreaming:i});let a="url"===(l=e.block.source).type?l.url:l.data?`data:${l.media_type??"image/png"};base64,${l.data}`:void 0;return a?(0,o.jsx)("img",{src:a,alt:s("desktop.processOutput"),className:"max-h-72 max-w-full rounded border border-border object-contain"}):null}function rK({blocks:e,cwd:t,onOpenFile:r,sessionId:n,isStreaming:s}){return(0,o.jsx)("div",{className:"space-y-2 pr-2",children:e.map(e=>"text"===e.type?(0,o.jsx)(tI,{cwd:t,onOpenFile:r,className:"!text-text-dim",isStreaming:s,children:e.text},e.id):(0,o.jsx)(t1,{block:{type:"thinking",thinking:e.thinking,deferred:e.deferred},sessionId:n,entryId:e.origin.sourceEntryId,blockIndex:e.origin.sourceBlockIndex??0,contentOnly:!0,cwd:t,onOpenFile:r,className:"!text-text-dim",isStreaming:s},e.id))})}function rV({blocks:e,isStreaming:t,defaultExpanded:r=!1,onAutoExpanded:s,cwd:i,onOpenFile:l,sessionId:a}){let d,{t:c}=(0,w.s)(),p=(0,n.useCallback)(e=>c(e),[c]),u=(0,n.useMemo)(()=>(function(e,t,r=!1){let o=[],n=[],s=()=>{0!==n.length&&(o.push({kind:"thinking",id:n.map(e=>e.id).join("+"),label:t("desktop.processStepThinking"),blocks:n}),n=[])};for(let r of e){if("thinking"===r.type||"text"===r.type){n.push(r);continue}if("toolCall"===r.type){let{displayLabel:e}=rD(r,t);o.push({kind:"tool",id:r.id,label:e,block:r,leadBlocks:n}),n=[];continue}s(),"custom"===r.type?o.push({kind:"custom",id:r.id,label:r.customType.replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),block:r}):"image"===r.type&&o.push({kind:"image",id:r.id,label:t("desktop.processOutput"),block:r})}s();try{return function(e,t,r){if(e.length<2)return e;let o=[],n=0;for(;n<e.length;){let s,i=e[n];if("tool"!==i.kind||"error"===i.block.status){o.push(i),n++;continue}let l=rD(i.block,t).tone;if(!l){o.push(i),n++;continue}let a=n+1;for(;a<e.length&&"tool"===e[a].kind;){let r=e[a];if("error"===r.block.status||rD(r.block,t).tone!==l)break;a++}if(r&&a===e.length&&a>n+1&&a--,a-n<2){o.push(i),n++;continue}let d=e.slice(n,a),c=d.map(e=>rD(e.block,t)),p=c[0].iconName,u=c[0].typeLabel||"",h=d.map(e=>e.block),g=c.map(e=>e.displayLabel),m=c.map(e=>e.target||""),f=c.map(e=>{if(e.target)return rf(e.target);let t=e.displayLabel;return e.typeLabel&&t.startsWith(e.typeLabel+" ")?t.slice(e.typeLabel.length+1):t}),x=new Set,k=new Set,v=[],b=[];for(let e=0;e<f.length;e++){let t=f[e];x.has(t)||(x.add(t),v.push(t));let r=m[e];r&&!k.has(r)&&(k.add(r),b.push(r))}let y=d.length;s=2===y&&2===v.length?`${u} ${v[0]}, ${v[1]}`:1===v.length?1===y?`${u} ${v[0]}`:`${u} ${v[0]} \xd7${y}`:2===v.length?`${u} ${v[0]}, ${v[1]}`:`${u} ${v[0]} +${v.length-1}`,o.push({kind:"toolGroup",id:h.map(e=>e.id).join("+"),label:s,blocks:h,leadBlocks:d.map(e=>e.leadBlocks),iconName:p,tone:l,typeLabel:u,targetLabels:g,targets:b}),n=a}return o}(o,t,r)}catch(e){return console.error("[ProcessGroup] mergeConsecutiveToolSteps crashed:",e),o}})(e,p,t),[e,p,t]),[h,g]=(0,n.useState)(t||r),[m,f]=(0,n.useState)({}),{displayMode:x,setDisplayMode:k}={displayMode:(0,n.useSyncExternalStore)(ri,rs,rl),setDisplayMode:(0,n.useCallback)(e=>{window.localStorage.setItem(rr,e),window.dispatchEvent(new Event(rn))},[])},[v,b]=(0,n.useState)(0),[y,j]=(0,n.useState)(!1),[S,C]=(0,n.useState)(!1),I=(0,n.useRef)(null),T=(0,n.useRef)(!1),R=(0,n.useRef)(!1),z=(0,n.useRef)(!1),M=(0,n.useRef)(!1),E=(0,n.useRef)(0);(0,n.useEffect)(()=>{if(t){T.current=!0,g(!0);return}if(!T.current)return;M.current=!1,f({});let e=window.setTimeout(()=>g(!1),300);return T.current=!1,()=>window.clearTimeout(e)},[t]),(0,n.useEffect)(()=>{if(r&&!t&&!z.current&&u.length>0){let e=u[u.length-1];z.current=!0,f({[e.id]:!0}),window.requestAnimationFrame(()=>s?.())}},[r,t,s,u]),(0,n.useEffect)(()=>{if(0===u.length)return;let e=u[u.length-1];b(e=>R.current&&e<u.length?e:u.length-1),t&&f(t=>!0===t[e.id]&&1===Object.keys(t).length?t:{[e.id]:!0})},[t,u]);let P=(0,n.useCallback)(()=>{let e=I.current;e&&(j(t=>{let r=e.scrollTop>0;return t===r?t:r}),C(t=>{let r=e.scrollHeight-e.scrollTop-e.clientHeight>1;return t===r?t:r}))},[]),N=(0,n.useCallback)(()=>{if(Date.now()<E.current)return;let e=I.current;e&&(M.current=e.scrollHeight-e.scrollTop-e.clientHeight>4)},[]);if((0,n.useEffect)(()=>{let e=I.current;if(!e||!h)return;let t=new ResizeObserver(P);return e.addEventListener("scroll",P,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),P(),()=>{e.removeEventListener("scroll",P),t.disconnect()}},[v,h,x,t,m,u.length,P]),(0,n.useEffect)(()=>{let e=I.current;if(e&&h)return e.addEventListener("scroll",N,{passive:!0}),()=>e.removeEventListener("scroll",N)},[h,x,N]),(0,n.useEffect)(()=>{t&&I.current&&(M.current||(E.current=Date.now()+100,I.current.scrollTop=I.current.scrollHeight,P()))},[e,t,P]),0===u.length)return null;let $=u.reduce((e,t)=>"tool"===t.kind?e+1:"toolGroup"===t.kind?e+t.blocks.length:e,0),L=u.reduce((e,t)=>"tool"===t.kind&&"error"===t.block.status?e+1:"toolGroup"===t.kind?e+t.blocks.filter(e=>"error"===e.status).length:e,0),F=e.filter(e=>"thinking"===e.type||"text"===e.type).length,W=u.filter(e=>"custom"===e.kind).length,D=1===u.length&&"thinking"===u[0].kind&&!t,A=1===u.length&&("tool"===u[0].kind||"toolGroup"===u[0].kind)&&!t;if(t)d=c("desktop.processWorking");else if(D){let e=function(e){let t;if("thinking"===e.kind){for(let r of e.blocks)"thinking"===r.type&&"number"==typeof r.duration&&(t=(t??0)+r.duration);return t}}(u[0]);d=void 0!==e?c("desktop.processThoughtDone",{duration:e}):c("desktop.processThoughtDoneNoDuration")}else if(A){let e=u[0];if("toolGroup"===e.kind){let t=e.blocks.reduce((e,t)=>e+(t.duration??0),0);d=t>0?`${e.label} ${t}s`:e.label}else{let t=e.block,r=rD(t,p),o=t.duration;d=void 0!==o?`${r.displayLabel} ${o}s`:r.displayLabel}}else{let e=[];if($){let t=1===$?c("desktop.processToolCount",{count:$}):c("desktop.processToolsCount",{count:$});e.push(L>0?t+c("desktop.processFailedCount",{failed:L}):t)}F&&e.push(1===F?c("desktop.processThoughtCount",{count:F}):c("desktop.processThoughtsCount",{count:F})),W&&e.push(1===W?c("desktop.processCustomCount",{count:W}):c("desktop.processCustomsCount",{count:W})),d=e.length>0?c("desktop.processUsed",{summary:e.join(" \xb7 ")}):c("desktop.processCompleted")}return(0,o.jsxs)("div",{className:"group/process relative mb-3 min-w-0",children:[(0,o.jsxs)("div",{className:"group/summary-row flex items-center justify-between",children:[(0,o.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),className:"group/summary flex min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed text-text-muted transition-colors hover:text-text","aria-expanded":h,children:[(0,o.jsx)("span",{className:"truncate",children:d}),(0,o.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${h?"rotate-90":""}`,children:(0,o.jsx)(rA,{expanded:!1})})]}),!D&&(0,o.jsx)("button",{type:"button",onClick:()=>{k("timeline"===x?"tabs":"timeline"),g(!0)},className:"shrink-0 p-1 text-text-dim opacity-0 transition-colors hover:text-text group-hover/summary-row:opacity-100",title:"timeline"===x?c("desktop.processTabMode"):c("desktop.processTimelineMode"),children:(0,o.jsx)(r_,{mode:x})})]}),h&&(0,o.jsx)("div",{className:"overflow-hidden",children:D?(0,o.jsxs)("div",{className:"relative mt-2",children:[(0,o.jsx)("div",{ref:I,className:"max-h-[280px] overflow-y-auto pr-2",children:(0,o.jsx)(rq,{step:u[0],cwd:i,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})}),y&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]}):"timeline"===x?(0,o.jsxs)("div",{className:"relative mt-2",children:[y&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"}),(0,o.jsx)("div",{ref:I,className:t?"max-h-[320px] overflow-y-auto":"",children:(0,o.jsxs)("div",{className:"relative ml-5 space-y-2",children:[(0,o.jsx)("div",{className:"absolute -left-3 -top-1.5 h-4 w-2 rounded-bl border-b border-l border-border"}),u.map((e,r)=>{let n=m[e.id]??!1,s="thinking"===e.kind?e.blocks.some(e=>"text"===e.type?e.text.trim().length>0:e.deferred||e.thinking.trim().length>0):"toolGroup"!==e.kind||e.blocks.length>0,d="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),h="tool"===e.kind?rD(e.block,p):null,g="toolGroup"!==e.kind&&h?.target!==void 0&&h?.typeLabel!==void 0;return(0,o.jsxs)("div",{className:"group/step relative min-w-0",children:[r<u.length-1&&(0,o.jsx)("span",{className:"absolute bottom-[-9px] left-[7px] top-[22px] border-l border-border"}),(0,o.jsxs)("button",{type:"button",onClick:()=>s&&f(t=>({...t,[e.id]:!n})),className:`flex w-full min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed transition-colors ${s?"cursor-pointer":"cursor-default"} ${d?"text-red-400 hover:text-red-300":"text-text-dim hover:text-text-muted"}`,children:[(0,o.jsx)("span",{className:"shrink-0",children:(0,o.jsx)(rH,{step:e,ts:p})}),"toolGroup"===e.kind&&e.targets.length>0?(0,o.jsx)(rB,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):g?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"shrink-0",children:h.typeLabel}),(0,o.jsx)(rU,{filePath:h.target})]}):(0,o.jsx)("span",{className:"truncate",title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,children:e.label}),"tool"===e.kind&&void 0!==e.block.duration&&(0,o.jsxs)("span",{className:"shrink-0 text-[11px] tabular-nums text-text-dim",children:[e.block.duration,"s"]}),d&&(0,o.jsx)("span",{className:"shrink-0 text-[11px] font-medium text-red-400",children:c("desktop.processFailedStep")}),s&&(0,o.jsx)("span",{className:`ml-0.5 shrink-0 opacity-0 transition-opacity group-hover/step:opacity-50 ${n?"rotate-90":""}`,children:(0,o.jsx)(rA,{expanded:!1})})]}),n&&s&&(0,o.jsx)("div",{className:"ml-5 mt-1.5 overflow-hidden",children:(0,o.jsx)(rq,{step:e,cwd:i,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})})]},e.id)})]})})]}):(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:u.map((e,r)=>{let n="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),s="tool"===e.kind?rD(e.block,p):null,i="toolGroup"!==e.kind&&s?.target!==void 0&&s?.typeLabel!==void 0,l=t&&r===u.length-1,a=v===r;return(0,o.jsxs)("button",{type:"button",onClick:()=>{r===u.length-1&&t?(R.current=!1,M.current=!1):R.current=!0,b(r)},"data-has-file-target":i?"true":void 0,title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,className:`process-tab flex items-center gap-1 font-mono text-xs transition-colors ${a?n?"process-tab-error":"process-tab-active":"text-text-dim hover:text-text"}${l?" process-tab-streaming":""}`,children:[(0,o.jsx)(rH,{step:e,ts:p}),"toolGroup"===e.kind&&e.targets.length>0?(0,o.jsx)(rB,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):i?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:"shrink-0",children:s.typeLabel}),(0,o.jsx)(rU,{filePath:s.target})]}):(0,o.jsx)("span",{className:`truncate ${"toolGroup"===e.kind?"max-w-64":"max-w-52"}`,title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,children:e.label})]},e.id)})}),(0,o.jsxs)("div",{className:"relative mt-2",children:[(0,o.jsx)("div",{ref:I,className:"max-h-[280px] overflow-y-auto pr-2",children:u[v]&&(0,o.jsx)(rq,{step:u[v],cwd:i,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})}),y&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]})]})})]})}let rJ=new Map;function rY(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function rG(e){let t=rJ.get(e);return t?rY(t):null}function rQ(e,t){t.value||0!==t.images.length?rJ.set(e,rY(t)):rJ.delete(e)}function rZ(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function rX(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function r0(e,t){if(!e)return!0;let r=0;for(let o=0;o<t.length&&r<e.length;o++)t[o]===e[r]&&r++;return r===e.length}function r1(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}let r2="(max-width: 640px)";function r4(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(r2);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function r6(){return!!window.matchMedia&&window.matchMedia(r2).matches}function r5(){return!1}function r3(){return(0,n.useSyncExternalStore)(r4,r6,r5)}var r8=r(70312),r7=r(37597),r9=r(4615),oe=r(58506),ot=r(41789),or=r(87124),oo=r(65098),on=r(93587),os=r(19157),oi=r(67381),ol=r(64433),oa=r(70350),od=r(88195),oc=r(9312),op=r(87275),ou=r(22008),oh=r(95476),og=r(35029),om=r(14489),of=r(78728),ox=r(19872),ok=r(7751),ov=r(92526),ob=r(48238),oy=r(57794),ow=r(41098),oj=r(84604),oS=r(15315),oC=r(74278),oI=r(55457),oT=r(71437),oR=r(29167),oz=r(97283),oM=r(34166),oE=r(33889),oP=r(85486),oN=r(74068),o$=r(83546),oL=r(83709);let oF={anthropic:{Icon:oi.A,hasColor:!1},openai:{Icon:ol.A,hasColor:!1},"openai-codex":{Icon:ol.A,hasColor:!1},reqtoken:{Icon:ol.A,hasColor:!1},google:{Icon:oa.A,hasColor:!0},"google-vertex":{Icon:oa.A,hasColor:!0},"ant-ling":{Icon:oE.A,hasColor:!0},deepseek:{Icon:od.A,hasColor:!0},groq:{Icon:oc.A,hasColor:!1},mistral:{Icon:op.A,hasColor:!0},moonshotai:{Icon:ou.A,hasColor:!1},"moonshotai-cn":{Icon:ou.A,hasColor:!1},moonshot:{Icon:ou.A,hasColor:!1},minimax:{Icon:oh.A,hasColor:!0},"minimax-cn":{Icon:oh.A,hasColor:!0},fireworks:{Icon:og.A,hasColor:!0},huggingface:{Icon:om.A,hasColor:!0},cerebras:{Icon:of.A,hasColor:!0},openrouter:{Icon:ox.A,hasColor:!1},xai:{Icon:ok.A,hasColor:!1},"cloudflare-ai-gateway":{Icon:ov.A,hasColor:!0},"cloudflare-workers-ai":{Icon:ov.A,hasColor:!0},"vercel-ai-gateway":{Icon:ob.A,hasColor:!1},"github-copilot":{Icon:oy.A,hasColor:!1},"amazon-bedrock":{Icon:ow.A,hasColor:!0},"azure-openai-responses":{Icon:oj.A,hasColor:!0},"kimi-coding":{Icon:oS.A,hasColor:!0},nvidia:{Icon:oP.A,hasColor:!0},opencode:{Icon:oN.A,hasColor:!1},"opencode-go":{Icon:oN.A,hasColor:!1},qwen:{Icon:oC.A,hasColor:!0},xiaomi:{Icon:o$.A,hasColor:!1},"xiaomi-token-plan-ams":{Icon:o$.A,hasColor:!1},"xiaomi-token-plan-cn":{Icon:o$.A,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:o$.A,hasColor:!1},zai:{Icon:oL.A,hasColor:!1},"zai-coding-cn":{Icon:oL.A,hasColor:!1},zhipu:{Icon:oI.A,hasColor:!0},cohere:{Icon:oT.A,hasColor:!0},perplexity:{Icon:oR.A,hasColor:!0},together:{Icon:oz.A,hasColor:!0},grok:{Icon:oM.A,hasColor:!1}};function oW({id:e,size:t=14}){let r=oF[e];return r?r.hasColor?(0,o.jsx)(r.Icon,{size:t}):(0,o.jsx)(r.Icon,{size:t,style:{color:"currentColor"}}):(0,o.jsx)(os.G,{size:t,weight:"regular","aria-hidden":"true"})}let oD=["off","default","full"],oA={off:"none",default:"default",full:"full"},oO=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function oH(e,t){return oO.compare(e.name||e.modelId,t.name||t.modelId)||oO.compare(e.provider,t.provider)||oO.compare(e.modelId,t.modelId)}let oB=["max","xhigh","high","medium","low","minimal","auto","off"];function oU({level:e,size:t=14}){if("off"===e)return(0,o.jsx)(oe.x,{size:t,weight:"regular",color:"var(--text-dim)"});if("auto"===e)return(0,o.jsx)(on.I,{size:t,weight:"regular",color:"var(--accent)"});let r=["medium","high","xhigh","max"].includes(e),n="var(--accent)";return(0,o.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,o.jsx)(oe.x,{size:t,weight:r?"fill":"regular",color:n}),"high"===e&&(0,o.jsx)(f.c,{size:Math.round(.57*t),weight:"bold",color:n,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===e&&(0,o.jsx)(c.C,{size:Math.round(.57*t),weight:"fill",color:n,style:{position:"absolute",right:-4,top:-1}}),"max"===e&&(0,o.jsxs)("span",{style:{position:"absolute",right:-6,top:-1,display:"inline-flex"},children:[(0,o.jsx)(c.C,{size:Math.round(.5*t),weight:"fill",color:n,style:{marginRight:-3}}),(0,o.jsx)(c.C,{size:Math.round(.5*t),weight:"fill",color:n})]})]})}function o_(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let oq=["builtin","extension","prompt","skill"],oK={builtin:0,extension:1,prompt:2,skill:3};function oV(e,t){let r=e.name.toLowerCase(),o=e.description?.toLowerCase()??"";return r===t?0:r.startsWith(t)?1:r.includes(t)?2:o.includes(t)?3:4}function oJ(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}function oY(e){return{data:e.data,mimeType:e.mimeType}}function oG(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function oQ(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function oZ({kind:e,text:t,label:r,index:n,total:s,onMove:i,onRecall:l,onRemove:a}){let{t:d}=(0,w.s)(),c={display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:4,color:"var(--text-dim)",background:"transparent",cursor:"pointer",flexShrink:0};return(0,o.jsxs)("div",{title:t,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,o.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:r}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t}),i&&s>1&&(0,o.jsxs)("span",{style:{display:"inline-flex",gap:1,flexShrink:0},children:[(0,o.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveUp"),title:d("desktop.queueMoveUp"),disabled:0===n,onClick:()=>i(-1),style:{...c,opacity:0===n?.3:1},children:"↑"}),(0,o.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveDown"),title:d("desktop.queueMoveDown"),disabled:n===s-1,onClick:()=>i(1),style:{...c,opacity:n===s-1?.3:1},children:"↓"})]}),l&&(0,o.jsx)("button",{type:"button","aria-label":d("desktop.queueRecallOne"),title:d("desktop.queueRecallOne"),onClick:l,style:c,children:(0,o.jsx)(r8.Y,{size:13})}),a&&(0,o.jsx)("button",{type:"button","aria-label":d("desktop.queueRemove"),title:d("desktop.queueRemove"),onClick:a,style:c,children:(0,o.jsx)(R.u,{size:13})})]})}let oX=(0,n.forwardRef)(function({onSend:e,onBash:t,onAbort:r,onSteer:s,onFollowUp:i,isStreaming:l,model:a,isAutoModelSelection:c,modelNames:u,modelList:g,modelScopeWarnings:k,onModelChange:v,compactResult:b,toolPreset:y,onToolPresetChange:j,thinkingLevel:S,onThinkingLevelChange:C,availableThinkingLevels:I,thinkingLevelMap:T,retryInfo:z,queuedMessages:M,inputHistory:E=[],onRecallQueue:P,onMoveQueue:N,onRecallOne:$,onRequeueAt:L,onRemoveQueueItem:F,slashCommands:D,slashCommandsLoading:A,onLoadSlashCommands:O,onBuiltinCommand:H,onAudioUnlock:U,onPromptWithStreamingBehavior:_,draftKey:q,cwd:K},V){var J;let Y,G,Q,Z,X,ee,et,er,eo,en,es,ei,el,ea,ed,ec,ep,eu,eh=r3(),{t:eg}=(0,w.s)(),em={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},ef={off:eg("desktop.toolOff"),default:eg("desktop.toolDefault"),full:eg("desktop.toolFull")},ex=[{name:"compact",description:eg("desktop.compactCommandDescription"),source:"builtin"},{name:"reload",description:eg("desktop.reloadCommandDescription"),source:"builtin"},{name:"name",description:eg("desktop.nameCommandDescription"),source:"builtin"},{name:"session",description:eg("desktop.sessionCommandDescription"),source:"builtin"},{name:"copy",description:eg("desktop.copyCommandDescription"),source:"builtin"}],ek={builtin:eg("desktop.builtIn"),extension:eg("desktop.extensions"),prompt:eg("desktop.prompts"),skill:eg("desktop.commandSkills")},[ev,eb]=(0,n.useState)(()=>q?rG(q)?.value??"":""),[ey,ew]=(0,n.useState)(!1),[ej,eS]=(0,n.useState)(null),[eC,eI]=(0,n.useState)({height:0,width:0,offsetTop:0}),[eT,eR]=(0,n.useState)(""),[ez,eM]=(0,n.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[eE,eP]=(0,n.useState)(new Set),[eN,e$]=(0,n.useState)(!1),[eL,eF]=(0,n.useState)(null),[eW,eD]=(0,n.useState)(!1),[eA,eO]=(0,n.useState)(null),[eH,eB]=(0,n.useState)(!1),[eU,e_]=(0,n.useState)(()=>q?rG(q)?.images.map(oG)??[]:[]),eq=ev.trimStart(),eK=0===eU.length&&eq.startsWith("!"),eV=eK&&eq.startsWith("!!"),[eJ,eY]=(0,n.useState)(!1),[eG,eQ]=(0,n.useState)(0),[eZ,eX]=(0,n.useState)({}),[e0,e1]=(0,n.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[e2,e4]=(0,n.useState)(null),[e6,e5]=(0,n.useState)(!1),[e3,e8]=(0,n.useState)(0),[e7,e9]=(0,n.useState)(!1),[te,tt]=(0,n.useState)(0),[tr,to]=(0,n.useState)(null),[tn,ts]=(0,n.useState)(!1),[ti,tl]=(0,n.useState)(null),ta=(0,n.useRef)(null),td=(0,n.useRef)(null),tc=(0,n.useRef)(null),tp=(0,n.useRef)(null),tu=(0,n.useRef)(null),th=(0,n.useRef)(null),tg=(0,n.useRef)(null),tm=(0,n.useRef)(null),tf=(0,n.useRef)(!1),tx=(0,n.useRef)(0),tk=(0,n.useRef)(!1),tv=(0,n.useRef)([]),tb=(0,n.useRef)([]),ty=(0,n.useRef)([]),tw=(0,n.useRef)(null),tj=(0,n.useRef)(null),tS=(0,n.useRef)(q),tC=(0,n.useRef)(ev),tI=(0,n.useRef)(eU),tT=(0,n.useRef)(null),[tR,tz]=(0,n.useState)(!1);tC.current=ev,tI.current=eU,(0,n.useImperativeHandle)(V,()=>({insertIfEmpty(e){let t=ta.current;(t?t.value:ev).trim()||(eb(e),e4(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},prependText(e){if(!e.trim())return;let t=ta.current,r=[e,t?t.value:ev].filter(e=>e.trim()).join("\n\n");eb(r),e4(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=ta.current;if(!t)return void eb(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,o=t.selectionEnd??t.value.length,n=t.value.slice(0,r),s=t.value.slice(o),i=n.length>0&&!n.endsWith(" ")?" ":"";eb(n+i+e+s),e4(null),requestAnimationFrame(()=>{if(!t)return;let o=r+i.length+e.length;t.setSelectionRange(o,o),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){tM(e)},addFiles(e,t){if(l)return;let r=function(e,t,r){let o=e.map(()=>null),n=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(n.length===e.length){for(let t=0;t<e.length;t+=1)o[t]=function(e){let t;if(!e.startsWith("file://"))return null;try{t=decodeURIComponent(e.slice(7))}catch{return null}return t?(/^\/[A-Za-z]:[\\/]/.test(t)&&(t=t.slice(1)),t):null}(n[t]);return o}if(1===e.length&&r.trim()){let e=r.trim();(e.startsWith("/")||e.startsWith("~")||/^[A-Za-z]:[\\/]/.test(e))&&(o[0]=e)}return o}(e,t?.getData("text/uri-list")??"",t?.getData("text/plain")??""),o=e.filter(e=>e.type.startsWith("image/")),n=e.map((e,t)=>e.type.startsWith("image/")?null:r[t]??e.name).filter(e=>!!e);if(o.length&&tM(o),n.length){let e=n.join(" ");eb(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}}}));let tM=(0,n.useCallback)(async e=>{if(l)return;let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;let r=await Promise.all(t.map(e=>new Promise((t,r)=>{let o=new FileReader;o.onload=()=>{t({data:o.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)})},o.onerror=r,o.readAsDataURL(e)})));e_(e=>[...e,...r])},[l]),tE=(0,n.useCallback)((e,t)=>{eM(r=>{let o=`${e}:${t}`,n=new Set(r);return n.has(o)?n.delete(o):n.add(o),localStorage.setItem("pi-favorite-models",JSON.stringify([...n])),n})},[]),tP=(0,n.useCallback)(e=>{eP(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),tN=(0,n.useCallback)(e=>{e_(t=>{let r=[...t],[o]=r.splice(e,1);return o&&oQ(o),r})},[]),t$=(0,n.useCallback)(()=>{e_(e=>(e.forEach(oQ),[]))},[]),tL=(0,n.useCallback)(()=>{var e;eb(""),e4(null),q&&rJ.delete(q),tS.current&&tS.current!==q&&(e=tS.current,rJ.delete(e)),t$(),ta.current&&(ta.current.style.height="auto")},[t$,q]),tF=(0,n.useCallback)(async(e,t,r)=>{await N?.(e,t,t+r)},[N]),tW=(0,n.useCallback)(async(e,t)=>{await F?.(e,t)},[F]),tD=(0,n.useCallback)(async(e,t)=>{let r=await $?.(e,t);if(!r)return;tT.current={kind:e,index:t,text:r.text,images:r.images},tz(!0);let o=ta.current?.value??ev,n=[r.text,o].filter(e=>e.trim()).join("\n\n");eb(n),e4(null),requestAnimationFrame(()=>{let e=ta.current;e&&(e.focus(),e.setSelectionRange(n.length,n.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[$,ev]);(0,n.useEffect)(()=>{q&&tS.current===q&&rQ(q,{value:ev,images:eU.map(oY)})},[eU,q,ev]),(0,n.useEffect)(()=>{let e=tS.current;if(e===q)return;e&&rQ(e,{value:tC.current,images:tI.current.map(oY)});let t=q?rG(q):null;tS.current=q,eb(t?.value??""),e4(null),e_(e=>(e.forEach(oQ),t?.images.map(oG)??[]))},[q]),(0,n.useEffect)(()=>{let e=ta.current;e&&(e.style.height="auto",ev&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[ev]),(0,n.useEffect)(()=>{let e=()=>{try{e1("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{e1("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,n.useEffect)(()=>()=>{tI.current.forEach(oQ)},[]);let tA=(0,n.useCallback)(async()=>{let r=ev.trim();if(!r&&!eU.length||l)return;U?.();let o=tT.current;if(o&&L){if(tT.current=null,tz(!1),!await L(o.kind,o.index,r,eU.length?eU.map(oY):o.images)){tT.current={...o,text:r},tz(!0);return}tL();return}if(!eU.length&&r.startsWith("!")&&t){let e=r.startsWith("!!"),o=r.slice(e?2:1).trim();if(!o)return;t(o,e),tL();return}if(!eU.length&&r.startsWith("/")&&H){let e=await H(r);if(e.handled){e.error||tL();return}}e(r,eU.length?eU:void 0),tL()},[ev,eU,l,t,H,e,tL,U,L]),tO=ev.startsWith("/")&&!/\s/.test(ev.slice(1))?ev.slice(1).toLowerCase():null,{commands:tH,groups:tB}=(J=null===tO?[]:[...l?[]:ex,...D??[]].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(tO)||r.includes(tO)}).sort((e,t)=>{let r=oV(e,tO)-oV(t,tO);return 0!==r?r:oK[e.source]-oK[t.source]||oO.compare(e.name,t.name)}),Y=0,{commands:(G=oq.map(e=>{let t=J.filter(t=>t.source===e),r="skill"===e?[...t.filter(e=>!oJ(e,eZ)),...t.filter(e=>oJ(e,eZ))]:t;return{source:e,items:r.map(e=>({command:e,index:Y++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(({command:e})=>e)),groups:G});(0,n.useEffect)(()=>{if(!eJ||!K)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(K)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&eX(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[K,eJ]);let tU=`${tH.length} ${eg(tO?1===tH.length?"desktop.match":"desktop.matches":1===tH.length?"desktop.command":"desktop.commands")}`,t_=!!ev.trim()&&0===eU.length,tq=(0,n.useCallback)((e,t)=>{if(!K)return void e4(null);let r=t??e.length;e4(rZ(e.slice(0,r)))},[K]),tK=e2?.query??null,tV=n.useMemo(()=>null!==tK&&tr&&tr.cwd===K?function(e,t,r=20){let o=t.toLowerCase();if(!o)return e.slice(0,r);let n=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),o=0;if(t.includes("/"))r===t?o=100:r.startsWith(t)?o=80:r.includes(t)?o=50:r0(t,r)&&(o=10);else{let e=r.lastIndexOf("/"),n=-1===e?r:r.slice(e+1);n===t?o=100:n.startsWith(t)?o=80:n.includes(t)?o=50:r.includes(t)?o=30:r0(t,r)&&(o=10)}return e.isDir&&o>0&&(o+=10),o}(t,o);e>0&&n.push({entry:t,score:e})}return n.sort((e,t)=>t.score-e.score||rX(e.entry.path)-rX(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),n.slice(0,r).map(e=>e.entry)}(tr.entries,tK):[],[tK,tr,K]),tJ=!!(tK&&tr?.truncated&&tr.cwd===K);(0,n.useEffect)(()=>{if(!tJ||!K||!tK)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(K)}&q=${encodeURIComponent(tK)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tl({cwd:K,query:tK,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tJ,tK,K]);let tY=tJ&&null!==ti&&ti.cwd===K&&ti.query===tK,tG=tY?ti.matches:tV,tQ=null===e2?null:`${e2.start}:${+!!e2.quoted}:${e2.query}`;(0,n.useEffect)(()=>{if(null===tQ){e5(!1),e8(0);return}e5(!0),e8(0)},[tQ]);let tZ=null!==e2;(0,n.useEffect)(()=>{if(!tZ||!K)return;let e=tw.current;e&&e.cwd===K&&Date.now()-e.fetchedAt<1e4||tj.current===K||(tj.current=K,ts(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(K)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{to({cwd:K,entries:function(e){let t=new Set;for(let r of e){let e=r.indexOf("/");for(;-1!==e;)t.add(r.slice(0,e)),e=r.indexOf("/",e+1)}let r=[];for(let e of t)r.push({path:e,isDir:!0});for(let t of e)t&&r.push({path:t,isDir:!1});return r.sort((e,t)=>rX(e.path)-rX(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),tw.current={cwd:K,fetchedAt:Date.now()}}).catch(()=>{tw.current=null}).finally(()=>{tj.current=null,ts(!1)}))},[tZ,K]);let tX=(0,n.useCallback)(e=>{if(!e2)return;let t=ta.current,r=t?.selectionStart??ev.length,o=ev.slice(0,e2.start),n=ev.slice(r);e2.quoted&&n.startsWith('"')&&(n=n.slice(1));let s=function(e,t,r=!1){let o=t?`${e}/`:e,n=r||o.includes(" ");if(t){let e=n?`@"${o}"`:`@${o}`;return{text:e,cursorOffset:n?e.length-1:e.length}}let s=n?`@"${o}" `:`@${o} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,e2.quoted),i=o+s.text+n,l=o.length+s.cursorOffset;eb(i),e4(rZ(i.slice(0,l))),requestAnimationFrame(()=>{let e=ta.current;e&&(e.focus(),e.setSelectionRange(l,l),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[e2,ev]);(0,n.useEffect)(()=>{e3>=tG.length&&e8(Math.max(0,tG.length-1))},[tG.length,e3]),(0,n.useEffect)(()=>{tb.current.length=tG.length},[tG.length]),(0,n.useEffect)(()=>{e6&&tb.current[e3]?.scrollIntoView({block:"nearest",inline:"nearest"})},[e3,e6]);let t0=(0,n.useCallback)(e=>{eb(e),e4(null),e9(!1),tt(0),requestAnimationFrame(()=>{let t=ta.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),t1=(0,n.useCallback)(e=>{let t=`/${e.name} `;eb(t),eY(!1),eQ(0),requestAnimationFrame(()=>{let e=ta.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),t2=(0,n.useCallback)(e=>{let t=ev.trim();if((t||eU.length)&&!eU.length){if(U?.(),t.startsWith("/")&&_){_(t,"steer"===e?"steer":"followUp",eU.length?eU:void 0),tL();return}"steer"===e&&s?s(t,eU.length?eU:void 0):"followup"===e&&i&&i(t,eU.length?eU:void 0),tL()}},[ev,eU,_,s,i,tL,U]),t4=(0,n.useCallback)(e=>{let t=tH.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,eG-1);if("right"===e)return Math.min(t,eG+1);let r=tv.current[eG];if(!r)return"down"===e?Math.min(t,eG+1):Math.max(0,eG-1);let o=r.getBoundingClientRect(),n=o.left+o.width/2,s=o.top+o.height/2,i=-1,l=1/0;for(let r=0;r<=t;r+=1){if(r===eG)continue;let t=tv.current[r];if(!t)continue;let o=t.getBoundingClientRect(),a=o.top+o.height/2-s;if("down"===e?a<=4:a>=-4)continue;let d=1e3*Math.abs(a)+Math.abs(o.left+o.width/2-n);d<l&&(i=r,l=d)}return i>=0?i:"down"===e?Math.min(t,eG+1):Math.max(0,eG-1)},[tH.length,eG]),t6=(0,n.useCallback)(e=>{let t=e.nativeEvent,o=Date.now()-tx.current<100,n=tf.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(n||o)){o&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!n&&K){e.preventDefault();let t=e.currentTarget,r=t.selectionStart??t.value.length,o=t.selectionEnd??r,n=t.value.slice(0,r),s=t.value.slice(o),i=n&&!/[\s@]$/.test(n)?" ":"",l=`${n}${i}@${s}`,a=n.length+i.length+1;eb(l),e4(rZ(l.slice(0,a))),e5(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(a,a)});return}if(e7&&!n){if("ArrowDown"===e.key){e.preventDefault(),tt(e=>Math.min(Math.max(0,(E?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tt(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),e9(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&E?.[te]){e.preventDefault(),t0(E[te]);return}}if(eJ&&null!==tO){if("ArrowDown"===e.key){e.preventDefault(),eQ(t4("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eQ(t4("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eQ(t4("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eQ(t4("left"));return}if("Escape"===e.key){e.preventDefault(),eY(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tH[eG]){e.preventDefault(),t1(tH[eG]);return}}if(e6&&null!==e2&&!n){if("ArrowDown"===e.key){e.preventDefault(),e8(e=>Math.min(Math.max(0,tG.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),e8(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),e5(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tG[e3]){e.preventDefault(),tX(tG[e3]);return}}if("ArrowUp"===e.key&&!n&&!l&&(E?.length??0)>0&&0===ev.trim().length){e.preventDefault(),eY(!1),e5(!1),tt(0),e9(!0);return}if("Escape"===e.key&&!n&&l&&r){e.preventDefault(),r();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===e0&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),l&&(s||i)?t2(s?"steer":"followup"):tA()}},[l,s,i,r,eJ,tO,tH,eG,t1,t2,tA,t4,e6,e2,tG,e3,tX,e0,K,e7,E,te,t0,ev]),t5=(0,n.useCallback)(()=>{let e=ta.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),t3=(0,n.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),tM(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[tM]);(0,n.useEffect)(()=>{te>=(E?.length??0)&&tt(Math.max(0,(E?.length??0)-1))},[te,E]),(0,n.useEffect)(()=>{ty.current.length=E?.length??0},[E]),(0,n.useEffect)(()=>{e7&&ty.current[te]?.scrollIntoView({block:"nearest",inline:"nearest"})},[te,e7]),(0,n.useEffect)(()=>{if(null===tO){eY(!1),eQ(0),tk.current=!1;return}eY(!0),eQ(0),!tk.current&&O&&(tk.current=!0,Promise.resolve(O()).catch(()=>{tk.current=!1}))},[tO,O]),(0,n.useEffect)(()=>{eG>=tH.length&&eQ(Math.max(0,tH.length-1))},[tH.length,eG]),(0,n.useEffect)(()=>{tv.current.length=tH.length},[tH.length]),(0,n.useEffect)(()=>{eJ&&tv.current[eG]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eG,eJ]);let t8=g&&g.length>0?g.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).sort(oH):Object.entries(u??{}).map(([e,t])=>({provider:a?.provider??"unknown",modelId:e,name:t})).sort(oH),t7=[];for(let e of t8){let t=t7.find(t=>t.provider===e.provider);t?t.options.push(e):t7.push({provider:e.provider,options:[e]})}let t9=a?t8.find(e=>e.modelId===a.modelId&&e.provider===a.provider)?.name??a.modelId:null,re=b?Math.max(0,b.tokensBefore-b.estimatedTokensAfter):0,rt=b?`${eg("desktop.compacted")} ${o_(b.tokensBefore)} -> ${o_(b.estimatedTokensAfter)} ${eg("desktop.tokens")} (${o_(re)} ${eg("desktop.saved")})`:null,rr="auto"!==(Q=S??"auto")&&T?T[Q]??em[Q]:em[Q],ro=ef[Object.entries(oA).find(([,e])=>e===(y??"default"))?.[0]??"default"];return(0,n.useEffect)(()=>{let e=e=>{td.current&&!td.current.contains(e.target)&&tc.current&&!tc.current.contains(e.target)&&ew(!1),tu.current&&!tu.current.contains(e.target)&&e$(!1),th.current&&!th.current.contains(e.target)&&eD(!1),tg.current&&!tg.current.contains(e.target)&&eB(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.useEffect)(()=>{eh||eB(!1)},[eh]),(0,n.useEffect)(()=>{let e=()=>{let e=window.visualViewport;eI({height:e?.height??window.innerHeight,width:e?.width??window.innerWidth,offsetTop:e?.offsetTop??0})};return e(),window.addEventListener("resize",e),window.visualViewport?.addEventListener("resize",e),window.visualViewport?.addEventListener("scroll",e),()=>{window.removeEventListener("resize",e),window.visualViewport?.removeEventListener("resize",e),window.visualViewport?.removeEventListener("scroll",e)}},[]),(0,n.useEffect)(()=>{ey&&tp.current?.focus()},[ey]),(0,o.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px 15px",paddingRight:eh?16:34},children:[(0,o.jsx)("input",{ref:tm,type:"file",accept:"image/*",multiple:!0,disabled:l,style:{display:"none"},onChange:e=>{tM(Array.from(e.target.files??[])),e.target.value=""}}),(0,o.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[k&&k.length>0&&(0,o.jsx)("div",{role:"status",style:{marginBottom:8,padding:"6px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent-orange) 45%, var(--border))",background:"color-mix(in srgb, var(--accent-orange) 9%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:k.join(" ")}),(M?.steering.length??0)+(M?.followUp.length??0)>0&&(0,o.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,o.jsxs)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:[eg("desktop.queued")," \xb7 ",(M?.steering.length??0)+(M?.followUp.length??0)]}),P&&(0,o.jsxs)("button",{onClick:P,title:eg("desktop.recallQueuedMessages"),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,o.jsx)(r8.Y,{size:13}),eg("desktop.recallToInput")]})]}),M?.steering.map((e,t)=>(0,o.jsx)(oZ,{kind:"steer",label:eg("desktop.steer"),text:e,index:t,total:M.steering.length,onMove:N?e=>void tF("steer",t,e):void 0,onRecall:$?()=>void tD("steer",t):void 0,onRemove:F?()=>void tW("steer",t):void 0},`steer-${t}`)),M?.followUp.map((e,t)=>(0,o.jsx)(oZ,{kind:"follow-up",label:eg("desktop.followUp"),text:e,index:t,total:M.followUp.length,onMove:N?e=>void tF("followUp",t,e):void 0,onRecall:$?()=>void tD("followUp",t):void 0,onRemove:F?()=>void tW("followUp",t):void 0},`followup-${t}`))]}),tR&&(0,o.jsx)("div",{style:{marginBottom:8,padding:"5px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent) 40%, var(--border))",background:"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12},children:eg("desktop.recalledEditing")}),z&&(0,o.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,o.jsx)(x.B,{size:11,style:{flexShrink:0}}),eg("desktop.retrying")," (",z.attempt,"/",z.maxAttempts,")…",z.errorMessage&&(0,o.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",z.errorMessage]})]}),rt&&(0,o.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,o.jsx)(p.S,{size:11,style:{flexShrink:0}}),rt]}),eU.length>0&&(0,o.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eU.map((e,t)=>(0,o.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,o.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,o.jsx)("button",{onClick:()=>tN(t),title:eg("desktop.removeImage"),"aria-label":eg("desktop.removeImage"),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,o.jsx)(R.u,{size:8})})]},t))}),(0,o.jsxs)("div",{style:{position:"relative"},children:[e7&&E.length>0&&(0,o.jsxs)("div",{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(38vh, 300px)"},children:[(0,o.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",color:"var(--text-dim)",fontSize:11},children:[(0,o.jsx)("span",{children:eg("desktop.inputHistory")}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eg("desktop.tabOrEnter")})]}),(0,o.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:E.map((e,t)=>(0,o.jsxs)("button",{ref:e=>{ty.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),t0(e)},onMouseEnter:()=>tt(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===te?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,o.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},children:t+1}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12},children:e})]},`${t}:${e}`))})]}),eJ&&null!==tO&&(0,o.jsxs)("div",{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(38vh, 300px)"},children:[(0,o.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,o.jsx)("span",{children:A?eg("desktop.loadingCommands"):`${eg("desktop.slashCommands")} \xb7 ${tU}`}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eg("desktop.tabOrEnter")})]}),(0,o.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:A||0!==tH.length?tB.map(e=>(0,o.jsxs)("section",{style:{marginBottom:6},children:[(0,o.jsxs)("div",{style:{position:"sticky",top:-4,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 0 4px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,o.jsx)("span",{children:ek[e.source]}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:1},children:e.items.map(({command:e,index:t})=>{let r=t===eG;return(0,o.jsxs)("button",{ref:e=>{tv.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),t1(e)},onMouseEnter:()=>eQ(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,o.jsxs)("span",{style:{fontSize:12.5,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:["/",e.name]}),e.description&&(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:e.description}),oJ(e,eZ)&&(0,o.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,padding:"1px 5px",borderRadius:999,border:"1px solid var(--border)",color:"var(--text-dim)",fontSize:10},children:eg("desktop.dormant")})]},`${e.source}:${e.name}`)})})]},e.source)):(0,o.jsx)("div",{style:{padding:"2px 2px 2px",fontSize:12,color:"var(--text-dim)"},children:eg("desktop.noSlashCommands")})})]}),e6&&null!==e2&&(Z=tn&&(!tr||tr.cwd!==K),X=`${tG.length} ${eg(1===tG.length?"desktop.match":"desktop.matches")}`,ee=tr?.truncated&&!tY?e2.query?` \xb7 ${eg("desktop.searchingAllFiles")}`:` \xb7 ${eg("desktop.indexTruncated")}`:"",(0,o.jsxs)("div",{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(30vh, 240px)"},children:[(0,o.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,o.jsx)("span",{children:Z?eg("desktop.loadingFiles"):`${eg("desktop.files")} \xb7 ${X}${ee}`}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eg("desktop.tabOrEnter")})]}),(0,o.jsx)("div",{style:{maxHeight:"calc(min(30vh, 240px) - 24px)",overflowY:"auto",padding:2},children:Z||0!==tG.length?tG.map((e,t)=>{let r=t===e3,n=e.path.split("/").pop()??e.path,s=e.path.slice(0,e.path.length-n.length);return(0,o.jsxs)("button",{ref:e=>{tb.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tX(e)},onMouseEnter:()=>e8(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,o.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,o.jsx)(W,{size:14,name:n}):B(n,14)}),(0,o.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s&&(0,o.jsx)("span",{style:{color:"var(--text-dim)"},children:s}),n,e.isDir&&(0,o.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,o.jsx)("div",{style:{padding:"4px 6px",fontSize:12,color:"var(--text-dim)"},children:tJ&&!tY?eg("desktop.searching"):eg("desktop.noMatchingFiles")})})]})),(0,o.jsxs)("div",{className:`chat-input-shell ${l&&(s||i)?"is-streaming":""}`,onClick:e=>{e.target.closest("button, input, select, [role=button]")||ta.current?.focus()},style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:0,padding:0,transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[l&&(0,o.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),l&&(s||i)&&(0,o.jsxs)("div",{className:"chat-input-streaming-actions",children:[s&&(0,o.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>t2("steer"),disabled:!t_,title:eU.length?eg("desktop.imageAttachmentsCannotQueue"):eg("desktop.injectMessageNow"),"aria-label":eg("desktop.steer"),children:(0,o.jsx)(r7.A,{size:15})}),i&&(0,o.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>t2("followup"),disabled:!t_,title:eU.length?eg("desktop.imageAttachmentsCannotQueue"):eg("desktop.queueMessageAfterFinish"),"aria-label":eg("desktop.followUp"),children:(0,o.jsx)(r9.M,{size:15})})]}),(0,o.jsx)("div",{className:"chat-input-editor-row",style:{borderColor:eK?"var(--tool-bg)":void 0},children:(0,o.jsx)("textarea",{ref:ta,value:ev,spellCheck:!1,onChange:e=>{eb(e.target.value),tq(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tq(t.value,t.selectionStart)},onKeyDown:t6,onCompositionStart:()=>{tf.current=!0},onCompositionEnd:e=>{tf.current=!1,tx.current=Date.now();let t=e.currentTarget;tq(t.value,t.selectionStart)},onInput:t5,onPaste:t3,placeholder:l&&(s||i)?eg("desktop.steerOrQueueFollowUp"):l?eg("desktop.agentRunning"):eg("desktop.messageWithCommands"),rows:1,className:"chat-input-textarea",style:{flex:1,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",minHeight:24,maxHeight:200,padding:0,overflow:"auto"}})}),eK&&(0,o.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:eV?"var(--text-muted)":"var(--accent)"},children:[eg("desktop.shellCommand")," \xb7 ",eV?eg("desktop.shellOutputLocal"):eg("desktop.shellOutputModel")]}),(0,o.jsxs)("div",{className:"chat-input-toolbar",style:{display:eh?"grid":"flex",gridTemplateColumns:eh?"auto minmax(0, 1fr)":void 0,alignItems:"center",gap:4},children:[(0,o.jsxs)("div",{className:"chat-input-toolbar-left",style:{flex:"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:[(0,o.jsx)("button",{className:"chat-input-toolbar-attach",onClick:()=>tm.current?.click(),disabled:l,title:eg("desktop.attachImage"),"aria-label":eg("desktop.attachImage"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:"none",border:"none",borderRadius:6,color:eU.length?"var(--accent)":"var(--text-muted)",cursor:l?"not-allowed":"pointer",opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=eU.length?"var(--accent)":"var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=eU.length?"var(--accent)":"var(--text-muted)"},children:(0,o.jsx)(f.c,{size:14})}),!l&&C&&(0,o.jsxs)("div",{ref:th,className:"chat-input-toolbar-thinking",style:{position:"relative"},children:[(0,o.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();eO({top:t.top,left:t.left,width:t.width}),eD(e=>!e)},disabled:l,title:eg("desktop.changeReasoningLevel",{level:rr}),"aria-label":eg("desktop.reasoningLevel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:eh?"0 5px":"3px 7px",width:eh?"auto":void 0,height:24,background:eW?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(S??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=eW?"var(--bg-hover)":"none"},children:[(0,o.jsx)(oU,{level:S??"auto"}),(!eh||eH)&&(0,o.jsx)("span",{style:{whiteSpace:"nowrap"},children:rr}),(0,o.jsx)(h.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:eW?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),eW&&eA&&(et=window.visualViewport?.height??window.innerHeight,eo=Math.min(240,(er=window.innerWidth)-16),en=Math.min(eA.left,er-eo-8),es=et-eA.top+4,ei=Math.min(360,Math.max(120,Math.min(eA.top-8,.6*et))),(0,o.jsx)("div",{style:{position:"fixed",bottom:es,left:en,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:200,maxWidth:eo,maxHeight:ei,overflowY:"auto"},children:oB.filter(e=>!I||"auto"===e||I.includes(e)).map(e=>{let t=(S??"auto")===e,r="auto"!==e&&T?T[e]:void 0,n=null!=r&&r!==e?r:em[e],s=null!=r&&r!==e;return(0,o.jsxs)("button",{onClick:()=>{eD(!1),t||C(e)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(oU,{level:e,size:14}),(0,o.jsxs)("span",{style:{flex:1},children:[n,s&&(0,o.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,o.jsx)(p.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]})]}),!eh&&(0,o.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,o.jsxs)("div",{ref:tg,className:"chat-input-toolbar-controls",style:{flex:eh?"1 1 auto":"0 0 auto",minWidth:eh?0:void 0,width:eh?"100%":void 0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:eh?0:"auto"},children:[eh&&(0,o.jsx)("button",{type:"button",title:eH?void 0:eg("desktop.moreControls"),"aria-label":eg("desktop.moreControls"),"aria-expanded":eH,"aria-hidden":eH||void 0,tabIndex:eH?-1:void 0,onClick:()=>{ew(!1),eB(!0)},style:{alignItems:"center",justifyContent:"center",minWidth:32,height:24,padding:"3px 5px",background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:eH?"default":"pointer",fontSize:12,fontWeight:500,display:eH?"none":"flex",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{eH||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{eH||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:eg("desktop.more")}),(0,o.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:eh?1:2,...eh?{flex:"1 1 auto",minWidth:0,justifyContent:"flex-end"}:null},children:[(!eh||eH)&&!l&&j&&(0,o.jsxs)("div",{ref:tu,className:"chat-input-toolbar-tools",style:{position:"relative"},children:[(0,o.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();eF({top:t.top,left:t.left,width:t.width}),e$(e=>!e)},disabled:l,title:eg("desktop.changeToolPreset",{preset:ro}),"aria-label":eg("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:eh?"0 5px":"3px 7px",width:eh?"auto":void 0,height:24,background:eN?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eN?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(!eh||eH)&&(0,o.jsx)("span",{style:{whiteSpace:"nowrap"},children:ro}),(0,o.jsx)(h.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:eN?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),eN&&eL&&(el=window.visualViewport?.height??window.innerHeight,ed=Math.min(200,(ea=window.innerWidth)-16),ec=Math.max(8,ea-(eL.left+eL.width)),ep=el-eL.top+6,eu=Math.min(320,Math.max(100,Math.min(eL.top-8,.5*el))),(0,o.jsx)("div",{style:{position:"fixed",bottom:ep,right:ec,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:120,maxWidth:ed,maxHeight:eu,overflowY:"auto"},children:oD.map(e=>{let t=oA[e],r=(y??"default")===t,n="off"===e?eg("desktop.noToolsReadOnly"):"default"===e?eg("desktop.fourBuiltInTools"):eg("desktop.allBuiltInTools");return(0,o.jsxs)("button",{onClick:()=>{e$(!1),r||j(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:r?"var(--bg-selected)":"none",border:"none",color:r?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,o.jsx)("span",{style:{flex:1},children:ef[e]}),(0,o.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:n}),r&&(0,o.jsx)(p.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),t8.length>0&&t9&&v&&(0,o.jsxs)("div",{ref:td,className:"chat-input-toolbar-model",style:{position:"relative",flex:eh?"1 1 auto":void 0,minWidth:0},children:[(0,o.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();eS({top:t.top,left:t.left,width:t.width}),ey||eR(""),ew(e=>!e)},disabled:l,style:{display:"flex",alignItems:"center",gap:6,justifyContent:eh?"flex-start":void 0,padding:eh?"4px 6px":"3px 7px",height:24,width:eh?"100%":void 0,maxWidth:eh?"100%":220,overflow:"hidden",background:ey?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=ey?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,o.jsx)(oW,{id:a?.provider??"unknown",size:14}),(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:t9}),(0,o.jsx)(h.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:ey?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),ey&&ej&&(()=>{let e=eC.height||window.innerHeight,t=eC.width||window.innerWidth,r=ej.top-eC.offsetTop,n=Math.max(6,e-r+6),s=Math.min(400,Math.max(120,Math.min(r-8,.6*e))),i=Math.min(320,s),l=ej.width,u=Math.min(360,t-16),g=eh?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(ej.left+ej.width)),width:"max-content",minWidth:Math.min(l,u),maxWidth:u},f=[];for(let e of[...ez]){let[t,r]=e.split(":",2),o=t8.find(e=>e.provider===t&&e.modelId===r);o&&f.push(o)}let x=eT.trim().toLowerCase(),k=x.length>0,b=e=>e.name.toLowerCase().includes(x)||e.modelId.toLowerCase().includes(x)||e.provider.toLowerCase().includes(x),y=k?f.filter(b):f,w=y.length>0,j=k?t7.map(e=>({...e,options:e.options.filter(b)})).filter(e=>e.options.length>0):t7,S=w||j.length>0;return(0,o.jsxs)("div",{ref:tc,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:n,...g,zIndex:2e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",height:i,maxHeight:s,display:"flex",flexDirection:"column"},children:[(0,o.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,o.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,o.jsx)(d.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,o.jsx)("input",{ref:tp,value:eT,onChange:e=>eR(e.target.value),onKeyDown:e=>{if("Escape"===e.key)eT?eR(""):ew(!1);else if("ArrowDown"===e.key){let t=tc.current?.querySelector(".model-row button");t&&(e.preventDefault(),t.focus())}},placeholder:eg("desktop.searchModels"),"aria-label":eg("desktop.searchModels"),style:{width:"100%",padding:"5px 12px 5px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}})]})}),(0,o.jsxs)("div",{style:{overflowY:"auto",flex:1,minHeight:0},children:[w&&(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:eg("desktop.favorites")}),y.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=ez.has(`${e.provider}:${e.modelId}`);return(0,o.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,o.jsxs)("button",{onClick:()=>{ew(!1),(!t||c)&&v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(oW,{id:e.provider,size:14}),(0,o.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,o.jsx)(p.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,o.jsx)("span",{onClick:t=>{t.stopPropagation(),tE(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eg("desktop.unfavorite"):eg("desktop.favorite"),"aria-label":r?eg("desktop.unfavorite"):eg("desktop.favorite"),children:(0,o.jsx)(oo.G,{size:12,weight:r?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),j.map((e,t)=>{let r=k||eE.has(e.provider),n=r?(0,o.jsx)(h.b,{size:10,color:"var(--text-dim)"}):(0,o.jsx)(m.J,{size:10,color:"var(--text-dim)"});return(0,o.jsxs)("div",{children:[(0,o.jsxs)("button",{onClick:()=>tP(e.provider),style:{display:"flex",alignItems:"center",gap:4,width:"100%",padding:"6px 12px 4px",background:"none",border:"none",cursor:"pointer",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:t>0?"1px solid var(--border)":"none"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[n,e.provider]}),r&&e.options.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=ez.has(`${e.provider}:${e.modelId}`);return(0,o.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,o.jsxs)("button",{onClick:()=>{ew(!1),(!t||c)&&v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(oW,{id:e.provider,size:14}),(0,o.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,o.jsx)(p.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,o.jsx)("span",{onClick:t=>{t.stopPropagation(),tE(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eg("desktop.unfavorite"):eg("desktop.favorite"),"aria-label":r?eg("desktop.unfavorite"):eg("desktop.favorite"),children:(0,o.jsx)(oo.G,{size:12,weight:r?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),k&&!S&&(0,o.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:eg("desktop.noModelsMatch")})]})]})})()]}),!l&&(0,o.jsx)("button",{type:"button",onClick:tA,disabled:!ev.trim()&&!eU.length,className:"chat-input-send",title:eg("desktop.sendMessage"),"aria-label":eg("desktop.sendMessage"),children:(0,o.jsx)(ot.l,{size:14})}),l&&(0,o.jsxs)("button",{onClick:r,title:eg("desktop.stopAgent"),"aria-label":eg("desktop.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"3px 7px",height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:6,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.20)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.12)"},children:[(0,o.jsx)(or.d,{size:14}),eg("desktop.stop")]}),eh&&eH&&(0,o.jsx)("button",{type:"button",title:eg("desktop.collapseControls"),"aria-label":eg("desktop.collapseControls"),"aria-expanded":!0,onClick:()=>{e$(!1),eD(!1),eB(!1)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:24,padding:0,marginLeft:0,background:"var(--bg-hover)",border:"none",borderLeft:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:"0 6px 6px 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,o.jsx)(R.u,{size:13})})]})]})]})]})]})]})]})});function o0(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function o1(e){let t;if(!e||"object"!=typeof e)return null;let r=e.kind;return"steer"!==r&&"followUp"!==r||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(o0)).length&&(t=void 0),{kind:r,text:e.text,...t?{images:t}:{}})}function o2({items:e,sessionId:t,onResolve:r,onExport:s,onStageImport:i,onDismiss:l,mode:a="recovery"}){let{t:d}=(0,w.s)(),c=r3(),[p,u]=(0,n.useState)(()=>new Set(e.map(e=>e.id))),[h,g]=(0,n.useState)(!1),[m,f]=(0,n.useState)(null),x=(0,n.useRef)(null);(0,n.useEffect)(()=>{u(new Set(e.map(e=>e.id)))},[e]);let k=e.filter(e=>p.has(e.id)),v=k.length===e.length&&e.length>0,b=e=>u(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),y=async(e,t=!1)=>{if(0!==k.length){g(!0),f(null);try{await r("keep"===e?k.map(e=>e.id):[],"discard"===e?k.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}}},j=async e=>{let r=await s();if(!r)return;let o=r.recovery.filter(e=>p.has(e.id));if(o.length){var n;let r,s,i,l,a,c,p;n={sessionId:t,source:"recovery"},s="md"===e?(((r=[]).push("# Queued messages export"),n.sessionId&&r.push(`- Session: ${n.sessionId}`),r.push(`- Source: ${"live"===n.source?"live queue":"pending recovery"}`),r.push(`- Exported: ${n.exportedAt??new Date().toISOString()}`),r.push(""),0===o.length)?r.push("_No entries._"):o.forEach((e,t)=>{var o;r.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&r.push(e.text),e.images?.length&&r.push(`> _${0===(o=e.images.length)?"":1===o?"(1 image)":`(${o} images)`}_`),r.push("")}),r.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:n.exportedAt??new Date().toISOString(),source:n.source,sessionId:n.sessionId,entries:o.map(({kind:e,text:t,images:r})=>({kind:e,text:t,...r?.length?{images:r}:{}}))},null,2),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),l=`${n.sessionId??"session"}-queue-${n.source}-${i}.${e}`,a=new Blob([s],{type:"md"===e?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),c=URL.createObjectURL(a),(p=document.createElement("a")).href=c,p.download=l,p.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3),f(d("desktop.queueExported",{count:o.length}))}},S=async e=>{let t=function(e){let t;try{t=JSON.parse(e)}catch{return[]}let r=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return r?r.map(o1).filter(e=>null!==e):[]}(await e.text());if(!t.length)return void f(d("desktop.queueImportEmpty"));let r=await i(t);f(null===r?d("desktop.queueImportEmpty"):d("desktop.queueImported",{count:r}))};return(0,o.jsxs)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/40 p-3",role:"presentation",children:[(0,o.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle"),className:"flex max-h-[88dvh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-(--border) bg-(--bg) shadow-2xl",children:[(0,o.jsxs)("header",{className:"flex flex-wrap items-start gap-3 border-b border-(--border) bg-(--bg-panel) px-4 py-3",children:[(0,o.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,o.jsx)("h2",{className:"text-sm font-semibold text-(--text)",children:"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle")}),(0,o.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===a?d("desktop.queueImportDescription"):d("desktop.queueRecoveryDescription")})]}),(0,o.jsxs)("div",{className:"flex items-center gap-1",children:[(0,o.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>u(new Set(v?[]:e.map(e=>e.id))),children:v?d("desktop.selectNone"):d("desktop.selectAll")}),(0,o.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void j("json"),children:"JSON"}),(0,o.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void j("md"),children:"MD"}),(0,o.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h,onClick:()=>x.current?.click(),children:d("desktop.import")}),(0,o.jsx)("button",{type:"button",className:"markdown-code-action",onClick:l,"aria-label":d("desktop.close"),children:"\xd7"})]})]}),(0,o.jsx)("div",{className:"grid flex-1 content-start gap-2 overflow-y-auto p-3",children:e.map(e=>{let t=p.has(e.id);return(0,o.jsxs)("button",{type:"button",onClick:()=>b(e.id),"aria-pressed":t,className:["flex w-full items-start gap-3 rounded-lg border p-3 text-left transition",t?"border-(--accent) bg-(--bg-selected)":"border-(--border) bg-(--bg-panel) hover:bg-(--bg-hover)"].join(" "),children:[(0,o.jsx)("input",{type:"checkbox",checked:t,onChange:()=>b(e.id),onClick:e=>e.stopPropagation(),className:"mt-1 accent-[var(--accent)]"}),(0,o.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,o.jsxs)("span",{className:"flex flex-wrap items-center gap-2 text-[11px] text-(--text-dim)",children:[(0,o.jsx)("span",{className:"rounded-full border border-(--border) px-2 py-0.5 font-mono uppercase",children:"steer"===e.kind?d("desktop.steer"):d("desktop.followUp")}),(0,o.jsx)("span",{children:new Date(e.queuedAt).toLocaleString()}),e.hasImages?(0,o.jsx)("span",{children:d("desktop.queueImages")}):null]}),(0,o.jsx)("span",{className:"mt-2 block whitespace-pre-wrap break-words border-l-2 border-(--border) pl-2 text-xs leading-5 text-(--text)",children:e.text||d("desktop.queueNoText")})]})]},e.id)})}),(0,o.jsxs)("footer",{className:["flex flex-wrap items-center gap-2 border-t border-(--border) px-4 py-3",c?"justify-stretch":"justify-end"].join(" "),children:[m?(0,o.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:m}):null,(0,o.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:l,disabled:h,children:d("desktop.dismiss")}),(0,o.jsx)("button",{type:"button",className:"rounded-md border border-red-400/40 px-3 py-2 text-xs text-red-400 disabled:opacity-40",onClick:()=>void y("discard"),disabled:h||0===k.length,children:d("desktop.discard")}),(0,o.jsx)("button",{type:"button",className:"rounded-md border border-(--accent) px-3 py-2 text-xs text-(--accent) disabled:opacity-40",onClick:()=>void y("keep"),disabled:h||0===k.length,children:d("desktop.requeue")}),(0,o.jsx)("button",{type:"button",className:"rounded-md bg-(--accent) px-3 py-2 text-xs text-white disabled:opacity-40",onClick:()=>void y("keep",!0),disabled:h||0===k.length,children:d("desktop.requeueAndContinue")})]})]}),(0,o.jsx)("input",{ref:x,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&S(t),e.currentTarget.value=""}})]})}var o4=r(36405),o6=r(92185),o5=r(75877),o3=r(21163),o8=r(30830);function o7(e){let t=e,r=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:r}}function o9({node:e,assistantLabel:t,activePathIds:r,depth:n,isLast:s,parentLines:i,onSelect:l}){let{node:a,skipped:d}=o7(e),c=r.has(a.entry.id),p=r.has(e.entry.id)||r.has(a.entry.id),u=function(e,t){if("message"===e.type&&"message"in e){let r=e.message,o=r.content,n="";if("string"==typeof o?n=o:Array.isArray(o)&&(n=o.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),n.length>40&&(n=n.slice(0,40)+"…"),n)return n;if("assistant"===r.role)return`[${t}]`}return e.type}(a.entry,t),h="message"===a.entry.type&&"message"in a.entry?a.entry.message.role:null;return(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(a.entry.id),children:[i.map((e,t)=>(0,o.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,o.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,o.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,o.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:s?"50%":0,width:1,background:"var(--border)"}}),(0,o.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,o.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:c?"var(--accent)":p?"var(--text-muted)":"var(--border)",border:c?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),h&&(0,o.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===h?"var(--accent)":"var(--text-dim)",background:"user"===h?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===h?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===h?"U":"A"}),d>0&&(0,o.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",d]}),(0,o.jsx)("span",{style:{fontSize:11,color:c?"var(--text)":p?"var(--text-muted)":"var(--text-dim)",fontWeight:c?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:u})]}),a.children.map((e,d)=>(0,o.jsx)(o9,{node:e,assistantLabel:t,activePathIds:r,depth:n+1,isLast:d===a.children.length-1,parentLines:[...i,!s],onSelect:l},e.entry.id))]})}function ne({tree:e,activeLeafId:t,onLeafChange:r,inline:s,containerRef:i,open:l,onToggle:a,hasSession:d,embedded:c}){let{t:p}=(0,w.s)(),[u,m]=(0,n.useState)(!1),f=void 0!==l?l:u,x=(0,n.useRef)(null),[k,v]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(!f||!s)return;let e=i?.current??x.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();v({top:t.bottom,left:t.left,width:t.width})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[f,s,i]);let b=(0,n.useMemo)(()=>t?new Set(function e(r,o){for(let n of r){let r=[...o,n.entry.id];if(n.entry.id===t||n.compressedEntryIds?.includes(t))return r;let s=e(n.children,r);if(s)return s}return null}(e,[])??[]):new Set,[e,t]),y=(0,n.useCallback)(e=>{r(e)},[r]),j=d?!function e(t){for(let r of t)if(r.children.length>1||e(r.children))return!0;return!1}(e)?p("desktop.sessionHasNoBranches"):null:p("desktop.noActiveSession"),S=e.length>0?o7(e[0]):null,C=S?.node??null,I=!j&&C&&C.children.length>1,T=(0,o.jsx)(g.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),R=(0,o.jsx)(h.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:f?"rotate(180deg)":"none"}});return s?(0,o.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,o.jsx)("button",{ref:x,className:"app-no-drag",onClick:()=>a?a():m(e=>!e),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:f?"var(--bg-selected)":"none",border:"none",cursor:"pointer",color:f?"var(--text)":"var(--text-muted)",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=f?"var(--bg-selected)":"none",e.currentTarget.style.color=f?"var(--text)":"var(--text-muted)"},title:p("desktop.branches"),"aria-label":p("desktop.branches"),"aria-pressed":f,children:T}),f&&k&&(0,o.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:k.top,left:k.left,width:k.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:I&&C?(0,o.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:C.children.map((e,t)=>(0,o.jsx)(o9,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:b,depth:0,isLast:t===C.children.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,o.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j})})]}):c?I&&C?(0,o.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:C.children.map((e,t)=>(0,o.jsx)(o9,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:b,depth:0,isLast:t===C.children.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,o.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??p("desktop.sessionHasNoBranches")}):(0,o.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,o.jsxs)("button",{onClick:()=>m(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:[T,(0,o.jsx)("span",{style:{color:"var(--text-muted)"},children:p("desktop.branches")}),R]}),f&&(0,o.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:I&&C?(0,o.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:C.children.map((e,t)=>(0,o.jsx)(o9,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:b,depth:0,isLast:t===C.children.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,o.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??p("desktop.sessionHasNoBranches")})})]})}function nt(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function nr({onViewFullHistory:e,systemPrompt:t,sessionStats:r,contextUsage:s,hasSession:i,showChat:l,soundEnabled:a,onSoundToggle:d,onCompact:c,onAbortCompaction:u,isCompacting:h,compactError:m,branchTree:f,branchActiveLeafId:x,onBranchLeafChange:k,showSoundLabel:v}){let{t:b}=(0,w.s)(),[y,j]=(0,n.useState)(null),S=(0,n.useCallback)(()=>j(null),[]),[C,I]=(0,n.useState)(null),T=(0,n.useRef)(null),R=(0,n.useCallback)((e,t)=>{e5(t).then(()=>{T.current&&clearTimeout(T.current),I(e),T.current=setTimeout(()=>I(null),1400)})},[]),z=(0,n.useMemo)(()=>{if(!t)return 0;let e=0;for(let r of t){let t=r.codePointAt(0)??0;t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[t]);if(!l)return null;let M=r?.tokens,E=r?.cost??0,P=E>0?E>=.01?`$${E.toFixed(2)}`:"<$0.01":null,N="var(--text-muted)";if(s?.contextWindow){let e=s.percent;null!==e&&e>90?N="#ef4444":null!==e&&e>70&&(N="rgba(234,179,8,0.95)")}let $=null!==t&&""!==t,L=r&&M&&(M.input>0||M.output>0),F=i&&k&&function e(t){return t.some(t=>t.children.length>1||e(t.children))}(f??[]),W=[];if(M&&(W.push(`${b("desktop.sessionInfoInput")}: ${M.input.toLocaleString()}`),W.push(`${b("desktop.sessionInfoOutput")}: ${M.output.toLocaleString()}`),M.cacheRead>0&&W.push(`${b("desktop.sessionInfoCacheRead")}: ${M.cacheRead.toLocaleString()}`),M.cacheWrite>0&&W.push(`${b("desktop.sessionInfoCacheWrite")}: ${M.cacheWrite.toLocaleString()}`),E>0&&W.push(`${b("desktop.sessionInfoCost")}: $${E.toFixed(4)}`)),s?.contextWindow&&null!==s.percent){let e=s.percent,t=s.tokens;W.push(`${b("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?nt(t):"?"}/${nt(s.contextWindow)}`)}let D=W.join(" | ");return(0,o.jsxs)("div",{className:"session-info-bar",children:[d&&(0,o.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:d,title:a?b("desktop.disableCompletionSound"):b("desktop.enableCompletionSound"),"aria-label":a?b("desktop.disableCompletionSound"):b("desktop.enableCompletionSound"),children:[a?(0,o.jsx)(o4.Q,{size:13}):(0,o.jsx)(o6.l,{size:13}),v&&(0,o.jsx)("span",{style:{marginLeft:4},children:a?b("desktop.soundLabelOn"):b("desktop.soundLabelOff")})]}),i&&(0,o.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:e,title:b("desktop.viewFullHistory"),"aria-label":b("desktop.viewFullHistory"),children:(0,o.jsx)(o5.n,{size:13,"aria-hidden":"true"})}),F&&(0,o.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,o.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===y?" is-active":""}`,onClick:()=>j(e=>"branches"===e?null:"branches"),title:b("desktop.branches"),"aria-label":b("desktop.branches"),"aria-pressed":"branches"===y,children:(0,o.jsx)(g.Z,{size:13,"aria-hidden":"true"})}),"branches"===y&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"session-info-bar-popover-cover",onClick:S}),(0,o.jsxs)("div",{className:"session-info-bar-popover is-branches",children:[(0,o.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,o.jsx)("span",{className:"session-info-bar-popover-title",children:b("desktop.branches")}),(0,o.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:S,children:"✕"})]}),(0,o.jsx)("div",{className:"session-info-bar-popover-body",children:(0,o.jsx)(ne,{tree:f??[],activeLeafId:x??null,onLeafChange:e=>{k(e),S()},hasSession:!0,embedded:!0})})]})]})]}),$&&(0,o.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,o.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===y?" is-active":""}`,onClick:()=>j(e=>"system"===e?null:"system"),title:b("desktop.systemPrompt"),"aria-label":b("desktop.systemPrompt"),"aria-pressed":"system"===y,children:(0,o.jsx)(o3.i,{size:13,"aria-hidden":"true"})}),"system"===y&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"session-info-bar-popover-cover",onClick:S}),(0,o.jsxs)("div",{className:"session-info-bar-popover is-system",children:[(0,o.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,o.jsx)("span",{className:"session-info-bar-popover-title",children:b("desktop.systemPrompt")}),(0,o.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",nt(z)," tokens"]}),(0,o.jsx)("div",{style:{flex:1}}),(0,o.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:S,children:"✕"})]}),(0,o.jsx)("div",{className:"session-info-bar-system-body",children:t?(0,o.jsx)(eF.oz,{remarkPlugins:[ti.A],children:t}):(0,o.jsx)("span",{className:"session-info-bar-popover-empty",children:"System prompt is empty (tools are disabled)"})})]})]})]}),(0,o.jsx)("div",{className:"session-info-bar-spacer"}),c&&(0,o.jsxs)("div",{className:"session-info-bar-compact-wrap",children:[m&&(0,o.jsx)("div",{className:"session-info-bar-compact-error",children:m}),(0,o.jsx)("button",{type:"button",className:`session-info-bar-button${h?" is-compacting":""}`,onClick:h?u:c,title:h?b("desktop.stopCompaction"):b("desktop.compactContext"),"aria-label":h?b("desktop.stopCompaction"):b("desktop.compactContext"),children:h?(0,o.jsx)(or.M,{size:13}):(0,o.jsx)(o8.C,{size:13})})]}),L&&(0,o.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,o.jsxs)("button",{type:"button",className:`session-info-bar-button is-stats${"session"===y?" is-active":""}`,onClick:()=>j(e=>"session"===e?null:"session"),title:D||b("desktop.sessionInfo"),"aria-label":b("desktop.sessionInfo"),"aria-pressed":"session"===y,children:[M&&M.input>0&&(0,o.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,o.jsx)(tB.D,{size:10,"aria-hidden":"true"}),nt(M.input)]}),M&&M.output>0&&(0,o.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,o.jsx)(tH.y,{size:10,"aria-hidden":"true"}),nt(M.output)]}),M&&M.cacheRead>0&&(0,o.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,o.jsx)(t_.W,{size:10,"aria-hidden":"true"}),nt(M.cacheRead)]}),P&&(0,o.jsx)("span",{children:P}),s?.contextWindow&&null!==s.percent&&(0,o.jsx)("span",{className:"session-info-bar-token-chip",style:{color:N},children:(0,o.jsxs)("svg",{className:"session-info-bar-donut",width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,o.jsx)("circle",{cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,o.jsx)("circle",{className:"session-info-bar-donut-arc",cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",pathLength:100,strokeDasharray:100,strokeDashoffset:null===s.percent?0:100-Math.min(100,Math.max(0,s.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===y&&r&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"session-info-bar-popover-cover",onClick:S}),(0,o.jsx)("div",{className:"session-info-bar-popover is-session",children:(0,o.jsx)("div",{className:"session-stats-body",children:(()=>{let e=r.tokens,t=s??r.contextUsage,n=(e,t)=>{let r=C===e;return(0,o.jsx)("button",{type:"button",className:`session-stats-copy${r?" is-copied":""}`,title:r?b("desktop.copied"):"file"===e?b("desktop.copyFilePath"):b("desktop.copySessionId"),onClick:()=>R(e,t),children:r?(0,o.jsx)(p.J,{size:12,"aria-hidden":"true"}):(0,o.jsx)(eL.Q,{size:12,"aria-hidden":"true"})})},i=[];r.sessionName&&i.push((0,o.jsx)("div",{className:"session-stats-info-name",children:r.sessionName},"name")),i.push((0,o.jsxs)("div",{className:"session-stats-info-line",children:[(0,o.jsx)("span",{className:"session-stats-info-text",children:r.sessionFile?r.sessionFile.split(/[/\\]/).pop()??r.sessionFile:b("desktop.sessionInfoInMemory")}),r.sessionFile?n("file",r.sessionFile):null]},"file")),i.push((0,o.jsxs)("div",{className:"session-stats-info-line",children:[(0,o.jsx)("span",{className:"session-stats-info-text",children:r.sessionId}),n("id",r.sessionId)]},"id"));let l=[[b("desktop.sessionInfoUser"),r.userMessages.toLocaleString()],[b("desktop.sessionInfoAssistant"),r.assistantMessages.toLocaleString()],[b("desktop.sessionInfoToolCalls"),r.toolCalls.toLocaleString()],[b("desktop.sessionInfoToolResults"),r.toolResults.toLocaleString()],[b("desktop.sessionInfoTotal"),r.totalMessages.toLocaleString()]],a=[[b("desktop.sessionInfoInput"),e.input.toLocaleString()],[b("desktop.sessionInfoOutput"),e.output.toLocaleString()]];if(e.cacheRead>0&&a.push([b("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&a.push([b("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),a.push([b("desktop.sessionInfoTotal"),e.total.toLocaleString()]),r.cost>0&&a.push([b("desktop.sessionInfoCost"),`$${r.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,r=t.tokens;a.push([b("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==r?nt(r):"?"}/${nt(t.contextWindow)}`])}let d=(e,t)=>(0,o.jsxs)("div",{className:"session-stats-row",children:[(0,o.jsx)("div",{className:"session-stats-label",children:e}),(0,o.jsx)("div",{className:"session-stats-value",children:t})]},e);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"session-stats-info-block",children:i}),(0,o.jsxs)("div",{className:"session-stats-side-by-side",children:[(0,o.jsxs)("div",{className:"session-stats-column",children:[(0,o.jsx)("div",{className:"session-stats-section-title",children:b("desktop.sessionInfoMessages")}),(0,o.jsx)("div",{className:"session-stats-compact-grid",children:l.map(([e,t])=>d(e,t))})]}),(0,o.jsxs)("div",{className:"session-stats-column",children:[(0,o.jsx)("div",{className:"session-stats-section-title",children:b("desktop.sessionInfoTokens")}),(0,o.jsx)("div",{className:"session-stats-compact-grid",children:a.map(([e,t])=>d(e,t))})]})]})]})})()})})]})]})]})}function no(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/<\/?[\w:-]+\b[^&]*?>/gi," ").replace(/\s+/g," ").trim()}function nn({messages:e,streamingMessage:t,scrollContainer:r,messageRefs:s,onWidthChange:i}){var l;let[a,d]=(0,n.useState)(0),[c,p]=(0,n.useState)(1),[u,h]=(0,n.useState)(!1),[g,m]=(0,n.useState)([]),[f,x]=(0,n.useState)(!1),[k,v]=(0,n.useState)(null),[b,y]=(0,n.useState)(0),w=(0,n.useRef)(!1),j=(0,n.useRef)(null),S=(0,n.useMemo)(()=>t?[...e,t]:e,[e,t]),C=(0,n.useRef)(S);C.current=S;let I=(0,n.useCallback)(()=>{let e=r.current;if(!e)return;let t=e.scrollHeight,o=e.clientHeight,n=t-o;h(n>20),n<=0?(d(0),p(1)):(d(e.scrollTop/n),p(o/t))},[r]),T=(0,n.useRef)(null),R=(0,n.useRef)([]),z=(0,n.useCallback)(()=>{T.current||(T.current=setTimeout(()=>{T.current=null;let e=r.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let o=s.current,n=[],i=0,l=C.current;for(let r=0;r<l.length;r++){let s=l[r];if("user"!==s.role&&"assistant"!==s.role)continue;let a=o?.[i];if(i++,("user"===s.role||"assistant"===s.role&&(s.content??[]).some(e=>"text"===e.type))&&a){let r=a.getBoundingClientRect(),o=e.getBoundingClientRect(),i=r.top-o.top+e.scrollTop,l=r.height;n.push({topRatio:i/t,heightRatio:l/t,msg:s,index:n.length})}}let a=R.current;a.length===n.length&&n.every((e,t)=>1e-6>Math.abs(e.topRatio-a[t].topRatio)&&1e-6>Math.abs(e.heightRatio-a[t].heightRatio))||(R.current=n,m(n))},150))},[r,s]);(0,n.useEffect)(()=>{let e=r.current;if(e)return e.addEventListener("scroll",I,{passive:!0}),()=>e.removeEventListener("scroll",I)},[r,I]),(0,n.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{I(),z()},o=new ResizeObserver(t);return o.observe(e),e.firstElementChild&&o.observe(e.firstElementChild),t(),()=>{o.disconnect(),T.current&&(clearTimeout(T.current),T.current=null)}},[r,z,I]),(0,n.useEffect)(()=>{let e=setTimeout(()=>{I(),z()},50);return()=>clearTimeout(e)},[e.length,z,I]);let M=(0,n.useCallback)(e=>{let t=r.current;if(!t)return;let o=t.scrollHeight-t.clientHeight;o<=0||(t.scrollTop=Math.max(0,Math.min(1-c,e))/(1-c)*o)},[r,c]),E=(0,n.useCallback)(e=>{if(!u)return;w.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,o=r-a*(1-c),n=o>=0&&o<=c?o:c/2;M(r-n);let s=e=>{w.current&&M((e.clientY-t.top)/t.height-n)},i=()=>{w.current=!1,window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",i)};window.addEventListener("mousemove",s),window.addEventListener("mouseup",i)},[u,c,a,M]);(0,n.useEffect)(()=>{if(!u)return void y(0);let e=j.current;if(!e)return;let t=()=>y(e.clientHeight),r=new ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()},[u]);let P=(0,n.useMemo)(()=>{if(b<=0)return[];let e=[];return g.map(t=>{let r=t.topRatio*b,o=Math.max(3,Math.min(46,t.heightRatio*b)),n=Math.max(0,r-o/2),s=Math.min(b,r+o/2),i=e.findIndex(e=>n>=e+1);return -1===i?(i=e.length,e.push(s)):e[i]=s,{...t,displayTopPx:r,lane:i}})},[g,b]),N=Math.max(18,4+5*(l=(0,n.useMemo)(()=>P.reduce((e,t)=>Math.max(e,t.lane+1),1),[P]))+(l-1)*1);if((0,n.useEffect)(()=>{i?.(u?N:18)},[N,i,u]),(0,n.useEffect)(()=>()=>i?.(18),[i]),!u)return null;let $=a*(1-c)*100,L=100*c,F=null!==k&&P.length>0?P.reduce((e,t)=>Math.abs(t.displayTopPx/b-k)<Math.abs(P[e].displayTopPx/b-k)?t.index:e,0):null,W=null===F?null:P.find(e=>e.index===F)??null;return(0,o.jsxs)("div",{ref:j,onMouseDown:E,onMouseEnter:()=>x(!0),onMouseLeave:()=>{x(!1),v(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();v((e.clientY-t.top)/t.height)},style:{width:N,flexShrink:0,position:"relative",cursor:"pointer",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,o.jsx)("div",{style:{position:"absolute",left:1,right:1,top:`${$}%`,height:`${L}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),P.map(e=>{let t=function(e){if("user"===e.role)return"var(--accent)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--accent-red)":t.some(e=>"toolCall"===e.type)?"var(--accent-green)":"var(--text-dim)"}(e.msg),r=f&&W?.index===e.index,n="user"===e.msg.role,s=Math.max(3,Math.min(46,e.heightRatio*b)),i=2+6*e.lane;return(0,o.jsx)("div",{style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:i,width:5,height:s,display:"flex",alignItems:"stretch",cursor:"pointer",zIndex:function(e){if("user"===e.role)return 6;let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?5:t.some(e=>"text"===e.type&&!!e.text?.trim())?4:t.some(e=>"toolCall"===e.type)?3:2}(e.msg)},children:(0,o.jsx)("div",{style:{width:"100%",height:"100%",borderRadius:1,background:t,opacity:r?1:n?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:r?"brightness(1.2)":"none"}})},e.index)}),f&&W&&(()=>{let e=function(e){if("user"===e.role){let t=e.content;return"string"==typeof t?t.slice(0,200):Array.isArray(t)?t.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n").slice(0,200):""}if("assistant"===e.role){let t=e.content??[],r=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(r)return no(r).slice(0,200);let o=t.filter(e=>"thinking"===e.type).map(e=>no(e.thinking??"")).filter(Boolean).join(" ");if(o)return o.slice(0,200);let n=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(n.length)return n.join(", ")}return""}(W.msg);if(!e)return null;let t=function(e){if("user"===e.role)return"var(--minimap-preview-user-bg)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--minimap-preview-error-bg)":t.some(e=>"toolCall"===e.type)?"var(--minimap-preview-tool-bg)":"var(--minimap-preview-default-bg)"}(W.msg),r=Math.max(1,Math.min(5,Math.floor(b/120))),n=15*r+4,s=Math.max(n/2,Math.min(b-n/2,W.displayTopPx));return(0,o.jsx)("div",{style:{position:"absolute",top:s,transform:"translateY(-50%)",right:"100%",marginRight:6,background:t,border:"none",borderRadius:4,padding:"2px 7px",width:220,zIndex:100,pointerEvents:"none"},children:(0,o.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:"15px",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:r,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function ns(e){if("assistant"!==e.role)return e;let t=e.content;if(!Array.isArray(t))return e;let r=t.map(e=>("object"!=typeof e||null===e||Array.isArray(e)||"toolCall"!==e.type?null:{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})??e);return{...e,content:r}}async function ni(e,t){let r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),o=await r.json().catch(()=>({}));if(!r.ok||o.error)throw Error(o.error??`HTTP ${r.status}`);return o.data}var nl=r(14755);function na(){return"u">typeof performance?performance.now():Date.now()}function nd(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function nc(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}let np=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class nu extends Error{constructor(e){super("timeout"===e?"Timed out connecting to the agent event stream. Please try again.":"Failed to connect to the agent event stream. Please try again."),this.status=e,this.name="EventStreamConnectionError"}}function nh(e){return new Promise(t=>setTimeout(t,e))}function ng(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function nm(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:ng(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:ng(e.visible)};case"remove":return function(e,t){let r=e,o=t;for(;o.length>0&&r.length<5;){let[e,...t]=o;r=[...r,e],o=t}return o.length>0&&!r.some(e=>e.exiting)&&(r=ng(r)),{visible:r,pending:o}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function nf(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 nx(e){let t,r=e.content;return"string"==typeof r?JSON.stringify({text:r,images:[]}):Array.isArray(r)?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:r.map(nf).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function nk(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 nv(e){return"assistant"===e.role?eR(e).length>0:"custom"===e.role}function nb(e,t,r={}){let o={...e,content:t};return r.omitUsage&&(o.usage=void 0),o}function ny({session:e,newSessionCwd:t,onAgentEnd:s,onSessionCreated:i,onSessionForked:a,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:p,onSystemPromptChange:u,onSessionStatsChange:h,onSessionStatsPanelOpen:g,onContextUsageChange:m,onOpenFile:f,onWorkspaceControlsHostChange:x,onViewFullHistory:k,systemPrompt:v}){var b;let y,{soundEnabled:j,onSoundToggle:S,playDoneSound:C,unlockAudio:I}=function(){let[e,t]=(0,n.useState)(()=>{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}),r=(0,n.useRef)(e);(0,n.useEffect)(()=>{r.current=e},[e]);let o=(0,n.useRef)(null),s=(0,n.useCallback)(()=>{if(o.current&&"closed"!==o.current.state)return o.current;try{o.current=new AudioContext}catch{return null}return o.current},[]),i=(0,n.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=s();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[s]);return{soundEnabled:e,onSoundToggle:(0,n.useCallback)(()=>{let e=!r.current;e&&i(!0),r.current=e,localStorage.setItem("pi-sound-enabled",String(e)),t(e)},[i]),playDoneSound:(0,n.useCallback)(()=>{if(!r.current)return;let e=s();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,o)=>{let n=e.createOscillator(),s=e.createGain();n.connect(s),s.connect(e.destination),n.type="sine",n.frequency.value=r;let i=t+.18*o;s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.18,i+.02),s.gain.exponentialRampToValueAtTime(.001,i+.45),n.start(i),n.stop(i+.45)})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[s]),unlockAudio:i,soundEnabledRef:r}}(),T=r3(),{t:R}=(0,w.s)(),z=(0,n.useRef)(C);z.current=C;let M=(0,n.useRef)(j);M.current=j;let E=(0,n.useRef)(null),P=(0,n.useCallback)(()=>{M.current&&z.current(),s?.()},[s]),N=(0,n.useCallback)(e=>{c?.current?.insertIfEmpty(e)},[c]),$=(0,n.useCallback)(e=>{c?.current?.prependText(e)},[c]),{loading:L,error:F,messages:W,entryIds:D,streamState:A,agentRunning:O,bashRunning:H,pendingBash:B,modelNames:U,modelList:_,modelThinkingLevels:q,modelThinkingLevelMaps:K,modelScopeWarnings:V,toolPreset:J,thinkingLevel:Y,retryInfo:G,contextUsage:Q,forkingEntryId:Z,isCompacting:X,compactError:ee,compactResult:et,displayModel:er,sessionStats:eo,slashCommands:en,slashCommandsLoading:es,queuedMessages:ei,pendingRecovery:el,recoveryIsImport:ea,notices:ed,extensionDialog:ec,extensionCustomUi:ep,extensionStatuses:eu,extensionWidgets:eh,respondToExtensionUi:eg,sendExtensionCustomInput:em,isAutoModelSelection:ef,agentPhase:ex,isNew:ek,branchTree:ev,activeLeafId:eb,handleLeafChange:ey,sessionIdRef:ew,messagesEndRef:ej,scrollContainerRef:eS,lastUserMsgRef:eC,handleSend:eI,executeBash:eT,handleAbort:eR,handleFork:eM,handleNavigate:eE,handleModelChange:eP,handleCompact:eL,handleSteer:eF,handleFollowUp:eW,handlePromptWithStreamingBehavior:eD,handleAbortCompaction:eA,handleRecallQueue:eO,resolveRecovery:eH,exportQueueData:eB,stageQueueImport:eU,moveQueuedMessage:e_,recallQueuedMessage:eq,requeueAt:eK,removeQueuedMessage:eV,handleBuiltinSlashCommand:eJ,handleToolPresetChange:eY,handleThinkingLevelChange:eG,loadSlashCommands:eQ}=function(e){let{session:t,newSessionCwd:o,onAgentEnd:s,onSessionCreated:i,onSessionForked:l,modelsRefreshKey:a,onBranchDataChange:d,onSystemPromptChange:c,onSessionStatsPanelOpen:p}=e,u=null===t&&null!==o,[h,g]=(0,n.useState)(null),[m,f]=(0,n.useState)(!u),[x,k]=(0,n.useState)(null),[v,b]=(0,n.useState)(null),[y,w]=(0,n.useState)([]),[j,S]=(0,n.useState)([]),[C,I]=(0,n.useReducer)(nd,{isStreaming:!1,streamingMessage:null}),[T,R]=(0,n.useState)(!1),[z,M]=(0,n.useState)(!1),[E,P]=(0,n.useState)(null),[N,$]=(0,n.useState)({}),[L,F]=(0,n.useState)([]),[W,D]=(0,n.useState)({}),[A,O]=(0,n.useState)({}),[H,B]=(0,n.useState)([]),[U,_]=(0,n.useState)(null),[q,K]=(0,n.useState)(null),[V,J]=(0,n.useState)("default"),[Y,G]=(0,n.useState)("auto"),[Q,Z]=(0,n.useState)(null),[X,ee]=(0,n.useState)(null),[et,er]=(0,n.useState)(null),[eo,en]=(0,n.useState)(null),[es,ei]=(0,n.useState)(null),[el,ea]=(0,n.useState)(null),[ed,ec]=(0,n.useState)(!1),[ep,eu]=(0,n.useState)(null),[eh,eg]=(0,n.useState)(null),[em,ef]=(0,n.useState)(null),[ex,ek]=(0,n.useState)([]),[ev,eb]=(0,n.useState)(!1),[ey,ew]=(0,n.useReducer)(nm,{visible:[],pending:[]}),[ej,eS]=(0,n.useState)(null),[eC,eI]=(0,n.useState)(null),[eT,eR]=(0,n.useState)(null),[ez,eM]=(0,n.useState)([]),[eE,eP]=(0,n.useState)([]),[eN,e$]=(0,n.useState)({steering:[],followUp:[]}),[eL,eF]=(0,n.useState)([]),[eW,eD]=(0,n.useState)(!1),eA=(0,n.useRef)(null),eO=(0,n.useRef)(null),eH=(0,n.useRef)(null),eB=(0,n.useRef)(null),eU=(0,n.useRef)(0),e_=(0,n.useRef)(!1),eq=(0,n.useRef)(t?.id??null),eK=(0,n.useRef)(!1),eV=(0,n.useRef)(!1),eJ=(0,n.useRef)(!1),eY=(0,n.useRef)(-1),eG=(0,n.useRef)(!1),eQ=(0,n.useRef)(null),eZ=(0,n.useRef)(!1),eX=(0,n.useRef)(null),e0=(0,n.useRef)(!1),e1=(0,n.useRef)(!0),e2=(0,n.useRef)(!0),e4=(0,n.useRef)(0),e6=(0,n.useRef)(0),e5=(0,n.useRef)(null),e3=(0,n.useRef)(null),e8=(0,n.useRef)(null),e7=(0,n.useRef)(!1),e9=(0,n.useRef)(0),te=(0,n.useRef)(null),tt=(0,n.useRef)(null),tr=(0,n.useRef)(null),to=(0,n.useRef)(null);to.current||(to.current=function(e,t={}){let r,o=1e3/Math.max(1,t.maxUpdatesPerSecond??30),n=t.now??na,s=t.requestFrame??("function"==typeof requestAnimationFrame?requestAnimationFrame:void 0),i=t.cancelFrame??("function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0),l=t.setTimer??setTimeout,a=t.clearTimer??clearTimeout,d=!1,c=!1,p=null,u=null,h=null,g=()=>{null!==p&&(i?.(p),p=null),null!==u&&(a(u),u=null)},m=(t,o)=>{if(!c||d)return;let n=r;c=!1,r=void 0,h=t;let s=()=>{d||e(n)};o&&"function"==typeof queueMicrotask?queueMicrotask(s):s()},f=()=>{if(!d&&c&&null===p&&null===u){if(!s){let e=null===h?o:n()-h;u=l(()=>{u=null,m(n(),!0),f()},Math.max(0,o-e));return}p=s(e=>{if(p=null,d||!c)return;let t=null===h?o:e-h;if(t<o){u=l(()=>{u=null,f()},o-t);return}m(e,!0),f()})}};return{enqueue(e){d||(r=e,c=!0,f())},flush(){!d&&c&&(g(),m(n(),!1),f())},reset(){g(),c=!1,r=void 0,h=null},destroy(){d||(d=!0,g(),c=!1,r=void 0)}}}(e=>{I({type:"update",message:e})}));let tn=(0,n.useCallback)(()=>{to.current?.reset()},[]),ts=(0,n.useCallback)(e=>{to.current?.enqueue(e)},[]),ti=e.setToolPreset??J,tl=es??h?.context.model??el??null,ta=u?U??q:tl,td=(0,n.useMemo)(()=>{if(ej)return ej;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,o=0,n=0,s=0,i=0;for(let t of y){if("user"===t.role&&(o+=1),"toolResult"===t.role&&(s+=1),"assistant"!==t.role)continue;n+=1;let l=t.usage;i+=t.content.filter(e=>"toolCall"===e.type).length,l&&(e.input+=l.input??0,e.output+=l.output??0,e.cacheRead+=l.cacheRead??0,e.cacheWrite+=l.cacheWrite??0,r+=l.cost?.total??0)}return(e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0===e.total&&0===y.length)?null:{sessionFile:h?.filePath||void 0,sessionId:eq.current??t?.id??"",sessionName:t?.name,userMessages:o,assistantMessages:n,toolCalls:i,toolResults:s,totalMessages:y.length,tokens:e,cost:r,...X?{contextUsage:X}:{}}},[y,ej,X,h?.filePath,t?.id,t?.name]),tc=(0,n.useCallback)(async(e,t=!1,r=!1)=>{let o=!1;try{t&&f(!0);let n=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),s=await fetch(`/api/sessions/${encodeURIComponent(e)}?${n}`);if(404===s.status)return t&&(g(null),b(null),w([]),k(null)),null;if(!s.ok)throw Error(`HTTP ${s.status}`);let i=await s.json();if(eq.current!==e||(g(i),b(i.leafId),w(i.context.messages),S(i.context.entryIds??[]),ei(null),k(null),i.context.thinkingLevel&&"off"!==i.context.thinkingLevel&&G(i.context.thinkingLevel),o=!0,t&&f(!1),!r))return null;try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();if(eq.current!==e)return null;let o=r.state;return o?(void 0!==o.contextUsage&&ee(o.contextUsage??null),void 0!==o.systemPrompt&&er(o.systemPrompt??null),void 0!==o.thinkingLevel&&G(o.thinkingLevel??"auto"),void 0!==o.extensionStatuses&&eM(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&eP(o.extensionWidgets??[]),void 0!==o.queuedMessages&&e$(nc(o.queuedMessages)),void 0!==o.pendingRecovery&&eF(o.pendingRecovery??[])):r.running||e$({steering:[],followUp:[]}),r}catch(e){return console.error("Failed to load agent state:",e),null}}catch(e){return k(String(e)),null}finally{t&&!o&&f(!1)}},[]),tp=(0,n.useCallback)(async(e,t)=>{try{let r=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&r.set("leafId",t);let o=`/api/sessions/${encodeURIComponent(e)}/context?${r}`,n=await fetch(o);if(!n.ok)throw Error(`HTTP ${n.status}`);let s=await n.json();w(s.context.messages),S(s.context.entryIds??[])}catch(e){console.error("Failed to load context:",e)}},[]),tu=(0,n.useCallback)(async e=>{try{let t=await ni(e,{type:"get_tools"});if(t){let{getPresetFromTools:e}=await Promise.resolve().then(r.bind(r,14755));ti(e(t))}}catch(e){console.error("Failed to load tools:",e)}},[ti]),th=(0,n.useCallback)((e=0,t="(no messages)")=>{let r=eq.current;u&&o&&r&&!e7.current&&(e7.current=!0,i?.({id:r,path:"",cwd:o,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[u,o,i]),tg=(0,n.useCallback)(async()=>{if(eq.current||!u||!o)return eq.current;if(e8.current)return e8.current;let e=(async()=>{let e=tt.current,t=tr.current;e&&ea(e);let r=(0,nl.xG)(V),n=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:o,type:"ensure_session",toolNames:r,...e?{provider:e.provider,modelId:e.modelId}:{},...t?{thinkingLevel:t}:{}})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error??`HTTP ${n.status}`)}let s=await n.json();return eq.current=s.sessionId,s.model&&tt.current===e&&(ea(s.model),e||K(s.model)),s.thinkingLevel&&tr.current===t&&G(s.thinkingLevel),s.sessionId})();e8.current=e;try{return await e}finally{e8.current=null}},[u,o,V]),tm=(0,n.useCallback)(async()=>{let e=eq.current??await tg();if(!e)return ek([]),[];eb(!0);try{let t=await ni(e,{type:"get_commands"}),r=t?.commands??[];return ek(r),r}catch(e){return console.error("Failed to load slash commands:",e),ek([]),[]}finally{eb(!1)}},[tg]),tf=(0,n.useCallback)(()=>{eU.current+=1,e_.current=!1,eB.current&&(clearTimeout(eB.current),eB.current=null)},[]),tx=(0,n.useCallback)(()=>{eA.current?.close(),eA.current=null,eO.current=null,eH.current=null},[]),tk=(0,n.useCallback)(e=>{tx();let t=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);eA.current=t,eO.current=e;let r=new Promise(r=>{let o=!1,n=e=>{o||(o=!0,clearTimeout(s),eH.current?.source===t&&(eH.current.pending=!1),r({status:e,source:t}))},s=setTimeout(()=>n("timeout"),3e4);t.onmessage=e=>{try{let t=JSON.parse(e.data);"connected"===t.type&&n("connected"),eQ.current?.(t)}catch{}},t.onerror=()=>{if(t.readyState!==EventSource.CLOSED||(n("closed"),eA.current!==t||!eK.current&&!e_.current))return;eA.current=null,eO.current=null,eH.current=null;let r=eU.current;setTimeout(()=>{r===eU.current&&!eA.current&&(eK.current||e_.current)&&tk(e)},1e3)}});return eH.current={source:t,promise:r,pending:!0},r},[tx]),tv=(0,n.useCallback)(async e=>{let t=eA.current;if(t&&eO.current===e){if(t.readyState===EventSource.OPEN)return;let e=eH.current;if(e?.source===t&&e.pending&&(await e.promise,eA.current===t&&t.readyState===EventSource.OPEN))return}let r=await tk(e);if("connected"!==r.status&&r.source.readyState!==EventSource.OPEN)throw eA.current===r.source&&(eA.current=null),eO.current===e&&(eO.current=null),eH.current?.source===r.source&&(eH.current=null),r.source.close(),new nu(r.status)},[tk]),tb=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(eI(t=>t?.id===e.id?null:t),r)try{await ni(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),ty=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(r)try{await ni(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),tw=(0,n.useCallback)(e=>{let t=e.message.trim();t&&ew({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"}})},[]),tj=(0,n.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":eI(t);break;case"notify":tw({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":eM(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":eP(e=>{let r=e.filter(e=>e.key!==t.widgetKey);return t.widgetLines?[...r,{key:t.widgetKey,lines:t.widgetLines,placement:t.widgetPlacement??"aboveEditor"}]:r});break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":eR(e=>t.closed?e?.id===t.id?null:e:t)}},[tw,e.chatInputRef]),tS=(0,n.useCallback)(()=>{tn();let e=eK.current;return eK.current=!1,R(!1),ef(null),Z(null),I({type:"end"}),e},[tn]),tC=(0,n.useCallback)(e=>eY.current!==e&&(eY.current=e,s?.(),!0),[s]),tI=(0,n.useCallback)(e=>{tf(),e_.current=!0;let t=eU.current,r=async()=>{if(t===eU.current&&eq.current===e&&e_.current)try{let o=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!o.ok)throw Error(`HTTP ${o.status}`);let n=await o.json();if(t!==eU.current||eq.current!==e||!e_.current)return;let s=n.state;if(n.running&&s&&(s.isStreaming||s.isPromptRunning)){e_.current=!1,eB.current=null,eV.current=!!s?.isStreaming,eJ.current=!!s?.isPromptRunning,eK.current=!0,R(!0),ef(s?.isStreaming?{kind:"waiting_model"}:{kind:"running_command"});return}if(n.running&&s?.isCompacting){ec(!0),eB.current=setTimeout(()=>void r(),600);return}e_.current=!1,eB.current=null,tx()}catch{if(t!==eU.current||eq.current!==e||!e_.current)return;eB.current=setTimeout(()=>void r(),600)}};eB.current=setTimeout(()=>void r(),3e4)},[tf,tx]),tT=(0,n.useCallback)(async(e=eq.current,t=e9.current)=>{if(e9.current===t)try{e&&await tc(e)}finally{if(e9.current!==t)return;let r=eJ.current,o=eV.current;eJ.current=!1,eV.current=!1,te.current=null;let n=tS();r?tC(t):o&&n&&s?.(),e&&tI(e)}},[tc,tC,s,tI,tS]),tR=(0,n.useCallback)(async(e,t=e9.current)=>{await nh(800);let r=Date.now();for(;eK.current&&Date.now()-r<2e4;){if(e9.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let o=await r.json(),n=o.state;if(!o.running||!n||!n.isStreaming&&!n.isPromptRunning)return void await tT(e,t)}}catch{}await nh(600)}},[tT]),tz=(0,n.useCallback)(async e=>{if(!eK.current)return;let t=e9.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let o=await r.json();if(e9.current!==t)return;let n=o.state;if(ec(n?.isCompacting??!1),e$(nc(n?.queuedMessages)),eF(n?.pendingRecovery??[]),o.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting)||!eK.current)return;n&&(void 0!==n.contextUsage&&ee(n.contextUsage??null),void 0!==n.systemPrompt&&er(n.systemPrompt??null),void 0!==n.extensionStatuses&&eM(n.extensionStatuses??[]),void 0!==n.extensionWidgets&&eP(n.extensionWidgets??[])),await tT(e,t)}catch{}},[tT]);(0,n.useEffect)(()=>{if(!T)return;let e=()=>{let e=eq.current;e&&tz(e)},t=()=>{"visible"===document.visibilityState&&e()},r=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("online",e),()=>{clearInterval(r),document.removeEventListener("visibilitychange",t),window.removeEventListener("online",e)}},[T,tz]),(0,n.useEffect)(()=>{eK.current=T},[T]);let tM=(0,n.useCallback)((e="smooth")=>{e6.current=Date.now()+700;let t=e3.current,r=e5.current;if(!t||!r)return;let o=Math.max(0,r.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop-96*!!eK.current-t.clientHeight+32);t.scrollTo({top:o,behavior:e})},[]);eQ.current=(0,n.useCallback)(e=>{switch(e.type){case"agent_start":tn(),tf(),eV.current=!0,eK.current=!0,R(!0),ef({kind:"waiting_model"}),I({type:"start"});break;case"agent_end":{if(tn(),!eK.current)break;if(ef(null),Z(null),I({type:"end"}),!0!==e.willRetry){let t=e.messages??[];for(let e=t.length-1;e>=0;e--){let r=t[e];if(r?.role==="assistant"){"error"===r.stopReason&&r.errorMessage&&tw({type:"error",message:r.errorMessage});break}}}let t=eq.current;t&&(tc(t),fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():void 0).then(e=>{let t=e?.state;t?.contextUsage!==void 0&&ee(t.contextUsage??null),t?.systemPrompt!==void 0&&er(t.systemPrompt??null),t?.extensionStatuses!==void 0&&eM(t.extensionStatuses??[]),t?.extensionWidgets!==void 0&&eP(t.extensionWidgets??[]),e$(nc(t?.queuedMessages)),eF(t?.pendingRecovery??[])}).catch(()=>{}));break}case"agent_settled":{let e=eV.current;if(eV.current=!1,!e||eJ.current)break;let t=eq.current,r=tS();ec(!1),t&&(tc(t),tI(t)),r&&s?.();break}case"prompt_done":{let e=e9.current,t=eJ.current;eJ.current=!1,te.current=null;let r=tC(e);if(!t&&!r)break;let o=eq.current;o&&tc(o),!eV.current&&(tS(),o&&tI(o));break}case"prompt_error":tw({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":tw({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":{if(!eK.current)break;let t=e.message;if(t?.role==="user")break;t&&ts(ns(t)),ef(e=>null===e?e:null),e2.current&&requestAnimationFrame(()=>tM("auto"));break}case"message_end":{if(!eK.current)break;let t=e.message;if(t&&"user"===t.role){let e=ns(t),r=nx(e),o=te.current;te.current=null,w(t=>{let n=t[t.length-1];return o&&n?.role==="user"&&nx(n)===o?o===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t&&w(e=>[...e,ns(t)]);tn(),I({type:"reset"}),ef({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;ef(e=>{let o=e?.kind==="running_tools"?[...e.tools]:[];return o.some(e=>e.id===t)||o.push({id:t,name:r}),{kind:"running_tools",tools:o}});break}case"tool_execution_end":{let t=e.toolCallId;ef(e=>{if(e?.kind!=="running_tools")return e;let r=e.tools.filter(e=>e.id!==t);return 0===r.length?{kind:"waiting_model"}:{kind:"running_tools",tools:r}});break}case"queue_update":e$({steering:[...e.steering??[]],followUp:[...e.followUp??[]]});break;case"auto_retry_start":Z({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":Z(null);break;case"auto_compaction_start":case"compaction_start":ec(!0),eu(null),eg(null);break;case"auto_compaction_end":case"compaction_end":ec(!1),e.errorMessage?(eu(e.errorMessage),eg(null)):!e.aborted&&(eg(nk(e.result,e.reason??"auto")),eq.current&&tc(eq.current));break;case"extension_ui_request":tj(e)}},[tw,tf,tj,tc,tC,s,tI,tS,ts,tn,tM]);let tE=(0,n.useCallback)(async(e,r)=>{let n=e.trim();if(!n&&!r?.length||eK.current||eG.current)return;let s=!r?.length&&n.startsWith("/"),i=e9.current+1;tf(),tn(),eJ.current=!0;let l=r?.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()};w(e=>[...e,a]),te.current=nx(a),e9.current=i,eK.current=!0,R(!0),ef(s?{kind:"running_command"}:{kind:"waiting_model"}),I({type:"start"}),e0.current=!0,e1.current=!0;let d=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),c=null,p=!1;try{if(u&&o){let t=eq.current??await e8.current,r=t??await tg();r&&(c=r,U&&(ea(U),t&&await ni(r,{type:"set_model",provider:U.provider,modelId:U.modelId})),await tv(r),p=!0,await ni(r,{type:"prompt",message:e,...d?.length?{images:d}:{}}),th(1,e))}else t&&(c=t.id,await tv(t.id),p=!0,await ni(t.id,{type:"prompt",message:e,...d?.length?{images:d}:{}}));s&&c&&tR(c,i)}catch(e){if(console.error("Failed to send message:",e),p&&c)return void tR(c,i);if(eJ.current=!1,tx(),e instanceof nu){let t=te.current;t&&w(e=>{let r=e[e.length-1];return r?.role==="user"&&nx(r)===t?e.slice(0,-1):e}),tw({type:"error",message:e.message})}te.current=null,eK.current=!1,R(!1),ef(null),I({type:"end"})}},[u,o,U,t,tg,tv,th,tR,tw,tf,tx,tn]),tP=(0,n.useCallback)(async(r,o)=>{if(eK.current||eG.current)return;let n=`${o?"!!":"!"}${r}`;eG.current=!0,P({command:r,excludeFromContext:o}),M(!0);try{let e=eq.current??t?.id??await tg();if(!e)throw Error("Unable to create a session for the shell command");await ni(e,{type:"bash",command:r,excludeFromContext:o}),await tc(e),th(1,n)}catch(t){console.error("Failed to execute shell command:",t),tw({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(n)}finally{eG.current=!1,P(null),M(!1)}},[tw,tg,tc,e.chatInputRef,th,t]),tN=(0,n.useCallback)(async()=>{let e=eq.current;if(e)try{await ni(e,{type:eG.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),t$=(0,n.useCallback)(async e=>{let t=eq.current;if(t){en(e);try{let{cancelled:r,newSessionId:o}=await ni(t,{type:"fork",entryId:e})??{};!r&&o&&l?.(o)}catch(e){console.error("Fork failed:",e)}finally{en(null)}}},[l]),tL=(0,n.useCallback)(async e=>{let t=eq.current;t&&(ni(t,{type:"navigate_tree",targetId:e}).catch(()=>{}),b(e),await tp(t,e))},[tp]),tF=(0,n.useCallback)(async e=>{b(e);let t=eq.current;t&&(await tp(t,e),e&&ni(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[tp]),tW=(0,n.useCallback)(async(e,t)=>{if(u){let r={provider:e,modelId:t};tt.current=r,_(r),ea(r);let o=eq.current??await e8.current;if(!o)return;try{await ni(o,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=eq.current;if(r)try{await ni(r,{type:"set_model",provider:e,modelId:t}),ei({provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}},[u,_]),tD=(0,n.useCallback)(async()=>{let e=eq.current;if(e&&!ed){ec(!0),eu(null),eg(null);try{let t=await ni(e,{type:"compact"});eg(nk(t,"manual")),await tc(e,!0)}catch(e){eu(e instanceof Error?e.message:String(e)),eg(null)}finally{ec(!1)}}},[ed,tc]),tA=(0,n.useCallback)(async e=>{let r=o??t?.cwd??"",n=r?`/api/models?cwd=${encodeURIComponent(r)}`:"/api/models",s=await fetch(n,e?{signal:e}:void 0);if(!s.ok)throw Error(`HTTP ${s.status}`);let i=await s.json();$(i.models),D(i.thinkingLevels??{}),O(i.thinkingLevelMaps??{}),B(i.modelScopeWarnings??[]);let l=i.modelList??[];if(F(l),u&&!eq.current){let e=(i.defaultModel?l.find(e=>e.id===i.defaultModel?.modelId&&e.provider===i.defaultModel?.provider):void 0)??l[0];K(e?{provider:e.provider,modelId:e.id}:null);let t=e?i.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===tr.current&&G(t??"auto")}},[u,o,t?.cwd]),tO=(0,n.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,o=""]=t,n=o.trim(),s=eq.current??await tg(),i=e=>(e.handled&&(e.error?tw({type:"error",message:e.error}):"openSessionStats"!==e.action&&tw({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!s||ed)return i({handled:!0,error:"No active session to compact"});ec(!0),eu(null),eg(null);let e=await ni(s,{type:"compact",...n?{customInstructions:n}:{}});return eg(nk(e,"manual")),await tc(s,!0)&&th(),i({handled:!0,message:"Compacted context"})}case"reload":if(!s)return i({handled:!0,error:"No active session to reload"});return await ni(s,{type:"reload"}),await Promise.all([tc(s,!1,!0),tu(s),tm(),tA()]),i({handled:!0,message:"Reloaded session resources"});case"name":if(!s)return i({handled:!0,error:"No active session to name"});if(!n)return i({handled:!0,error:"Usage: /name <name>"});return await ni(s,{type:"set_session_name",name:n}),await tc(s)&&th(),i({handled:!0,message:`Session renamed to ${n}`});case"session":{if(!s)return i({handled:!0,error:"No active session"});let e=await ni(s,{type:"get_session_stats"});return e&&eS(e),p?.(),i({handled:!0,action:"openSessionStats"})}case"copy":{if(!s)return i({handled:!0,error:"No active session"});let e=await ni(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return i({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),i({handled:!0,message:"Copied last assistant message"})}default:return{handled:!1}}}catch(e){return i({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&ec(!1)}},[tw,tg,ed,tA,tc,tm,tu,th,p]),tH=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(!r)return;let o=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await ni(r,{type:"steer",message:e,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to steer:",e)}},[]),tB=(0,n.useCallback)(async(e,t,r)=>{let o=eq.current;if(!o)return;let n=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await ni(o,{type:"prompt",message:e,streamingBehavior:t,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to queue prompt:",e)}},[]),tU=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(!r)return;let o=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await ni(r,{type:"follow_up",message:e,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to follow up:",e)}},[]),t_=(0,n.useCallback)(async()=>{let e=eq.current;if(e)try{await ni(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),tq=(0,n.useCallback)(async()=>{let t=eq.current;if(t)try{let r=await ni(t,{type:"clear_queue"});e$({steering:[],followUp:[]});let o=[...r?.steering??[],...r?.followUp??[]];o.length>0&&e.chatInputRef?.current?.prependText(o.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),tw({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,tw]);(0,n.useEffect)(()=>{0===eL.length&&eD(!1)},[eL.length]);let tK=(0,n.useCallback)(async(e,t,r=!1)=>{let o=eq.current;if(!o)return eL;try{let n=await ni(o,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),s=n?.remaining??[];return eF(s),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(o)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;eV.current=!!r.isStreaming,eJ.current=!!r.isPromptRunning,eK.current=!0,R(!0),ef(r.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),I({type:"start"}),tk(o),!r.isStreaming&&r.isPromptRunning&&tR(o)}catch{}})(),s}catch(e){return console.error("Failed to resolve queued message recovery:",e),tw({type:"error",message:"Failed to resolve queued message recovery"}),eL}},[eL,tw,tk,tR]),tV=(0,n.useCallback)(async()=>{let e=eq.current;if(!e)return null;try{return await ni(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),tw({type:"error",message:"Failed to export queue"}),null}},[tw]),tJ=(0,n.useCallback)(async e=>{let t=eq.current;if(!t)return null;try{let r=await ni(t,{type:"import_queue",entries:e});return r&&e$(nc(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),tw({type:"error",message:"Failed to import queue"}),null}},[tw]),tY=(0,n.useCallback)(async e=>{let t=eq.current;if(!t)return null;try{let r=await ni(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&eF(r.pendingRecovery),(r?.staged??0)>0&&eD(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),tw({type:"error",message:"Failed to stage imported queue"}),null}},[tw]),tG=(0,n.useCallback)(async(e,t,r)=>{let o=eq.current;if(!o)return!1;try{let n=await ni(o,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return n&&e$(nc(n)),!0}catch(e){return console.error("Failed to move queued message:",e),tw({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[tw]),tQ=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(!r)return null;try{let o=await ni(r,{type:"recall_queue_item",kind:e,index:t});return o&&(void 0!==o.steering||void 0!==o.followUp)&&e$(nc(o)),o?.entry?{text:o.entry.text,images:o.entry.images?.map(({data:e,mimeType:t})=>({data:e,mimeType:t}))}:null}catch(e){return console.error("Failed to recall queued message:",e),tw({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[tw]),tZ=(0,n.useCallback)(async(e,t,r,o)=>{let n=eq.current;if(!n)return!1;try{let s=await ni(n,{type:"requeue_at",kind:e,index:t,text:r,images:o?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return s&&e$(nc(s)),!0}catch(e){return console.error("Failed to requeue message:",e),tw({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[tw]),tX=(0,n.useCallback)(async(e,t)=>{let r=eq.current;if(!r)return!1;try{let o=await ni(r,{type:"remove_queue_item",kind:e,index:t});return o&&e$(nc(o)),!0}catch(e){return console.error("Failed to remove queued message:",e),tw({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[tw]),t0=(0,n.useCallback)(async e=>{if(tr.current="auto"===e?null:e,G(e),"auto"===e)return;let t=eq.current??await e8.current;if(t)try{await ni(t,{type:"set_thinking_level",level:e})}catch(e){console.error("Failed to set thinking level:",e)}},[]),t1=(0,n.useCallback)(async e=>{let t=(0,nl.xG)(e);ti(e);let r=eq.current??await e8.current;if(r)try{await ni(r,{type:"set_tools",toolNames:t})}catch(e){console.error("Failed to set tools:",e)}},[ti]),t2=(0,n.useCallback)(()=>{let e=e3.current,t=eX.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop;e6.current=Date.now()+700,e.scrollTo({top:r-16,behavior:"smooth"})},[]),t4=(0,n.useCallback)(e=>{e instanceof KeyboardEvent&&(!np.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(e4.current=Date.now()+1200)},[]),t6=(0,n.useCallback)(()=>{let e=e3.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:o}=e;e2.current=t+r>=o-150}!eK.current||Date.now()<e6.current||Date.now()>e4.current||(e1.current=!1)},[]);(0,n.useEffect)(()=>(t&&(eq.current=t.id,tc(t.id,!0,!0).then(e=>{e?.running&&(e.state?.isBashRunning&&(eG.current=!0,M(!0)),tu(t.id),(e.state?.isStreaming||e.state?.isPromptRunning)&&(eV.current=!!e.state.isStreaming,eJ.current=!!e.state.isPromptRunning,eK.current=!0,R(!0),ef(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),I({type:"start"}),tk(t.id),!e.state.isStreaming&&e.state.isPromptRunning&&tR(t.id))),e?.state&&(void 0!==e.state.isCompacting&&ec(e.state.isCompacting),void 0!==e.state.contextUsage&&ee(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&er(e.state.systemPrompt??null),void 0!==e.state.thinkingLevel&&G(e.state.thinkingLevel??"auto"),void 0!==e.state.extensionStatuses&&eM(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&eP(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&e$(nc(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&eF(e.state.pendingRecovery??[]))})),()=>{tn(),tf(),tx()}),[tn]),(0,n.useEffect)(()=>{c?.(et)},[et,c]),(0,n.useEffect)(()=>{d&&d(h?.tree??[],v,tF)},[h?.tree,v,tF,d]),(0,n.useEffect)(()=>(window.addEventListener("keydown",t4),window.addEventListener("pointerdown",t4,{passive:!0}),()=>{window.removeEventListener("keydown",t4),window.removeEventListener("pointerdown",t4)}),[t4]),(0,n.useEffect)(()=>{let e=e3.current;if(e)return e.addEventListener("wheel",t4,{passive:!0}),e.addEventListener("touchstart",t4,{passive:!0}),e.addEventListener("scroll",t6,{passive:!0}),()=>{e.removeEventListener("wheel",t4),e.removeEventListener("touchstart",t4),e.removeEventListener("scroll",t6)}},[y.length,m,t6,t4]),(0,n.useEffect)(()=>{y.length>0&&(e0.current?(e0.current=!1,eZ.current=!0,t2()):eZ.current?!eK.current&&(e1.current||e2.current)&&tM("smooth"):(eZ.current=!0,tM("instant")))},[y.length,T,tM,t2]),(0,n.useEffect)(()=>{let e=new AbortController;return tA(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[tA,a]),(0,n.useEffect)(()=>{if(!ep)return;let e=setTimeout(()=>eu(null),3e3);return()=>clearTimeout(e)},[ep]),(0,n.useEffect)(()=>{if(!eh)return;let e=setTimeout(()=>eg(null),6e3);return()=>clearTimeout(e)},[eh]),(0,n.useEffect)(()=>{if(0===ey.visible.length)return;let e=ey.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{ew({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!ey.visible[0])return;let t=setTimeout(()=>{ew({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[ey.visible]),(0,n.useEffect)(()=>{eS(null)},[y.length,X?.tokens,X?.percent,X?.contextWindow]);let t5=h?.tree??[];return{data:h,loading:m,error:x,activeLeafId:v,messages:y,entryIds:j,streamState:C,agentRunning:T,bashRunning:z,pendingBash:E,modelNames:N,modelList:L,modelThinkingLevels:W,modelThinkingLevelMaps:A,modelScopeWarnings:H,newSessionModel:U,toolPreset:V,thinkingLevel:Y,retryInfo:Q,contextUsage:X,systemPrompt:et,forkingEntryId:eo,isCompacting:ed,compactError:ep,compactResult:eh,currentModel:tl,displayModel:ta,sessionStats:td,slashCommands:ex,slashCommandsLoading:ev,queuedMessages:eN,pendingRecovery:eL,recoveryIsImport:eW,notices:ey.visible,extensionDialog:eC,extensionCustomUi:eT,extensionStatuses:ez,extensionWidgets:eE,respondToExtensionUi:tb,sendExtensionCustomInput:ty,isAutoModelSelection:u&&null===U,agentPhase:em,isNew:u,branchTree:t5,sessionIdRef:eq,eventSourceRef:eA,messagesEndRef:e5,scrollContainerRef:e3,lastUserMsgRef:eX,pendingScrollToUserRef:e0,initialScrollDoneRef:eZ,handleSend:tE,executeBash:tP,handleAbort:tN,handleFork:t$,handleNavigate:tL,handleModelChange:tW,handleCompact:tD,handleSteer:tH,handleFollowUp:tU,handlePromptWithStreamingBehavior:tB,handleAbortCompaction:t_,handleRecallQueue:tq,resolveRecovery:tK,exportQueueData:tV,importQueueData:tJ,stageQueueImport:tY,moveQueuedMessage:tG,recallQueuedMessage:tQ,requeueAt:tZ,removeQueuedMessage:tX,handleBuiltinSlashCommand:tO,handleToolPresetChange:t1,handleThinkingLevelChange:t0,loadTools:tu,loadSlashCommands:tm,setActiveLeafId:b,setData:g,setMessages:w,dispatch:I,setAgentRunning:R,setForkingEntryId:en,handleLeafChange:tF,handleAgentEventRef:eQ}}({session:e,newSessionCwd:t,onAgentEnd:P,onSessionCreated:i,onSessionForked:a,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:p,onSystemPromptChange:u,onSessionStatsPanelOpen:g}),[eZ,eX]=(0,n.useState)(!1);(0,n.useEffect)(()=>{0===el.length&&eX(!1)},[el.length]),(0,n.useEffect)(()=>{ec&&E.current!==ec.id&&(E.current=ec.id,M.current&&z.current())},[ec]),(0,n.useEffect)(()=>{l=O||H?eR:null},[O,H,eR]);let[e0,e1]=(0,n.useState)(!1),[e2,e4]=(0,n.useState)(!1),e6=(0,n.useCallback)(()=>{let e=eS.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;e1(e.scrollTop>1),e4(t>1)},[eS]),e5=(0,n.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eS.current;e&&(e.scrollTop=e.scrollHeight,e6())})},[eS,e6]);(0,n.useEffect)(()=>{let e=eS.current;if(!e)return;let t=new ResizeObserver(e6);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",e6,{passive:!0}),e6(),()=>{e.removeEventListener("scroll",e6),t.disconnect()}},[W.length,eS,e6]);let[e3,e8]=(0,n.useState)(50),e7=(0,n.useRef)(null),e9=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=e7.current,t=eS.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{e[0]?.isIntersecting&&(e9.current=t.scrollHeight-t.scrollTop,e8(e=>(function(e,t=50){return e+t})(e)))},{root:t,threshold:0});return r.observe(e),()=>r.disconnect()},[e3,W.length,eS]),(0,n.useEffect)(()=>{if(null==e9.current)return;let e=eS.current;if(e){var t;t=e.scrollHeight,e.scrollTop=Math.max(0,t-e9.current),e6(),e9.current=null}},[e3,eS,e6]);let te=eo?[eo.sessionId,eo.sessionFile??"",eo.sessionName??"",eo.userMessages,eo.assistantMessages,eo.toolCalls,eo.toolResults,eo.totalMessages,eo.tokens.input,eo.tokens.output,eo.tokens.cacheRead,eo.tokens.cacheWrite,eo.tokens.total,eo.cost??0].join("|"):null,tt=(0,n.useRef)(eo);tt.current=eo,(0,n.useEffect)(()=>{h?.(tt.current)},[te,h]),(0,n.useEffect)(()=>()=>{h?.(null)},[h]);let tr=Q?`${Q.percent??"null"}|${Q.contextWindow}|${Q.tokens??"null"}`:null,to=(0,n.useRef)(Q);to.current=Q,(0,n.useEffect)(()=>{m?.(to.current)},[tr,m]),(0,n.useEffect)(()=>()=>{m?.(null)},[m]);let{isDragOver:tn,handleDragEnter:ts,handleDragOver:ti,handleDragLeave:tl,handleDrop:ta}=function(e){let[t,r]=(0,n.useState)(!1),o=(0,n.useRef)(0),s=(0,n.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),o.current+=1,r(!0))},[]),i=(0,n.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:s,handleDragOver:i,handleDragLeave:(0,n.useCallback)(()=>{o.current-=1,o.current<=0&&(o.current=0,r(!1))},[]),handleDrop:(0,n.useCallback)(t=>{t.preventDefault(),o.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,n.useCallback)((e,t)=>{O||c?.current?.addFiles(e,t)},[O,c])),td=W.filter(e=>"user"===e.role||"assistant"===e.role),tc=(0,n.useMemo)(()=>{let e=new Set,t=[];for(let o=W.length-1;o>=0&&t.length<50;o-=1){var r;let n="user"!==(r=W[o]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!n||e.has(n)||(e.add(n),t.push(n))}return t},[W]),tp=(b=td.length,(y=(0,n.useRef)([])).current=Array(b).fill(null).map((e,t)=>y.current[t]??null),y),tu=ek&&0===W.length&&!A.isStreaming&&!O,th=e?.cwd??t??void 0,tg=er?q[`${er.provider}:${er.modelId}`]??null:null,tm=er?K[`${er.provider}:${er.modelId}`]??null:null,tf=(0,o.jsx)(oX,{ref:c,onSend:eI,onBash:eT,onAbort:eR,onSteer:O?eF:void 0,onFollowUp:O?eW:void 0,onPromptWithStreamingBehavior:O?eD:void 0,isStreaming:O,model:er,isAutoModelSelection:ef,modelNames:U,modelList:_,modelScopeWarnings:V,onModelChange:eP,compactResult:et,toolPreset:J,onToolPresetChange:e||ek?eY:void 0,thinkingLevel:Y,onThinkingLevelChange:e||ek?eG:void 0,availableThinkingLevels:tg,thinkingLevelMap:tm,retryInfo:G,queuedMessages:ei,inputHistory:tc,onRecallQueue:eO,onMoveQueue:e_,onRecallOne:eq,onRequeueAt:eK,onRemoveQueueItem:eV,slashCommands:en,slashCommandsLoading:es,onLoadSlashCommands:eQ,onBuiltinCommand:eJ,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tx=eh.filter(e=>"belowEditor"!==e.placement),tk=eh.filter(e=>"belowEditor"===e.placement),tv=X?R("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(ex,R);return L?(0,o.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:R("desktop.loadingSession")}):F?(0,o.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:F}):(0,o.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:ts,onDragOver:ti,onDragLeave:tl,onDrop:ta,children:[tn&&!O&&(0,o.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,o.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,o.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,o.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,o.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,o.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,o.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,o.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,o.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,o.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,o.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,o.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,o.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,o.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,o.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,o.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ec&&(0,o.jsx)(nC,{request:ec,onRespond:eg}),ep&&(0,o.jsx)(nI,{request:ep,onInput:em}),!ek&&el.length>0&&!eZ&&(0,o.jsx)(o2,{items:el,sessionId:e?.id,onResolve:eH,onExport:eB,onStageImport:eU,onDismiss:()=>eX(!0),mode:ea?"import":"recovery"}),tu?(0,o.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,o.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,o.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,o.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,o.jsx)("title",{children:"Pi"}),(0,o.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,o.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),(0,o.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:T?16:34},children:(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,o.jsx)("div",{ref:x,style:{display:"flex",alignItems:"center",minWidth:0,flex:1,minHeight:48}}),(0,o.jsxs)("div",{style:{display:T?"none":"flex",flexDirection:"column",alignItems:"flex-end",gap:2,flexShrink:0},children:[(0,o.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,o.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.9.3"]})]}),(0,o.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,o.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.83.0"]})]})]})]})}),(0,o.jsx)("div",{style:{padding:"0 16px",paddingRight:T?16:34},children:(0,o.jsx)(nS,{notices:ed,align:"right"})}),tf,(0,o.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:T?16:34,marginTop:-15},children:(0,o.jsx)(nr,{onViewFullHistory:k,systemPrompt:v,sessionStats:eo,contextUsage:Q,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:j,onSoundToggle:S,onCompact:e?eL:void 0,onAbortCompaction:eA,isCompacting:X,compactError:ee,branchTree:ev,branchActiveLeafId:eb,onBranchLeafChange:ey})})]})}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,o.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!T,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,o.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,o.jsx)(nS,{notices:ed,floating:!0,align:"right"})})}),(0,o.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,o.jsx)("div",{ref:eS,className:"h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-width:none]",children:(0,o.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,o.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,o.jsx)(nw,{statuses:eu}),(0,o.jsx)(nj,{widgets:tx}),(()=>{var t;let r,n,s=new Map;for(let e of W)"toolResult"===e.role&&s.set(e.toolCallId,e);let i=-1;for(let e=W.length-1;e>=0;e--)if("user"===W[e].role){i=e;break}let l=new Map,a=0;W.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&l.set(t,a++)});let d=(t,r={})=>{let n=r.messageOverride??W[t],a="user"===n.role&&t>0&&"assistant"===W[t-1].role?D[t-1]:void 0,d="user"===n.role||"assistant"===n.role,c=l.get(t),p=r.keyPrefix??"message",u=!1;if("assistant"===n.role){u=!0;for(let e=t+1;e<W.length;e++){let t=W[e].role;if("user"===t)break;if("assistant"===t){u=!1;break}}u&&A.isStreaming&&t===W.length-1&&(u=!1)}void 0!==r.showTimestamp&&(u=r.showTimestamp);let h=(0,o.jsx)(tG,{message:n,toolResults:s,modelNames:U,cwd:th,onOpenFile:f,entryId:D[t],onFork:O||ek||0===t&&"user"===n.role?void 0:eM,forking:Z===D[t],onNavigate:O?void 0:eE,prevAssistantEntryId:O?void 0:a,onEditContent:N,onQuoteReply:$,showTimestamp:u,prevTimestamp:t>0?W[t-1].timestamp:void 0,sessionId:e?.id??ew.current??void 0},`${p}-view-${t}`);return d&&!1!==r.attachRef&&void 0!==c?(0,o.jsx)("div",{ref:e=>{tp.current[c]=e,t===i&&(eC.current=e)},children:h},`${p}-${t}`):h},c=[];for(let t=0;t<W.length;){let r=W[t],n="custom"===r.role&&"compaction"===r.customType;if("user"!==r.role&&!n){c.push(d(t)),t+=1;continue}let a=t,p=a+1;for(;p<W.length&&"user"!==W[p].role;)p+=1;let u=function(e,t,r){for(let n=r-1;n>t;n--){var o;if("assistant"===(o=e[n]).role&&ez(o).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return n}for(let o=r-1;o>t;o--)if(e[o]?.role==="assistant")return o;return -1}(W,a,p);if((O||A.isStreaming)&&p===W.length&&(a===i||n)){c.push(d(a));let r=A.streamingMessage?.role==="assistant",n=[],i=!r&&u>=0?u:p;for(let e=a+1;e<i;e++)nv(W[e])&&n.push(e);let h=e$(W,D,n,s),g=null;if(!r&&u>=0){let e=W[u],t=ez(e,{isStreaming:!0}),r=eN(e,{messageIndex:u,entryId:D[u],toolResults:s,isStreaming:!0});h=h.concat(r.processBlocks),t.answerBlocks.length>0&&(g=nb(e,t.answerBlocks,{omitUsage:!0}))}if(r){let e=A.streamingMessage,t=ez(e,{isStreaming:!0}),r=eN(e,{messageIndex:W.length,toolResults:s,isStreaming:!0});h=h.concat(r.processBlocks),t.answerBlocks.length>0&&(g=nb(e,t.answerBlocks,{omitUsage:!0}))}if(h.length>0){let t=n.map(e=>l.get(e)).find(e=>"number"==typeof e);c.push((0,o.jsx)("div",{ref:void 0===t?void 0:e=>{tp.current[t]=e},children:(0,o.jsx)(rV,{blocks:h,isStreaming:O||A.isStreaming,cwd:th,onOpenFile:f,sessionId:e?.id??ew.current??void 0})},`live-process-group-${a}`))}g&&c.push((0,o.jsx)(tG,{message:g,isStreaming:!0,modelNames:U,cwd:th,onOpenFile:f,onQuoteReply:$},`live-answer-${a}`)),t=p;continue}if(-1===u){for(let e=a;e<p;e++)c.push(d(e));t=p;continue}c.push(d(a));let h=[];for(let e=a+1;e<u;e++)h.push(e);let g=h.filter(e=>nv(W[e])),m=W[u],x=ez(m),k=x.processBlocks.length>0?nb(m,x.processBlocks,{omitUsage:!0}):null,v=x.answerBlocks.length>0?nb(m,x.answerBlocks):null,b=e$(W,D,g,s);if(k&&(b=b.concat(eN(m,{messageIndex:u,entryId:D[u],toolResults:s}).processBlocks)),b.length>0){let t=g.map(e=>l.get(e)).find(e=>"number"==typeof e)??(v?void 0:l.get(u));c.push((0,o.jsx)("div",{ref:void 0===t?void 0:e=>{tp.current[t]=e},children:(0,o.jsx)(rV,{blocks:b,isStreaming:!1,defaultExpanded:!v,onAutoExpanded:v?void 0:e5,cwd:th,onOpenFile:f,sessionId:e?.id??ew.current??void 0})},`process-group-${a}-${u}`))}v&&c.push(d(u,{messageOverride:v}));for(let e=u+1;e<p;e++)c.push(d(e));t=p}let{startIndex:p,hasMore:u}=(r=Math.min(Math.max(e3,0),Math.max(t=c.length,0)),{startIndex:n=Math.max(0,t-r),hasMore:n>0});return(0,o.jsxs)(o.Fragment,{children:[u&&(0,o.jsx)("div",{ref:e7,className:"py-3 text-center text-xs text-text-muted",children:R("desktop.scrollToLoadEarlierMessages",{count:p})}),c.slice(p)]})})(),tv&&(X||O&&!A.streamingMessage)&&(0,o.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,o.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:tv})}),B&&(0,o.jsx)(tG,{message:{role:"bashExecution",command:B.command,output:"",excludeFromContext:B.excludeFromContext},sessionId:e?.id??ew.current??void 0}),H&&!B&&(0,o.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,o.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:R("desktop.runningShellCommand")})}),O&&(0,o.jsx)("div",{style:{height:96}}),(0,o.jsx)("div",{ref:ej})]})})}),e0&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),e2&&(0,o.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),T?null:(0,o.jsx)(nn,{messages:W,streamingMessage:A.streamingMessage,scrollContainer:eS,messageRefs:tp})]}),(0,o.jsxs)("div",{className:"relative z-10",children:[(0,o.jsx)("div",{style:{padding:"0 16px",paddingRight:T?16:34},children:(0,o.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,o.jsx)(nj,{widgets:tk})})}),tf,(0,o.jsx)("div",{className:`session-info-bar-wrap${T?" is-mobile":""}`,children:(0,o.jsx)("div",{className:"session-info-bar-inner",children:(0,o.jsx)(nr,{onViewFullHistory:k,systemPrompt:v,sessionStats:eo,contextUsage:Q,hasSession:!!e,showChat:!0,soundEnabled:j,onSoundToggle:S,onCompact:e?eL:void 0,onAbortCompaction:eA,isCompacting:X,compactError:ee,branchTree:ev,branchActiveLeafId:eb,onBranchLeafChange:ey})})})]})]})]})}function nw({statuses:e}){return 0===e.length?null:(0,o.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,o.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function nj({widgets:e}){return 0===e.length?null:(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>(0,o.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,o.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function nS({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,n)=>{let s="error"===r.type?"#ef4444":"warning"===r.type?"#d97706":"success"===r.type?"#10b981":"var(--accent)";return(0,o.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:60,height:60,maxHeight:60,marginBottom:6*(n!==e.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:t?"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:18,lineHeight:1.45,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,o.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:s,flexShrink:0}}),(0,o.jsx)("span",{style:{padding:"14px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.message})]},r.id)})})}function nC({request:e,onRespond:t}){let{t:r}=(0,w.s)(),[s,i]=(0,n.useState)("editor"===e.method?e.prefill??"":"");(0,n.useEffect)(()=>{i("editor"===e.method?e.prefill??"":"")},[e]);let l=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:s})};return(0,o.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,o.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650},children:e.title}),(0,o.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:r("desktop.extensionRequest")})]}),(0,o.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:13,lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,o.jsx)("div",{style:{display:"grid",gap:8},children:e.options.map(r=>(0,o.jsx)("button",{onClick:()=>t(e,{value:r}),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},children:r},r))}),"input"===e.method&&(0,o.jsx)("input",{autoFocus:!0,value:s,placeholder:e.placeholder,onChange:e=>i(e.target.value),onKeyDown:r=>{"Enter"===r.key&&l(),"Escape"===r.key&&t(e,{cancelled:!0})},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"===e.method&&(0,o.jsx)("textarea",{autoFocus:!0,value:s,onChange:e=>i(e.target.value),onKeyDown:r=>{"Escape"===r.key&&t(e,{cancelled:!0}),(r.metaKey||r.ctrlKey)&&"Enter"===r.key&&l()},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,o.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,o.jsx)("button",{onClick:()=>t(e,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:r("desktop.cancel")}),"confirm"===e.method?(0,o.jsx)("button",{onClick:l,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:r("desktop.confirm")}):"select"!==e.method?(0,o.jsx)("button",{onClick:l,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:r("desktop.submit")}):null]})]})})}function nI({request:e,onInput:t}){let{t:r}=(0,w.s)(),s=(0,n.useRef)(null),i=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let o of e){let e=ej(o).trimEnd();if(t.test(e))continue;let n=o,s=eI(n);("│"===s||"┃"===s)&&" "===eI(n=eC(n,0))&&(n=eC(n,0));let i=function(e){let t=eS(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(n),l=i>=0?eS(n)[i]?.char:void 0;("│"===l||"┃"===l)&&(n=eC(n,i)),r.push(function(e){let t=e;for(;;){let e=eS(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(n))}for(;r.length>0&&""===ej(r[0]).trim();)r.shift();for(;r.length>0&&""===ej(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,n.useEffect)(()=>{s.current?.focus()},[e.id]),(0,o.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,o.jsxs)("div",{ref:s,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:r=>{let o=function(e){if(e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length){let t=e.key.toLowerCase();if(t>="a"&&t<="z")return String.fromCharCode(t.charCodeAt(0)-96)}switch(e.key){case"ArrowUp":return"\x1b[A";case"ArrowDown":return"\x1b[B";case"ArrowRight":return"\x1b[C";case"ArrowLeft":return"\x1b[D";case"Enter":return"\r";case"Escape":return"\x1b";case"Backspace":return"";case"Tab":return" ";case" ":return" ";default:if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length)return e.key;return null}}(r);o&&(r.preventDefault(),r.stopPropagation(),t(e,o))},style:{width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",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,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:r("desktop.extensionPanel")}),(0,o.jsx)("button",{onClick:()=>t(e,"\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:r("desktop.close")})]}),(0,o.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(i.length?i:[""]).map((e,t,r)=>{var s;return(0,o.jsxs)(n.Fragment,{children:[(s=`line-${t}`,(function(e){let t,r=[],o={},n=0;for(eb.lastIndex=0;null!==(t=eb.exec(e));)t.index>n&&r.push({text:e.slice(n,t.index),style:o}),o=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let o=t[e];if(0===o)for(let e of Object.keys(r))delete r[e];else if(1===o)r.fontWeight=700;else if(2===o)r.opacity=.65;else if(3===o)r.fontStyle="italic";else if(4===o)r.textDecoration="underline";else if(22===o)delete r.fontWeight,delete r.opacity;else if(23===o)delete r.fontStyle;else if(24===o)delete r.textDecoration;else if(39===o)delete r.color;else if(49===o)delete r.backgroundColor;else if(o>=30&&o<=37)r.color=ey[o-30];else if(o>=90&&o<=97)r.color=ew[o-90];else if(o>=40&&o<=47)r.backgroundColor=ey[o-40];else if(o>=100&&o<=107)r.backgroundColor=ew[o-100];else if((38===o||48===o)&&2===t[e+1]){let[n,s,i]=[t[e+2],t[e+3],t[e+4]];[n,s,i].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===o?r.color=`rgb(${n}, ${s}, ${i})`:r.backgroundColor=`rgb(${n}, ${s}, ${i})`),e+=4}else if((38===o||48===o)&&5===t[e+1]){let n=function(e){if(e>=0&&e<8)return ey[e];if(e>=8&&e<16)return ew[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),o=Math.floor(t%36/6),n=e=>0===e?0:55+40*e;return`rgb(${n(r)}, ${n(o)}, ${n(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);n&&(38===o?r.color=n:r.backgroundColor=n),e+=2}}return r}(o,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),n=t.index+t[0].length;return n<e.length&&r.push({text:e.slice(n),style:o}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,o.jsx)("span",{style:e.style,children:e.text},`${s}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}let nT={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"},nR={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",webm:"audio/webm"};function nz(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function nM(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function nE(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let o=Number(nM(r.startContainer)?.dataset.lineNumber),n=Number(nM(r.endContainer)?.dataset.lineNumber);return Number.isInteger(o)&&Number.isInteger(n)?o<=n?{startLine:o,endLine:n}:{startLine:n,endLine:o}:null}function nP(e,t,r,o={}){let n=_(e),s=new URLSearchParams({type:t});for(let[e,t]of(r&&s.set("sessionId",r),Object.entries(o)))void 0!==t&&s.set(e,String(t));return`/api/files/${n}?${s.toString()}`}function nN({filePath:e,sourceSessionId:t}){let{t:r}=(0,w.s)();return(0,o.jsx)("a",{href:nP(e,"download",t),download:q(e),title:r("desktop.downloadFile"),style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,padding:"0 5px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,textDecoration:"none"},children:(0,o.jsx)(M.z,{size:11,"aria-hidden":"true"})})}let n$={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},nL="var(--git-status-deleted-bg)",nF="var(--git-status-added-bg)",nW="var(--git-status-added)";function nD(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function nA({oldContent:e,newContent:t}){let{t:r}=(0,w.s)(),n=function(e,t){let r=e.length,o=t.length,n=r+o,s=Array(2*n+1).fill(0),i=[];for(let l=0;l<=n;l++){i.push([...s]);for(let a=-l;a<=l;a+=2){let d,c=(d=a===-l||a!==l&&s[a-1+n]<s[a+1+n]?s[a+1+n]:s[a-1+n]+1)-a;for(;d<r&&c<o&&e[d]===t[c];)d++,c++;if(s[a+n]=d,d>=r&&c>=o){let s=[],a=r,d=o;for(let r=l;r>0;r--){let o,l=i[r-1],c=a-d;o=c===-r||c!==r&&l[c-1+n]<l[c+1+n]?c+1:c-1;let p=l[o+n],u=p-o;for(;a>p&&d>u;)a--,d--,s.unshift({type:"unchanged",text:e[a]});r>0&&(a>p?(a--,s.unshift({type:"removed",text:e[a]})):(d--,s.unshift({type:"added",text:t[d]})))}for(;a>0&&d>0;)a--,d--,s.unshift({type:"unchanged",text:e[a]});return s}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!n.some(e=>"unchanged"!==e.type))return(0,o.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r("desktop.noChanges")});let s=new Set(n.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),i=new Set;for(let e of s)for(let t=Math.max(0,e-3);t<=Math.min(n.length-1,e+3);t++)i.add(t);let l=[],a=0;for(;a<n.length;)if(i.has(a)){let e=[];for(;a<n.length&&i.has(a);)e.push(n[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<n.length&&!i.has(a);)e++,a++;l.push({hidden:!0,count:e})}let d=[],c=1;for(let e of n)"removed"===e.type?d.push(0):d.push(c++);let p=0;return(0,o.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let n=(0,o.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:r("desktop.unchangedLines",{count:e.count})},t);return p+=e.count,n}let n=[],s=[],i=[],l=()=>{if(s.length||i.length){let e=s.length&&i.length?"edit":s.length?"delete":"add";for(let t of s)n.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of i)n.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});s=[],i=[]}};e.lines.forEach((e,r)=>{"unchanged"===e.type?(l(),n.push({key:`${t}:${r}`,kind:"context",text:e.text,lineNo:d[p+r],block:null})):"removed"===e.type?s.push({key:`${t}:${r}`,text:e.text}):i.push({key:`${t}:${r}`,text:e.text,lineNo:d[p+r]})}),l();let a=n.map(e=>{let t="removed"===e.kind?nL:"added"===e.kind?nF:"transparent",r=e.block?n$[e.block]:"3px solid transparent",n="added"===e.kind?nW:"var(--text-dim)";return(0,o.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,o.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:n,userSelect:"none",fontSize:11,lineHeight:1.6,flexShrink:0},children:e.lineNo??""}),(0,o.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)});return p+=e.lines.length,(0,o.jsx)("div",{children:a},t)})})}function nO({patch:e}){let t=tD(e);if(!t)return null;let r=[],n=[],s=[],i=()=>{if(n.length||s.length){let e=n.length&&s.length?"edit":n.length?"delete":"add";for(let t of n)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of s)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});n=[],s=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,o)=>{if("hunk"===e.type){i(),r.push({key:`${t}:${o}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:l,right:a}=e;if("context"===l.type&&"context"===a.type){i(),r.push({key:`${t}:${o}:c`,kind:"context",text:l.text,lineNo:a.lineNo,block:null});return}"removed"===l.type&&n.push({key:`${t}:${o}:l`,text:l.text}),"added"===a.type&&s.push({key:`${t}:${o}:r`,text:a.text,lineNo:a.lineNo})})}),i(),(0,o.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:r.map(e=>{if("hunk"===e.kind)return(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{style:{height:"1.55em"}}),(0,o.jsx)("div",{style:{padding:"3px 12px",color:"var(--accent-blue)",background:"var(--bg-secondary)"},children:e.text}),(0,o.jsx)("div",{style:{height:"1.55em"}})]},e.key);let t="removed"===e.kind?nL:"added"===e.kind?nF:"transparent",r=e.block?n$[e.block]:"3px solid transparent",n="added"===e.kind?nW:"var(--text-dim)";return(0,o.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,o.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:n,userSelect:"none",fontSize:11},children:e.lineNo??""}),(0,o.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)})})}function nH({filePath:e,cwd:t,sourceSessionId:r}){let{t:s}=(0,w.s)(),[i,l]=(0,n.useState)(0),[a,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(null),[u,h]=(0,n.useState)(null),g=(0,n.useRef)(null),m=q(e).toLowerCase().split(".").pop()??"";(0,n.useEffect)(()=>{l(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(nP(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=nP(e,"read",r,i?{v:i}:void 0),x=null!=a?nD(a):null;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:K(e,t)}),(0,o.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.image")}),c&&(0,o.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),x&&(0,o.jsx)("span",{children:x}),(0,o.jsx)(nN,{filePath:e,sourceSessionId:r})]}),(0,o.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:u?(0,o.jsx)("div",{style:{color:"#f87171",fontSize:13},children:u}):(0,o.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;p({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(s("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function nB({filePath:e,cwd:t,sourceSessionId:r}){let{t:s}=(0,w.s)(),[i,l]=(0,n.useState)(0),[a,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(null),[u,h]=(0,n.useState)(null),g=(0,n.useRef)(null),m=q(e).toLowerCase().split(".").pop()??"";(0,n.useEffect)(()=>{l(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(nP(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}p(null),h(null),l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=nP(e,"read",r,i?{v:i}:void 0);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:K(e,t)}),(0,o.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.audio")}),null!=c&&(0,o.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(c)}),null!=a&&(0,o.jsx)("span",{children:nD(a)}),(0,o.jsx)(nN,{filePath:e,sourceSessionId:r})]}),(0,o.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,o.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[u&&(0,o.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:u}),(0,o.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>p(e.currentTarget.duration),onError:()=>h(s("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function nU({filePath:e,cwd:t,sourceSessionId:r}){let{t:s}=(0,w.s)(),[i,l]=(0,n.useState)(0),[a,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(null),u=(0,n.useRef)(null),h=nz(e),g="pdf"===h,m=g?nP(e,"read",r,i?{v:i}:void 0):nP(e,"preview",r,i?{v:i}:void 0);return(0,n.useEffect)(()=>{l(0),d(null),p(null),u.current&&(u.current.close(),u.current=null),fetch(nP(e,"meta",r)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(d(e.size),!g&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(nP(e,"watch",r));return u.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(d(t.size),!g&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),l(e=>e+1)}),()=>{t.close(),u.current=null}},[e,g,r,s]),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:K(e,t)}),(0,o.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===h?s("desktop.docxPreview"):"pdf"}),null!=a&&(0,o.jsx)("span",{children:nD(a)}),(0,o.jsx)(nN,{filePath:e,sourceSessionId:r})]}),(0,o.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:c?(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:c}):(0,o.jsx)("iframe",{src:m,sandbox:g?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:q(e)}),style:{width:"100%",height:"100%",border:"none",background:g?"var(--bg)":"#eef1f5"}},m)})]})}function n_({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:n,onAtMention:s,onMentionLines:i,initialDisplayMode:l}){let a;return null!==(nT[nz(e)]??null)?(0,o.jsx)(nH,{filePath:e,cwd:t,sourceSessionId:r}):null!==(nR[nz(e)]??null)?(0,o.jsx)(nB,{filePath:e,cwd:t,sourceSessionId:r}):null!==("pdf"===(a=nz(e))||"docx"===a?a:null)?(0,o.jsx)(nU,{filePath:e,cwd:t,sourceSessionId:r}):(0,o.jsx)(nq,{filePath:e,cwd:t,sourceSessionId:r,onOpenFile:n,onAtMention:s,onMentionLines:i,initialDisplayMode:l})}function nq({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:s,onAtMention:i,onMentionLines:l,initialDisplayMode:a}){let d,c,{t:p}=(0,w.s)(),[u,h]=(0,n.useState)(null),[g,m]=(0,n.useState)(null),[f,x]=(0,n.useState)(null),[k,v]=(0,n.useState)(!0),[b,y]=(0,n.useState)(null),[j,S]=(0,n.useState)(!1),[C,I]=(0,n.useState)("source"),[T,R]=(0,n.useState)(!1),[z,M]=(0,n.useState)(0),[E,P]=(0,n.useState)(null),N=(0,n.useRef)(null),$=(0,n.useRef)(null),L=(0,n.useCallback)(async e=>{if(!t)return void x(null);try{let r=new URLSearchParams({cwd:t,path:e}),o=await fetch(`/api/git/diff?${r.toString()}`),n=await o.json();x(o.ok&&n.supported&&"string"==typeof n.patch?n:null)}catch{x(null)}},[t]),F=(0,n.useCallback)((e,t=!1)=>fetch(nP(e,"read",r)).then(e=>e.json()).then(e=>e.error?(y(e.error),null):(t?(h(t=>(t&&m(t.content),e)),M(e=>e+1)):h(e),e)).catch(e=>(y(String(e)),null)),[r]);(0,n.useEffect)(()=>{v(!0),y(null),h(null),m(null),x(null),S(!1),I("source"),R(!1),M(0),N.current&&(N.current.close(),N.current=null),F(e).then(e=>{e?.language==="markdown"&&"diff"!==a&&S(!0)}).finally(()=>v(!1)),L(e);let t=new EventSource(nP(e,"watch",r));return N.current=t,t.addEventListener("change",()=>{F(e,!0),L(e)}),()=>{t.close(),N.current=null}},[e,F,L,a,r]);let W=(0,n.useMemo)(()=>tu(u?.content??""),[u?.content]),D=f?.supported===!0&&"string"==typeof f.patch;(0,n.useEffect)(()=>{"diff"===a&&D&&I("diff")},[D,a]);let A=D&&f?.status==="deleted",O=(0,n.useCallback)(r=>{l&&r&&l(K(e,t),r.startLine,r.endLine)},[t,e,l]);if((0,n.useEffect)(()=>{let e=()=>{let e=$.current,t="source"===C&&!j;P(l&&t&&e?nE(e,window.getSelection()):null)};if(e(),l&&"source"===C&&!j)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[u?.content,l,j,C]),(0,n.useEffect)(()=>{if(!l||"source"!==C||j)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 r=$.current,o=r?nE(r,window.getSelection()):null;o&&(e.preventDefault(),O(o))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[O,l,j,C]),k)return(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("desktop.loadingFile")});if(A&&!u)return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{padding:"5px 16px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},title:e,children:K(e,t)}),(0,o.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,o.jsx)(nO,{patch:f.patch})})]});if(b)return(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:b});if(!u)return null;let H="html"===u.language,B="markdown"===u.language,_=(c=(d=U(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===c?"/":2===c&&/^[a-zA-Z]:\//.test(d)?d.slice(0,3):d.slice(0,c),q=u.content.split("\n"),V=null!==g&&g!==u.content||D;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:K(e,t)}),(0,o.jsx)("span",{style:{marginLeft:"auto"},children:u.language}),"source"===C&&(0,o.jsx)("span",{children:p("desktop.lines",{count:q.length})}),(0,o.jsx)("span",{children:nD(u.size)}),V&&(0,o.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,o.jsx)("button",{onClick:()=>I("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===C?"var(--bg-selected)":"var(--bg-hover)",color:"source"===C?"var(--text)":"var(--text-muted)",fontWeight:"source"===C?600:400},children:p("desktop.source")}),(0,o.jsxs)("button",{onClick:()=>I("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===C?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===C?"var(--text)":"var(--text-muted)",fontWeight:"diff"===C?600:400},children:[p("desktop.diff")," ",z>0&&(0,o.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",z]})]})]}),"source"===C&&!j&&(0,o.jsx)("button",{onClick:()=>R(e=>!e),title:p(T?"desktop.disableWordWrap":"desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:T?600:400},children:p("desktop.wrap")}),H&&"source"===C&&(0,o.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,o.jsx)("button",{onClick:()=>S(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:j?"var(--bg-hover)":"var(--bg-selected)",color:j?"var(--text-muted)":"var(--text)",fontWeight:j?400:600},children:p("desktop.code")}),(0,o.jsx)("button",{onClick:()=>S(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:j?"var(--bg-selected)":"var(--bg-hover)",color:j?"var(--text)":"var(--text-muted)",fontWeight:j?600:400},children:p("desktop.preview")})]}),B&&"source"===C&&(0,o.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,o.jsx)("button",{onClick:()=>S(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:j?"var(--bg-selected)":"var(--bg-hover)",color:j?"var(--text)":"var(--text-muted)",fontWeight:j?600:400},children:p("desktop.preview")}),(0,o.jsx)("button",{onClick:()=>S(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:j?"var(--bg-hover)":"var(--bg-selected)",color:j?"var(--text-muted)":"var(--text)",fontWeight:j?400:600},children:p("desktop.raw")})]}),(i||l)&&(0,o.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{E&&l?O(E):i?.(K(e,t),!1)},title:E?p("desktop.mentionSelectedLines",{start:E.startLine,end:E.endLine}):p("desktop.mentionFile"),"aria-label":E?p("desktop.mentionSelectedLines",{start:E.startLine,end:E.endLine}):p("desktop.mentionFile"),style:{height:20,minWidth:20,padding:"0 5px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:"@"}),(0,o.jsx)(nN,{filePath:e,sourceSessionId:r})]}),(0,o.jsx)("div",{ref:$,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:"diff"===C&&V?D?(0,o.jsx)(nO,{patch:f.patch}):(0,o.jsx)(nA,{oldContent:g,newContent:u.content}):H&&j?(0,o.jsx)("iframe",{srcDoc:u.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:p("desktop.htmlPreview")}):B&&j?(0,o.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,o.jsx)(eF.oz,{remarkPlugins:td,rehypePlugins:tc,components:{h1:({children:e})=>(0,o.jsx)("h1",{id:tp(e),children:e}),h2:({children:e})=>(0,o.jsx)("h2",{id:tp(e),children:e}),h3:({children:e})=>(0,o.jsx)("h3",{id:tp(e),children:e}),code({className:e,children:t,...r}){let n=e?.replace("language-","").toLowerCase()??"",s=String(t);return e?.includes("language-")||s.includes("\n")?"mermaid"===n?(0,o.jsx)(tR,{code:s.replace(/\n$/,"")}):(0,o.jsx)(tE,{code:s.replace(/\n$/,""),lang:n}):(0,o.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...r,children:t})},pre:({children:e})=>(0,o.jsx)(o.Fragment,{children:e}),a({href:e,children:r,...n}){delete n.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=s?e9(e,_,t??_):null;return l&&s?(0,o.jsx)("a",{href:e,...n,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(l))},children:r}):(0,o.jsx)("a",{href:e,...n,className:i,target:"_blank",rel:"noopener noreferrer",children:r})},table:({children:e})=>(0,o.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,o.jsx)("div",{className:"overflow-x-auto",children:(0,o.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})})},children:W})}):(0,o.jsx)(eW.A,{language:"text"===u.language?"plaintext":u.language,style:th,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",minWidth:"3em",paddingRight:"1em"},customStyle:{margin:0,padding:"12px 0",background:"var(--bg)",fontSize:13,lineHeight:1.6,fontFamily:"var(--font-mono)",minHeight:"100%"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},lineProps:e=>({className:"file-source-line","data-line-number":String(e)}),wrapLongLines:T,children:u.content})})]})}function nK({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:s}){let{t:i}=(0,w.s)(),[l,a]=(0,n.useState)(null);return(0,o.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:e.map(e=>{let n=e.id===t;return(0,o.jsxs)("div",{onClick:()=>r(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),s(e.id))},style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:n?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:n?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,o.jsx)("span",{style:{flexShrink:0,opacity:n?1:.7,display:"flex",alignItems:"center"},children:B(e.label,13)}),(0,o.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:n?500:400},title:e.filePath,children:e.label}),(0,o.jsx)("button",{onClick:t=>{t.stopPropagation(),s(e.id)},onMouseEnter:()=>a(e.id),onMouseLeave:()=>a(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:l===e.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:4,color:l===e.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:i("desktop.closeTab"),"aria-label":i("desktop.closeTabWithLabel",{label:e.label}),children:(0,o.jsx)(R.X,{size:11,"aria-hidden":"true"})})]},e.id)})})}var nV=r(93534),nJ=r(45781),nY=r(72422),nG=r(5085);let nQ={position:"relative",width:40,height:22,borderRadius:11,border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.18s ease",outline:"none"},nZ={position:"absolute",top:3,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.18s ease, transform 0.18s ease",boxShadow:"0 1px 3px rgba(0,0,0,0.18)"};function nX({checked:e,onChange:t,label:r,description:n}){return(0,o.jsxs)("label",{style:{display:"flex",alignItems:n?"flex-start":"center",justifyContent:"space-between",gap:12,padding:"12px 14px",borderRadius:7,cursor:"pointer",userSelect:"none",transition:"background 0.12s",margin:"0 -14px"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,o.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("span",{style:{display:"block",fontSize:13,fontWeight:550,color:"var(--text)",lineHeight:1.4},children:r}),n&&(0,o.jsx)("span",{style:{display:"block",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",marginTop:2},children:n})]}),(0,o.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:r=>{r.preventDefault(),t(!e)},style:{...nQ,background:e?"var(--accent)":"color-mix(in srgb, var(--border) 70%, var(--bg))"},children:(0,o.jsx)("span",{style:{...nZ,left:e?21:3}})})]})}function n0({title:e,description:t,children:r}){return(0,o.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,o.jsx)("p",{style:{margin:"5px 0 14px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),(0,o.jsx)("div",{children:r})]})}let n1="pi-input-shortcut";function n2(){try{let e=localStorage.getItem(n1);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function n4(){let{t:e}=(0,w.s)(),[t,r]=(0,n.useState)(n2);(0,n.useEffect)(()=>{let e=()=>r(n2());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let s=(0,n.useCallback)(e=>{r(e);try{localStorage.setItem(n1,e),window.dispatchEvent(new StorageEvent("storage",{key:n1,newValue:e}))}catch{}},[]);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,o.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,o.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.chat")})}),(0,o.jsx)(n0,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,o.jsx)(nX,{checked:"ctrl-enter"===t,onChange:e=>s(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var n6=r(95650),n5=r(55803),n3=r(23602),n8=r(18613),n7=r(12779);let n9={display:"flex",gap:6,flexWrap:"wrap"};function se(e,t,r){return{display:"inline-flex",alignItems:"center",gap:7,padding:"7px 14px",border:`1px solid ${e?"var(--accent)":t?"var(--border-hover)":"var(--border)"}`,borderRadius:8,background:e?"color-mix(in srgb, var(--accent) 12%, var(--bg))":t?"var(--bg-hover)":"var(--bg-card)",color:e?"var(--accent)":t?"var(--text)":"var(--text-muted)",fontSize:13,fontWeight:e?600:400,cursor:r?"not-allowed":"pointer",opacity:r?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function st({icon:e,label:t,actions:r}){return(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10,width:"100%"},children:[(0,o.jsx)("span",{style:{color:"var(--text-dim)",display:"inline-flex",flexShrink:0},children:e}),(0,o.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),r&&(0,o.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:12,marginLeft:"auto"},children:r})]})}let sr={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--accent)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},so={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function sn({title:e,description:t,children:r}){return(0,o.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,o.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,o.jsx)("p",{style:{margin:"5px 0 16px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),r]})}function ss({depth:e}){let t=e/100;return(0,o.jsxs)("svg",{width:14,height:14,viewBox:"0 0 14 14",style:{flexShrink:0},children:[(0,o.jsx)("rect",{x:1.5,y:1.5,width:11,height:11,rx:2.5,style:{fill:"none",stroke:"var(--text-dim)",strokeWidth:1+2*t,opacity:.2+.8*t}}),(0,o.jsx)("rect",{x:4,y:4,width:6,height:6,rx:1,style:{fill:"var(--text-dim)",opacity:.05+.35*t}})]})}function si({hasDark:e,hasLight:t,t:r}){return(0,o.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[e&&(0,o.jsx)("span",{title:r("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:"#7c6f64"}}),t&&(0,o.jsx)("span",{title:r("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function sl(){let{mode:e,resolvedMode:t,themeName:r,setMode:s,setTheme:i,borderDepth:l,setBorderDepth:a}=e6(),{locale:d,setLocale:c,t:p}=(0,w.s)(),[u,h]=(0,n.useState)([]),[g,m]=(0,n.useState)(!0),[f,x]=(0,n.useState)(null),[k,v]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=!1;return fetch("/api/themes").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&h(t.themeSets)}).catch(()=>{}).finally(()=>{e||m(!1)}),()=>{e=!0}},[]);let b=(0,n.useCallback)(e=>{x(e),i(e).finally(()=>x(null))},[i]),y=(0,n.useCallback)(e=>{s(e)},[s]),j=(0,n.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),S=(0,n.useCallback)(()=>{window.piDesktop?window.piDesktop.openThemeDocs():window.open("https://pi.dev/docs/latest/themes","_blank","noopener,noreferrer")},[]);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,o.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,o.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:p("desktop.display")})}),(0,o.jsxs)(sn,{title:p("desktop.theme"),description:p("desktop.themeDescription"),children:[(0,o.jsx)(st,{icon:(0,o.jsx)(n6.p,{size:14,weight:"fill"}),label:p("desktop.colorScheme"),actions:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("button",{type:"button",onClick:j,style:sr,...so,children:[(0,o.jsx)(n5.N,{size:12,weight:"regular","aria-hidden":"true"}),p("desktop.openThemeFolder")]}),(0,o.jsxs)("button",{type:"button",onClick:S,style:sr,...so,children:[(0,o.jsx)(n3.B,{size:12,weight:"regular","aria-hidden":"true"}),p("desktop.learnPiThemes")]})]})}),g?(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:p("desktop.loadingThemes")}):(0,o.jsxs)("div",{style:n9,children:[(0,o.jsx)("button",{type:"button",onClick:()=>b(""),disabled:null!==f,style:se(""===r,"__default__"===k,null!==f),onMouseEnter:()=>v("__default__"),onMouseLeave:()=>v(null),children:p("desktop.defaultTheme")}),u.map(e=>(0,o.jsxs)("button",{type:"button",onClick:()=>b(e.name),disabled:null!==f,style:se(r===e.name,k===e.name,f===e.name),onMouseEnter:()=>v(e.name),onMouseLeave:()=>v(null),children:[e.displayName,(0,o.jsx)(si,{hasDark:e.hasDark,hasLight:e.hasLight,t:p})]},e.name))]}),(0,o.jsxs)("div",{style:{marginTop:20},children:[(0,o.jsx)(st,{icon:(0,o.jsx)(ss,{depth:l}),label:`${p("desktop.borderVisibility")} (${l})`}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,o.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:p("desktop.borderSubtle")}),(0,o.jsx)("input",{type:"range",min:0,max:100,step:1,value:l,onChange:e=>a(Number(e.target.value)),style:{flex:1,accentColor:"var(--accent)",height:6,cursor:"pointer"}}),(0,o.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:p("desktop.borderBold")})]}),(0,o.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=l===e,r=e<=50?`color-mix(in srgb, var(--border-orig) ${2*e}%, var(--bg) ${100-2*e}%)`:`color-mix(in srgb, var(--border-orig) ${100-(e-50)*2}%, var(--text) ${(e-50)*2}%)`;return(0,o.jsx)("div",{onClick:()=>a(e),style:{width:28,height:20,border:`2px solid ${t?"var(--accent)":r}`,borderRadius:5,background:"var(--bg-card)",cursor:"pointer",transition:"border-color 0.1s"}},e)})})]}),(0,o.jsxs)("div",{style:{marginTop:20},children:[(0,o.jsx)(st,{icon:"dark"===t?(0,o.jsx)(n8.A,{size:14,weight:"fill"}):(0,o.jsx)(n7.b,{size:14,weight:"fill"}),label:p("desktop.appearanceMode")}),(0,o.jsx)("div",{style:n9,children:[{value:"light",icon:(0,o.jsx)(n7.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,o.jsx)(n8.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,o.jsx)(nV.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let r=e===t.value;return(0,o.jsxs)("button",{type:"button",onClick:()=>y(t.value),style:se(r,k===`mode:${t.value}`),onMouseEnter:()=>v(`mode:${t.value}`),onMouseLeave:()=>v(null),children:[t.icon,p(`desktop.${t.value}`)]},t.value)})})]}),!g&&0===u.length&&(0,o.jsxs)("p",{style:{margin:"14px 0 0",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[p("desktop.noCustomThemes")," ",p("desktop.noCustomThemesHint")," ",(0,o.jsx)("code",{style:{fontSize:10,background:"var(--bg-secondary)",padding:"1px 5px",borderRadius:3,fontFamily:"var(--font-mono)"},children:"~/.pi/agent/themes/*.json"})," ",p("desktop.noCustomThemesHint2")]})]}),(0,o.jsx)(sn,{title:p("desktop.language"),description:p("desktop.languageDescription"),children:(0,o.jsx)("div",{style:n9,children:["en","zh-CN"].map(e=>(0,o.jsx)("button",{type:"button",onClick:()=>c("zh-CN"===e?"zh-CN":"en"),style:se("zh-CN"===e?"zh-CN"===d:"zh-CN"!==d,k===`lang:${e}`),onMouseEnter:()=>v(`lang:${e}`),onMouseLeave:()=>v(null),children:"en"===e?p("desktop.english"):p("desktop.chinese")},e))})})]})}var sa=r(9210),sd=r(49560);let sc=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function sp(){let{t:e}=(0,w.s)();return(0,n.useCallback)((t,r)=>e(t,r),[e])}function su({label:e,children:t}){return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,o.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:e}),t]})}let sh={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 sg({value:e,onChange:t,placeholder:r,mono:n}){return(0,o.jsx)("input",{value:e,onChange:e=>t(e.target.value),placeholder:r,style:{...sh,fontFamily:n?"var(--font-mono)":"inherit"}})}function sm({value:e,onChange:t,placeholder:r,mono:s,onKeyDown:i,autoComplete:l="off",spellCheck:a=!1,style:d}){let c=sp(),[p,u]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{e||u(!1)},[e]),(0,o.jsxs)("div",{style:{position:"relative",width:"100%",...d},children:[(0,o.jsx)("input",{type:p?"text":"password",value:e,onChange:e=>t(e.target.value),onKeyDown:i,placeholder:r,style:{...sh,paddingRight:34,fontFamily:s?"var(--font-mono)":"inherit"},autoComplete:l,spellCheck:a}),(0,o.jsx)("button",{type:"button",onClick:()=>u(e=>!e),"aria-label":c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),title:c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),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:p?(0,o.jsx)(sa.G,{size:15}):(0,o.jsx)(sd.b,{size:15})})]})}function sf({value:e,onChange:t,placeholder:r}){return(0,o.jsx)("input",{type:"number",value:e,onChange:e=>t(e.target.value),placeholder:r,style:sh})}function sx({value:e,onChange:t,options:r,required:n}){let s=sp();return(0,o.jsxs)("select",{value:e,onChange:e=>t(e.target.value),style:{...sh,color:e?"var(--text)":"var(--text-dim)"},children:[!n&&(0,o.jsx)("option",{value:"",children:s("desktop.modelsInheritNone")}),r.map(e=>(0,o.jsx)("option",{value:e,children:e},e))]})}function sk({label:e,checked:t,onChange:r}){return(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,o.jsx)("input",{type:"checkbox",checked:t,onChange:e=>r(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),e]})}function sv({children:e}){return(0,o.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function sb({name:e,provider:t,onChange:r,onRename:s,onDelete:i,onAddModels:l}){let a=sp(),[d,c]=(0,n.useState)(e),[p,u]=(0,n.useState)({phase:"idle"}),[h,g]=(0,n.useState)(""),[m,f]=(0,n.useState)([]),x=(0,n.useRef)(0),k=(0,n.useRef)(null);(0,n.useEffect)(()=>c(e),[e]);let v=(e,o)=>r({...t,[e]:o});(0,n.useEffect)(()=>{t.api||r({...t,api:"openai-completions"})},[t.api]),(0,n.useEffect)(()=>{x.current+=1,u({phase:"idle"}),g(""),f([])},[e,t.baseUrl,t.api,t.apiKey]);let b=(0,n.useCallback)(async()=>{if(!t.baseUrl?.trim()||"loading"===p.phase)return;let r=++x.current;u({phase:"loading"}),f([]);try{let o=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:{...t,models:void 0}})}),n=await o.json();if(r!==x.current)return;if(!o.ok||n.error||!n.models)return void u({phase:"error",message:n.error??`HTTP ${o.status}`});u({phase:"success",models:n.models,endpoint:n.endpoint??t.baseUrl})}catch(e){if(r!==x.current)return;u({phase:"error",message:e instanceof Error?e.message:String(e)})}},[p.phase,e,t]),y=new Set((t.models??[]).map(e=>e.id)),w="success"===p.phase?p.models:[],j=h.trim().toLocaleLowerCase(),S=w.filter(e=>!j||e.id.toLocaleLowerCase().includes(j)||e.name?.toLocaleLowerCase().includes(j)),C=S.slice(0,300),I=C.filter(e=>!y.has(e.id)).map(e=>e.id),T=m.filter(e=>!y.has(e)).length,R=I.length>0&&I.every(e=>m.includes(e)),z=!R&&I.some(e=>m.includes(e));return(0,n.useEffect)(()=>{k.current&&(k.current.indeterminate=z)},[z]),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(sv,{children:a("desktop.modelsProvider")}),(0,o.jsx)("button",{onClick:i,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11},children:a("desktop.delete")})]}),(0,o.jsxs)(su,{label:a("desktop.modelsProviderName"),children:[(0,o.jsx)(sg,{value:d,onChange:c,placeholder:"provider-name",mono:!0}),d!==e&&d.trim()&&(0,o.jsx)("button",{onClick:()=>s(d.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:a("desktop.rename")})]}),(0,o.jsx)(su,{label:a("desktop.modelsBaseUrl"),children:(0,o.jsx)(sg,{value:t.baseUrl??"",onChange:e=>v("baseUrl",e||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,o.jsxs)(su,{label:a("desktop.modelsApiKey"),children:[(0,o.jsx)(sm,{value:t.apiKey??"",onChange:e=>v("apiKey",e||void 0),placeholder:a("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,o.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:a("desktop.modelsApiKeyHelp")})]}),(0,o.jsx)(su,{label:a("desktop.modelsApi"),children:(0,o.jsx)(sx,{value:t.api??"openai-completions",onChange:e=>v("api",e),options:sc,required:!0})}),(0,o.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:["success"!==p.phase&&(0,o.jsx)("button",{onClick:b,disabled:!t.baseUrl?.trim()||"loading"===p.phase,style:{alignSelf:"flex-start",height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:t.baseUrl?.trim()&&"loading"!==p.phase?"var(--text-muted)":"var(--text-dim)",cursor:t.baseUrl?.trim()&&"loading"!==p.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===p.phase?a("desktop.modelsDiscoveryFetching"):a("desktop.modelsDiscoveryFetch")}),"error"===p.phase&&(0,o.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:p.message}),"success"===p.phase&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("input",{value:h,onChange:e=>g(e.target.value),placeholder:a("desktop.modelsDiscoveryFilterPlaceholder",{count:p.models.length}),"aria-label":a("desktop.modelsDiscoveryFilter"),style:{...sh,width:"100%",minWidth:0}}),(0,o.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,o.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:I.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,o.jsx)("input",{ref:k,type:"checkbox",checked:R,disabled:0===I.length,onChange:()=>{let e=new Set(I);f(t=>R?t.filter(t=>!e.has(t)):Array.from(new Set([...t,...I])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),a("desktop.modelsDiscoverySelectShown")]}),0===C.length?(0,o.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:a("desktop.modelsDiscoveryNoMatches")}):C.map((e,t)=>{let r=y.has(e.id),n=m.includes(e.id);return(0,o.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===t?"none":"1px solid var(--border)",cursor:r?"default":"pointer",opacity:r?.65:1},children:[(0,o.jsx)("input",{type:"checkbox",checked:n||r,disabled:r,onChange:()=>{var t;return t=e.id,void f(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,o.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,o.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:e.name??e.id}),e.name&&(0,o.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:e.id})]}),r&&(0,o.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:a("desktop.modelsDiscoveryAdded")})]},e.id)})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,o.jsx)("span",{title:p.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:S.length>C.length?a("desktop.modelsDiscoveryShowing",{shown:C.length,total:S.length}):a("desktop.modelsDiscoveryFetched",{count:p.models.length})}),(0,o.jsx)("button",{onClick:()=>{if("success"!==p.phase)return;let e=new Set(m),t=p.models.filter(t=>e.has(t.id)&&!y.has(t.id));0!==t.length&&(l(t),f([]))},disabled:0===T,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:T?"var(--accent)":"var(--bg-panel)",color:T?"#fff":"var(--text-dim)",cursor:T?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:T?a("desktop.modelsDiscoveryAddSelectedCount",{count:T}):a("desktop.modelsDiscoveryAddSelected")})]})]})]})]})}let sy=["off","minimal","low","medium","high","xhigh","max"],sw={off:"var(--text-dim)",minimal:"var(--text-muted)",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function sj({value:e,onChange:t}){let r=sp(),n=e??{},s=(e,r)=>{let o={...n};"omit"===r?delete o[e]:o[e]=r,t(Object.keys(o).length?o:void 0)};return(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:sy.map(e=>{let t=n[e],i=e in n?null===t?"null":"string":"omit",l="string"==typeof t?t:"",a=sw[e],d={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:"#fff",fontWeight:600};return(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,o.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:a,flexShrink:0,opacity:"null"===i?.3:1}}),(0,o.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===i?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===i?"line-through":"none"},children:e})]}),(0,o.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,o.jsx)("button",{onClick:()=>s(e,"omit"),style:{...d,..."omit"===i?c:{}},children:r("desktop.modelsDefault")}),(0,o.jsx)("button",{onClick:()=>s(e,null),style:{...d,borderLeft:"1px solid var(--border)",..."null"===i?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:r("desktop.modelsDisabled")})]}),(0,o.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===i?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,o.jsx)("button",{onClick:()=>s(e,l||e),style:{...d,..."string"===i?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:r("desktop.modelsCustom")}),(0,o.jsx)("input",{value:l,onChange:t=>s(e,t.target.value),onFocus:()=>{"string"!==i&&s(e,l||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===i?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===i?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let sS={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function sC({providerName:e,provider:t,model:r,onChange:s,onDelete:i}){let l=sp(),[a,d]=(0,n.useState)({phase:"idle"}),[c,u]=(0,n.useState)({phase:"idle"}),h=(0,n.useRef)(0),g=(0,n.useRef)(null),m=(e,t)=>s({...r,[e]:t}),f=(()=>{if("idle"===a.phase)return null;if("testing"===a.phase)return l("desktop.modelsTestingConnection");let e=[void 0!==a.latencyMs?`${a.latencyMs}ms`:null,void 0!==a.status?`HTTP ${a.status}`:null].filter(Boolean);return"success"===a.phase?[l("desktop.modelsConnected"),...e,a.responseText||null].filter(Boolean).join(" \xb7 "):[l("desktop.modelsFailed"),...e,a.message].filter(Boolean).join(" \xb7 ")})();(0,n.useEffect)(()=>{d({phase:"idle"})},[e,t.baseUrl,t.api,t.apiKey,r.id,r.api]);let x=(0,n.useCallback)(async()=>{if(r.id.trim()&&"testing"!==a.phase){d({phase:"testing"});try{let o=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:t,model:r})}),n=await o.json();if(!o.ok||!n.ok)return void d({phase:"error",message:n.error??`HTTP ${o.status}`,latencyMs:n.latencyMs,status:n.status});d({phase:"success",latencyMs:n.latencyMs,status:n.status,responseText:n.responseText})}catch(e){d({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[r,t,e,a.phase]);(0,n.useEffect)(()=>{h.current+=1,u({phase:"idle"}),g.current=null},[e,t.baseUrl,r.id]);let k=(0,n.useCallback)(async()=>{let o=r.id.trim();if(!o||"loading"===c.phase)return;let n=++h.current;u({phase:"loading"});try{let i=new URLSearchParams({q:o,provider:e,limit:"50"});t.baseUrl?.trim()&&i.set("baseUrl",t.baseUrl.trim());let l=await fetch(`/api/models-config/catalog?${i}`),a=await l.json();if(n!==h.current)return;if(!l.ok||a.error||!a.recommendation)return void u({phase:"error",message:a.error??`HTTP ${l.status}`});let d=function(e,t){let r={...e},o=0;if(!e.name?.trim()&&t.name&&(r.name=t.name,o+=1),void 0===e.reasoning&&!0===t.reasoning&&(r.reasoning=!0,o+=1),!e.input?.length&&t.input?.length&&(r.input=[...t.input],o+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(r.contextWindow=t.contextWindow,o+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(r.maxTokens=t.maxTokens,o+=1),t.cost){let n={...e.cost??{}},s=!1;for(let e of["input","output","cacheRead","cacheWrite"])void 0===n[e]&&void 0!==t.cost[e]&&(n[e]=t.cost[e],s=!0,o+=1);s&&(r.cost=n)}return{model:r,appliedCount:o}}(r,a.recommendation.preset);d.appliedCount>0&&(g.current=r,s(d.model)),u({phase:"success",recommendation:a.recommendation,appliedCount:d.appliedCount})}catch(e){if(n!==h.current)return;u({phase:"error",message:e instanceof Error?e.message:String(e)})}},[c.phase,r,s,t.baseUrl,e]),v=(()=>{if("success"!==c.phase)return null;let{recommendation:t,appliedCount:r}=c,o=r>0?l("desktop.modelsCatalogFilled",{count:r}):l("desktop.modelsCatalogNoEmptyFields");if("unreliable"===t.price.status){let e="no-exact-match"===t.price.reason?l("desktop.modelsCatalogNoExactMatch"):l("desktop.modelsCatalogPriceUnreliable");return`${o} \xb7 ${e}`}let n="provider"===t.price.method?l("desktop.modelsCatalogPriceProvider",{provider:t.price.providerName??t.price.providerId??e}):"base-url"===t.price.method?l("desktop.modelsCatalogPriceBaseUrl",{provider:t.price.providerName??t.price.providerId??e}):l("desktop.modelsCatalogPriceConsensus",{support:t.price.support,total:t.price.total});return`${o} \xb7 ${n}`})(),b="error"===c.phase?c.message:v,y="error"===c.phase?"#ef4444":"success"===c.phase&&"unreliable"===c.recommendation.price.status?"#d97706":"var(--text-dim)";return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(sv,{children:l("desktop.modelsModelSection")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[f&&(0,o.jsx)("span",{title:f,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===a.phase?"#fecaca":"success"===a.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===a.phase?"#fee2e2":"success"===a.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:f}),(0,o.jsxs)("button",{onClick:x,disabled:!r.id.trim()||"testing"===a.phase,title:l("desktop.modelsTestConnection"),style:{height:24,padding:"0 8px",background:"success"===a.phase?"#16a34a":"none",border:`1px solid ${"success"===a.phase?"#16a34a":"var(--border)"}`,borderRadius:4,color:"success"===a.phase?"#fff":r.id.trim()&&"testing"!==a.phase?"var(--text-muted)":"var(--text-dim)",cursor:r.id.trim()&&"testing"!==a.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===a.phase&&(0,o.jsx)(p.S,{size:11}),"testing"===a.phase?l("desktop.modelsTesting"):"success"===a.phase?l("desktop.modelsOk"):l("desktop.modelsTest")]}),(0,o.jsx)("button",{onClick:i,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:l("desktop.modelsRemove")})]})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,o.jsx)(su,{label:l("desktop.modelsIdRequired"),children:(0,o.jsx)(sg,{value:r.id,onChange:e=>m("id",e),placeholder:"model-id",mono:!0})}),(0,o.jsx)(su,{label:l("desktop.modelsName"),children:(0,o.jsx)(sg,{value:r.name??"",onChange:e=>m("name",e||void 0),placeholder:l("desktop.modelsDisplayName")})})]}),(0,o.jsxs)("div",{style:{padding:"10px 0",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,o.jsx)("button",{onClick:()=>void k(),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?l("desktop.modelsCatalogFilling"):l("desktop.modelsCatalogFill")}),(0,o.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:l("desktop.modelsCatalogSource")})]}),(0,o.jsxs)("div",{"aria-live":"polite",style:{marginTop:6,height:20,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:y,fontSize:10},children:[(0,o.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b}),"success"===c.phase&&g.current&&(0,o.jsx)("button",{onClick:()=>{let e=g.current;e&&(g.current=null,s(e),u({phase:"idle"}))},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:10,flexShrink:0},children:l("desktop.modelsCatalogUndo")})]})]}),(0,o.jsx)(su,{label:l("desktop.modelsApiOverride"),children:(0,o.jsx)(sx,{value:r.api??"",onChange:e=>m("api",e||void 0),options:sc})}),(0,o.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,o.jsx)(sk,{label:l("desktop.modelsReasoningThinking"),checked:r.reasoning??!1,onChange:e=>m("reasoning",e||void 0)}),(0,o.jsx)(sk,{label:l("desktop.modelsImageInput"),checked:r.input?.includes("image")??!1,onChange:e=>m("input",e?["text","image"]:void 0)})]}),r.reasoning&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(sk,{label:l("desktop.modelsDeepSeekCompat"),checked:r.compat?.thinkingFormat==="deepseek",onChange:e=>s(function(e,t){if(t)return{...e,compat:{...e.compat??{},...sS}};if(!e.compat)return e;let r={...e.compat};return delete r.thinkingFormat,delete r.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(r).length?r:void 0}}(r,e))}),(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,o.jsx)(sv,{children:l("desktop.modelsThinkingLevelMap")}),r.thinkingLevelMap&&(0,o.jsx)("button",{onClick:()=>m("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",cursor:"pointer"},children:l("desktop.modelsClearAll")})]}),(0,o.jsx)(sj,{value:r.thinkingLevelMap,onChange:e=>m("thinkingLevelMap",e)})]})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,o.jsx)(su,{label:l("desktop.modelsContextWindow"),children:(0,o.jsx)(sf,{value:void 0!==r.contextWindow?String(r.contextWindow):"",onChange:e=>m("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,o.jsx)(su,{label:l("desktop.modelsMaxOutputTokens"),children:(0,o.jsx)(sf,{value:void 0!==r.maxTokens?String(r.maxTokens):"",onChange:e=>m("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)(sv,{children:l("desktop.modelsCostPerMillionTokens")}),(0,o.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,o.jsx)(su,{label:e,children:(0,o.jsx)(sf,{value:r.cost?.[e]!==void 0?String(r.cost[e]):"",onChange:t=>{let o;return o=parseFloat(t),void s({...r,cost:{...r.cost??{},[e]:isNaN(o)?void 0:o}})},placeholder:"0"})},e))})]})]})}function sI({provider:e,onRefresh:t}){let r=sp(),[s,i]=(0,n.useState)({phase:"idle"}),[l,a]=(0,n.useState)(""),d=(0,n.useRef)(null),c=(0,n.useRef)(null);(0,n.useEffect)(()=>{("auth"===s.phase||"prompt"===s.phase)&&setTimeout(()=>c.current?.focus(),50)},[s.phase]),(0,n.useEffect)(()=>{i({phase:"idle"}),a(""),d.current?.close(),d.current=null},[e.id]),(0,n.useEffect)(()=>()=>{d.current?.close()},[]);let p=(0,n.useCallback)(()=>{d.current?.close(),i({phase:"connecting"}),a("");let o=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);d.current=o,o.onmessage=e=>{let r=JSON.parse(e.data);"auth"===r.type?(i({phase:"auth",url:r.url,instructions:r.instructions??null,token:r.token}),window.open(r.url,"_blank","noopener,noreferrer")):"device_code"===r.type?(i({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?i({phase:"prompt",message:r.message,placeholder:r.placeholder??null,token:r.token}):"select_request"===r.type?i({phase:"select",message:r.message,options:r.options??[],token:r.token}):"progress"===r.type?i({phase:"progress",message:r.message}):"success"===r.type?(o.close(),i({phase:"success"}),t()):"error"===r.type?(o.close(),i({phase:"error",message:r.message})):"cancelled"===r.type&&(o.close(),i({phase:"idle"}))},o.onerror=()=>{o.close(),i(e=>"success"===e.phase?e:{phase:"error",message:r("desktop.modelsConnectionLost")})}},[e.id,t,r]),u=(0,n.useCallback)(async()=>{try{let t=await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"});if(t.ok)i({phase:"idle"});else{let e=await t.json().catch(()=>null);i({phase:"error",message:409===t.status?r("desktop.modelsAuthenticationStateChanged"):e?.error??`HTTP ${t.status}`})}}catch(e){i({phase:"error",message:e instanceof Error?e.message:String(e)})}finally{t()}},[e.id,t,r]),h=(0,n.useCallback)(async(t,o)=>{if(o.trim()){i({phase:"progress",message:r("desktop.modelsVerifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));i({phase:"error",message:e.error??r("desktop.modelsServerError",{status:n.status})});return}a("")}catch(e){i({phase:"error",message:e instanceof Error?e.message:r("desktop.modelsNetworkError")})}}},[e.id,r]),g=(0,n.useCallback)(async(t,o)=>{i({phase:"progress",message:r("desktop.modelsContinuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o})});if(!n.ok){let e=await n.json().catch(()=>({}));i({phase:"error",message:e.error??r("desktop.modelsServerError",{status:n.status})})}}catch(e){i({phase:"error",message:e instanceof Error?e.message:r("desktop.modelsNetworkError")})}},[e.id,r]),m="connecting"===s.phase||"progress"===s.phase||"auth"===s.phase||"device_code"===s.phase||"prompt"===s.phase||"select"===s.phase;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(sv,{children:r("desktop.modelsSubscription")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,o.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,o.jsx)("span",{style:{fontSize:11,color:e.loggedIn?"#4ade80":"var(--text-dim)"},children:e.loggedIn?r("desktop.modelsConnected"):r("desktop.modelsNotConnected")})]})]}),(0,o.jsxs)("div",{style:{minHeight:48},children:["idle"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?r("desktop.modelsAlreadyConnected"):r("desktop.modelsConnectAccount",{provider:e.name})}),"connecting"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:r("desktop.modelsOpeningBrowser")}),"select"===s.phase&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:s.message}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.options.map(e=>(0,o.jsx)("button",{onClick:()=>g(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,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===s.phase?r("desktop.modelsCompleteSignIn"):s.message}),"auth"===s.phase&&(0,o.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[r("desktop.modelsBrowserDidNotOpen")," ",(0,o.jsx)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:r("desktop.modelsOpenLoginPage")}),"."]}),(0,o.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,o.jsx)("input",{ref:c,value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&h(s.token,l)},placeholder:"auth"===s.phase?"http://localhost:1455/auth/callback?code=…":s.placeholder??r("desktop.modelsEnterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,o.jsx)("button",{onClick:()=>h(s.token,l),disabled:!l.trim(),style:{padding:"6px 12px",background:l.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:l.trim()?"#fff":"var(--text-dim)",cursor:l.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:r("desktop.submit")})]})]}),"device_code"===s.phase&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:r("desktop.modelsOpenVerificationPage")}),(0,o.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,o.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,o.jsx)("a",{href:s.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:s.verificationUri}),s.expiresInSeconds?` ${r("desktop.modelsExpiresInMinutes",{count:Math.ceil(s.expiresInSeconds/60)})}`:""]})]}),"progress"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:s.message}),"success"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:r("desktop.modelsConnectedSuccessfully")}),"error"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:s.message})]}),(0,o.jsx)("div",{style:{display:"flex",gap:8},children:m?(0,o.jsx)("button",{onClick:()=>{d.current?.close(),i({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:r("desktop.cancel")}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{onClick:p,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:e.loggedIn?r("desktop.modelsReLogin"):r("desktop.modelsLogin")}),e.loggedIn&&(0,o.jsx)("button",{onClick:u,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:"pointer",fontSize:12},children:r("desktop.modelsDisconnect")})]})})]})}function sT({provider:e,onRefresh:t}){let r=sp(),[s,i]=(0,n.useState)(""),[l,a]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null),[g,m]=(0,n.useState)(!1);(0,n.useEffect)(()=>{i(""),h(null),m(!1)},[e.id]);let f=(0,n.useCallback)(async()=>{if(s.trim()){a(!0),h(null),m(!1);try{let r=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:s.trim()})}),o=await r.json();!r.ok||o.error?h(o.error??`HTTP ${r.status}`):(i(""),m(!0),setTimeout(()=>m(!1),2e3),t())}catch(e){h(String(e))}finally{a(!1)}}},[s,e.id,t]),x=(0,n.useCallback)(async()=>{c(!0),h(null);try{let t=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"DELETE"}),o=await t.json();(!t.ok||o.error)&&h(409===t.status?r("desktop.modelsAuthenticationStateChanged"):o.error??`HTTP ${t.status}`)}catch(e){h(String(e))}finally{t(),c(!1)}},[e.id,t,r]);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(sv,{children:r("desktop.modelsApiKey")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,o.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,o.jsx)("span",{style:{fontSize:11,color:e.configured?"#4ade80":"var(--text-dim)"},children:e.configured?r("desktop.modelsConfigured"):r("desktop.modelsNotConfigured")})]})]}),(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.configured?r("desktop.modelsApiKeyStored"):r("desktop.modelsEnableModels",{provider:e.displayName,count:e.modelCount,models:1===e.modelCount?r("desktop.modelsSingular"):r("desktop.modelsPlural")})}),(0,o.jsx)(su,{label:r("desktop.modelsApiKey"),children:(0,o.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,o.jsx)(sm,{value:s,onChange:i,onKeyDown:e=>{"Enter"===e.key&&s.trim()&&f()},placeholder:e.configured?r("desktop.modelsEnterNewKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,o.jsxs)("button",{onClick:f,disabled:l||!s.trim()||g,style:{padding:"6px 12px",background:g?"#16a34a":s.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:s.trim()||g?"#fff":"var(--text-dim)",cursor:l||!s.trim()||g?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[g&&(0,o.jsx)(p.S,{size:12}),g?r("desktop.modelsSaved"):l?r("desktop.modelsSaving"):r("desktop.modelsSave")]})]})}),u&&(0,o.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:u}),e.configured&&(0,o.jsx)("button",{onClick:x,disabled:d,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:d?"not-allowed":"pointer",fontSize:12},children:d?r("desktop.modelsRemoving"):r("desktop.modelsDisconnect")})]})}function sR({oauthProviders:e,apiKeyProviders:t,onSelectOAuth:r,onSelectApiKey:s,onAddCustom:i,onClose:l}){let a=sp(),[c,p]=(0,n.useState)(""),u=(0,n.useRef)(null);(0,n.useEffect)(()=>{setTimeout(()=>u.current?.focus(),30)},[]);let h=c.trim().toLowerCase(),g=e.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),m=t.filter(e=>!e.configured&&(!h||e.displayName.toLowerCase().includes(h)||e.id.toLowerCase().includes(h))),x=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),k=g.length+m.length+ +!!x,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,o.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&&l()},children:(0,o.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,o.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,o.jsx)(d.$,{size:13,style:{color:"var(--text-dim)",flexShrink:0}}),(0,o.jsx)("input",{ref:u,value:c,onChange:e=>p(e.target.value),onKeyDown:e=>{"Escape"===e.key&&l()},placeholder:a("desktop.modelsSearchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===k?(0,o.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:a("desktop.modelsNoProvidersMatch")}):(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[x&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:a("desktop.modelsCustom")}),x&&(0,o.jsxs)("button",{onClick:()=>{i(),l()},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,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a("desktop.modelsCompatibleProvider")}),(0,o.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:a("desktop.modelsCustomEndpointFormat")})]}),(0,o.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,o.jsx)(f.c,{size:13,style:{color:"var(--text-dim)"}})})]}),g.length>0&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!x,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:a("desktop.modelsSubscriptions")}),g.map(e=>(0,o.jsxs)("button",{onClick:()=>{r(e.id),l()},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,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,o.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,o.jsx)(oW,{id:e.id,size:28})]},e.id)),m.length>0&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(g.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:a("desktop.modelsApiKey")}),m.map(e=>(0,o.jsxs)("button",{onClick:()=>{s(e.id),l()},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,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,o.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:a("desktop.modelsCount",{count:e.modelCount})})]}),(0,o.jsx)(oW,{id:e.id,size:28})]},e.id))]})})]})})}function sz({embedded:e=!1,onCloseAction:t,onSavedAction:r}){let s=sp(),i=r3(),[l,a]=(0,n.useState)({providers:{}}),[d,c]=(0,n.useState)(!0),[u,h]=(0,n.useState)(!1),[g,m]=(0,n.useState)(null),[f,x]=(0,n.useState)(!1),[k,v]=(0,n.useState)(null),[b,y]=(0,n.useState)([]),[w,j]=(0,n.useState)([]),[S,C]=(0,n.useState)(!1),I=(0,n.useCallback)(()=>{fetch("/api/auth/providers").then(e=>e.json()).then(e=>y(e.providers)).catch(()=>{})},[]),T=(0,n.useCallback)(()=>{fetch("/api/auth/all-providers").then(e=>e.json()).then(e=>j(e.providers)).catch(()=>{})},[]),R=(0,n.useCallback)(()=>{I(),T()},[I,T]);(0,n.useEffect)(()=>{fetch("/api/models-config").then(e=>e.json()).then(e=>{let t=e.providers?e:{...e,providers:{}};a(t);let r=Object.keys(t.providers??{});r.length>0&&v({type:"provider",name:r[0]})}).catch(()=>a({providers:{}})).finally(()=>c(!1)),R()},[R]);let z=(0,n.useCallback)(()=>{let e="new-provider",t=1;for(;l.providers?.[e];)e=`new-provider-${t++}`;a(t=>({...t,providers:{...t.providers??{},[e]:{api:"openai-completions"}}})),v({type:"provider",name:e})},[l.providers]),M=(0,n.useCallback)((e,t)=>{a(r=>({...r,providers:{...r.providers??{},[e]:t}}))},[]),E=(0,n.useCallback)((e,t)=>{a(r=>{let o=Object.entries(r.providers??{}),n=o.findIndex(([t])=>t===e);return -1===n?r:(o[n]=[t,o[n][1]],{...r,providers:Object.fromEntries(o)})}),v(r=>r?"provider"===r.type&&r.name===e?{type:"provider",name:t}:"model"===r.type&&r.providerName===e?{...r,providerName:t}:r:r)},[]),P=(0,n.useCallback)(e=>{a(t=>{let r={...t.providers??{}};return delete r[e],{...t,providers:r}}),a(e=>{let t=Object.keys(e.providers??{});return v(t.length>0?{type:"provider",name:t[0]}:null),e})},[]),N=(0,n.useCallback)(e=>{a(t=>{let r=t.providers?.[e]??{},o=[...r.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...r,models:o}}}}),a(t=>{let r=(t.providers?.[e]?.models?.length??1)-1;return v({type:"model",providerName:e,index:r}),t})},[]),$=(0,n.useCallback)((e,t)=>{a(r=>{let o=r.providers?.[e]??{},n=[...o.models??[]],s=new Set(n.map(e=>e.id));for(let e of t)s.has(e.id)||(s.add(e.id),n.push({id:e.id,name:e.name}));return{...r,providers:{...r.providers??{},[e]:{...o,models:n}}}})},[]),L=(0,n.useCallback)((e,t,r)=>{a(o=>{let n=o.providers?.[e]??{},s=[...n.models??[]];return s[t]=r,{...o,providers:{...o.providers??{},[e]:{...n,models:s}}}})},[]),F=(0,n.useCallback)((e,t)=>{a(r=>{let o=r.providers?.[e]??{},n=[...o.models??[]];return n.splice(t,1),{...r,providers:{...r.providers??{},[e]:{...o,models:n.length?n:void 0}}}}),v({type:"provider",name:e})},[]),W=(0,n.useCallback)(async()=>{h(!0),m(null),x(!1);try{let e=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)}),t=await e.json();!e.ok||t.error?m(t.error??`HTTP ${e.status}`):(x(!0),r?.(),setTimeout(()=>x(!1),2e3))}catch(e){m(String(e))}finally{h(!1)}},[l,r]),D=Object.entries(l.providers??{}),A=b.filter(e=>e.loggedIn),O=w.filter(e=>e.configured),H=(()=>{if(!k)return null;if("oauth"===k.type){let e=b.find(e=>e.id===k.providerId);return e?(0,o.jsx)(sI,{provider:e,onRefresh:R},e.id):null}if("apikey"===k.type){let e=w.find(e=>e.id===k.providerId);return e?(0,o.jsx)(sT,{provider:e,onRefresh:R},e.id):null}if("provider"===k.type){let e=l.providers?.[k.name];return e?(0,o.jsx)(sb,{name:k.name,provider:e,onChange:e=>M(k.name,e),onRename:e=>E(k.name,e),onDelete:()=>P(k.name),onAddModels:e=>$(k.name,e)},k.name):null}let e=l.providers?.[k.providerName],t=e?.models?.[k.index];return t?(0,o.jsx)(sC,{providerName:k.providerName,provider:e,model:t,onChange:e=>L(k.providerName,k.index,e),onDelete:()=>F(k.providerName,k.index)},`${k.providerName}-${k.index}`):null})();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{style:e?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:r=>{e||r.target!==r.currentTarget||t?.()},children:(0,o.jsxs)("div",{style:e?{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"}:{width:i?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:i?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!e&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,o.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:s("desktop.models")}),(0,o.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,o.jsx)("button",{onClick:t,"aria-label":s("desktop.modelsClose"),title:s("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,o.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:i?"column":"row",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{width:i?"100%":210,maxHeight:i?"40vh":void 0,borderRight:i?"none":"1px solid var(--border)",borderBottom:i?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,o.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[A.map(e=>{let t=k?.type==="oauth"&&k.providerId===e.id;return(0,o.jsxs)("div",{onClick:()=>v({type:"oauth",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(oW,{id:e.id,size:16}),(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.id)}),O.map(e=>{let t=k?.type==="apikey"&&k.providerId===e.id;return(0,o.jsxs)("div",{onClick:()=>v({type:"apikey",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(oW,{id:e.id,size:16}),(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName})]},e.id)}),(A.length>0||O.length>0)&&D.length>0&&(0,o.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),d?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:s("desktop.modelsLoading")}):D.map(([e,t])=>{let r=k?.type==="provider"&&k.name===e,n=t.models??[];return(0,o.jsxs)("div",{style:{marginBottom:2},children:[(0,o.jsxs)("div",{onClick:()=>v({type:"provider",name:e}),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(os.G,{size:11,style:{color:"var(--text-dim)",flexShrink:0}}),(0,o.jsx)("span",{style:{fontSize:12,fontWeight:r?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]}),n.map((t,r)=>{let n=k?.type==="model"&&k.providerName===e&&k.index===r;return(0,o.jsxs)("div",{onClick:()=>v({type:"model",providerName:e,index:r}),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:n?"var(--bg-selected)":"none"},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="none")},children:[(0,o.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:t.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.id||s("desktop.modelsNewModel")}),t.reasoning&&(0,o.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"})]},r)}),(0,o.jsx)("div",{onClick:t=>{t.stopPropagation(),N(e)},style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px 4px 26px",borderRadius:5,cursor:"pointer",color:"var(--text-dim)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,o.jsx)("span",{style:{fontSize:11},children:s("desktop.modelsAddModel")})})]},e)})]}),(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,o.jsx)("button",{onClick:()=>C(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:s("desktop.modelsAddProvider")})})]}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:d?null:H??(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:s("desktop.modelsSelectProviderOrModel")})})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[g&&(0,o.jsx)("span",{style:{fontSize:12,color:"#f87171",flex:1},children:g}),!e&&(0,o.jsx)("button",{onClick:t,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:s("desktop.cancel")}),(0,o.jsxs)("button",{onClick:W,disabled:u||f,style:{position:"relative",padding:"6px 16px",minWidth:92,background:f?"#16a34a":u?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:f?"#fff":u?"var(--text-muted)":"#fff",cursor:u||f?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:f?"saved-pop 0.45s ease":void 0},children:[f&&(0,o.jsx)(p.S,{size:14,style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0}}),(0,o.jsx)("span",{children:f?s("desktop.modelsSaved"):u?s("desktop.modelsSaving"):s("desktop.modelsSave")})]})]})]})}),S&&(0,o.jsx)(sR,{oauthProviders:b,apiKeyProviders:w,onSelectOAuth:e=>v({type:"oauth",providerId:e}),onSelectApiKey:e=>v({type:"apikey",providerId:e}),onAddCustom:z,onClose:()=>C(!1)})]})}function sM(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function sE(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function sP(e){return`${e.scope}\0${e.source}`}function sN(e,t){if(e.disabled)return t("desktop.disabled");let r=[e.counts.extensions?t("desktop.extensionsCount",{count:e.counts.extensions}):"",e.counts.skills?t("desktop.skillsCount",{count:e.counts.skills}):"",e.counts.prompts?t("desktop.promptsCount",{count:e.counts.prompts}):"",e.counts.themes?t("desktop.themesCount",{count:e.counts.themes}):""].filter(Boolean);return r.length?r.join(" \xb7 "):t("desktop.noResources")}function s$(e,t){let r=[];return e.version&&r.push(t("desktop.installedVersion",{version:e.version})),e.configuredVersion&&r.push(t("desktop.configuredVersion",{version:e.configuredVersion})),r.length?r.join(" \xb7 "):t("desktop.unknown")}function sL(e){return"loaded"===e?"var(--accent)":"installed"===e?"#f59e0b":"disabled"===e?"var(--text-dim)":"#ef4444"}function sF({pkg:e}){let{t}=(0,w.s)(),r=[["extension",t("desktop.extensions")],["skill",t("desktop.skills")],["prompt",t("desktop.prompts")],["theme",t("desktop.themes")]].map(([t,r])=>({kind:t,label:r,resources:e.resources.filter(e=>e.kind===t)})).filter(e=>e.resources.length>0);return 0===r.length?(0,o.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:t(e.disabled?"desktop.packageDisabled":"desktop.noResolvedResources")}):(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:r.map((e,t)=>(0,o.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,o.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.resources.map(e=>(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.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,o.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 sW({scope:e}){let{t}=(0,w.s)();return(0,o.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===e?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===e?"rgba(99,102,241,0.85)":"var(--text-dim)"},children:t(`desktop.${e}`)})}function sD(e,t){return{padding:"6px 12px",background:t?"rgba(239,68,68,0.08)":"none",border:"1px solid var(--border)",borderRadius:6,color:t?"#ef4444":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1}}function sA({enabled:e,loading:t,onToggle:r,label:n}){return(0,o.jsx)("button",{type:"button",onClick:r,disabled:t,title:n,"aria-label":n,"aria-pressed":e,style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none",opacity:t?.65:1},children:(0,o.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function sO({value:e,onChange:t}){let{t:r}=(0,w.s)();return(0,o.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:30},children:["global","project"].map(n=>{let s=e===n;return(0,o.jsx)("button",{onClick:()=>t(n),style:{width:76,border:"none",borderRight:"global"===n?"1px solid var(--border)":"none",background:s?"var(--bg-selected)":"none",color:s?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12},children:r(`desktop.${n}`)},n)})})}function sH({cwd:e,source:t,scope:r,busy:s,actionError:i,onSourceChange:l,onScopeChange:a,onInstall:d}){let{t:c}=(0,w.s)(),p=(0,n.useRef)(null);return(0,n.useEffect)(()=>{p.current?.focus()},[]),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:660,minHeight:"100%"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,o.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:c("desktop.addPluginTitle")}),(0,o.jsx)("a",{href:"https://pi.dev/packages",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",fontSize:12,textDecoration:"none",whiteSpace:"nowrap"},children:"pi.dev/packages ↗"})]}),(0,o.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"project"===r?`${sM(e)}/.pi/agent/{npm,git}`:"~/.pi/agent/{npm,git}"})]}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,o.jsx)("label",{htmlFor:"plugin-source",style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.pluginSource")}),(0,o.jsx)("input",{id:"plugin-source",ref:p,value:t,onChange:e=>l(e.target.value),onPaste:e=>{let t=e.clipboardData.getData("text"),r=sE(t);r!==t&&(e.preventDefault(),l(r))},onBlur:e=>l(sE(e.currentTarget.value)),placeholder:"npm:@scope/package",style:{width:"100%",height:36,padding:"0 11px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,outline:"none"},onKeyDown:e=>{"Enter"===e.key&&t.trim()&&!s&&d()}})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,o.jsx)(sO,{value:r,onChange:a}),(0,o.jsx)("button",{type:"button",onClick:d,disabled:s||!t.trim(),style:{...sD(s||!t.trim()),background:"var(--accent)",color:"white",borderColor:"var(--accent)"},children:c(s?"desktop.installing":"desktop.install")})]}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.examples")}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"].map(e=>(0,o.jsx)("button",{type:"button",onClick:()=>l(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:11},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-dim)"},children:e},e))})]}),i&&(0,o.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:i})]})}function sB({pkg:e,cwd:t,busyKey:r,actionError:n,actionMessage:s,sessionId:i,onAction:l,onReloadSession:a}){let{t:d}=(0,w.s)(),c=sP(e),p=r?.endsWith(c)??!1,u="reload"===r,h=!e.disabled;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,minWidth:0,flexWrap:"wrap"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:180,flex:1},children:[(0,o.jsx)(sA,{enabled:h,loading:p||u,onToggle:()=>l(e.disabled?"enable":"disable",e),label:d(e.disabled?"desktop.enablePackage":"desktop.disablePackage")}),(0,o.jsx)(sW,{scope:e.scope}),e.disabled?(0,o.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:d("desktop.disabled")}):e.filtered&&(0,o.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:d("desktop.filtered")}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source})]}),(0,o.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,o.jsx)("button",{onClick:()=>l("update",e),disabled:p||u,style:sD(p||u),children:d(r===`update:${c}`?"desktop.updating":"desktop.update")}),(0,o.jsx)("button",{onClick:a,disabled:!i||u||p,style:sD(!i||u||p),title:d(i?"desktop.reloadCurrentSession":"desktop.openSessionToReload"),children:d(u?"desktop.reloading":"desktop.reloadSession")}),(0,o.jsx)("button",{onClick:()=>l("remove",e),disabled:p||u,style:sD(p||u,!0),children:d(r===`remove:${c}`?"desktop.removing":"desktop.remove")})]})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:12,lineHeight:1.45},children:[(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.status")}),(0,o.jsx)("div",{style:{color:sL(e.status),textTransform:"capitalize"},children:e.status}),(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.version")}),(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:s$(e,d)}),(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.package")}),(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.packageName??d("desktop.unknown")}),(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.resources")}),(0,o.jsx)("div",{style:{color:"var(--text-muted)"},children:sN(e,d)}),(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.installedPath")}),(0,o.jsx)("div",{style:{color:e.installedPath?"var(--text-muted)":"#ef4444",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.installedPath?sM(e.installedPath):d("desktop.notFound")}),(0,o.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.cwd")}),(0,o.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:sM(t)})]}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:d("desktop.resolvedResources")}),(0,o.jsx)(sF,{pkg:e})]}),s&&(0,o.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:s}),n&&(0,o.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:n})]})}function sU({cwd:e,sessionId:t,embedded:r=!1,onCloseAction:s,onReloadedAction:i}){let l=r3(),{t:a}=(0,w.s)(),[d,c]=(0,n.useState)(null),[p,u]=(0,n.useState)(!0),[h,g]=(0,n.useState)(null),[m,x]=(0,n.useState)(null),[k,v]=(0,n.useState)(!1),[b,y]=(0,n.useState)(""),[j,S]=(0,n.useState)("global"),[C,I]=(0,n.useState)(null),[T,R]=(0,n.useState)(null),[z,M]=(0,n.useState)(null),E=(0,n.useMemo)(()=>d?.packages??[],[d?.packages]),P=E.find(e=>sP(e)===m)??null,N=(0,n.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:E.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[E]),$=(0,n.useCallback)(async()=>{u(!0),g(null);try{let t=await fetch(`/api/plugins?cwd=${encodeURIComponent(e)}`),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);c(r),v(e=>0===r.packages.length||e),x(e=>e&&r.packages.some(t=>sP(t)===e)?e:r.packages[0]?sP(r.packages[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{u(!1)}},[e]);(0,n.useEffect)(()=>{$()},[$]);let L=(0,n.useCallback)(async(t,r)=>{let o=sP(r);I(`${t}:${o}`),R(null),M(null);try{let o=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,source:r.source,scope:r.scope,cwd:e})}),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);if(c(n),"remove"===t)x(n.packages[0]?sP(n.packages[0]):null),0===n.packages.length&&v(!0),M(a("desktop.packageRemoved"));else{let e={install:a("desktop.packageInstalled"),update:a("desktop.packageUpdated"),disable:a("desktop.packageDisabledMessage"),enable:a("desktop.packageEnabled")};M(e[t])}}catch(e){R(e instanceof Error?e.message:String(e))}finally{I(null)}},[e,a]),F=(0,n.useCallback)(async()=>{let t=sE(b).trim();if(!t)return;let r=`${j}\0${t}`;I(`install:${r}`),R(null),M(null);try{var o;let n,s,i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:t,scope:j,cwd:e})}),l=await i.json();if(!i.ok||l.error)throw Error(l.error??`HTTP ${i.status}`);c(l);let d=(o=l.packages,s=(n=t.trim()).startsWith("npm:")?n.slice(4):n,o.find(e=>e.scope===j&&e.source===n)??o.find(e=>e.scope===j&&e.source===`npm:${s}`)??o.find(e=>e.scope===j&&e.source.endsWith(n)));x(d?sP(d):r),v(!1),y(""),M(a("desktop.packageInstalled"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{I(null)}},[e,j,b,a]),W=(0,n.useCallback)(async()=>{if(t){I("reload"),R(null),M(null);try{await ni(t,{type:"reload"}),i?.(),await $(),M(a("desktop.sessionReloaded"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{I(null)}}},[$,i,t,a]),D=C?.startsWith("install:")??!1;return(0,o.jsx)("div",{style:r?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{r||e.target!==e.currentTarget||s?.()},children:(0,o.jsxs)("div",{style:r?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:l?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:l?"calc(100dvh - 16px)":"76vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!r&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,o.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:a("desktop.plugins")}),(0,o.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:sM(e)})]}),(0,o.jsx)("button",{onClick:s,title:a("desktop.close"),"aria-label":a("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,o.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:l?"column":"row",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{width:l?"100%":245,maxHeight:l?"40vh":void 0,borderRight:l?"none":"1px solid var(--border)",borderBottom:l?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:p?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:a("desktop.loading")}):h?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#ef4444"},children:h}):0===E.length?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:a("desktop.noPluginsConfigured")}):N.map(e=>(0,o.jsxs)("div",{style:{marginBottom:6},children:[(0,o.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:a(`desktop.${e.scope}`)}),e.packages.map(e=>{let t=sP(e),r=!k&&m===t;return(0,o.jsxs)("div",{onClick:()=>{x(t),v(!1),R(null),M(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,o.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:sL(e.status)}}),(0,o.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,o.jsx)("div",{style:{fontSize:12,fontWeight:r?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source}),(0,o.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:sN(e,a)}),(e.version||e.configuredVersion)&&(0,o.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:s$(e,a)})]})]},t)})]},e.scope))}),(0,o.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,o.jsxs)("button",{type:"button",onClick:()=>{v(!0),R(null),M(null)},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,border:"none",width:"100%",cursor:"pointer",background:k?"var(--bg-selected)":"none",color:k?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{k||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{k||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(f.c,{size:13}),a("desktop.addPlugin")]})})]}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:k?(0,o.jsx)(sH,{cwd:e,source:b,scope:j,busy:D,actionError:T,onSourceChange:y,onScopeChange:S,onInstall:F}):p?null:P?(0,o.jsx)(sB,{pkg:P,cwd:e,busyKey:C,actionError:T,actionMessage:z,sessionId:t,onAction:L,onReloadSession:W},sP(P)):(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:a("desktop.selectPackage")})})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsx)("div",{style:{minWidth:0,flex:1,fontSize:11,color:"var(--text-dim)",overflow:"hidden"},children:d?.diagnostics.length?(0,o.jsx)("span",{title:d.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:d.diagnostics.some(e=>"error"===e.type)?"#ef4444":"#d97706"},children:a("desktop.diagnosticsCount",{count:d.diagnostics.length,suffix:1===d.diagnostics.length?"":"s"})}):(0,o.jsx)("span",{children:d?a("desktop.pluginResourceTotals",{extensions:d.totals.extensions,skills:d.totals.skills,prompts:d.totals.prompts,themes:d.totals.themes}):""})}),(0,o.jsx)("button",{onClick:()=>void $(),disabled:p||null!==C,style:sD(p||null!==C),children:a("desktop.refresh")}),!r&&(0,o.jsx)("button",{onClick:s,style:sD(!1),children:a("desktop.close")})]})]})})}function s_(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function sq(e){let t=e.sourceInfo?.source,r=e.sourceInfo?.scope;return"user"===r||"user"===t?"global":"project"===r||"project"===t?"project":"path"}function sK(e){let t=sq(e);return"path"===t?t:e.install?.skillsShUrl?`${t} / skills.sh`:t}function sV(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function sJ(e,t){return e?e.slice(0,8):t}function sY({enabled:e,loading:t,onToggle:r}){let{t:n}=(0,w.s)();return(0,o.jsx)("button",{onClick:r,disabled:t,title:n(e?"desktop.visibleInModelPrompt":"desktop.hiddenFromModelPrompt"),style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,o.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function sG({skill:e,cwd:t,onToggle:r,toggling:n,saveError:s,updateStatus:i,checkingUpdate:l,updating:a,updateError:d,onCheckUpdate:c,onUpdate:p}){let{t:u}=(0,w.s)(),h=sq(e),g=!e.disableModelInvocation;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,o.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===h?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===h?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:u(`desktop.${h}`)}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(e){if("project"===h&&e.startsWith(t)){let r=e.slice(t.length).replace(/^[/\\]/,"");return`./${r}`}return s_(e)}(e.filePath)}),(0,o.jsx)(sY,{enabled:g,loading:n,onToggle:()=>r(e)}),s&&(0,o.jsx)("span",{style:{fontSize:12,color:"#f87171",flexShrink:0},children:s})]}),!g&&(0,o.jsx)("div",{style:{marginTop:-12,color:"var(--text-dim)",fontSize:12},children:u("desktop.hiddenButInvocable")}),e.install?.skillsShUrl&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.pluginSource")}),(0,o.jsx)("a",{href:e.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:e.install.skillsShUrl,style:{display:"flex",alignItems:"center",gap:8,width:"fit-content",maxWidth:"100%",color:"var(--accent)",textDecoration:"none"},children:(0,o.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})]}),e.install&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.version")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)"},children:sJ(i?.currentVersion??e.install.versionHash,u("desktop.unknown"))}),e.install.canCheckForUpdates&&(0,o.jsx)("button",{onClick:c,disabled:l||a,style:{padding:"4px 9px",border:"1px solid var(--border)",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:l||a?"not-allowed":"pointer",opacity:l||a?.5:1,fontSize:11},children:u("desktop.check")}),i?.state==="update-available"&&(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"#d97706"},children:sJ(i.latestVersion,u("desktop.unknown"))}),(l||i&&"update-available"!==i.state)&&(0,o.jsx)("span",{style:{fontSize:12,color:l?"var(--accent)":i?.state==="up-to-date"?"#16a34a":i?.state==="error"?"#ef4444":"var(--text-dim)"},children:l?u("desktop.checking"):i?.state==="up-to-date"?u("desktop.upToDate"):i?.state==="unsupported"?u("desktop.automaticChecksUnavailable"):i?.message||u("desktop.checkFailed")}),i?.state==="update-available"&&(0,o.jsx)("button",{onClick:p,disabled:a||l,style:{padding:"4px 10px",border:"none",borderRadius:5,background:"var(--accent)",color:"#fff",cursor:a||l?"not-allowed":"pointer",opacity:a||l?.5:1,fontSize:11,fontWeight:600},children:u(a?"desktop.updating":"desktop.update")})]}),d&&(0,o.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:d})]}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.name")}),(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--text)"},children:e.name})]}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.description")}),(0,o.jsx)("span",{style:{fontSize:14,color:"var(--text-muted)",lineHeight:1.6},children:e.description})]})]})}function sQ({cwd:e,installedPackages:t,projectResourcesLoaded:r,onInstalled:s}){let{t:i}=(0,w.s)(),[l,a]=(0,n.useState)(""),[d,c]=(0,n.useState)([]),[p,u]=(0,n.useState)(!1),[h,g]=(0,n.useState)(null),[m,f]=(0,n.useState)(null),[x,k]=(0,n.useState)(null),[v,b]=(0,n.useState)(new Set),[y,j]=(0,n.useState)("global"),S=(0,n.useRef)(null);(0,n.useEffect)(()=>{S.current?.focus()},[]),(0,n.useEffect)(()=>{r||j("global")},[r]);let C=(0,n.useCallback)(async e=>{if(e.trim()){u(!0),g(null),c([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),r=await t.json();if(r.error)return void g(r.error);c(r.results??[]),0===(r.results??[]).length&&g(i("desktop.noSkillsFound"))}catch(e){g(String(e))}finally{u(!1)}}},[i]),I=(0,n.useCallback)(async t=>{f(t),k(null);try{let r=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:t,scope:y,cwd:e})}),o=await r.json();if(!r.ok||o.error)return void k(o.error??`HTTP ${r.status}`);b(e=>new Set(e).add(`${y}:${t}`)),s()}catch(e){k(String(e))}finally{f(null)}},[s,y,e]),T="global"===y?"~/.pi/agent/skills/":`${s_(e)}/.pi/skills/`;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,o.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:i("desktop.addSkillTitle")}),(0,o.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,o.jsx)("input",{ref:S,value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C(l)},placeholder:i("desktop.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,o.jsx)("button",{onClick:()=>C(l),disabled:p||!l.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:p||!l.trim()?"not-allowed":"pointer",opacity:p||!l.trim()?.5:1,flexShrink:0},children:p?i("desktop.searching"):i("desktop.search")})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,o.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(e=>(0,o.jsx)("button",{onClick:()=>j(e),disabled:"project"===e&&!r,title:"project"!==e||r?void 0:i("desktop.projectSkillInstallUnavailable"),style:{padding:"3px 10px",border:"none",cursor:"project"!==e||r?"pointer":"not-allowed",opacity:"project"!==e||r?1:.5,background:y===e?"var(--bg-selected)":"none",color:y===e?"var(--text)":"var(--text-dim)",fontWeight:y===e?600:400,borderRight:"global"===e?"1px solid var(--border)":"none"},children:i(`desktop.${e}`)},e))}),(0,o.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",T]})]}),h&&(0,o.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:h}),x&&(0,o.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:x})]}),d.length>0?(0,o.jsx)("div",{style:{flex:1,overflowY:"auto"},children:d.map(e=>{let r=t[y].has(e.package)||v.has(`${y}:${e.package}`),n=m===e.package,s=e.package.indexOf("@"),l=s>-1?e.package.slice(0,s):e.package,a=s>-1?e.package.slice(s+1):null;return(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:a??l}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,o.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:l}),(0,o.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:e.installs}),e.url&&(0,o.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,o.jsx)("button",{onClick:()=>!r&&!n&&I(e.package),disabled:r||n||null!==m,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:r||n||null!==m?"not-allowed":"pointer",background:r?"rgba(34,197,94,0.1)":"none",color:r?"#16a34a":n?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:r?`✓ ${i("desktop.installed")}`:n?i("desktop.installing"):i("desktop.install")})]},e.package)})}):!h&&!p&&(0,o.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:[i("desktop.skillSearchHint").split("skills.sh")[0],(0,o.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"}),i("desktop.skillSearchHint").split("skills.sh")[1]]})]})}function sZ({cwd:e,embedded:t=!1,onCloseAction:r}){let s=r3(),{t:i}=(0,w.s)(),[l,a]=(0,n.useState)([]),[d,c]=(0,n.useState)(!0),[p,u]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[m,x]=(0,n.useState)(new Set),[k,v]=(0,n.useState)(null),[b,y]=(0,n.useState)(!1),[j,S]=(0,n.useState)({}),[C,I]=(0,n.useState)(new Set),[T,R]=(0,n.useState)(!1),[z,M]=(0,n.useState)(null),[E,P]=(0,n.useState)(null),[N,$]=(0,n.useState)(!0),[L,F]=(0,n.useState)({}),W=(0,n.useCallback)(async()=>{c(!0),u(null);try{let t=await fetch(`/api/skills?cwd=${encodeURIComponent(e)}`),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);let o=r.skills??[];if(a(o),$(r.projectResourcesLoaded??!0),o.length>0&&!h){let e=o.find(e=>!e.disableModelInvocation)??o[0];g(e.filePath),e.disableModelInvocation&&F(t=>({...t,[sK(e)]:!0}))}return o}catch(e){return u(String(e)),[]}finally{c(!1)}},[e,h]);(0,n.useEffect)(()=>{S({}),P(null),W()},[e]);let D=(0,n.useCallback)(async t=>{let r=(t?[t]:l.filter(e=>!!e.install)).map(sV).filter(e=>!!e);if(0!==r.length){P(null),I(e=>new Set([...e,...r])),t||R(!0);try{let r=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t?.install?.package,scope:t?.install?.scope})}),o=await r.json();if(!r.ok||o.error)throw Error(o.error??`HTTP ${r.status}`);S(e=>{let t={...e};for(let e of o.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){P(e instanceof Error?e.message:String(e))}finally{I(e=>{let t=new Set(e);for(let e of r)t.delete(e);return t}),t||R(!1)}}},[e,l]),A=(0,n.useCallback)(async t=>{if(!t.install)return;let r=sV(t);M(r),P(null);try{let o=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t.install.package,scope:t.install.scope})}),n=await o.json();if(!o.ok||n.error||!n.success)throw Error(n.error??`HTTP ${o.status}`);await W();let s=n.skill?.install?.versionHash;S(e=>({...e,[r]:{package:t.install.package,scope:t.install.scope,state:"up-to-date",currentVersion:s,latestVersion:s}}))}catch(e){P(e instanceof Error?e.message:String(e))}finally{M(null)}},[e,W]),O=(0,n.useCallback)(async t=>{let r=!t.disableModelInvocation;x(e=>new Set(e).add(t.filePath)),v(null);try{let o=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t.filePath,disableModelInvocation:r})}),n=await o.json();if(!o.ok||n.error)return void v(n.error??`HTTP ${o.status}`);a(e=>e.map(e=>e.filePath===t.filePath?{...e,disableModelInvocation:r}:e)),r&&F(e=>({...e,[sK(t)]:!0}))}catch(e){v(String(e))}finally{x(e=>{let r=new Set(e);return r.delete(t.filePath),r})}},[e]),H=l.find(e=>e.filePath===h)??null;return(0,o.jsx)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{t||e.target!==e.currentTarget||r?.()},children:(0,o.jsxs)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:s?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:s?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!t&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,o.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:i("desktop.skills")}),(0,o.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s_(e)})]}),(0,o.jsx)("button",{onClick:r,title:i("desktop.close"),"aria-label":i("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!N&&(0,o.jsx)("div",{role:"status",style:{padding:"8px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:12},children:i("desktop.projectSkillsRestricted")}),(0,o.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:s?"column":"row",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{width:s?"100%":210,maxHeight:s?"40vh":void 0,borderRight:s?"none":"1px solid var(--border)",borderBottom:s?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:d?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:i("desktop.loading")}):p?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#f87171"},children:p}):0===l.length?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:i("desktop.noSkillsFound")}):(()=>{let e=[];for(let{key:t,label:r,matches:o}of[{key:"project / skills.sh",label:`${i("desktop.project")} / skills.sh`,matches:e=>"project"===sq(e)&&!!e.install?.skillsShUrl},{key:"project",label:i("desktop.project"),matches:e=>"project"===sq(e)&&!e.install?.skillsShUrl},{key:"global / skills.sh",label:`${i("desktop.global")} / skills.sh`,matches:e=>"global"===sq(e)&&!!e.install?.skillsShUrl},{key:"global",label:i("desktop.global"),matches:e=>"global"===sq(e)&&!e.install?.skillsShUrl},{key:"path",label:i("desktop.path"),matches:e=>"path"===sq(e)}]){let n=l.filter(o);n.length>0&&e.push({key:t,label:r,skills:n})}return e.map(({key:e,label:t,skills:r})=>{let n=r.filter(e=>!e.disableModelInvocation),s=r.filter(e=>e.disableModelInvocation),l=L[e]??!1,a=l?[...n,...s]:n;return(0,o.jsxs)("div",{style:{marginBottom:6},children:[(0,o.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),s.length>0&&(0,o.jsxs)("button",{type:"button",onClick:()=>F(t=>({...t,[e]:!l})),style:{display:"flex",alignItems:"center",gap:5,width:"100%",padding:"4px 8px 3px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:10,fontWeight:600,letterSpacing:"0.06em",textAlign:"left",textTransform:"uppercase"},children:[(0,o.jsx)("span",{style:{fontSize:8},children:l?"▾":"▸"}),i("desktop.dormant")," (",s.length,")"]}),a.map(e=>{let t,r,n=!b&&h===e.filePath,s=e.disableModelInvocation;return(0,o.jsxs)("div",{onClick:()=>{g(e.filePath),y(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:n?"var(--bg-selected)":"none"},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="none")},children:[(0,o.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:s?"var(--border)":"var(--accent)",boxShadow:s?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,o.jsx)("span",{style:{fontSize:12,fontWeight:n?600:400,color:s?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(r=(t=sV(e))?j[t]:void 0,r?.state!=="update-available"?null:(0,o.jsx)("span",{title:i("desktop.updateAvailable"),style:{color:"#d97706",fontSize:13,lineHeight:1,flexShrink:0},children:"↑"}))]},e.filePath)})]},e)})})()}),(0,o.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,o.jsxs)("div",{onClick:()=>y(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none",color:b?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{b||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{b||(e.currentTarget.style.background="none")},children:[(0,o.jsx)(f.c,{size:13}),i("desktop.addSkill")]})})]}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:b?(0,o.jsx)(sQ,{cwd:e,installedPackages:{global:new Set(l.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(l.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},projectResourcesLoaded:N,onInstalled:()=>{W()}}):d?null:H?(0,o.jsx)(sG,{skill:H,cwd:e,onToggle:O,toggling:m.has(H.filePath),saveError:k,updateStatus:sV(H)?j[sV(H)]:void 0,checkingUpdate:!!sV(H)&&C.has(sV(H)),updating:z===sV(H),updateError:E,onCheckUpdate:()=>void D(H),onUpdate:()=>void A(H)},H.filePath):(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:i("desktop.selectSkill")})})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[l.some(e=>!!e.install)&&(0,o.jsx)("button",{onClick:()=>void D(),disabled:T||null!==z,style:{padding:"6px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:T||null!==z?"not-allowed":"pointer",opacity:T||null!==z?.5:1,fontSize:12},children:T?i("desktop.checking"):i("desktop.checkUpdates")}),Object.values(j).filter(e=>"update-available"===e.state).length>0&&(0,o.jsx)("span",{style:{fontSize:12,color:"#d97706"},children:i("desktop.updatesCount").replace("{count}",String(Object.values(j).filter(e=>"update-available"===e.state).length)).replace("{suffix}",1===Object.values(j).filter(e=>"update-available"===e.state).length?"":"s")})]}),!t&&(0,o.jsx)("button",{onClick:r,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:i("desktop.close")})]})]})})}let sX=[{id:"display",labelKey:"desktop.display",Icon:nV.V},{id:"chat",labelKey:"desktop.chat",Icon:nJ.W},{id:"models",labelKey:"desktop.models",Icon:os.f},{id:"skills",labelKey:"desktop.skills",Icon:nY.B},{id:"plugins",labelKey:"desktop.plugins",Icon:nG.F}];function s0({initialTab:e="models",cwd:t,sessionId:r,onCloseAction:s,onModelsSavedAction:i,onSessionReloadedAction:l}){let a=r3(),{t:d}=(0,w.s)(),[c,p]=(0,n.useState)("skills"===e||"plugins"===e?t?e:"display":e);return(0,o.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&s()},children:(0,o.jsxs)("section",{role:"dialog","aria-modal":"true","aria-label":d("desktop.settings"),style:{width:a?"calc(100vw - 16px)":1e3,maxWidth:"calc(100vw - 16px)",height:a?"calc(100dvh - 16px)":"80vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[(0,o.jsxs)("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,o.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:d("desktop.settings")}),"models"===c?(0,o.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"}):t&&(0,o.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]}),(0,o.jsx)("button",{type:"button",onClick:s,title:d("desktop.closeSettings"),"aria-label":d("desktop.closeSettings"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},children:(0,o.jsx)(R.X,{size:18,"aria-hidden":"true"})})]}),(0,o.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:a?"column":"row",minHeight:0,overflow:"hidden"},children:[(0,o.jsx)("nav",{"aria-label":d("desktop.settingsSections"),style:{display:"flex",flexDirection:a?"row":"column",gap:4,width:a?"100%":150,padding:8,flexShrink:0,background:"var(--bg-panel)",borderRight:a?"none":"1px solid var(--border)",borderBottom:a?"1px solid var(--border)":"none"},children:sX.map(({id:e,labelKey:r,Icon:n})=>{let s=("skills"===e||"plugins"===e)&&!t,i=c===e;return(0,o.jsxs)("button",{type:"button",disabled:s,onClick:()=>p(e),"aria-current":i?"page":void 0,style:{display:"flex",alignItems:"center",gap:8,flex:a?1:void 0,width:a?void 0:"100%",padding:"8px 10px",border:"none",borderRadius:6,background:i?"var(--bg-selected)":"none",color:i?"var(--text)":"var(--text-muted)",cursor:s?"not-allowed":"pointer",opacity:s?.4:1,fontSize:12,fontWeight:i?600:400,textAlign:"left",transition:"background 0.12s, color 0.12s"},title:d(r),"aria-label":d(r),onMouseEnter:e=>{i||s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:[(0,o.jsx)(n,{size:16,"aria-hidden":"true"}),!a&&(0,o.jsx)("span",{children:d(r)})]},e)})}),(0,o.jsx)("div",{style:{display:"display"===c?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,o.jsx)(sl,{})}),(0,o.jsx)("div",{style:{display:"chat"===c?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,o.jsx)(n4,{})}),(0,o.jsx)("div",{style:{display:"models"===c?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,o.jsx)(sz,{embedded:!0,onSavedAction:i})}),t&&(0,o.jsx)("div",{style:{display:"skills"===c?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,o.jsx)(sZ,{cwd:t,embedded:!0})}),t&&(0,o.jsx)("div",{style:{display:"plugins"===c?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,o.jsx)(sU,{cwd:t,sessionId:r,embedded:!0,onReloadedAction:l})})]})]})})}var s1=r(62235),s2=r(25388),s4=r(4539);function s6({isDark:e,toggleTheme:t,translate:r}){let[s,i]=(0,n.useState)(!1);(0,n.useEffect)(()=>{i(!0)},[]);let l=r(s?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,o.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let r=e.currentTarget.getBoundingClientRect();t({x:r.left+r.width/2,y:r.top+r.height/2})},title:l,"aria-label":l,"aria-pressed":!s||e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},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-muted)"},children:s?e?(0,o.jsx)(n7.b,{size:16,"aria-hidden":"true"}):(0,o.jsx)(n8.A,{size:16,"aria-hidden":"true"}):(0,o.jsx)(n7.b,{size:16,"aria-hidden":"true"})})}function s5({topBarRef:e,sidebarOpen:t,onSidebarToggle:r,isDark:n,toggleTheme:s,isMobile:i,showChat:l,systemPrompt:a,activeTopPanel:d,topPanelPos:c,sessionStats:u,contextUsage:h,copiedSessionField:g,onCopySessionField:m,rightPanelOpen:f,onToggleFilePanel:x,onOpenSettings:k,sessionTitle:v,onWorkspaceControlsHostChange:b}){let y,j,S,C,I,T,R,z,{t:M}=(0,w.s)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{ref:e,className:"app-title-bar",style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:36,background:"var(--bg-panel)",position:"relative",zIndex:600},children:[(0,o.jsx)("button",{className:"app-no-drag",onClick:r,title:t?M("desktop.hideSidebar"):M("desktop.showSidebar"),"aria-label":t?M("desktop.hideSidebar"):M("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=t?"var(--bg-selected)":"none",e.currentTarget.style.color=t?"var(--text)":"var(--text-muted)"},children:t?(0,o.jsx)(s1.V,{size:16,"aria-hidden":"true"}):(0,o.jsx)(s2.B,{size:16,"aria-hidden":"true"})}),(0,o.jsx)("div",{className:"app-no-drag",ref:b,style:{flex:"0 1 auto",minWidth:0,maxWidth:"min(52vw, 560px)",height:"100%",display:"flex",alignItems:"center",padding:"0 8px 0 0",overflow:"visible"}}),l&&(0,o.jsx)("div",{style:{display:"flex",alignItems:"stretch",height:"100%"}}),(0,o.jsx)("div",{className:"app-title-drag",style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",height:"100%",minWidth:0,padding:"0 12px",userSelect:"none"},children:v&&(0,o.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:v})}),(0,o.jsx)("button",{className:"app-no-drag",onClick:x,title:f?M("desktop.hideFilePanel"):M("desktop.showFilePanel"),"aria-label":f?M("desktop.hideFilePanel"):M("desktop.showFilePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:f?"var(--bg-selected)":"none",border:"none",color:f?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=f?"var(--bg-selected)":"none",e.currentTarget.style.color=f?"var(--text)":"var(--text-muted)"},children:(0,o.jsx)(s1.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,o.jsx)(s6,{isDark:n,toggleTheme:s,translate:M}),(0,o.jsx)("button",{className:"app-no-drag",type:"button",onClick:k,title:M("desktop.settings"),"aria-label":M("desktop.settings"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},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-muted)"},children:(0,o.jsx)(s4.O,{size:16,"aria-hidden":"true"})})]}),d&&c&&(0,o.jsxs)("div",{style:{position:"fixed",top:c.top,left:c.left,width:c.width,maxHeight:`calc(100dvh - ${c.top}px)`,overflowY:"auto",zIndex:500},children:["system"===d&&(0,o.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:a?(0,o.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"12px 16px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:a}):""===a?(0,o.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"System prompt is empty (tools are disabled)"}):(0,o.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"Send a message to load the system prompt"})}),"session"===d&&(0,o.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:u?(y=[...u.sessionName?[{label:M("desktop.name"),value:u.sessionName,copyField:null}]:[],{label:M("desktop.sessionInfoFile"),value:u.sessionFile??M("desktop.sessionInfoInMemory"),copyField:"file"},{label:M("desktop.sessionInfoId"),value:u.sessionId,copyField:"id"}],j=[[M("desktop.sessionInfoUser"),u.userMessages.toLocaleString()],[M("desktop.sessionInfoAssistant"),u.assistantMessages.toLocaleString()],[M("desktop.sessionInfoToolCalls"),u.toolCalls.toLocaleString()],[M("desktop.sessionInfoToolResults"),u.toolResults.toLocaleString()],[M("desktop.sessionInfoTotal"),u.totalMessages.toLocaleString()]],S=[[M("desktop.sessionInfoInput"),u.tokens.input.toLocaleString()],[M("desktop.sessionInfoOutput"),u.tokens.output.toLocaleString()],...u.tokens.cacheRead>0?[[M("desktop.sessionInfoCacheRead"),u.tokens.cacheRead.toLocaleString()]]:[],...u.tokens.cacheWrite>0?[[M("desktop.sessionInfoCacheWrite"),u.tokens.cacheWrite.toLocaleString()]]:[],[M("desktop.sessionInfoTotal"),u.tokens.total.toLocaleString()]],C=h??u.contextUsage,T=[...u.cost>0?[[M("desktop.sessionInfoCost"),`$${u.cost.toFixed(4)}`]]:[],...C?.contextWindow?[[M("desktop.sessionInfoContext"),`${null!==C.percent?`${C.percent.toFixed(1)}%`:"?"} / ${(I=C.contextWindow)>=1e6?`${(I/1e6).toFixed(1)}M`:I>=1e3?`${(I/1e3).toFixed(0)}k`:String(I)}`]]:[]],R=(e,t,r="left",n=!1)=>(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:n?"max-content max-content":"auto minmax(0, 1fr)",columnGap:n?14:12,rowGap:4,justifyContent:n?"start":void 0},children:t.map(([t,s])=>(0,o.jsxs)("div",{style:{display:"contents"},children:[(0,o.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,o.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:n?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:s})]},`${e}:${t}`))})]}),z=(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:M("desktop.sessionInfoTitle")}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:y.map(e=>{var t,r;let n;return(0,o.jsxs)("div",{style:{display:"contents"},children:[(0,o.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,o.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,o.jsx)("div",{children:e.copyField?(t=e.copyField,r=e.value,n=g===t,(0,o.jsx)("button",{type:"button",title:n?M("desktop.copied"):"file"===t?M("desktop.copyFilePath"):M("desktop.copySessionId"),onClick:()=>m(t,r),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,o.jsx)(p.J,{size:12,"aria-hidden":"true"}):(0,o.jsx)(eL.Q,{size:12,"aria-hidden":"true"})})):null})]},`session-info:${e.label}`)})})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:i?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:i?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[z,R(M("desktop.sessionInfoMessages"),j),R(M("desktop.sessionInfoTokens"),[...S,...T],"right",!0)]})):(0,o.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:M("desktop.sendMessageForSessionInfo")})})]})]})}var s3=r(77229);function s8({cwd:e,busy:t,error:r,onCancelAction:n,onConfirmAction:s}){let{t:i}=(0,w.s)();return(0,o.jsx)("div",{role:"presentation",style:{position:"fixed",inset:0,zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",padding:16,background:"rgba(0, 0, 0, 0.4)"},onClick:e=>{t||e.target!==e.currentTarget||n()},children:(0,o.jsxs)("section",{role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title",style:{width:440,maxWidth:"100%",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",boxShadow:"0 12px 36px rgba(0, 0, 0, 0.24)",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{display:"flex",gap:12,padding:"18px 18px 14px"},children:[(0,o.jsx)(s3.o,{size:21,weight:"duotone",color:"var(--accent-orange)",style:{flexShrink:0,marginTop:1},"aria-hidden":"true"}),(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.jsx)("h2",{id:"project-trust-title",style:{margin:0,fontSize:15,fontWeight:700,color:"var(--text)"},children:i("desktop.trustProjectTitle")}),(0,o.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:i("desktop.trustProjectBody")}),(0,o.jsx)("code",{style:{display:"block",marginTop:10,padding:"8px 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:e}),r&&(0,o.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:r})]})]}),(0,o.jsxs)("footer",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,o.jsx)("button",{type:"button",onClick:n,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:t?"not-allowed":"pointer",fontSize:12},children:i("desktop.cancel")}),(0,o.jsx)("button",{type:"button",onClick:s,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"white",cursor:t?"wait":"pointer",opacity:t?.7:1,fontSize:12,fontWeight:600},children:i(t?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function s7(e,t,r){let o=Number.isFinite(e)?e:t,n=Math.max(t,r);return Math.round(Math.max(t,Math.min(n,o)))}function s9(e){return s7(.42*e,360,640)}function ie(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function it(e){let{ariaLabel:t,cssVariable:r,defaultWidth:o,getDefaultWidth:s,getMaxWidth:i,growthDirection:l,maxWidth:a,minWidth:d,storageKey:c,widthRef:p}=e,u=(0,n.useRef)(null),h=(0,n.useRef)(null),g=(0,n.useRef)(!1),[m,f]=(0,n.useState)(o),[x,k]=(0,n.useState)(!1),v=(0,n.useCallback)(()=>Math.min(a,Math.max(d,i())),[i,a,d]),b=(0,n.useCallback)(e=>s7(e,d,v()),[v,d]),y=(0,n.useCallback)(e=>{p.current=e;let t=`${e}px`;u.current?.style.setProperty(r,t),u.current?.parentElement?.style.setProperty(r,t)},[r,p]),w=(0,n.useCallback)((e,t={})=>{let{forcePersist:r=!1,persist:o=!0}=t,n=b(e),s=n!==p.current;return y(n),f(n),o&&(s||r)&&ie(c,n),n},[y,b,c,p]),j=(0,n.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),S=(0,n.useCallback)(e=>{let t=h.current;if(t&&t.pointerId===e){h.current=null,j(t),k(!1),w(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[w,j,p]),C=(0,n.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=h.current;t&&S(t.pointerId);let r=e.currentTarget;r.focus({preventScroll:!0}),r.setPointerCapture(e.pointerId),h.current={pointerId:e.pointerId,startX:e.clientX,startWidth:p.current,target:r,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="col-resize",document.body.style.userSelect="none",k(!0)},[S,p]),I=(0,n.useCallback)(e=>{let t=h.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void S(e.pointerId);e.preventDefault();let r="right"===l?1:-1,o=b(t.startWidth+(e.clientX-t.startX)*r);y(o),e.currentTarget.setAttribute("aria-valuenow",String(o)),e.currentTarget.setAttribute("aria-valuetext",`${o} px`)},[y,b,S,l]),T=(0,n.useCallback)(e=>{S(e.pointerId)},[S]),R=(0,n.useCallback)(e=>{S(e.pointerId)},[S]),z=(0,n.useCallback)(e=>{S(e.pointerId)},[S]),M=(0,n.useCallback)(()=>{w(s?.()??o,{forcePersist:!0})},[w,o,s]),E=(0,n.useCallback)(()=>{w(p.current)},[w,p]),P=(0,n.useCallback)(e=>{let t=e.shiftKey?32:12,r="right"===l?"ArrowRight":"ArrowLeft",o="right"===l?"ArrowLeft":"ArrowRight";e.key===r?(e.preventDefault(),w(p.current+t,{forcePersist:!0})):e.key===o?(e.preventDefault(),w(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),w(d,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),w(v(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),M())},[w,v,l,d,M,p]);return(0,n.useEffect)(()=>{if(g.current)return;g.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let r=Number.parseInt(t,10);return Number.isFinite(r)?r:null}catch{return null}}(c),t=w(e??s?.()??o,{persist:!1});null!==e&&e!==t&&ie(c,t)},[w,o,s,c]),(0,n.useEffect)(()=>{if(!g.current)return;w(p.current);let e=()=>{w(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[w,p]),(0,n.useEffect)(()=>{if(!x)return;let e=()=>{let e=h.current;e&&S(e.pointerId)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[S,x]),(0,n.useEffect)(()=>()=>{let e=h.current;e&&(h.current=null,j(e))},[j]),{isResizing:x,panelRef:u,reclampWidth:E,separatorProps:{"aria-label":t,"aria-orientation":"vertical","aria-valuemax":v(),"aria-valuemin":d,"aria-valuenow":m,"aria-valuetext":`${m} px`,onDoubleClick:M,onKeyDown:P,onLostPointerCapture:z,onPointerCancel:R,onPointerDown:C,onPointerMove:I,onPointerUp:T,role:"separator",tabIndex:0},width:m}}function ir(){let e=(0,i.useRouter)(),t=(0,i.useSearchParams)(),[r]=(0,n.useState)(()=>{let e;return{requestedCwd:e=t.get("cwd")?.trim()||null,sessionId:e?null:t.get("session")}}),{isDark:a,toggleTheme:d}=e6(),{t:c}=(0,w.s)(),p=r3(),[u,h]=(0,n.useState)(null),[g,m]=(0,n.useState)(null),[f,x]=(0,n.useState)(0),[k,v]=(0,n.useState)(0),[b,y]=(0,n.useState)(0),[j,S]=(0,n.useState)(!1),[C,I]=(0,n.useState)("models"),[T,R]=(0,n.useState)(0),[z,M]=(0,n.useState)(null),[E,P]=(0,n.useState)(!1),[N,$]=(0,n.useState)(!1),[L,F]=(0,n.useState)(null),[W,D]=(0,n.useState)(!0),[A,O]=(0,n.useState)(!1);(0,n.useEffect)(()=>{p&&D(!1)},[p]),(0,n.useEffect)(()=>{O(!0)},[]);let H=(0,n.useRef)(null),B=(0,n.useRef)(null),[U,_]=(0,n.useState)(null),[K,V]=(0,n.useState)(null),[J,Y]=(0,n.useState)(null),G=(0,n.useCallback)(e=>{Y(e)},[]),[Q,Z]=(0,n.useState)(null),X=(0,n.useCallback)(e=>{Z(e)},[]),[ee,et]=(0,n.useState)(null),er=(0,n.useRef)(null),eo=(0,n.useCallback)((e,t)=>{e5(t).then(()=>{er.current&&clearTimeout(er.current),et(e),er.current=setTimeout(()=>et(null),1400)})},[]);(0,n.useEffect)(()=>()=>{er.current&&clearTimeout(er.current)},[]);let[en,es]=(0,n.useState)(null),ei=(0,n.useCallback)(e=>{es(e)},[]),[el,ea]=(0,n.useState)(null),[ed,ec]=(0,n.useState)(null),ep=(0,n.useCallback)(()=>{p&&D(!1),ea("session")},[p]),eu=(0,n.useCallback)(()=>{p&&ea(null),D(e=>!e)},[p]);(0,n.useEffect)(()=>{if(!el||!B.current)return;let e=()=>{let e=B.current.getBoundingClientRect();ec({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(B.current),()=>t.disconnect()},[el]);let[eg,em]=(0,n.useState)([]),[ef,ex]=(0,n.useState)(null),[ek,ev]=(0,n.useState)(!1),eb=(0,n.useRef)(260),ey=(0,n.useRef)(s9(1366)),ew=(0,n.useCallback)(()=>s9(window.innerWidth),[]),ej=(0,n.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:r,rightPanelWidth:o}=e;if(t<=640)return 480;let n=t<960;return Math.min(480,t-(n?320:420)-(!n&&r?o:0))})({viewportWidth:window.innerWidth,rightPanelOpen:ek,rightPanelWidth:ey.current}),[ek]),eS=(0,n.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:r,sidebarWidth:o}=e;return t<960?1200:Math.min(1200,t-420-(r?o:0))})({viewportWidth:window.innerWidth,sidebarOpen:W,sidebarWidth:eb.current}),[W]),eC=it({ariaLabel:c("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:ej,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:eb}),eI=it({ariaLabel:c("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:s9(1366),getDefaultWidth:ew,getMaxWidth:eS,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:ey}),eT=eC.reclampWidth,eR=eI.reclampWidth;(0,n.useEffect)(()=>{ek&&(eT(),eR())},[eR,eT,ek]);let ez=(0,n.useCallback)((e,t)=>{H.current?.insertText(r1(e,t))},[]),eM=(0,n.useCallback)(e=>{let t=e.map(e=>r1(e,!1)).join("");t&&H.current?.insertText(t)},[]),eE=(0,n.useCallback)((e,t,r)=>{let o,n,s,i;H.current?.insertText((o=Math.max(1,Math.min(t,r)),n=Math.max(1,Math.max(t,r)),s=e.includes(" ")?`@"${e}"`:`@${e}`,i=o===n?`:${o}`:`:${o}-${n}`,`${s}${i} `))},[]),[eP]=(0,n.useState)(()=>r.sessionId),[eN,e$]=(0,n.useState)(null),[eL,eF]=(0,n.useState)(()=>r.requestedCwd?"validating":"idle"),[eW,eD]=(0,n.useState)(null),[eA,eO]=(0,n.useState)(()=>!eP),eH=(0,n.useRef)(!1);(0,n.useEffect)(()=>{let e=r.requestedCwd;if(!e)return;let t=new AbortController;return eF("validating"),eD(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);eH.current=!0,m(t.cwd),eF("ready")}).catch(e=>{t.signal.aborted||(eD(e instanceof Error?e.message:String(e)),eF("error"))}),()=>t.abort()},[r]);let eB=(0,n.useCallback)((e,t)=>{if(e$(e),!e)return;if(eH.current){eH.current=!1;return}let r=t??e;u&&(u.projectRoot??u.cwd)===r||(h(null),m(t=>t&&t!==e?null:t),v(e=>e+1),Y(null),ea(null))},[u]);(0,n.useEffect)(()=>{let e=eN?q(eN)||eN:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[eN]);let eU=(0,n.useCallback)((t,r=!1)=>{m(null),h(t),v(e=>e+1),Y(null),eO(!0),p&&!r&&D(!1),r&&(eH.current=!0),r||e.replace(`?session=${encodeURIComponent(t.id)}`,{scroll:!1})},[e,p]),e_=(0,n.useCallback)((t,r)=>{h(null),m(r),v(e=>e+1),Y(null),ea(null),p&&D(!1),e.replace("/",{scroll:!1})},[e,p]);!function(e){let{onNewSession:t,activeCwd:r}=e;(0,n.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!l)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),l();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!r||!t)return;e.preventDefault(),t(r)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r,t])}({onNewSession:e=>e_(`kb-${Date.now()}`,e),activeCwd:eN});let eq=(0,n.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&h(t=>t&&t.id===e&&!t.projectRoot?r:t)}).catch(()=>{})},[]),eK=(0,n.useCallback)(t=>{m(null),h(t),x(e=>e+1),eq(t.id),e.replace(`?session=${encodeURIComponent(t.id)}`,{scroll:!1})},[e,eq]),eV=(0,n.useCallback)(()=>{x(e=>e+1),y(e=>e+1)},[]),eJ=(0,n.useCallback)(t=>{x(e=>e+1),v(e=>e+1),m(null),h(e=>({...e??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:t})),eq(t),e.replace(`?session=${encodeURIComponent(t)}`,{scroll:!1})},[e,eq]),eY=(0,n.useCallback)(()=>{eO(!0)},[]),eG=(0,n.useCallback)(t=>{if(x(e=>e+1),u?.id===t){let t=u.cwd;h(null),m(t??null),v(e=>e+1),Y(null),ea(null),e.replace("/",{scroll:!1})}},[e,u]),eQ=(0,n.useCallback)((e,t,r,o)=>{let n="string"==typeof r||null===r?r:void 0,s="object"==typeof r&&null!==r?r:o,i=`file:${e}`;em(r=>{let o=r.find(e=>e.id===i);return o?n&&o.sourceSessionId!==n||s?.initialDisplayMode&&o.initialDisplayMode!==s.initialDisplayMode?r.map(e=>e.id===i?{...e,sourceSessionId:n??e.sourceSessionId,initialDisplayMode:s?.initialDisplayMode??e.initialDisplayMode}:e):r:[...r,{id:i,label:t,filePath:e,sourceSessionId:n,initialDisplayMode:s?.initialDisplayMode}]}),ex(i),ev(!0),p&&D(!1)},[p]),eZ=(0,n.useCallback)(e=>{eQ(e,q(e),u?.id??null)},[eQ,u?.id]),eX=(0,n.useCallback)(e=>{em(t=>{let r=t.filter(t=>t.id!==e);return 0===r.length&&ev(!1),r}),ex(t=>{if(t!==e)return t;let r=eg.filter(t=>t.id!==e);return r.length>0?r[r.length-1].id:null})},[eg]),e0=u?u.name||u.firstMessage.slice(0,50)||u.id.slice(0,12):null,e1=(0,n.useCallback)(()=>{u&&window.open(`/api/sessions/${encodeURIComponent(u.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[u]),e2=g??(null===u&&eN?eN:null),e4="validating"!==eL&&"error"!==eL&&(null!==u||null!==e2),e3=u?.cwd??e2,e8=eA&&!e4;(0,n.useEffect)(()=>{if(M(null),P(!1),F(null),!e3)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(e3)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);M(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[e3]);let e7=(0,n.useCallback)(async()=>{if(e3&&!N){$(!0),F(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e3})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);M(t),P(!1),R(e=>e+1),v(e=>e+1)}catch(e){F(e instanceof Error?e.message:String(e))}finally{$(!1)}}},[N,e3]),e9=eg.find(e=>e.id===ef)??null,te=eN??u?.cwd??g,tt=(0,n.useCallback)(e=>{I(e),S(!0)},[]),tr=(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(eh,{selectedSessionId:u?.id??null,onSelectSession:eU,onNewSession:e_,initialSessionId:eP,onInitialRestoreDone:eY,refreshKey:f,onSessionDeleted:eG,selectedCwd:u?.cwd??g??null,onCwdChange:eB,onOpenFile:eQ,explorerRefreshKey:b,onAtMention:ez,onAtMentions:eM,workspaceControlsHosts:{title:U,welcome:K},showWorkspaceControls:!!(eN??u?.cwd??g)})});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{children:`
|
|
5
|
+
@media (max-width: 640px) {
|
|
6
|
+
.sidebar-overlay-backdrop.sidebar-mobile-pending {
|
|
7
|
+
opacity: 0 !important;
|
|
8
|
+
pointer-events: none !important;
|
|
9
|
+
}
|
|
10
|
+
.sidebar-container.sidebar-mobile-pending.sidebar-open {
|
|
11
|
+
transform: translateX(-100%);
|
|
12
|
+
box-shadow: none;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
`}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,o.jsx)(s5,{topBarRef:B,sidebarOpen:W,onSidebarToggle:eu,isDark:a,toggleTheme:d,isMobile:p,showChat:e4,systemPrompt:J,activeTopPanel:el,topPanelPos:ed,sessionStats:Q,contextUsage:en,copiedSessionField:ee,onCopySessionField:eo,rightPanelOpen:ek,onToggleFilePanel:()=>ev(e=>!e),onOpenSettings:()=>tt("models"),sessionTitle:e0,onWorkspaceControlsHostChange:_}),e4&&z?.requiresTrust&&!z.trusted&&(0,o.jsxs)("button",{type:"button",onClick:()=>{F(null),P(!0)},title:c("desktop.projectResourcesRestricted"),"aria-label":c("desktop.projectResourcesRestricted"),style:{position:"fixed",top:48,right:p?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"⚠"}),c("desktop.trustProject")]}),(0,o.jsxs)("div",{style:{"--right-panel-width":`${eI.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,o.jsx)("div",{className:`sidebar-overlay-backdrop${A?"":" sidebar-mobile-pending"}`,onClick:()=>D(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!W,pointerEvents:W?"auto":"none",transition:"opacity 0.25s ease"}}),(0,o.jsx)("div",{ref:eC.panelRef,className:`sidebar-container${W?" sidebar-open":" sidebar-closed"}${A?"":" sidebar-mobile-pending"}${eC.isResizing?" panel-is-resizing":""}`,style:{"--sidebar-width":`${eC.width}px`,background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:tr}),W&&(0,o.jsx)("div",{...eC.separatorProps,className:"workspace-panel-splitter sidebar-panel-splitter"}),(0,o.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:(0,o.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:e4?(0,o.jsx)(ny,{session:u,newSessionCwd:e2,onAgentEnd:eV,onSessionCreated:eK,onSessionForked:eJ,modelsRefreshKey:T,chatInputRef:H,onSystemPromptChange:G,onSessionStatsChange:X,onSessionStatsPanelOpen:ep,onContextUsageChange:ei,onOpenFile:eZ,onWorkspaceControlsHostChange:V,onViewFullHistory:e1,systemPrompt:J},k):"validating"===eL?(0,o.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,o.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:c("desktop.openingWorkspace")}),(0,o.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:r.requestedCwd})]}):"error"===eL?(0,o.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,o.jsx)("div",{style:{fontSize:14,color:"#dc2626"},children:c("desktop.unableToOpenWorkspace")}),(0,o.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:r.requestedCwd}),(0,o.jsx)("div",{style:{maxWidth:720,fontSize:12},children:eW})]}):e8?eN?(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:c("desktop.selectSessionFromSidebar")}):(0,o.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,o.jsx)(s.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:c("desktop.getStarted")}),(0,o.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,o.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),c("desktop.selectProjectDirectory"),(0,o.jsx)("br",{}),(0,o.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),c("desktop.addModelsFromBottom")]})]})]}):null})}),ek&&(0,o.jsx)("div",{...eI.separatorProps,className:"workspace-panel-splitter right-panel-splitter"}),(0,o.jsxs)("div",{ref:eI.panelRef,className:`right-panel-container${ek?" right-panel-open":" right-panel-closed"}${eI.isResizing?" panel-is-resizing":""}`,style:{display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,o.jsx)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:36},children:(0,o.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,o.jsx)(nK,{tabs:eg,activeTabId:ef??"",onSelectTab:ex,onCloseTab:eX})})}),(0,o.jsx)("div",{style:{flex:1,overflow:"hidden"},children:e9?.filePath?(0,o.jsx)(n_,{filePath:e9.filePath,cwd:eN??void 0,sourceSessionId:e9.sourceSessionId,initialDisplayMode:e9.initialDisplayMode,onOpenFile:e=>eQ(e,q(e),e9.sourceSessionId),onAtMention:ez,onMentionLines:eE}):(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]}),E&&e3&&(0,o.jsx)(s8,{cwd:e3,busy:N,error:L,onCancelAction:()=>{N||P(!1)},onConfirmAction:()=>void e7()}),j&&(0,o.jsx)(s0,{initialTab:C,cwd:te,sessionId:u?.id??null,onCloseAction:()=>{S(!1),R(e=>e+1)},onModelsSavedAction:()=>R(e=>e+1),onSessionReloadedAction:()=>v(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,58933)),Promise.resolve().then(r.bind(r,39247))}},e=>{e.O(0,[7330,8112,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);
|