ompgui 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +6 -5
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +13 -3
- package/.next/required-server-files.js +3 -3
- package/.next/required-server-files.json +3 -3
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +2 -2
- package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -4
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/events/route.js +2 -2
- package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/[name]/route.js +1 -1
- package/.next/server/app/api/agents/route.js +1 -1
- package/.next/server/app/api/agents/unpack/route.js +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +2 -2
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/omp-settings/route.js +1 -1
- package/.next/server/app/api/omp-update/route.js +1 -1
- package/.next/server/app/api/omp-update/route.js.nft.json +1 -1
- package/.next/server/app/api/omp-version/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/projects/route.js +2 -2
- package/.next/server/app/api/providers/enable/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/archive/route.js +1 -0
- package/.next/server/app/api/sessions/archive/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/archive/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/import/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/usage/route.js +1 -1
- package/.next/server/app/api/web-auth/session/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/page.js +2 -19
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +6 -5
- package/.next/server/chunks/3798.js +3 -3
- package/.next/server/chunks/6209.js +4 -4
- package/.next/server/chunks/6465.js +1 -0
- package/.next/server/chunks/7567.js +1 -1
- package/.next/server/chunks/7834.js +3 -3
- package/.next/server/chunks/8170.js +1 -1
- package/.next/server/chunks/878.js +18 -0
- package/.next/server/chunks/933.js +1 -1
- package/.next/server/functions-config-manifest.json +2 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1388.f5882731d7cec303.js +17 -0
- package/.next/static/chunks/2201.cb2cd0567e7a9f8f.js +1 -0
- package/.next/static/chunks/3688.77dd9e68a61af45e.js +1 -0
- package/.next/static/chunks/4315-5b474b642e3c5ea7.js +1 -0
- package/.next/static/chunks/8920-c73b529c74b3a43d.js +1 -0
- package/.next/static/chunks/9182.754907be517f076c.js +1 -0
- package/.next/static/chunks/9448.a3d481d9e75112d4.js +2 -0
- package/.next/static/chunks/9668.b606b2dc0af7c335.js +1 -0
- package/.next/static/chunks/app/_global-error/page-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agents/[name]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agents/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/agents/unpack/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/home/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/models/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/omp-settings/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/omp-update/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/omp-version/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/projects/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/providers/enable/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/archive/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/subagents/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/archive/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/import/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/skills/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/usage/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/web-auth/session/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/app/page-e41b8209fd2ea767.js +59 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6522fcf9bacdbe27.js +1 -0
- package/.next/static/chunks/webpack-98ad23dbf3236237.js +1 -0
- package/.next/static/css/{fd6895a0365999bd.css → d8ca761d517bada8.css} +1 -1
- package/.next/static/zkZlxxV0Z5JxXBMa0gjAv/_buildManifest.js +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/2407.js +0 -1
- package/.next/static/2RFCzMViB3kmtz57FAIur/_buildManifest.js +0 -1
- package/.next/static/chunks/2201.6abfe81cfb579cec.js +0 -1
- package/.next/static/chunks/3451-3d65a6a41175e276.js +0 -1
- package/.next/static/chunks/4315-c1043ad8843c6724.js +0 -1
- package/.next/static/chunks/9182.b5a8480a8c9fd1ce.js +0 -1
- package/.next/static/chunks/9668.50f63e37c76796c5.js +0 -1
- package/.next/static/chunks/app/_global-error/page-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agent/running/events/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agents/[name]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agents/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/agents/unpack/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/home/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/model-roles/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/models/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/omp-settings/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/omp-update/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/omp-version/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/projects/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/providers/enable/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/archive/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/subagents/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/import/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/skills/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/usage/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/web-auth/session/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/app/page-996c13eb0fd7f2f5.js +0 -76
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3b7f9faeba219c0.js +0 -1
- package/.next/static/chunks/webpack-aa3ac8754f36a5a1.js +0 -1
- /package/.next/static/{2RFCzMViB3kmtz57FAIur → zkZlxxV0Z5JxXBMa0gjAv}/_ssgManifest.js +0 -0
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5456:(e,t,r)=>{Promise.resolve().then(r.bind(r,98304))},6014:(e,t,r)=>{"use strict";r.d(t,{q:()=>s});var n=r(12115),a=r(7834);function s(){let[e,t]=(0,n.useState)(!1),r=(0,n.useRef)(null),s=(0,n.useRef)(!0),i=(0,n.useCallback)(e=>{(0,a.D)(e).then(()=>{s.current&&(t(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>t(!1),1500))}).catch(()=>{})},[]);return(0,n.useEffect)(()=>()=>{s.current=!1,r.current&&clearTimeout(r.current)},[]),{copied:e,copy:i}}},7834:(e,t,r)=>{"use strict";function n(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}r.d(t,{D:()=>n})},18136:(e,t,r)=>{"use strict";r.d(t,{K:()=>a});var n=r(4315);function a(e,t="errors.generic"){if("string"==typeof e)return e;let r=e?.code;if(r){let e=`errors.${r}`,t=(0,n.Tl)(e);if(t!==e)return t}if(e?.error)return e.error;let s=(0,n.Tl)(t);return s===t?"Request failed":s}},19870:(e,t,r)=>{"use strict";function n(e){try{return decodeURIComponent(e)}catch{return e}}function a(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function s(e){let t=a(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),s=t.startsWith("/")&&!r&&!n,i=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){i.length>0&&".."!==i[i.length-1]?i.pop():s||r||n||i.push(e);continue}i.push(e)}let o=i.join("/");return r?o:n?`//${o}`:s?`/${o}`:o}function i(e,t,r=t){let o,l,c,d,u;if(!e)return null;let p=e.split("#",1)[0].split("?",1)[0].trim();if(!p)return null;let h=null,m=null,f=n(p),g=f.startsWith("\\\\"),x=a(f),v=x.toLowerCase();if(v.startsWith("/api/")||v.startsWith("/_next/")||!g&&x.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(x)&&!v.startsWith("file:")&&!/^[a-zA-Z]:\//.test(x))return null;if(v.startsWith("file:")?m=(h=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=n(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}}(x))?"absolute":null:/^[a-zA-Z]:\//.test(x)||x.startsWith("/")?(h=x,m="absolute"):t&&!(x.startsWith("#")||x.startsWith("?"))&&(x.startsWith("./")||x.startsWith("../")||x.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(x))&&(h=`${a(t).replace(/\/+$/,"")}/${x}`,m="relative"),!h)return null;let y=s(h).replace(/:\d+(?::\d+)?$/,"");return"relative"===m&&r&&(o=s(y).replace(/\/+$/,""),l=s(r).replace(/\/+$/,""),d=(c=/^[a-zA-Z]:\//.test(o)||/^[a-zA-Z]:\//.test(l))?o.toLowerCase():o,!(d===(u=c?l.toLowerCase():l)||d.startsWith(`${u}/`)))?null:y}r.d(t,{V:()=>i})},28999:(e,t,r)=>{"use strict";function n(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function a(e){let t=n(e),r=t.startsWith("//"),a=t.split("/").filter(Boolean);return r&&a.length>0&&(a[0]=`//${a[0]}`),a.map(encodeURIComponent).join("/")}function s(e){let t=n(e).replace(/\/+$/,"");return t.split("/").pop()??t}function i(e){let t=n(e).replace(/\/+$/,""),r=t.lastIndexOf("/");return r<0?"":0===r?"/":2===r&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,r)}function o(e,t){if(!t)return e;let r=n(e),a=n(t).replace(/\/$/,""),s=/^[a-zA-Z]:\//.test(r)||r.startsWith("//")||/^[a-zA-Z]:\//.test(a)||a.startsWith("//"),i=s?r.toLowerCase():r,o=s?a.toLowerCase():a;return i.startsWith(o+"/")?r.slice(a.length+1):e}function l(e,t){return`${n(e).replace(/\/$/,"")}/${t}`}r.d(t,{A0:()=>n,HG:()=>a,WP:()=>s,e_:()=>l,gX:()=>i,qP:()=>o})},30808:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>b,HM:()=>k,L3:()=>w,Nt:()=>S,R6:()=>C,je:()=>I,lG:()=>y,m_:()=>j});var n=r(95155),a=r(53474),s=r(72222),i=r(45477),o=r(59567),l=r(11975),c=r(52579),d=r(3683),u=r(11412),p=r(80403),h=r(15383),m=r(96238),f=r(27443),g=r(98197),x=r(11827),v=r(977);function y({open:e,onOpenChange:t,children:r}){return(0,n.jsx)(a.D,{open:e,onOpenChange:t,children:r})}function b({children:e,className:t,style:r,ariaLabel:a}){return(0,n.jsxs)(s.Z,{children:[(0,n.jsx)(i.X,{style:{position:"fixed",inset:0,background:"var(--overlay-backdrop)",backdropFilter:"blur(2px)",zIndex:"var(--z-dialog-backdrop)"}}),(0,n.jsx)(o.h,{"aria-label":a,className:t,style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",animation:"dialog-pop-in var(--dur-med) var(--ease-out-warm) both",zIndex:"var(--z-dialog)",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",padding:"calc(var(--space-6) + var(--space-2))",maxWidth:"min(92vw, 560px)",maxHeight:"85dvh",overflow:"auto",...r},children:e})]})}function w({children:e,style:t}){return(0,n.jsx)(l.L,{className:"display-serif",style:{fontSize:"calc(var(--text-xl) + var(--space-3) / 2)",margin:"0 0 var(--space-5)",...t},children:e})}let k=c.H;function j({content:e,children:t,side:r="top"}){return(0,n.jsx)(d.B,{delay:350,closeDelay:0,children:(0,n.jsxs)(u.s,{children:[(0,n.jsx)(p.k,{render:t}),(0,n.jsx)(h.K,{children:(0,n.jsx)(m.o,{side:r,sideOffset:6,style:{zIndex:"var(--z-tooltip)"},children:(0,n.jsx)(f.o,{style:{background:"var(--bg-panel)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxShadow:"var(--shadow-pop)",padding:"var(--space-2) calc(var(--space-4) + var(--space-1) / 2)",fontSize:"var(--text-md)",lineHeight:1.4,maxWidth:260},children:e})})})]})})}function S({open:e,onOpenChange:t,defaultOpen:r,children:a}){return(0,n.jsx)(g.N,{open:e,onOpenChange:t,defaultOpen:r,children:a})}let C=x.R;function I({children:e,style:t}){return(0,n.jsx)(v.j,{style:t,children:e})}},31590:(e,t,r)=>{"use strict";r.d(t,{a:()=>l});var n=r(12115);let a="(max-width: 640px)";function s(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(a);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function i(){return!!window.matchMedia&&window.matchMedia(a).matches}function o(){return!1}function l(){return(0,n.useSyncExternalStore)(s,i,o)}},32383:(e,t,r)=>{"use strict";r.d(t,{$:()=>a});var n=r(18136);async function a(e,t){let r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await r.json().catch(()=>({}));if(!r.ok||a.error)throw Error(a.error||a.code?(0,n.K)(a):`HTTP ${r.status}`);return a.data}},35893:(e,t,r)=>{"use strict";r.d(t,{t:()=>s,v:()=>a});let n="omp-web:submit-during-run";function a(){try{let e=window.localStorage.getItem(n);if("steer"===e||"queue"===e)return e}catch{}return"steer"}function s(e){try{window.localStorage.setItem(n,e)}catch{}}},51087:(e,t,r)=>{"use strict";r.d(t,{oR:()=>k,tE:()=>T});var n=r(95155),a=r(66101),s=r(33208),i=r(23083),o=r(97787),l=r(48262),c=r(99777),d=r(32031),u=r(56395),p=r(40323),h=r(25818),m=r(64577),f=r(35484),g=r(14577),x=r(9005),v=r(12115),y=r(31590);let b=a.V();function w(e,t,r,n){return b.add({title:t,description:r,type:e,data:{kind:e,clamp:n?.clamp}})}let k={success:(e,t,r)=>w("success",e,t,r),error:(e,t,r)=>w("error",e,t,r),info:(e,t,r)=>w("info",e,t,r),close:e=>b.close(e)};function j({kind:e}){let t={size:13,strokeWidth:2,style:{flexShrink:0,marginTop:"var(--space-1)"}};return"success"===e?(0,n.jsx)(m.A,{...t,style:{...t.style,color:"var(--accent)"},"aria-hidden":!0}):"error"===e?(0,n.jsx)(f.A,{...t,style:{...t.style,color:"var(--accent-strong)"},"aria-hidden":!0}):(0,n.jsx)(g.A,{...t,style:{...t.style,color:"var(--text-muted)"},"aria-hidden":!0})}let S={fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5,marginTop:"var(--space-1)"};function C({children:e}){let[t,r]=(0,v.useState)(!1);return(0,n.jsx)("span",{onClick:()=>r(e=>!e),"aria-expanded":t,title:t?void 0:"Click to expand",style:{...S,cursor:t?"default":"pointer",whiteSpace:"pre-wrap",wordBreak:"break-word",...t?{}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},children:e})}function I(){let{toasts:e}=s.I(),t=(0,y.a)();return(0,n.jsx)(i.S,{children:(0,n.jsx)(o.U,{style:{position:"fixed",top:t?88:80,right:"var(--space-6)",zIndex:"var(--z-toast)",display:"flex",flexDirection:"column",gap:"var(--space-4)",width:"min(92vw, 360px)",pointerEvents:"none"},children:e.map(e=>(0,n.jsxs)(l.m,{toast:e,className:"toast-card",style:{pointerEvents:"auto",display:"flex",alignItems:"flex-start",gap:"var(--space-4)",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-pop)",padding:"calc(var(--space-5) - var(--space-1)) var(--space-5)"},children:[(0,n.jsx)(j,{kind:e.type}),(0,n.jsxs)(c.p,{style:{flex:1,minWidth:0},children:[(0,n.jsx)(d.S,{className:"display-serif",style:{fontSize:"var(--text-base)",lineHeight:1.4}}),e.data?.clamp?(0,n.jsx)(u.a,{render:(0,n.jsx)("div",{}),style:S,children:(0,n.jsx)(C,{children:e.description})}):(0,n.jsx)(u.a,{render:(0,n.jsx)("div",{}),style:S})]}),(0,n.jsx)(p.e,{"aria-label":"Dismiss",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"calc(var(--control-height-sm) - var(--space-4))",height:"calc(var(--control-height-sm) - var(--space-4))",padding:0,border:0,borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)(x.A,{size:12,strokeWidth:2,"aria-hidden":!0})})]},e.id))})})}function T({children:e}){return(0,n.jsxs)(h.t,{toastManager:b,timeout:4e3,limit:4,children:[e,(0,n.jsx)(I,{})]})}},68925:(e,t,r)=>{"use strict";r.d(t,{Ep:()=>h,T6:()=>p});var n=r(12115),a=r(5924),s=r(94764),i=r(63835),o=r(84678);let l={...s.j,attributes:{...s.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...s.j.strip||[],"iframe","object","style","form"]},c={remarkPlugins:[[o.A,{singleTilde:!1}]],rehypePlugins:[a.A,[i.A,l]]},d=null,u=null;function p(e){let t=e.includes("$")||e.includes("\\(")||e.includes("\\["),[,a]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(!t||d)return;let e=!1;return(!u&&(u=(async()=>{let[e,t]=await Promise.all([r.e(9365).then(r.bind(r,49365)).then(e=>e.default),Promise.all([r.e(7330),r.e(6202)]).then(r.bind(r,46202)).then(e=>e.default)]);return await Promise.all([r.e(5846),r.e(4559)]).then(r.t.bind(r,84559,23)),d={remarkPlugins:[...c.remarkPlugins,e],rehypePlugins:[...c.rehypePlugins,[t,{throwOnError:!1,strict:!1}]]}})().catch(e=>{throw u=null,e})),u).then(()=>{e||a(e=>e+1)}).catch(()=>{}),()=>{e=!0}},[t]),t&&d?d:c}function h(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),n=[],a=null,s=0,i=null,o=new Map;for(let e=0;e<r.length;e++){var l;let t=r[e];if(i){n.push(t),RegExp(`</${i}\\s*>`,"i").test(t)&&(i=null);continue}let c=t.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let e=c[1][0],r=c[1].length;a?e===a.marker&&r>=a.size&&(a=null):a={marker:e,size:r},s=0,n.push(t);continue}if(a){n.push(t);continue}let d=t.match(/<(code|pre|script|style)\b/i);if(d){let e=d[1].toLowerCase(),r=t.slice((d.index??0)+d[0].length);RegExp(`</${e}\\s*>`,"i").test(r)||(i=e),s=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){s=0,n.push(t);continue}if(s||t.includes("`")){s=function(e,t){let r=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let n=t+1;for(;"`"===e[n];)n++;let a=n-t;0===r?r=a:a===r&&(r=0),t=n}return r}(t,s),n.push(t);continue}let u=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(u){let e=u[2].trim();if(e){n.push(`${u[1]}$$`,`${u[1]}${e}`,`${u[1]}$$`);continue}}let p=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(p){let t=function(e,t){for(let r=t;r<e.length;r++){let t=e[r];if(/^ {0,3}\\\][ \t]*$/.test(t))return r;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(r,e+1);if(-1!==t){n.push(`${p[1]}$$`,...r.slice(e+1,t).map(e=>f(e,p[1])),`${p[1]}$$`),e=t;continue}}let h=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(h){let e=h[2].trim();if(e){n.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let g=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(g){let t=g[1],a=g[2].trimEnd();if(a&&!a.includes("$$")){let s=m(r,e+1,t,o);if(s){n.push(`${t}$$`,`${t}${a}`);for(let a=e+1;a<s.index;a++)n.push(f(r[a],t));s.content&&n.push(`${t}${s.content}`),n.push(`${t}$$`),e=s.index;continue}}}let x=t.match(/^([ \t]{0,3})\$\$\s*$/);if(x){let t=x[1],a=m(r,e+1,t,o);if(a&&(a.glued||""!==t)){n.push(`${t}$$`);for(let s=e+1;s<a.index;s++)n.push(f(r[s],t));a.content&&n.push(`${t}${a.content}`),n.push(`${t}$$`),e=a.index;continue}}n.push((l=t,/^\s{0,3}\[[^\]]+\]:/.test(l)||/]\s*\(/.test(l)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(l)||/\b(?:https?|file|mailto):/i.test(l)||/\b[A-Za-z]:\\/.test(l)?l:l.replace(/(?<!\\)\\\(([^`\r\n$]+?)(?<!\\)\\\)/g,(e,t)=>t.trim()?`$${t}$`:e)))}return n.join(t)}function m(e,t,r,n){let a=n.get(r);if(void 0!==a&&t<a)return null;for(let a=t;a<e.length;a++){var s,i,o,l;let t=e[a];if(s=t,""===(i=r)?/^ {0,3}\$\$\s*$/.test(s):s.startsWith(i)&&/^\$\$\s*$/.test(s.slice(i.length)))return{index:a,content:"",glued:!1};if(o=t,/^ {0,3}(`{3,}|~{3,})/.test(o)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(o)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(o)||/^ {0,3}>/.test(o)||/<(code|pre|script|style)\b/i.test(o)||(l=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(l)))return n.set(r,a),null;let c=function(e,t){if(!e.startsWith(t))return null;let r=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!r)return null;let n=r[1].trimEnd();return n&&!n.includes("$$")?n:null}(t,r);if(null!==c)return{index:a,content:c,glued:!0}}return n.set(r,e.length),null}function f(e,t){if(!t||!e||e.startsWith(" "))return e;let r=e.match(/^ */)?.[0].length??0;return r>=t.length?e:`${t.slice(r)}${e}`}},82490:(e,t,r)=>{"use strict";function n(e){let t,r=[],n=null,s=0,i=0,o=[],l=[],c=()=>({lineNo:null,text:"",type:"empty"}),d=()=>{if(!n){o=[],l=[];return}let e=Math.max(o.length,l.length);for(let t=0;t<e;t++){let e=o[t]?{lineNo:o[t].lineNo,text:o[t].text,type:"removed"}:c(),r=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"added"}:c();n.rows.push({type:"line",left:e,right:r})}o=[],l=[]};for(let c of e.split(/\r?\n/)){if(c.startsWith("--- ")){d(),t=a(c.slice(4));continue}if(c.startsWith("+++ ")){d(),n={oldPath:t,newPath:a(c.slice(4)),rows:[]},r.push(n);continue}let e=c.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){n||(n={rows:[]},r.push(n)),d(),s=Number(e[1]),i=Number(e[2]),n.rows.push({type:"hunk",text:c});continue}if(!n)continue;if(c.startsWith("\\ ")){d(),n.rows.push({type:"hunk",text:c});continue}let u=c[0],p=c.slice(1);" "===u?(d(),n.rows.push({type:"line",left:{lineNo:s++,text:p,type:"context"},right:{lineNo:i++,text:p,type:"context"}})):"-"===u?o.push({lineNo:s++,text:p}):"+"===u?l.push({lineNo:i++,text:p}):""!==c&&(d(),n.rows.push({type:"hunk",text:c}))}d();let u=r.filter(e=>e.rows.some(e=>"line"===e.type));return u.length>0?u:null}function a(e){return e.split(" ")[0].trim()}r.d(t,{y:()=>n})},84111:(e,t,r)=>{"use strict";function n(e,t){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:t?e.toLocaleString(t):String(e)}function a(e){return`${e.toFixed(1)}%`}r.d(t,{l:()=>a,w:()=>n})},94309:(e,t,r)=>{"use strict";r.d(t,{Q:()=>u});var n=r(95155),a=r(12115),s=r(96793),i=r(4315),o=r(6014);function l({code:e,isStreaming:t,defaultPreview:o=!1}){let{isDark:u}=(0,s.DP)(),{t:p}=(0,i.s9)(),[h,m]=(0,a.useState)(o),[f,g]=(0,a.useState)(null),[x,v]=(0,a.useState)(!1),[y,b]=(0,a.useState)(0),w=`${u?"dark":"light"}
|
|
2
|
-
${e}`,k=h&&!t;(0,a.useEffect)(()=>{if(!k)return;let t=!1;return g({key:w,status:"loading"}),(async()=>{let{default:n}=await Promise.all([r.e(988),r.e(9425),r.e(3308)]).then(r.bind(r,43328));if(n.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:u?"dark":"default"}),!await n.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let a="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,s=await n.render(a,e);t||g({key:w,status:"ready",svg:s.svg})})().catch(()=>{t||g({key:w,status:"error"})}),()=>{t=!0}},[e,w,u,k,y]);let j=(0,n.jsx)("button",{type:"button",onClick:()=>m(e=>!e),disabled:t,title:p(t?"mermaidBlock.previewAfterStreaming":k?"mermaidBlock.showSourceTitle":"mermaidBlock.previewTitle"),className:["markdown-code-action",k?"is-active":""].filter(Boolean).join(" "),children:p(k?"mermaidBlock.source":"mermaidBlock.preview")});if(!k)return(0,n.jsx)(d,{code:e,lang:"mermaid",headerAction:j,isStreaming:t});let S=f?.key===w&&"error"===f.status?(0,n.jsxs)("div",{className:"mermaid-block mermaid-block-error",children:[(0,n.jsx)("span",{children:p("mermaidBlock.invalidDiagram")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>b(e=>e+1),title:p("mermaidBlock.retry"),children:p("mermaidBlock.retry")})]}):f?.key!==w||"ready"!==f.status?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading",role:"status",children:p("mermaidBlock.rendering")}):(0,n.jsxs)(n.Fragment,{children:[!x&&(0,n.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:p("mermaidBlock.openViewer"),"aria-label":p("mermaidBlock.openViewer"),onClick:()=>v(!0),dangerouslySetInnerHTML:{__html:f.svg}}),x&&(0,n.jsx)(c,{svg:f.svg,onClose:()=>v(!1)})]});return(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),j]}),S]})}function c({svg:e,onClose:t}){let r=(0,a.useRef)(null),[s,o]=(0,a.useState)(1),{t:l}=(0,i.s9)();return(0,a.useEffect)(()=>{let e=r.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,n.jsx)("dialog",{ref:r,className:"mermaid-zoom-dialog","aria-label":l("mermaidBlock.viewerLabel"),onCancel:e=>{e.preventDefault(),t()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t())},children:(0,n.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[(0,n.jsx)("span",{className:"mermaid-zoom-title",children:l("mermaidBlock.diagramTitle")}),(0,n.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.max(.5,e-.25)),disabled:s<=.5,title:l("mermaidBlock.zoomOut"),"aria-label":l("mermaidBlock.zoomOut"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M5 12h14"})})}),(0,n.jsxs)("span",{className:"mermaid-zoom-value",children:[Math.round(100*s),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.min(3,e+.25)),disabled:s>=3,title:l("mermaidBlock.zoomIn"),"aria-label":l("mermaidBlock.zoomIn"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:()=>o(1),title:l("mermaidBlock.fitToWidth"),"aria-label":l("mermaidBlock.fitToWidth"),children:(0,n.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,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:t,title:l("mermaidBlock.close"),"aria-label":l("mermaidBlock.close"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,n.jsx)("div",{className:"mermaid-zoom-viewport",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,n.jsx)("div",{className:"mermaid-zoom-canvas",style:{transform:`scale(${s})`,transformOrigin:"top left"},dangerouslySetInnerHTML:{__html:e}})})]})})}let d=(0,a.memo)(function({code:e,lang:t,headerAction:s,isStreaming:l}){let{t:c}=(0,i.s9)(),{copied:d,copy:u}=(0,o.q)(),[p,h]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(l||p)return;let e=!1;return Promise.all([r.e(4854),r.e(484)]).then(r.bind(r,30484)).then(({SyntaxHighlightedCode:t})=>{e||h(()=>t)}),()=>{e=!0}},[p,l]),(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:t||"text"}),(0,n.jsxs)("div",{className:"markdown-code-actions",children:[s,(0,n.jsx)("button",{onClick:()=>u(e),className:d?"markdown-code-action is-copied":"markdown-code-action",children:c(d?"codeBlock.copied":"codeBlock.copy")})]})]}),l||!p?(0,n.jsx)("pre",{style:{margin:0,padding:"var(--code-padding-block) var(--code-padding-inline)",fontSize:"var(--code-font-size)",lineHeight:"var(--code-line-height)",overflowX:"auto",backgroundColor:"var(--code-bg)"},children:(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:e})}):(0,n.jsx)(p,{code:e,lang:t})]})});function u(e){return function({className:t,children:r,...a}){let s=t?.replace("language-","").toLowerCase()??"",i=String(r);return t?.includes("language-")||i.includes("\n")?"mermaid"===s?(0,n.jsx)(l,{code:i.replace(/\n$/,""),isStreaming:e.isStreaming,defaultPreview:e.defaultPreview}):(0,n.jsx)(d,{code:i.replace(/\n$/,""),lang:s,isStreaming:e.isStreaming}):(0,n.jsx)("code",{className:e.inlineClassName??t,...a,children:r})}}},96793:(e,t,r)=>{"use strict";r.d(t,{DP:()=>h});var n=r(12115);let a="ompgui-theme",s="ompgui-palette",i=new Set;function o(e){return i.add(e),()=>i.delete(e)}function l(){try{let e=localStorage.getItem(a)||localStorage.getItem("omp-theme");return"light"===e||"dark"===e||"system"===e?e:"system"}catch{return"system"}}function c(){try{var e;return e=localStorage.getItem(s),"omp"===e?"omp":"warm"}catch{return"warm"}}function d(e,t=!1){return"system"===e?t?"dark":"light":e}function u(){return"system"}function p(){return"warm"}function h(){let e=(0,n.useSyncExternalStore)(o,l,u),t=(0,n.useSyncExternalStore)(o,c,p),[r,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{h(!0)},[]);let m=d(e,r&&window.matchMedia("(prefers-color-scheme: dark)").matches);(0,n.useEffect)(()=>{document.documentElement.dataset.palette=t},[t]),(0,n.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{document.documentElement.classList.toggle("dark",t.matches),i.forEach(e=>e())};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]);let f=(0,n.useCallback)((e,t)=>{let r=()=>(function(e){let t=d(e,window.matchMedia?.("(prefers-color-scheme: dark)").matches);document.documentElement.classList.toggle("dark","dark"===t);try{localStorage.setItem(a,e)}catch{}i.forEach(e=>e())})(e),n=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||n)return void r();let s=t?.x??window.innerWidth/2,o=t?.y??window.innerHeight/2,l=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(o,window.innerHeight-o)),c=document.startViewTransition(r);c.ready.then(()=>{let e=getComputedStyle(document.documentElement);document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${o}px)`,`circle(${l}px at ${s}px ${o}px)`]},{duration:function(e){let t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();if(t.endsWith("ms")){let e=Number.parseFloat(t);return Number.isFinite(e)?e:450}if(t.endsWith("s")){let e=Number.parseFloat(t);return Number.isFinite(e)?1e3*e:450}return 450}("--dur-theme"),easing:e.getPropertyValue("--ease-out-warm").trim()||"ease-out",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{}),c.finished?.catch(()=>{})},[]),g=(0,n.useCallback)(t=>f("light"===e?"dark":"dark"===e?"system":"light",t),[e,f]);return{theme:m,preference:e,palette:t,isDark:"dark"===m,setTheme:f,setPalette:(0,n.useCallback)(e=>(function(e){document.documentElement.dataset.palette=e;try{localStorage.setItem(s,e)}catch{}i.forEach(e=>e())})(e),[]),toggleTheme:g}}},98304:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>aB});var n=r(95155),a=r(12115),s=r(37206),i=r(73321);let o=null;var l=r(47650),c=r(4315),d=r(18136);let u=[];function p({onClose:e,active:t=!0}){let r=(0,a.useRef)(null),n=(0,a.useRef)(e);return n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=r.current;if(!e)return;let a=document.activeElement instanceof HTMLElement?document.activeElement:null;u.push(e),e.contains(document.activeElement)||e.focus();let s=t=>{if(u[u.length-1]!==e)return;if("Escape"===t.key){if(t.isComposing||229===t.keyCode)return;t.preventDefault(),n.current();return}if("Tab"!==t.key)return;let r=Array.from(e.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0||e===document.activeElement);if(0===r.length){t.preventDefault(),e.focus();return}let a=document.activeElement,s=a instanceof Node&&e.contains(a);t.shiftKey?s&&a!==r[0]&&a!==e||(t.preventDefault(),r[r.length-1].focus()):s&&a!==r[r.length-1]||(t.preventDefault(),r[0].focus())};return document.addEventListener("keydown",s,!0),()=>{document.removeEventListener("keydown",s,!0);let t=u.indexOf(e);-1!==t&&u.splice(t,1),a&&a.isConnected&&a.focus()}},[t]),r}async function h(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),n=await r.json();if(!r.ok||n.error)throw Error((0,d.K)({...n,error:n.error??`HTTP ${r.status}`}));return n}function m(){return(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function f(){return(0,n.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,n.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,n.jsx)("path",{d:"M2 9h12"}),(0,n.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function g({onCancel:e,onSelect:t,busy:r=!1,error:s}){let{t:i}=(0,c.s9)(),[o,d]=(0,a.useState)(null),[u,x]=(0,a.useState)(""),[v,y]=(0,a.useState)(null),[b,w]=(0,a.useState)(""),[k,j]=(0,a.useState)([]),[S,C]=(0,a.useState)(null),[I,T]=(0,a.useState)(null),[E,R]=(0,a.useState)(!0),M=p({onClose:()=>{r||e()},active:null!==o}),W=(0,a.useCallback)(async e=>{R(!0),T(null);try{let t=await h(e),r=t.path??e??"/";x(r),y(t.parentPath??null),w(r),j(t.directories??[]),C(t.drives??null)}catch(e){T(e instanceof Error?e.message:String(e))}finally{R(!1)}},[]);(0,a.useEffect)(()=>{d(document.body),W()},[W]);let $=b.trim()!==u,z=!!u&&!$&&!r,N=!!v||/^[a-zA-Z]:[\\/]?$/.test(u);return o?(0,l.createPortal)((0,n.jsx)("div",{className:"directory-picker-backdrop animate-fade-in",onClick:t=>{t.target!==t.currentTarget||r||e()},style:{position:"fixed",inset:0,zIndex:"var(--z-directory-picker)",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel animate-scale-in",ref:M,role:"dialog","aria-modal":"true","aria-label":i("directoryPicker.selectDirectory"),tabIndex:-1,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:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:i("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:e,disabled:r,title:i("directoryPicker.close"),"aria-label":i("directoryPicker.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,transition:"color var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:"\xd7"})]}),(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=b.trim();t&&W(t)},style:{display:"flex",alignItems:"center",gap:"var(--space-4)",flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void W(v??void 0),disabled:E||!N,title:i("directoryPicker.goToParent"),"aria-label":i("directoryPicker.goToParent"),style:{width:"var(--control-height-lg)",height:"var(--control-height-lg)",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:N?"pointer":"default",opacity:N?1:.45,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{N&&!E&&(e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.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,n.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,n.jsx)("label",{htmlFor:"directory-path",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:i("directoryPicker.directoryPath")}),(0,n.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:b,"aria-label":i("directoryPicker.pathPlaceholder")||"Directory path",placeholder:i("directoryPicker.pathPlaceholder"),autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:e=>{w(e.target.value),T(null)},style:{minWidth:0,flex:1,height:"var(--control-height-lg)",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",transition:"border-color var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:E||!b.trim(),title:i("directoryPicker.goToDirectory"),style:{minWidth:58,height:"var(--control-height-lg)",padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:E||!b.trim()?"default":"pointer",opacity:E||!b.trim()?.6:1,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{!E&&b.trim()&&(e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},children:i("directoryPicker.go")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"var(--space-4) 10px"},children:[E?(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)",padding:"var(--space-4)"},"aria-busy":"true","aria-label":i("directoryPicker.loadingDirectories"),children:Array.from({length:7}).map((e,t)=>(0,n.jsx)("div",{className:"skeleton",style:{height:22,width:`${55+37*t%40}%`}},t))}):null!==S?S.length>0?S.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void W(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px var(--space-4)",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:[(0,n.jsx)(f,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:i("directoryPicker.noDrives")}):k.length>0?k.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void W(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px var(--space-4)",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},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,n.jsx)(m,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:i("directoryPicker.noSubdirectories")}),(I||s)&&(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--status-error)",fontSize:"var(--text-sm)"},children:I??s})]}),(0,n.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,n.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:"var(--text-base)"},children:i("directoryPicker.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(u),disabled:!z,title:i($?"directoryPicker.openPathBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--on-accent)",fontSize:"var(--text-base)",fontWeight:600,opacity:z?1:.6,cursor:z?"pointer":"default"},children:i(r?"directoryPicker.checking":"directoryPicker.selectThisFolder")})]})]})}),o):null}var x=r(9005),v=r(76721),y=r(95660),b=r(14225),w=r(92571),k=r(83254),j=r(50825),S=r(68562),C=r(64577),I=r(79530),T=r(11012),E=r(35484);let R="var(--text-dim)";function M({size:e=14,open:t=!1}){return t?(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:R}),(0,n.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:R,strokeWidth:"1",fill:R,fillOpacity:"0.12"})]}):(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,n.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:R,strokeWidth:"1",fill:R,fillOpacity:"0.1"})})}function W({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:R,strokeWidth:"1",fill:R,fillOpacity:"0.08"}),(0,n.jsx)("path",{d:"M10 2v3h3",stroke:R,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function $({label:e,size:t=14}){let r=t/14;return(0,n.jsxs)("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*r,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:R,letterSpacing:"0",children:e})]})}function z({size:e=14}){return(0,n.jsx)($,{label:"TS",size:e})}function N({size:e=14}){return(0,n.jsx)($,{label:"TSX",size:e})}function A({size:e=14}){return(0,n.jsx)($,{label:"JS",size:e})}function L({size:e=14}){return(0,n.jsx)($,{label:"JSX",size:e})}function F({size:e=14}){return(0,n.jsx)($,{label:"PY",size:e})}function D({size:e=14}){return(0,n.jsx)($,{label:"{}",size:e})}function P({size:e=14}){return(0,n.jsx)($,{label:"CSS",size:e})}function B({size:e=14}){return(0,n.jsx)($,{label:"SC",size:e})}function O({size:e=14}){return(0,n.jsx)($,{label:"HTM",size:e})}function _({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function H({size:e=14}){return(0,n.jsx)($,{label:"YML",size:e})}function U({size:e=14}){return(0,n.jsx)($,{label:"TOM",size:e})}function q({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:R,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M7.5 10.5h2.5",stroke:R,strokeWidth:"0.95",strokeLinecap:"round"})]})}function V({size:e=14}){return(0,n.jsx)($,{label:"RS",size:e})}function K({size:e=14}){return(0,n.jsx)($,{label:"GO",size:e})}function Z({size:e=14}){return(0,n.jsx)($,{label:"SQL",size:e})}function J({size:e=14}){return(0,n.jsx)($,{label:"GQL",size:e})}function Y({size:e=14}){return(0,n.jsx)($,{label:"TF",size:e})}function G({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:R,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:R,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:R,strokeWidth:"0.8"})]})}function X({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:R,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:R,strokeWidth:"0.9",strokeLinecap:"round"})]})}function Q({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("path",{d:"M5 7.5V9",stroke:R,strokeWidth:"0.85",strokeLinecap:"round"}),(0,n.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:R,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function ee({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:R,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function et({size:e=14}){return(0,n.jsx)($,{label:"DOC",size:e})}function er({size:e=14}){return(0,n.jsx)($,{label:"PDF",size:e})}function en({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:R,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:R,strokeWidth:"0.8",strokeLinecap:"round"})]})}function ea(e,t=14){let r=e.toLowerCase(),a=r.split(".").pop()??"";if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(G,{size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(X,{size:t});if(".gitignore"===r||".gitattributes"===r||".gitmodules"===r)return(0,n.jsx)(Q,{size:t});if("package-lock.json"===r||"yarn.lock"===r||"bun.lock"===r||"pnpm-lock.yaml"===r||"cargo.lock"===r)return(0,n.jsx)(ee,{size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(r))return(0,n.jsx)(en,{size:t});switch(a){case"ts":return(0,n.jsx)(z,{size:t});case"tsx":return(0,n.jsx)(N,{size:t});case"js":case"mjs":case"cjs":return(0,n.jsx)(A,{size:t});case"jsx":return(0,n.jsx)(L,{size:t});case"py":return(0,n.jsx)(F,{size:t});case"json":case"jsonl":return(0,n.jsx)(D,{size:t});case"css":case"less":return(0,n.jsx)(P,{size:t});case"scss":return(0,n.jsx)(B,{size:t});case"html":case"htm":return(0,n.jsx)(O,{size:t});case"md":case"mdx":return(0,n.jsx)(_,{size:t});case"yaml":case"yml":return(0,n.jsx)(H,{size:t});case"toml":return(0,n.jsx)(U,{size:t});case"sh":case"bash":case"zsh":case"fish":return(0,n.jsx)(q,{size:t});case"rs":return(0,n.jsx)(V,{size:t});case"go":return(0,n.jsx)(K,{size:t});case"sql":return(0,n.jsx)(Z,{size:t});case"graphql":case"gql":return(0,n.jsx)(J,{size:t});case"tf":case"hcl":return(0,n.jsx)(Y,{size:t});case"docx":return(0,n.jsx)(et,{size:t});case"pdf":return(0,n.jsx)(er,{size:t});case"lock":return(0,n.jsx)(ee,{size:t});default:return(0,n.jsx)(W,{size:t})}}var es=r(30808),ei=r(28999);async function eo(e){let t=(0,ei.HG)(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=(0,c.Tl)("fileExplorer.loadFailed",{status: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:(0,ei.e_)(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}async function el(e){let t=new URLSearchParams({cwd:e}),r=await fetch(`/api/git/status?${t.toString()}`);if(!r.ok)throw Error((0,c.Tl)("fileExplorer.gitStatusFailed",{status:r.status}));return r.json()}let ec={modified:"fileExplorer.gitModified",added:"fileExplorer.gitAdded",deleted:"fileExplorer.gitDeleted",renamed:"fileExplorer.gitRenamed",untracked:"fileExplorer.gitUntracked",conflict:"fileExplorer.gitConflict"},ed={modified:"var(--status-modified)",added:"var(--status-success)",deleted:"var(--status-error)",renamed:"var(--status-renamed)",untracked:"var(--status-success)",conflict:"var(--status-error)"};function eu({onClick:e,title:t}){return(0,n.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:"var(--radius-control)",background:"none",color:"var(--text-dim)",cursor:"pointer",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},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,n.jsx)(x.A,{size:13,strokeWidth:2.2,"aria-hidden":"true"})})}function ep({node:e,depth:t,cwd:r,onOpenFile:s,onAtMention:i,expandedPaths:o,onToggleExpanded:l,refreshToken:d,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h}){let{t:m}=(0,c.s9)(),f=o.has(e.fullPath),g=u.has(e.fullPath),x=(0,ei.A0)(e.fullPath),S=p.get(x),C=e.isDir&&(void 0!==S||h.has(x)),[I,T]=(0,a.useState)(e.children??[]),[E,R]=(0,a.useState)(e.loaded??!1),[M,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),[N,A]=(0,a.useState)(!1),L=(0,a.useCallback)(async(t=!1)=>{if(!E||t){W(!0);try{let t=await eo(e.fullPath);T(t),R(!0)}catch{}finally{W(!1)}}},[E,e.fullPath]);(0,a.useEffect)(()=>{f?E&&L(!0):R(!1)},[d]);let F=(0,a.useCallback)(()=>{if(e.isDir){let t=!f;l(e.fullPath,t),t&&!E&&L()}else s(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,E,f,L,s,l]),D=(0,a.useCallback)(t=>{if(t.target===t.currentTarget){if("Enter"===t.key||" "===t.key)t.preventDefault(),F();else if("ArrowRight"===t.key){if(e.isDir)if(t.preventDefault(),f){let e=t.currentTarget.parentElement?.querySelector('[role="group"] [role="treeitem"]');e?.focus()}else l(e.fullPath,!0),E||L()}else if("ArrowLeft"===t.key)if(e.isDir&&f)t.preventDefault(),l(e.fullPath,!1);else{let e=t.currentTarget.closest('[role="group"]')?.parentElement?.querySelector(':scope > [role="treeitem"]');e?.focus()}else if("ArrowDown"===t.key||"ArrowUp"===t.key){t.preventDefault();let e=t.currentTarget.closest('[role="tree"]');if(!e)return;let r=Array.from(e.querySelectorAll('[role="treeitem"]')).filter(e=>!e.closest("[inert]")),n=r.indexOf(t.currentTarget);if(-1!==n){let e="ArrowDown"===t.key?Math.min(r.length-1,n+1):Math.max(0,n-1);r[e]?.focus()}}}},[e.isDir,e.fullPath,f,E,L,l,F]),P=m("fileExplorer.insertPathIntoChat"),B=m("fileExplorer.downloadFile");return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:F,onKeyDown:D,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),onFocus:e=>{e.target===e.currentTarget&&A(!0)},onBlur:()=>A(!1),role:"treeitem",tabIndex:0,"aria-selected":g,"aria-expanded":e.isDir?f:void 0,"aria-label":e.isDir?e.name+" (folder"+(f?", expanded":", collapsed")+")":e.name+" (file)",style:{position:"relative",display:"flex",alignItems:"center",gap:"var(--space-2)",paddingLeft:8+14*t,paddingRight:"var(--space-4)",height:24,cursor:"pointer",background:$?"var(--bg-hover)":"transparent",borderRadius:"var(--radius-control)",userSelect:"none",boxShadow:N?"inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent)":"none",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},children:[e.isDir&&(0,n.jsx)(v.A,{size:10,strokeWidth:2,color:"var(--text-dim)",style:{flexShrink:0,transform:f?"rotate(90deg)":"none",transition:"transform var(--dur-med) var(--ease-out-warm)"},"aria-hidden":"true"}),!e.isDir&&(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",color:e.isDir?"var(--text-muted)":"var(--text-dim)"},children:e.isDir?f?(0,n.jsx)(y.A,{size:14,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(b.A,{size:14,strokeWidth:1.8,"aria-hidden":"true"}):ea(e.name,14)}),(0,n.jsx)("span",{style:{fontSize:"var(--text-md)",color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),g&&(0,n.jsx)("span",{title:m("fileExplorer.newlyUploaded"),"aria-label":m("fileExplorer.newlyUploaded"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--accent)"}}),!$&&!e.isDir&&S&&(0,n.jsx)("span",{title:m(ec[S.status]),"aria-label":m(ec[S.status]),style:{width:14,flexShrink:0,color:ed[S.status],fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:600,textAlign:"center"},children:S.code}),!$&&C&&(0,n.jsx)("span",{title:m("fileExplorer.containsChangedFiles"),"aria-label":m("fileExplorer.containsChangedFiles"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-modified)"}}),M&&(0,n.jsx)(w.A,{size:10,strokeWidth:2,color:"var(--text-dim)",style:{animation:"spin var(--dur-spin) linear infinite",flexShrink:0},"aria-hidden":"true"}),i&&$&&(0,n.jsx)(es.m_,{content:P,children:(0,n.jsxs)("button",{onClick:t=>{t.stopPropagation(),i((0,ei.qP)(e.fullPath,r),e.isDir)},"aria-label":P,style:{position:"absolute",right:e.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",padding:"0 var(--space-4)",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(k.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"}),m("fileExplorer.mention")]})}),$&&!e.isDir&&(0,n.jsx)(es.m_,{content:B,children:(0,n.jsx)("a",{href:`/api/files/${(0,ei.HG)(e.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),"aria-label":B,style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",textDecoration:"none",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)(j.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"})})})]}),e.isDir&&(0,n.jsx)("div",{role:"group",inert:!f||void 0,className:"accordion-flow "+(f?"is-open":""),children:(0,n.jsxs)("div",{className:"accordion-flow-inner",children:[I.map(e=>(0,n.jsx)(ep,{node:e,depth:t+1,cwd:r,onOpenFile:s,onAtMention:i,expandedPaths:o,onToggleExpanded:l,refreshToken:d,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h},e.fullPath)),0===I.length&&E&&(0,n.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:"var(--text-sm)",color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:m("fileExplorer.emptyDir")})]})})]})}let eh=(0,a.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:s,onAtMentions:i,onUploadBusyChange:o,onRefreshDone:l},d){let{t:u,tn:p}=(0,c.s9)(),[h,m]=(0,a.useState)([]),[f,g]=(0,a.useState)(!0),[x,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(new Set),[j,R]=(0,a.useState)(0),[M,W]=(0,a.useState)(new Set),[$,z]=(0,a.useState)([]),[N,A]=(0,a.useState)("idle"),[L,F]=(0,a.useState)(0),[D,P]=(0,a.useState)(null),[B,O]=(0,a.useState)(null),[_,H]=(0,a.useState)(null),U=(0,a.useRef)(null),q=(0,a.useRef)(null),V=`${r??0}:${j}`,K="idle"!==N,Z=(0,a.useMemo)(()=>new Map($.map(e=>[(0,ei.A0)(e.filePath),e])),[$]),J=(0,a.useMemo)(()=>{let t=new Set,r=(0,ei.A0)(e).replace(/\/$/,"");for(let e of $){let n=(0,ei.gX)((0,ei.A0)(e.filePath));for(;(n===r||n.startsWith(`${r}/`))&&(t.add(n),n!==r);){let e=(0,ei.gX)(n);if(e===n)break;n=e}}return t},[e,$]),Y=(0,a.useCallback)((e,t)=>{b(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),G=(0,a.useCallback)(t=>{let r=t.uploaded??[];O({uploaded:r,skipped:t.skipped??[],errors:t.errors??[]}),r.length>0&&(W(new Set(r.map(t=>(0,ei.e_)(e,t)))),R(e=>e+1))},[e]),X=(0,a.useCallback)(async(t,r)=>{H(null),P(null),F(0),A("uploading");try{let{status:n,data:a}=await new Promise((n,a)=>{let s=new FormData;t.forEach(e=>s.append("files",e,e.name));let i=new XMLHttpRequest;i.open("POST",`/api/files/${(0,ei.HG)(e)}?type=upload&conflict=${r}`),i.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&F(Math.round(e.loaded/e.total*100))},i.onerror=()=>a(Error((0,c.Tl)("fileExplorer.uploadNetworkError"))),i.onabort=()=>a(Error((0,c.Tl)("fileExplorer.uploadCancelled"))),i.onload=()=>{let e={};try{e=JSON.parse(i.responseText)}catch{i.responseText&&(e.error=i.responseText)}n({status:i.status,data:e})},i.send(s)});if(409===n&&a.conflicts?.length)return void H({files:t,conflicts:a.conflicts,nonReplaceable:a.nonReplaceable??[]});if(n<200||n>=300)throw Error(a.error??(0,c.Tl)("fileExplorer.uploadFailed",{status:n}));F(100),G(a)}catch(e){P(e instanceof Error?e.message:String(e))}finally{A("idle")}},[G,e]),Q=(0,a.useCallback)(async t=>{if(0!==t.length&&!K){O(null),W(new Set),H(null),P(null),F(0),A("checking");try{let r=await fetch(`/api/files/${(0,ei.HG)(e)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:t.map(e=>e.name)})}),n=await r.json().catch(()=>({}));if(!r.ok)throw Error(n.error??(0,c.Tl)("fileExplorer.uploadCheckFailed",{status:r.status}));if(n.conflicts?.length)return void H({files:t,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});await X(t,"error")}catch(e){P(e instanceof Error?e.message:String(e))}finally{A("idle")}}},[e,X,K]),ee=(0,a.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",Q(t)},[Q]);(0,a.useImperativeHandle)(d,()=>({openUploadPicker(){K||q.current?.click()}}),[K]),(0,a.useEffect)(()=>{o?.(K)},[o,K]),(0,a.useEffect)(()=>()=>o?.(!1),[o]);let et=(0,a.useRef)(l);et.current=l,(0,a.useEffect)(()=>{let t=U.current!==e;U.current=e,t&&(b(new Set),W(new Set),O(null),H(null),P(null)),g(t),v(null);let r=!1;return eo(e).then(e=>{r||m(e)}).catch(e=>{r||v(e instanceof Error?e.message:String(e))}).finally(()=>{r||g(!1),et.current?.()}),()=>{r=!0}},[e,r,j]),(0,a.useEffect)(()=>{let t=!1;return el(e).then(e=>{t||z(e.isGitRepository?e.files:[])}).catch(()=>{t||z([])}),()=>{t=!0}},[e,r,j]);let er=K||null!==_||null!==D||null!==B,en=(0,a.useCallback)(()=>{B&&0!==B.uploaded.length&&i?.(B.uploaded.map(t=>(0,ei.qP)((0,ei.e_)(e,t),e)))},[e,i,B]);return(0,n.jsxs)("div",{style:{minHeight:"100%"},children:[(0,n.jsx)("input",{ref:q,type:"file",multiple:!0,hidden:!0,onChange:ee}),er&&(0,n.jsxs)("div",{style:{padding:"var(--space-3) var(--space-4)",borderBottom:"1px solid var(--border)"},children:[K&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===N?u("fileExplorer.checkingFiles"):u("fileExplorer.uploadingPercent",{percent:L}),children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-4)",minHeight:14,color:"var(--text-muted)"},children:["checking"===N?(0,n.jsx)(w.A,{size:13,strokeWidth:2.2,style:{animation:"spin var(--dur-spin) linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),"uploading"===N&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)"},children:[L,"%"]})]}),"uploading"===N&&(0,n.jsx)("div",{style:{height:3,marginTop:"var(--space-2)",overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${L}%`,height:"100%",background:"var(--accent)",transition:"width var(--dur-fast) var(--ease-out-warm)"}})})]}),_&&(0,n.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, var(--status-warning) 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, var(--status-warning) 9%, var(--bg-panel))"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:p("fileExplorer.filesAlreadyExist",_.conflicts.length,{files:_.conflicts.join(", ")})}),_.nonReplaceable.length>0&&(0,n.jsx)("div",{style:{marginTop:3,fontSize:"var(--text-xs)",color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:u("fileExplorer.cannotReplace",{files:_.nonReplaceable.join(", ")})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void X(_.files,"overwrite"),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"1px solid var(--status-error)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.replace")}),(0,n.jsx)("button",{type:"button",onClick:()=>void X(_.files,"skip"),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.skipExisting")}),(0,n.jsx)("button",{type:"button",onClick:()=>H(null),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.cancel")})]})]}),D&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:"var(--space-3)",fontSize:"var(--text-sm)",lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:D}),(0,n.jsx)(eu,{onClick:()=>P(null),title:u("fileExplorer.dismissError")})]}),B&&(0,n.jsxs)("div",{"aria-live":"polite",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",minHeight:22,fontSize:"var(--text-sm)"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:"var(--space-4)"},children:[B.uploaded.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.uploadedCount",{count:B.uploaded.length}),"aria-label":u("fileExplorer.uploadedCount",{count:B.uploaded.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,n.jsx)(C.A,{size:13,strokeWidth:2.4,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.uploaded.length})]}),B.skipped.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.skippedCount",{count:B.skipped.length}),"aria-label":u("fileExplorer.skippedCount",{count:B.skipped.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,n.jsx)(I.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.skipped.length})]}),B.errors.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.failedCount",{count:B.errors.length}),"aria-label":u("fileExplorer.failedCount",{count:B.errors.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-error)"},children:[(0,n.jsx)(T.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.errors.length})]})]}),B.uploaded.length>0&&i&&(0,n.jsx)(es.m_,{content:u(1===B.uploaded.length?"fileExplorer.addUploadedFile":"fileExplorer.addAllUploadedFiles"),children:(0,n.jsxs)("button",{type:"button",onClick:en,"aria-label":u(1===B.uploaded.length?"fileExplorer.addUploadedFile":"fileExplorer.addAllUploadedFiles"),style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",flexShrink:0,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(k.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"}),u("fileExplorer.mention")]})}),(0,n.jsx)(eu,{onClick:()=>O(null),title:u("fileExplorer.dismissUploadResults")})]}),B.errors.map(e=>(0,n.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:"var(--space-2)",marginTop:3,minWidth:0,fontSize:"var(--text-xs)",color:"var(--status-error)"},children:[(0,n.jsx)(E.A,{size:11,strokeWidth:2,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),(0,n.jsxs)("div",{role:"tree","aria-label":u("sessionSidebar.explorer"),style:{padding:"var(--space-1) var(--space-2)"},children:[f?(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:u("fileExplorer.loadingFiles")}):x?(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--status-error)"},children:x}):h.map(r=>(0,n.jsx)(ep,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:s,expandedPaths:y,onToggleExpanded:Y,refreshToken:V,highlightedPaths:M,gitStatusByPath:Z,changedDirectoryPaths:J},r.fullPath)),!f&&!x&&0===h.length&&(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:u("fileExplorer.noFilesFound")})]})]})});var em=r(51087);function ef(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)");t(e.matches);let r=e=>t(e.matches);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)},[]),e}let eg="omp-web:last-open-by-project";function ex(){try{return window.localStorage}catch{return null}}function ev(e){try{let t=e.getItem(eg);if(!t)return{};let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return{};return Object.fromEntries(Object.entries(r).filter(([,e])=>"string"==typeof e&&e.length>0))}catch{return{}}}function ey(e){return e.projectKey??e.projectRoot??e.cwd}let eb=/^[a-zA-Z]:[\\/]/,ew=/^\/\//;function ek(e){let t=e.replace(/\\/g,"/"),r=eb.test(t)||ew.test(t);return t=t.replace(/\/{2,}/g,"/").replace(/\/+$/,""),r?t.toLowerCase():t}var ej=r(23637),eS=r(82749),eC=r(2125),eI=r(65377),eT=r(80846),eE=r(66763),eR=r(44236),eM=r(59680),eW=r(12363),e$=r(65738),ez=r(15480);function eN(e){let t=/^[a-zA-Z]:/.test(e)||e.includes("\\"),r=e.replace(/[\/]+$/,"").replace(/\\/g,"/");return t?r.toLowerCase():r}let eA="omp-web:unread-session-ids",eL="ompgui:expanded-projects",eF=new Set;function eD(e,t){return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function eP(e){let t=e.replace(/[\\/]+$/,""),r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return r>=0?t.slice(r+1):t}function eB({text:e}){return(0,n.jsx)("span",{className:"sidebar-path-label",children:(0,n.jsx)("span",{className:"sidebar-path-label-text",children:e})})}function eO({label:e,title:t,onClick:r,active:a=!1,disabled:s=!1,children:i}){return(0,n.jsx)("button",{type:"button","aria-label":e,title:t??e,onClick:r,disabled:s,"aria-pressed":a,className:"sidebar-icon-button",children:i})}function e_({anchor:e,open:t,onClose:r,placement:s="below",align:i="end",minWidth:o=136,className:c,style:d,children:u}){let p=(0,a.useRef)(null),[h,m]=(0,a.useState)(null),f=(0,a.useCallback)((e,t)=>{let r;if(!e||!t)return;let n=e.getBoundingClientRect(),a=t.offsetWidth,o=t.offsetHeight;"above"===s?(r=n.top-o-5)<8&&(r=Math.min(n.bottom+5,window.innerHeight-o-8)):(r=n.bottom+5)+o>window.innerHeight-8&&(r=n.top-o-5),r<8&&(r=8),m({top:r,left:"start"===i?Math.max(8,Math.min(n.left,window.innerWidth-a-8)):Math.max(8,Math.min(n.right-a,window.innerWidth-a-8))})},[s,i]);return((0,a.useLayoutEffect)(()=>{t&&f(e.current,p.current)},[t,f,e]),(0,a.useEffect)(()=>{if(!t)return;let r=()=>f(e.current,p.current);return window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[t,f,e]),(0,a.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{let e=p.current?.querySelector("button:not([disabled])");e?.focus()},0),a=t=>{let n=t.target;e.current?.contains(n)||p.current?.contains(n)||r()},s=t=>{if("Escape"===t.key)t.stopPropagation(),t.preventDefault(),r(),e.current?.focus();else if("ArrowDown"===t.key||"ArrowUp"===t.key){t.preventDefault();let e=Array.from(p.current?.querySelectorAll("button:not([disabled])")??[]);if(0===e.length)return;let r=e.indexOf(document.activeElement),n="ArrowDown"===t.key?(r+1)%e.length:(r-1+e.length)%e.length;e[n]?.focus()}};return document.addEventListener("mousedown",a),document.addEventListener("touchstart",a),document.addEventListener("keydown",s),()=>{clearTimeout(n),document.removeEventListener("mousedown",a),document.removeEventListener("touchstart",a),document.removeEventListener("keydown",s)}},[t,r,e]),!t||"u"<typeof document)?null:(0,l.createPortal)((0,n.jsx)("div",{ref:p,role:"menu",className:`sidebar-portal-menu${c?` ${c}`:""}`,style:{top:h?h.top:-9999,left:h?h.left:-9999,visibility:h?"visible":"hidden",minWidth:o,...d},children:u}),document.body)}function eH(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 n=[];for(let e of t.values()){let a=function(e){let n=r.get(e),a=new Set;for(;n&&!a.has(n);){if(a.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);a?t.get(a).children.push(e):n.push(e)}let a=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>a(e.children))};return a(n),n}let eU="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eq(){let[e,t]=(0,a.useState)(!1),[r,s]=(0,a.useState)(!1),i=(0,a.useRef)(null),o=(0,a.useRef)(null),l=ef(),c=function(e,t,r){let[n,s]=(0,a.useState)(e),i=(0,a.useRef)(null),o=(0,a.useRef)(0);return(0,a.useEffect)(()=>{if(!t||r)return void s(e);o.current=0;let n=4*e.length,a=()=>{o.current+=1;let t=Math.floor(o.current/n*e.length);s(e.split("").map((e,r)=>" "===e?" ":r<t?e:eU[Math.floor(Math.random()*eU.length)]).join("")),o.current<n?i.current=requestAnimationFrame(a):s(e)};return i.current=requestAnimationFrame(a),()=>{i.current&&cancelAnimationFrame(i.current)}},[e,t,r]),n}(e?"v0.5.0":"ompgui",r,l),d=(0,a.useCallback)(e=>{t(e),i.current&&clearTimeout(i.current),l||(s(!0),i.current=setTimeout(()=>s(!1),(e?6:8)*4*(1e3/60)+100))},[l]),u=(0,a.useCallback)(()=>{o.current&&clearTimeout(o.current);let t=!e;d(t),t&&(o.current=setTimeout(()=>d(!1),3e3))},[e,d]);return(0,a.useEffect)(()=>()=>{o.current&&clearTimeout(o.current),i.current&&clearTimeout(i.current)},[]),(0,n.jsx)("button",{onClick:u,className:"sidebar-brand",title:e?"Show ompgui name":"Show ompgui version",children:r||e?(0,n.jsx)("span",{className:"sidebar-brand-dynamic","data-version":e?"true":"false",children:c}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"sidebar-brand-accent",children:"omp"}),(0,n.jsx)("span",{className:"sidebar-brand-name",children:"gui"})]})})}function eV({selectedSessionId:e,optimisticSession:t,onSelectSession:r,onNewSession:s,initialSessionId:i,skipInitialProjectSelection:o,onInitialRestoreDone:l,refreshKey:u,onSessionDeleted:p,selectedCwd:h,onCwdChange:m,onOpenFile:f,explorerRefreshKey:x,onExplorerRefresh:y,explorerRefreshing:b,onExplorerRefreshDone:w,onAtMention:k,onAtMentions:j,onOpenSettings:I,onOpenUsage:T,updateAvailable:E}){let{t:R}=(0,c.s9)(),[M,W]=(0,a.useState)([]),[$,z]=(0,a.useState)(!0),[N,A]=(0,a.useState)(null),[L,F]=(0,a.useState)(null),[D,P]=(0,a.useState)(""),[B,O]=(0,a.useState)([]),[_,H]=(0,a.useState)(null),[U,q]=(0,a.useState)(!1),[V,K]=(0,a.useState)(!1),[Z,J]=(0,a.useState)(null),[Y,G]=(0,a.useState)(()=>(function(){try{let e=window.localStorage.getItem(eL)||window.localStorage.getItem("omp-web:expanded-projects");if(!e)return null;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e&&e.length>0));return null}catch{return null}})()),[X,Q]=(0,a.useState)(null),[ee,et]=(0,a.useState)({}),[er,en]=(0,a.useState)(!1),[ea,ei]=(0,a.useState)(!1),[eo,el]=(0,a.useState)(""),[ec,ed]=(0,a.useState)(null),[eu,ep]=(0,a.useState)(!1),[ef,eb]=(0,a.useState)(null),ew=(0,a.useRef)(null),eM=(0,a.useRef)(null),[eW,e$]=(0,a.useState)(!0),[ez,eB]=(0,a.useState)(0),[e_,eU]=(0,a.useState)(!1),[eY,eG]=(0,a.useState)(!1),[eX,eQ]=(0,a.useState)(()=>new Set),[e0,e1]=(0,a.useState)(()=>(function(){try{let e=window.localStorage.getItem(eA);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}})()),e2=(0,a.useRef)(new Set),[e5,e4]=(0,a.useState)(()=>Date.now()),[e3,e6]=(0,a.useState)(!1),[e8,e9]=(0,a.useState)(""),[e7,te]=(0,a.useState)(!1),tt=(0,a.useRef)(null),tr=(0,a.useRef)(!1),tn=(0,a.useRef)(null),ta=(0,a.useRef)(null),ts=(0,a.useRef)(null),ti=(0,a.useRef)(null),to=(0,a.useCallback)(async(e=!1)=>{ti.current?.abort();let t=new AbortController;ti.current=t;try{e&&z(!0);let r={};ts.current&&(r["If-None-Match"]=ts.current);let n=await fetch("/api/sessions",{headers:r,signal:t.signal});if(304===n.status)return;if(!n.ok)throw Error(`HTTP ${n.status}`);let a=n.headers.get("ETag");a&&(ts.current=a);let s=await n.json();W(s.sessions),tr.current||eQ(new Set(s.runningSessionIds??[]));let i=new Set(s.sessions.map(e=>e.id));e1(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>i.has(e)));return t.size===e.size?e:t}),A(null),e||(eG(!0),tn.current&&clearTimeout(tn.current),tn.current=setTimeout(()=>eG(!1),2e3))}catch(e){if(e?.name==="AbortError")return;A((0,c.Tl)("sessionSidebar.loadFailed",{detail:e instanceof Error?e.message:String(e)}))}finally{e&&z(!1)}},[]),tl=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=!tl.current;tl.current=!0,to(e)},[to,u]);let tc=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();O(t.projects??[]),H(null),th.current=!0}catch(e){H((0,c.Tl)("projects.loadFailed",{detail:e instanceof Error?e.message:String(e)}))}},[]);(0,a.useEffect)(()=>{tc()},[tc,u]),(0,a.useEffect)(()=>{let e=setInterval(()=>e4(Date.now()),6e4);return()=>clearInterval(e)},[]),(0,a.useEffect)(()=>{if(null!==Y)try{window.localStorage.setItem(eL,JSON.stringify([...Y]))}catch{}},[Y]),(0,a.useEffect)(()=>{try{0===e0.size?window.localStorage.removeItem(eA):window.localStorage.setItem(eA,JSON.stringify([...e0]))}catch{}},[e0]);let td=(0,a.useRef)(null),tu=(0,a.useCallback)(()=>{td.current||(td.current=setTimeout(()=>{td.current=null,to(!1)},300))},[to]);(0,a.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tr.current=!0,eQ(new Set(t.runningSessionIds??[])),t.refreshSessionList&&tu())}catch{}},()=>{td.current&&clearTimeout(td.current),e.close()}},[to,tu]),(0,a.useEffect)(()=>{let t=e2.current,r=[...t].filter(t=>!eX.has(t)&&t!==e),n=[...eX].filter(e=>!t.has(e));(r.length>0||n.length>0)&&e1(e=>{let t=new Set(e);return n.forEach(e=>t.delete(e)),r.forEach(e=>t.add(e)),t}),(r.length>0||n.length>0)&&to(!1),e2.current=eX},[eX,e,to]),(0,a.useEffect)(()=>{e&&e1(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,a.useEffect)(()=>{void 0!==x&&eB(e=>e+1)},[x]),(0,a.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&P(e.home)}).catch(()=>{})},[]);let tp=(0,a.useRef)(!1),th=(0,a.useRef)(!1),tm=(0,a.useCallback)(e=>{if(!e)return null;for(let t of Object.values(ee))if(t.worktrees.some(t=>eN(t.path)===eN(e)))return t.projectRoot;let t=B.find(t=>ek(t.path)===ek(e));if(t)return t.path;let r=ek(e),n=M.find(e=>ek(e.cwd)===r);return n?.projectRoot??e},[ee,M,B]),tf=(0,a.useCallback)(e=>{G(t=>{if(t?.has(e))return t;let r=new Set(t??[]);return r.add(e),r})},[]),tg=(0,a.useCallback)(e=>{G(t=>{if(!t?.has(e))return t;let r=new Set(t);return r.delete(e),r})},[]),tx=(0,a.useCallback)(e=>{G(t=>{let r=new Set(t??[]);return r.has(e)?r.delete(e):r.add(e),r})},[]),tv=(0,a.useCallback)(e=>{tD.current=!1,F(e),tf(e)},[tf]),ty=(0,a.useRef)(null);(0,a.useEffect)(()=>{ty.current!==L&&(ty.current=L,m?.(L,tm(L)))},[L,m,tm]);let tb=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(h&&h!==tb.current){tb.current=h,F(h);let e=tm(h);e&&tf(e)}},[h,tm,tf]);let[tw,tk]=(0,a.useState)(0);(0,a.useLayoutEffect)(()=>{if(!L)return;let e=!1;return fetch(`/api/worktrees?cwd=${encodeURIComponent(L)}`).then(e=>e.json()).then(t=>{if(e||t.error||!t.projectRoot)return;let r=t.projectRoot,n={forCwd:L,projectRoot:r,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]};et(e=>{let t=eN(r),a=e[t];if(a&&eN(a.projectRoot)!==t){let r={...e};return delete r[eN(a.projectRoot)],r[t]=n,r}return{...e,[t]:n}})}).catch(()=>{}),()=>{e=!0}},[L,tw,u]);let tj=(()=>{if(!t)return null;if(t.projectRoot)return t.projectRoot;if(t.projectKey)return t.projectKey;let e=t.cwd??"";if(!e)return null;let r=B.find(t=>ek(t.path)===ek(e));return r?r.path:e})(),tS=(0,a.useRef)(new Map),tC=(0,a.useMemo)(()=>{let e=M;if(t&&!e.some(e=>e.id===t.id)){let r=tj??t.cwd,n=r?ek(r):void 0;e=[...e,{...t,projectRoot:r??t.cwd,...n?{projectKey:n}:{}}]}let r=new Set(e.map(e=>e.id)),n=[];for(let e of eX){if(r.has(e))continue;let t=tS.current.get(e);t||(t=new Date().toISOString(),tS.current.set(e,t));let a=tj??L??"",s=a?ek(a):void 0;n.push({id:e,path:"",cwd:L??"",name:void 0,created:t,modified:t,messageCount:1,firstMessage:"",projectRoot:a,...s?{projectKey:s}:{}})}if(tS.current.size>n.length)for(let e of[...tS.current.keys()])(!eX.has(e)||r.has(e))&&tS.current.delete(e);return n.length?[...e,...n]:e},[M,t,tj,eX,L]),tI=(0,a.useMemo)(()=>{let e=B,t=!!tj&&e.some(e=>ek(e.path)===ek(tj));tj&&!t&&(e=[...e,{path:tj}]);let r=new Set(e.map(e=>ek(e.path)));for(let t of eX){if(M.some(e=>e.id===t))continue;let n=tj??L??"";n&&!r.has(ek(n))&&(e=[...e,{path:n}],r.add(ek(n)))}return e},[tj,B,eX,M,L]),tT=(0,a.useMemo)(()=>tm(L),[tm,L]),tE=!!(t||[...eX].some(e=>!M.some(t=>t.id===e))),tR=(0,a.useMemo)(()=>[...tI].sort((e,t)=>{let r=void 0!==e.addedAt,n=void 0!==t.addedAt;if(r!==n)return r?-1:1;if(r&&n){let r=t.addedAt.localeCompare(e.addedAt);if(0!==r)return r}return e.path.localeCompare(t.path)}),[tI]),tM=(0,a.useRef)(null),tW=(0,a.useMemo)(()=>{if(tE&&tM.current){let e=tM.current,t=new Set(e.map(e=>ek(e.path))),r=[...e];for(let e of tR)t.has(ek(e.path))||r.push(e);return r}return tM.current=tR,tR},[tR,tE]),t$=(0,a.useMemo)(()=>(function(e,t){let r=new Map,n=new Map;for(let t of e){let e=[];r.set(t.path,e),n.set(ek(t.path),e)}for(let e of t){let t=ey(e);if(!t)continue;let a=n.get(ek(e.projectKey??t))??r.get(t);a&&a.push(e)}return r})(tW,tC),[tW,tC]),tz=(0,a.useMemo)(()=>(function(e,t,r){let n=new Set(t),a=new Set(r),s=new Map;for(let t of e){let e=ey(t);if(!e)continue;let r=ek(t.projectKey??e),i=s.get(r)??{running:0,unread:0};n.has(t.id)&&(i.running+=1),a.has(t.id)&&(i.unread+=1),s.set(r,i)}return s})(tC,eX,e0),[tC,eX,e0]),tN=(0,a.useDeferredValue)(e8),tA=e3||e7||tN.trim().length>0,tL=(0,a.useMemo)(()=>{let e=tN.trim().toLowerCase(),t=[];for(let r of tW){let n=t$.get(r.path)??[];if(e7&&(n=n.filter(e=>eX.has(e.id))),e){let t=eP(r.path).toLowerCase();if(0===(n=n.filter(t=>(t.name??"").toLowerCase().includes(e)||t.firstMessage.toLowerCase().includes(e))).length&&!t.includes(e))continue}0===n.length&&(e7||e)||t.push({project:r,sessions:n})}return t},[tW,t$,e7,tN,eX]),tF=(0,a.useMemo)(()=>{let e=new Map;for(let{project:t,sessions:r}of tL)e.set(t.path,eH(r));return e},[tL]);(0,a.useEffect)(()=>{if(null===Y||!th.current)return;let e=new Set(tW.map(e=>e.path)),t=[...Y].filter(t=>!e.has(t));0!==t.length&&G(e=>{if(!e)return e;let r=new Set(e);return t.forEach(e=>r.delete(e)),r})},[Y,tW]);let tD=(0,a.useRef)(!1),tP=(0,a.useRef)(0),tB=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{tB.current&&(clearTimeout(tB.current),tB.current=null)},[]),(0,a.useEffect)(()=>{if(o)return;if(i&&!tp.current){if(0===M.length)return;let e=M.find(e=>e.id===i);if(e){tP.current=0,tp.current=!0,F(e.cwd),tf(ey(e)),r(e,!0);return}if(tP.current<8){tP.current+=1,tB.current&&(clearTimeout(tB.current),tB.current=null),tB.current=setTimeout(()=>{tB.current=null,to(!1)},1e3);return}tP.current=0,tp.current=!0,l?.()}if(null!==L&&!tD.current)return;let e=tW[0];e&&(F(e.path),tf(e.path),tD.current=0===M.length)},[M,L,i,o,r,l,tW,tf,to]);let tO=(0,a.useRef)(!1);(0,a.useEffect)(()=>{tO.current||tT&&(tO.current=!0,null===Y&&tf(tT))},[tT,Y,tf]);let t_=(0,a.useCallback)(async e=>{let t=(e??"").trim();if(t&&!V){K(!0),J(null);try{let e=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error||!r.project)return void J((0,d.K)({...r,error:r.error??`HTTP ${e.status}`}));await tc(),F(r.project.path),tf(r.project.path),q(!1)}catch(e){J(e instanceof Error?e.message:String(e))}finally{K(!1)}}},[V,tc,tf]),tH=(0,a.useCallback)(async e=>{if(!X){Q(e);try{let t=await fetch("/api/projects",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})}),r=await t.json().catch(()=>({}));if(!t.ok||!r.success)return void em.oR.error((0,d.K)({...r,error:r.error??`HTTP ${t.status}`}));if(null!==tT&&ek(tT)===ek(e)){let t=tW.find(t=>t.path!==e);F(t?t.path:null)}tg(e),await tc()}finally{Q(null)}}},[X,tT,tW,tg,tc]),tU=(0,a.useCallback)(async()=>{let e=eo.trim(),t=tT?ee[eN(tT)]:void 0;if(!e||eu||!t)return;let r=t.projectRoot;ep(!0),ed(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,branch:e})}),n=await t.json().catch(()=>({}));if(!t.ok||n.error||!n.path)return void ed((0,d.K)({...n,error:n.error??`HTTP ${t.status}`}));let a=n.path;ei(!1),el(""),en(!1),et(t=>{let n=eN(r),s=t[n];return s?{...t,[n]:{...s,forCwd:a,worktrees:[...s.worktrees,{path:a,branch:e,isMain:!1}]}}:t}),F(a),tk(e=>e+1)}catch(e){ed(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[eo,eu,tT,ee]),tq=(0,a.useCallback)(async(e,t)=>{let r=tT?ee[eN(tT)]:void 0;if(!r||eu)return;let n=r.projectRoot;ep(!0),ed(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,path:e,force:t})}),a=await r.json().catch(()=>({}));if(!r.ok){if(a.dirty&&!t)return void eb(e);ed((0,d.K)({...a,error:a.error??`HTTP ${r.status}`}));return}eb(null),null!==L&&ek(L)===ek(e)&&F(n),tk(e=>e+1)}catch(e){ed(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[tT,ee,eu,L]),tV=(0,a.useCallback)(()=>{en(!1),ei(!1),el(""),ed(null),eb(null)},[]),tK=(0,a.useCallback)(e=>{tD.current=!1,e.cwd&&F(e.cwd),tf(ey(e)),r(e)},[r,tf]),tZ=(0,a.useCallback)(()=>{if(!L)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)}`;s?.(e,L)},[L,s]),[tJ,tY]=(0,a.useState)(!1),tG=(0,a.useRef)(null),tX=(0,a.useCallback)(async e=>{if(e&&!tJ){tY(!0);try{let t=await e.text(),r=await fetch("/api/sessions/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,content:t})}),n=await r.json().catch(()=>({}));if(!r.ok||!n.success)return void em.oR.error(n.error??`HTTP ${r.status}`);em.oR.success(R("sessionSidebar.imported")),to(!1),tc()}catch(e){em.oR.error(e instanceof Error?e.message:String(e))}finally{tY(!1)}}},[tJ,to,tc,R]),tQ=Y??eF,t0=tT?ee[eN(tT)]:void 0,t1=(0,a.useCallback)(e=>{let t=ee[eN(e)];if(!t||!t.isGit||!t.isTopLevel)return null;let r=t.worktrees.find(e=>eN(e.path)===eN(L??""))??t.worktrees.find(e=>e.isMain);return r?r.branch??eD(r.path,D):null},[ee,L,D]),t2=!!(t0?.isGit&&t0.isTopLevel&&L&&null!==tT&&ek(tT)===ek(t0.projectRoot)),t5=(0,a.useCallback)(()=>{en(e=>!e)},[]),t4=(0,a.useCallback)(e=>{let t=M.find(t=>t.id===e);t&&function(e,t=ex()){if(t)try{let r=ev(t);if(!(e in r))return;delete r[e],0===Object.keys(r).length?t.removeItem(eg):t.setItem(eg,JSON.stringify(r))}catch{}}(ey(t)),p?.(e),to()},[M,p,to]);(0,a.useEffect)(()=>{let t=M.find(t=>t.id===e);t&&function(e,t,r=ex()){if(r)try{let n=ev(r);n[e]=t,r.setItem(eg,JSON.stringify(n))}catch{}}(ey(t),t.id)},[M,e]);let t3=t2&&t0?(0,n.jsx)(eJ,{worktreeState:t0,selectedCwd:L,homeDir:D,wtDropdownOpen:er,wtNewOpen:ea,setWtNewOpen:ei,wtNewBranch:eo,setWtNewBranch:el,wtError:ec,setWtError:ed,wtBusy:eu,wtConfirmRemove:ef,setWtConfirmRemove:eb,onSelectWorktree:e=>{F(e),en(!1),ed(null)},onCreateWorktree:tU,onRemoveWorktree:(e,t)=>void tq(e,t),anchorRef:ew,newInputRef:eM,onClose:tV}):null;return(0,n.jsxs)("div",{className:"sidebar-shell",children:[U&&(0,n.jsx)(g,{busy:V,error:Z,onCancel:()=>{q(!1),J(null)},onSelect:e=>void t_(e)}),(0,n.jsxs)("div",{className:"sidebar-header",children:[(0,n.jsxs)("div",{className:"sidebar-header-row",children:[(0,n.jsx)(eq,{}),(0,n.jsxs)("div",{className:"sidebar-header-actions",children:[(0,n.jsx)(es.m_,{content:R("sessionSidebar.importTitle"),side:"bottom",children:(0,n.jsx)(eO,{label:R("sessionSidebar.import"),onClick:()=>tG.current?.click(),disabled:tJ,children:(0,n.jsx)(ej.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})}),(0,n.jsx)(es.m_,{content:R("sessionSidebar.refresh"),side:"bottom",children:(0,n.jsx)(eO,{label:R("sessionSidebar.refresh"),active:eY,onClick:()=>{to(!1),tc()},children:eY?(0,n.jsx)(C.A,{size:14,strokeWidth:2.2,"aria-hidden":"true"}):(0,n.jsx)(eS.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})})]})]}),(0,n.jsx)("input",{ref:tG,type:"file",accept:".jsonl,.json,application/json,application/jsonl",className:"sidebar-import-input",onChange:e=>{let t=e.target.files?.[0]??null;e.target.value="",tX(t)}}),(0,n.jsxs)("button",{onClick:tZ,disabled:!L,className:"sidebar-new-session",title:L?R("sessionSidebar.newSessionIn",{cwd:L}):R("sessionSidebar.selectProjectFirst"),children:[(0,n.jsx)(eC.A,{size:15,strokeWidth:2.2,className:"sidebar-new-session-icon","aria-hidden":"true"}),(0,n.jsx)("span",{children:R("sessionSidebar.new")})]})]}),(0,n.jsxs)("div",{className:"sidebar-workspaces-header",children:[(0,n.jsx)("span",{className:"sidebar-section-label",children:R("projects.heading")}),(0,n.jsx)(eO,{label:R("sessionSidebar.search"),title:R("sessionSidebar.searchTitle"),active:e3,onClick:()=>{let e=!e3;e6(e),e?setTimeout(()=>tt.current?.focus(),0):e9("")},children:(0,n.jsx)(eI.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eO,{label:R("sessionSidebar.filterRunning"),title:R("sessionSidebar.filterRunningTitle"),active:e7,onClick:()=>te(e=>!e),children:(0,n.jsx)(eT.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eO,{label:R("projects.add"),title:R("projects.addTitle"),onClick:()=>{q(!0),J(null)},children:(0,n.jsx)(eC.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})})]}),e3&&(0,n.jsx)("div",{className:"sidebar-search-wrap",children:(0,n.jsx)("input",{ref:tt,value:e8,onChange:e=>e9(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e6(!1),e9(""))},placeholder:R("sessionSidebar.searchPlaceholder"),"aria-label":R("sessionSidebar.search"),className:"sidebar-search-input"})}),(0,n.jsxs)("div",{className:"sidebar-workspaces-list",style:{flex:eW&&(h||L)?"1 1 0":"1 1 auto"},children:[$&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-muted",children:R("sessionSidebar.loading")}),_&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-error",children:_}),N&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-error",children:N}),!$&&!_&&!N&&0===tW.length&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-muted sidebar-state-message-empty",children:R("projects.noProjects")}),!$&&!_&&!N&&tW.length>0&&0===tL.length&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-dim sidebar-state-message-no-matches",children:R("sessionSidebar.noMatches")}),tL.map(({project:t,sessions:r})=>{let a=tF.get(t.path)??eH(r),s=null!==tT&&ek(tT)===ek(t.path),i=t1(t.path);return(0,n.jsx)(eZ,{project:t,isActive:s,isExpanded:tQ.has(t.path),activity:tz.get(ek(t.path)),tree:a,hiddenCount:tA?0:Math.max(0,a.length-eK),selectedSessionId:e,runningSessionIds:eX,unreadSessionIds:e0,relativeTimeNow:e5,onActivate:tv,onToggleExpand:tx,onRemoveProject:tH,removeBusy:X===t.path,onSelectSession:tK,onRenamed:to,onSessionDeleted:t4,activeWorktreeSwitcher:s?t3:null,worktreeBranch:i,worktreeToggleRef:s&&i?ew:void 0,worktreeOpen:!!s&&er,onToggleWorktrees:s?t5:void 0,homeDir:D},t.path)})]}),(h||L)&&(0,n.jsxs)("div",{className:"sidebar-explorer",style:{flex:eW?"1 1 0":"0 0 auto"},children:[(0,n.jsxs)("div",{className:"sidebar-explorer-header",children:[(0,n.jsxs)("button",{onClick:()=>e$(e=>!e),className:"sidebar-explorer-toggle","aria-expanded":eW,children:[(0,n.jsx)(v.A,{size:12,strokeWidth:1.8,className:"sidebar-explorer-chevron","data-open":eW?"true":"false","aria-hidden":"true"}),R("sessionSidebar.explorer")]}),(0,n.jsx)("div",{className:"sidebar-explorer-actions",inert:!eW||void 0,"data-open":eW?"true":"false",children:(0,n.jsx)(es.m_,{content:R("sessionSidebar.uploadFilesTitle"),side:"top",children:(0,n.jsx)("button",{onClick:()=>ta.current?.openUploadPicker(),disabled:e_,title:R("sessionSidebar.uploadFilesTitle"),"aria-label":R("sessionSidebar.uploadFiles"),className:"sidebar-explorer-icon-button sidebar-explorer-upload",children:(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"})})})}),(0,n.jsx)(es.m_,{content:R("sessionSidebar.refreshExplorer"),side:"top",children:(0,n.jsx)("button",{"aria-label":R("sessionSidebar.refreshExplorer"),onClick:()=>{y?y():eB(e=>e+1)},title:R("sessionSidebar.refreshExplorer"),className:"sidebar-explorer-icon-button sidebar-explorer-refresh","data-refreshing":b?"true":"false",children:b?(0,n.jsx)(eS.A,{size:13,strokeWidth:2,"aria-hidden":"true",className:"icon-spin"}):(0,n.jsx)(eS.A,{size:13,strokeWidth:2,"aria-hidden":"true"})})})]}),(0,n.jsx)("div",{className:"accordion-flow sidebar-explorer-flow "+(eW?"is-open":""),inert:!eW||void 0,style:{flex:eW?"1 1 auto":"0 0 0px"},children:(0,n.jsx)("div",{className:"accordion-flow-inner sidebar-explorer-flow-inner",children:(0,n.jsx)(eh,{ref:ta,cwd:L??h,onOpenFile:f??(()=>{}),refreshKey:ez,onAtMention:k,onAtMentions:j,onUploadBusyChange:eU,onRefreshDone:w})})})]}),(0,n.jsxs)("div",{className:"sidebar-footer",children:[(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:I,title:R("settingsConfig.title"),"aria-label":R("settingsConfig.title"),children:[(0,n.jsxs)("span",{className:"sidebar-footer-icon",children:[(0,n.jsx)(eE.A,{size:14,strokeWidth:2,"aria-hidden":"true"}),E&&(0,n.jsx)("span",{"aria-label":"Update available",role:"status",className:"sidebar-update-dot"})]}),(0,n.jsx)("span",{className:"sidebar-footer-label",children:R("settingsConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,className:"sidebar-footer-chevron","aria-hidden":"true"})]}),(0,n.jsx)("span",{className:"sidebar-footer-divider","aria-hidden":"true"}),(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:T,title:R("usageConfig.title"),"aria-label":R("usageConfig.title"),children:[(0,n.jsx)("span",{className:"sidebar-footer-icon",children:(0,n.jsx)(eR.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"sidebar-footer-label",children:R("usageConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,className:"sidebar-footer-chevron","aria-hidden":"true"})]})]})]})}let eK=5;function eZ({project:e,isActive:t,isExpanded:r,activity:s,tree:i,hiddenCount:o,selectedSessionId:l,runningSessionIds:d,unreadSessionIds:u,relativeTimeNow:p,onActivate:h,onToggleExpand:m,onRemoveProject:f,removeBusy:g,onSelectSession:x,onRenamed:y,onSessionDeleted:w,activeWorktreeSwitcher:k,worktreeBranch:j,worktreeToggleRef:S,worktreeOpen:C,onToggleWorktrees:I}){let{t:T}=(0,c.s9)(),[E,R]=(0,a.useState)(!1),[M,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),[N,A]=(0,a.useState)(!1),L=(0,a.useRef)(null),F=eP(e.path),D=!!(s&&(s.running>0||s.unread>0)),P=o>0&&!$?i.slice(0,eK):i,B=E||M||N;return(0,n.jsxs)("section",{className:"sidebar-project","data-active":t?"true":"false",children:[(0,n.jsxs)("div",{className:"sidebar-project-header",onMouseEnter:()=>R(!0),onMouseLeave:()=>R(!1),onFocus:()=>W(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||W(!1)},onKeyDown:e=>{"Escape"===e.key&&N&&(e.stopPropagation(),A(!1))},children:[(0,n.jsxs)("button",{className:"sidebar-project-identity",onClick:()=>h(e.path),"aria-current":t?"true":void 0,title:e.path,"data-active":t?"true":"false",children:[(0,n.jsx)(b.A,{size:15,strokeWidth:1.8,className:"sidebar-project-folder-icon","aria-hidden":"true"}),(0,n.jsx)("span",{className:"sidebar-project-label",children:F})]}),j&&S&&(0,n.jsxs)("button",{type:"button",ref:S,onClick:I,"aria-expanded":C,"aria-haspopup":"menu",title:T("sessionSidebar.switchWorktreeTo",{path:j}),className:"sidebar-project-worktree-toggle","data-open":C?"true":"false",children:[(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-project-worktree-dot",children:"\xb7"}),(0,n.jsx)("span",{className:"sidebar-project-worktree-label",children:j})]}),(0,n.jsx)("div",{className:"sidebar-project-spacer"}),D&&(0,n.jsx)("span",{"aria-label":T("projects.activity",{running:s?.running??0,unread:s?.unread??0}),title:T("projects.activity",{running:s?.running??0,unread:s?.unread??0}),className:"sidebar-project-activity",role:"status","aria-live":"polite","data-running":(s?.running??0)>0?"true":"false",children:(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-project-activity-dot"})}),(0,n.jsxs)("div",{className:"sidebar-project-action-slot",style:{visibility:B?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:L,className:"sidebar-project-action",onClick:()=>A(e=>!e),disabled:g,"aria-label":T("commandPalette.actions"),title:T("commandPalette.actions"),"aria-expanded":N,"aria-haspopup":"menu","data-open":N?"true":"false",children:(0,n.jsx)(eM.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)(e_,{anchor:L,open:N,onClose:()=>A(!1),placement:"below",minWidth:136,children:(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item sidebar-menu-item-danger sidebar-project-remove-item",disabled:g,onClick:()=>{A(!1),f(e.path)},children:T("projects.remove",{name:F})})})]}),(0,n.jsx)("button",{className:"sidebar-project-toggle",onClick:()=>m(e.path),"aria-label":T(r?"projects.collapseProject":"projects.expandProject",{name:F}),"aria-expanded":r,title:T(r?"projects.collapseProjectTitle":"projects.expandProjectTitle",{path:e.path}),"data-expanded":r?"true":"false",children:(0,n.jsx)(v.A,{size:13,strokeWidth:1.8,className:"sidebar-project-toggle-icon","aria-hidden":"true"})})]}),t&&k,r&&(0,n.jsx)("div",{className:"sidebar-project-sessions",children:0===P.length?(0,n.jsx)("div",{className:"sidebar-project-empty",children:T("projects.emptyProject")}):(0,n.jsxs)(n.Fragment,{children:[P.map(e=>(0,n.jsx)(eY,{node:e,selectedSessionId:l,runningSessionIds:d,unreadSessionIds:u,relativeTimeNow:p,onSelectSession:x,onRenamed:y,onSessionDeleted:w,depth:0},e.session.id)),o>0&&(0,n.jsxs)("button",{onClick:()=>z(e=>!e),"aria-expanded":$,className:"sidebar-show-more",children:[(0,n.jsx)(eW.A,{size:11,strokeWidth:1.8,className:"sidebar-show-more-icon","data-expanded":$?"true":"false","aria-hidden":"true"}),$?T("projects.showLess"):T("projects.showMoreSessions",{count:o})]})]})})]})}function eJ({worktreeState:e,selectedCwd:t,homeDir:r,wtDropdownOpen:a,wtNewOpen:s,setWtNewOpen:i,wtNewBranch:o,setWtNewBranch:l,wtError:d,setWtError:u,wtBusy:p,wtConfirmRemove:h,setWtConfirmRemove:m,onSelectWorktree:f,onCreateWorktree:g,onRemoveWorktree:x,anchorRef:v,newInputRef:y,onClose:b}){let{t:w}=(0,c.s9)();return(0,n.jsxs)(e_,{anchor:v,open:a,onClose:b,placement:"below",align:"start",minWidth:240,className:"sidebar-worktree-menu",children:[(0,n.jsx)("div",{className:"sidebar-worktree-list",children:e.worktrees.map(a=>{let s=a.path===t||a.isMain&&!e.worktrees.some(e=>e.path===t);return h===a.path?(0,n.jsxs)("div",{className:"sidebar-worktree-confirm-row",children:[(0,n.jsx)("span",{className:"sidebar-worktree-confirm-text",children:w("sessionSidebar.uncommittedForceRemove")}),(0,n.jsx)("button",{onClick:()=>x(a.path,!0),disabled:p,className:"sidebar-worktree-force-button",children:w("sessionSidebar.force")}),(0,n.jsx)("button",{onClick:()=>m(null),className:"sidebar-worktree-cancel-button",children:w("sessionSidebar.cancel")})]},a.path):(0,n.jsxs)("div",{className:"wt-row sidebar-worktree-row",children:[(0,n.jsxs)("button",{onClick:()=>f(a.path),"aria-pressed":s,title:a.path,className:"sidebar-worktree-select",children:[s?(0,n.jsx)(C.A,{size:10,strokeWidth:2,className:"sidebar-worktree-check","aria-hidden":"true"}):(0,n.jsx)("span",{className:"sidebar-worktree-check-spacer"}),(0,n.jsx)(eB,{text:a.branch??eD(a.path,r)}),a.isMain&&(0,n.jsx)("span",{className:"sidebar-worktree-main-badge",children:w("sessionSidebar.mainBadge")})]}),!a.isMain&&(0,n.jsx)("button",{onClick:()=>x(a.path,!1),disabled:p,title:w("sessionSidebar.removeWorktreeTitle",{path:a.path}),className:"sidebar-worktree-remove",children:(0,n.jsx)(e$.A,{size:12,strokeWidth:2,"aria-hidden":"true"})})]},a.path)})}),s?(0,n.jsxs)("div",{className:"sidebar-worktree-form",children:[(0,n.jsx)("input",{ref:y,value:o,onChange:e=>{l(e.target.value),u(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),g()),"Escape"===e.key&&(i(!1),l(""),u(null))},placeholder:w("sessionSidebar.branchNamePlaceholder"),className:"sidebar-worktree-input"}),(0,n.jsxs)("div",{className:"sidebar-worktree-form-actions",children:[(0,n.jsx)("button",{onClick:g,disabled:p||!o.trim(),className:"sidebar-worktree-create",children:p?w("sessionSidebar.creating"):w("sessionSidebar.create")}),(0,n.jsx)("button",{onClick:()=>{i(!1),l(""),u(null)},className:"sidebar-worktree-form-cancel",children:w("sessionSidebar.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),i(!0),u(null),setTimeout(()=>y.current?.focus(),0)},title:w("sessionSidebar.newWorktreeTitle"),className:"sidebar-worktree-new",children:[(0,n.jsx)(eC.A,{size:12,strokeWidth:1.8,className:"sidebar-worktree-new-icon","aria-hidden":"true"}),(0,n.jsx)("span",{children:w("sessionSidebar.newWorktree")})]}),d&&(0,n.jsx)("div",{className:"sidebar-worktree-error",children:d})]})}let eY=(0,a.memo)(function e({node:t,selectedSessionId:r,runningSessionIds:s,unreadSessionIds:i,relativeTimeNow:o,onSelectSession:l,onRenamed:c,onSessionDeleted:d,depth:u}){let[p,h]=(0,a.useState)(!1),m=t.children.length>0,f=t.session.id,g=f===r,x=s.has(f),v=i.has(f),y=(0,a.useCallback)(()=>{l(t.session)},[l,t.session]),b=(0,a.useCallback)(e=>{d?.(e)},[d]),w=(0,a.useCallback)(()=>{h(e=>!e)},[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-session-tree-row",children:[u>0&&(0,n.jsx)("div",{className:"sidebar-session-indent-line",style:{left:14*u+22}}),(0,n.jsx)(eQ,{session:t.session,isSelected:g,isRunning:x,isUnread:v,relativeTimeNow:o,onClick:y,onRenamed:c,onDeleted:b,depth:u,hasChildren:m,collapsed:p,onToggleCollapse:w})]}),m&&!p&&(0,n.jsx)("div",{children:t.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:r,runningSessionIds:s,unreadSessionIds:i,relativeTimeNow:o,onSelectSession:l,onRenamed:c,onSessionDeleted:d,depth:u+1},t.session.id))})]})},(e,t)=>{if(e.node!==t.node)return!1;if(e.selectedSessionId!==t.selectedSessionId){let r=e.node.session.id;if(r===e.selectedSessionId!=(r===t.selectedSessionId))return!1}if(e.runningSessionIds!==t.runningSessionIds){let r=e.node.session.id;if(e.runningSessionIds.has(r)!==t.runningSessionIds.has(r))return!1}if(e.unreadSessionIds!==t.unreadSessionIds){let r=e.node.session.id;if(e.unreadSessionIds.has(r)!==t.unreadSessionIds.has(r))return!1}return e.relativeTimeNow===t.relativeTimeNow&&e.onSelectSession===t.onSelectSession&&e.onRenamed===t.onRenamed&&e.onSessionDeleted===t.onSessionDeleted});function eG({size:e=14}){let{t}=(0,c.s9)(),r=ef();return(0,n.jsx)("span",{title:t("sessionSidebar.agentRunning"),"aria-label":t("sessionSidebar.agentRunningAria"),className:"sidebar-session-indicator",style:{width:e,height:e},children:(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"sidebar-session-indicator-svg",children:(0,n.jsxs)("g",{children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4",stroke:"currentColor",strokeWidth:"2.8",strokeLinecap:"round"}),!r&&(0,n.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"0.9s",repeatCount:"indefinite"})]})})})}function eX({size:e=14}){let{t}=(0,c.s9)(),r=ef();return(0,n.jsx)("span",{title:t("sessionSidebar.newActivity"),"aria-label":t("sessionSidebar.newSessionActivity"),className:"sidebar-session-indicator",style:{width:e,height:e},children:(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"sidebar-session-indicator-svg",children:[(0,n.jsx)("circle",{cx:"7",cy:"7",r:"2.5",fill:"currentColor"}),!r&&(0,n.jsxs)("circle",{cx:"7",cy:"7",r:"3",stroke:"currentColor",strokeWidth:"1.4",opacity:"0.32",children:[(0,n.jsx)("animate",{attributeName:"r",values:"3;6;3",dur:"1.6s",repeatCount:"indefinite"}),(0,n.jsx)("animate",{attributeName:"opacity",values:"0.32;0;0.32",dur:"1.6s",repeatCount:"indefinite"})]})]})})}let eQ=(0,a.memo)(function({session:e,isSelected:t,isRunning:r,isUnread:s,onClick:i,onRenamed:o,onDeleted:l,depth:d=0,hasChildren:u=!1,collapsed:p=!1,relativeTimeNow:h,onToggleCollapse:m}){let{t:f,locale:g}=(0,c.s9)(),[x,v]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[w,k]=(0,a.useState)(!1),[j,S]=(0,a.useState)(""),C=(0,a.useRef)(!1),[I,T]=(0,a.useState)(!1),[E,R]=(0,a.useState)(!1),[M,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),N=(0,a.useRef)(null),A=(0,a.useRef)(null),L=(0,a.useRef)(null),F=e.name||e.firstMessage.slice(0,50)||e.id.slice(0,12),D=function(e,t,r){let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let a=Math.max(0,Math.floor((r-n)/6e4)),s=new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"narrow"});if(a<1)return s.format(0,"minute");if(a<60)return s.format(-a,"minute");let i=Math.floor(a/60);return i<24?s.format(-i,"hour"):s.format(-Math.floor(i/24),"day")}(e.modified,g,h),P=I||E,B=(0,a.useCallback)(t=>{t.stopPropagation(),S(e.name??""),k(!0),setTimeout(()=>N.current?.select(),0)},[e.name]),O=(0,a.useCallback)(async()=>{if(C.current){C.current=!1;return}let t=j.trim();if(k(!1),t!==(e.name??""))try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)throw Error("Session rename failed");o?.()}catch{}},[j,e.id,e.name,o]),_=(0,a.useCallback)(async()=>{T(!1),z(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}/archive`,{method:"POST"})).ok)throw Error("Session archive failed");l?.(e.id)}catch{z(!1),em.oR.error((0,c.Tl)("sessionSidebar.archiveFailed"))}},[e.id,l]),H=(0,a.useCallback)(async()=>{R(!1),z(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)throw Error("Session deletion failed");l?.(e.id)}catch{z(!1),em.oR.error((0,c.Tl)("sessionSidebar.deleteFailed"))}},[e.id,l]),U=(0,a.useCallback)(()=>{T(!1),R(!1),W(!1),requestAnimationFrame(()=>A.current?.focus())},[]);return(0,n.jsxs)("div",{onClick:I||E||w?void 0:i,onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),onFocus:()=>b(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||b(!1)},onKeyDown:e=>{(I||E||M)&&"Escape"===e.key&&(e.stopPropagation(),U())},className:"sidebar-session-row","data-selected":t?"true":"false","data-confirming":P?"true":"false","data-deleting":$?"true":"false","data-interactive":P||w?"false":"true",style:{height:P?34:30,paddingLeft:30+14*d},children:[(t||P)&&(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-session-selection-indicator",style:{left:20+14*d}}),P?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"sidebar-session-confirm-text",children:f(I?"sessionSidebar.archiveConfirm":"sessionSidebar.deleteConfirm",{title:F.length>22?`${F.slice(0,22)}…`:F})}),(0,n.jsx)("button",{className:"sidebar-session-confirm-button",onClick:e=>{e.stopPropagation(),I?_():H()},children:f(I?"sessionSidebar.archive":"sessionSidebar.delete")}),(0,n.jsx)("button",{className:"sidebar-session-cancel-button",onClick:e=>{e.stopPropagation(),U()},autoFocus:!0,children:f("sessionSidebar.cancel")})]}):w?(0,n.jsx)("input",{ref:N,autoFocus:!0,"aria-label":f("sessionSidebar.rename"),value:j,onChange:e=>S(e.target.value),onBlur:O,onKeyDown:e=>{"Enter"===e.key&&O(),"Escape"===e.key&&(e.preventDefault(),C.current=!0,k(!1))},className:"sidebar-session-rename-input"}):(0,n.jsxs)(n.Fragment,{children:[d>0&&(0,n.jsx)(ez.A,{size:11,strokeWidth:2,className:"sidebar-session-branch-icon","aria-hidden":"true"}),(0,n.jsx)("button",{ref:A,type:"button",className:"session-item-button sidebar-session-content","aria-current":t?"true":void 0,onKeyDown:e=>{"Delete"===e.key&&(e.preventDefault(),R(!0))},children:(0,n.jsx)("span",{title:F,className:"sidebar-session-title",children:F})}),e.worktreeBranch&&(0,n.jsxs)("span",{title:f("sessionSidebar.worktreeTitle",{path:e.cwd}),className:"sidebar-session-worktree",children:[(0,n.jsx)(ez.A,{size:10,strokeWidth:2.4,"aria-hidden":"true"}),(0,n.jsx)("span",{className:"sidebar-session-worktree-label",children:e.worktreeBranch})]}),r&&(0,n.jsx)(eG,{size:12}),!r&&s&&(0,n.jsx)(eX,{size:11}),D&&(0,n.jsx)("span",{title:new Date(e.modified).toLocaleString(g),className:"sidebar-session-time","data-selected":t?"true":"false",children:D}),u&&(0,n.jsx)("button",{className:"session-item-icon-button sidebar-session-collapse",onClick:e=>{e.stopPropagation(),m?.()},title:f(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-label":f(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-expanded":!p,"data-collapsed":p?"true":"false",children:(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsxs)("div",{className:"sidebar-session-action-slot",style:{visibility:x||y||M?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:L,className:"session-item-icon-button sidebar-session-action",onClick:e=>{e.stopPropagation(),W(e=>!e)},title:"Session actions","aria-label":"Session actions","aria-expanded":M,"aria-haspopup":"menu","data-open":M?"true":"false",children:(0,n.jsx)(eM.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsxs)(e_,{anchor:L,open:M,onClose:()=>W(!1),placement:"above",minWidth:128,children:[(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{e.stopPropagation(),W(!1),T(!0)},disabled:u,title:f(u?"sessionSidebar.archiveLeafOnly":"sessionSidebar.archive"),children:f("sessionSidebar.archive")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{B(e),W(!1)},children:f("sessionSidebar.rename")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item sidebar-menu-item-danger",onClick:e=>{e.stopPropagation(),W(!1),R(!0)},children:f("sessionSidebar.delete")})]})]})]})]})});function e0(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function e1(e,t={}){return(e.content??[]).filter(e=>!e0(e,t))}function e2(e,t={}){let r=e1(e,t),n=r.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===n?{answerBlocks:r,processBlocks:[]}:{answerBlocks:r.slice(n+1),processBlocks:r.slice(0,n+1)}}function e5(e){return e.filter(e=>"toolCall"===e.type).length}var e4=r(99314),e3=r(66958),e6=r(72788),e8=r(5045),e9=r(32316),e7=r(19870),te=r(68925),tt=r(94309);function tr({src:e,alt:t,...r}){let{t:s}=(0,c.s9)(),[i,o]=(0,a.useState)(!1),[d,u]=(0,a.useState)(null);(0,a.useEffect)(()=>{if("string"==typeof e||void 0===e)return void u(null);let t=URL.createObjectURL(e);return u(t),()=>URL.revokeObjectURL(t)},[e]);let p="string"==typeof e?e:d??"";return p?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"image-clickable",onClick:e=>{e.preventDefault(),e.stopPropagation(),o(!0)},"aria-label":t?s("imagePreview.openWithAlt",{alt:t}):s("imagePreview.open"),title:t?s("imagePreview.openWithAlt",{alt:t}):s("imagePreview.open"),children:(0,n.jsx)("img",{src:p,alt:t??"",loading:"lazy",...r})}),i&&(0,l.createPortal)((0,n.jsx)(tn,{src:p,alt:t??"",onClose:()=>o(!1)}),document.body)]}):null}function tn({src:e,alt:t,onClose:r}){let s=(0,a.useRef)(null),[i,o]=(0,a.useState)(1),{t:l}=(0,c.s9)();return(0,a.useEffect)(()=>{let e=s.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,n.jsx)("dialog",{ref:s,className:"image-lightbox-dialog","aria-label":l("imagePreview.viewerLabel"),onClick:e=>{e.stopPropagation()},onCancel:e=>{e.preventDefault(),r()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),r())},children:(0,n.jsxs)("div",{className:"image-lightbox-layout",children:[(0,n.jsxs)("div",{className:"image-lightbox-toolbar",children:[(0,n.jsx)("span",{className:"image-lightbox-title",children:t||l("imagePreview.imageTitle")}),(0,n.jsxs)("div",{className:"image-lightbox-actions",children:[(0,n.jsxs)("div",{className:"image-lightbox-stepper",children:[(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.max(.25,e-.25)),disabled:i<=.25,title:l("imagePreview.zoomOut"),"aria-label":l("imagePreview.zoomOut"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M5 12h14"})})}),(0,n.jsxs)("span",{className:"image-lightbox-zoom-value",children:[Math.round(100*i),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.min(8,e+.25)),disabled:i>=8,title:l("imagePreview.zoomIn"),"aria-label":l("imagePreview.zoomIn"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("button",{type:"button",className:"image-lightbox-icon-button",onClick:()=>o(1),title:l("imagePreview.resetZoom"),"aria-label":l("imagePreview.resetZoom"),children:(0,n.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,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"image-lightbox-icon-button",onClick:r,title:l("imagePreview.close"),"aria-label":l("imagePreview.close"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,n.jsx)("div",{className:"image-lightbox-viewport",onClick:e=>{e.target===e.currentTarget&&r()},children:(0,n.jsx)("img",{src:e,alt:t,className:"image-lightbox-img",style:{transform:`scale(${i})`}})})]})})}function ta({children:e,className:t,isStreaming:r,cwd:s,onOpenFile:i}){let o=(0,a.useMemo)(()=>(0,te.Ep)(e),[e]),{remarkPlugins:l,rehypePlugins:c}=(0,te.T6)(o),d=(0,a.useMemo)(()=>{let e=({src:e,alt:t,...r})=>{delete r.node;let a="string"==typeof e?(0,e7.V)(e,s):null,i=a?`/api/files/${(0,ei.HG)(a)}?type=read`:e;return(0,n.jsx)(tr,{src:i,alt:t??"",loading:"lazy",...r})},t=e=>(0,a.isValidElement)(e),o=r=>{let n=[],s=[];for(let i of a.Children.toArray(r)){if(!t(i)){n.push(i);continue}if(i.type===e){s.push(i);continue}let r=o(i.props.children);0===r.imageParts.length?n.push(i):0===r.textParts.length?s.push(i):(n.push((0,a.cloneElement)(i,void 0,r.textParts)),s.push(...r.imageParts))}return{textParts:n,imageParts:s}},l=e=>e.some(e=>"string"==typeof e?e.trim().length>0:"number"==typeof e||!!t(e)&&l(a.Children.toArray(e.props.children)));return{code:(0,tt.Q)({isStreaming:r,inlineClassName:"markdown-inline-code"}),pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:t,...r}){delete r.node;let{textParts:a,imageParts:c}=o(t);if(c.length>0&&!l(a))return(0,n.jsx)(n.Fragment,{children:t});let d=i?(0,e7.V)(e,s):null;if(d&&i){let t=(0,n.jsx)("a",{href:e,...r,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(),i(d))},children:a});return c.length>0?(0,n.jsxs)(n.Fragment,{children:[t,c]}):t}let u=(0,n.jsx)("a",{href:e,...r,target:"_blank",rel:"noopener noreferrer",children:a});return c.length>0?(0,n.jsxs)(n.Fragment,{children:[u,c]}):u},img:e,table:({children:e})=>(0,n.jsx)("div",{className:"markdown-table-wrap",children:(0,n.jsx)("table",{children:e})})}},[r,s,i]);return(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,n.jsx)(e9.oz,{remarkPlugins:l,rehypePlugins:c,components:d,children:o})})}let ts=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,ti=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;var to=r(82490),tl=r(6014),tc=r(64962),td=r(79762),tu=r(67401);function tp({status:e,live:t}){let r={size:12,strokeWidth:2,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(tc.A,{...r,color:"var(--accent)"}):"failed"===e?(0,n.jsx)(E.A,{...r,color:"var(--accent-strong)"}):"aborted"===e?(0,n.jsx)(td.A,{...r,color:"var(--text-dim)"}):!0===t?(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}):!1===t?(0,n.jsx)(tu.A,{...r,color:"var(--text-dim)"}):(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"})}function th(e){if(null==e||!Number.isFinite(e)||e<=0)return null;if(e>=1e3){let t=(e/1e3).toFixed(e>=1e4?0:1);return t.endsWith(".0")?`${t.slice(0,-2)}k`:`${t}k`}return String(e)}function tm(e){return null==e||!Number.isFinite(e)||e<=0?null:`$${e.toFixed(e<.01?4:2)}`}function tf(e){return null==e||!Number.isFinite(e)||e<=0||e<1e3?null:e<6e4?`${Math.floor(e/1e3)}s`:`${Math.round(e/6e4)}m`}function tg(e){if(!e)return null;let t=e.lastIndexOf("/");return(t>=0?e.slice(t+1):e).replace(/:.*$/,"")||null}let tx=new Map,tv={display:"flex",alignItems:"center",gap:"var(--space-2)",padding:"calc(var(--space-3) / 2) var(--space-4)",height:"calc(var(--control-height-sm) - var(--space-2))",minHeight:"calc(var(--control-height-sm) - var(--space-2))",background:"none",border:"none",borderRadius:"calc(var(--radius-control) - var(--space-3) / 2)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:400,whiteSpace:"nowrap",transition:"color var(--dur-fast) var(--ease-out-warm)"};function ty({children:e,className:t,...r}){let{t:s}=(0,c.s9)(),[i,o]=(0,a.useState)(!1);if(e.length<=1e5)return(0,n.jsx)(ta,{className:t,...r,children:e});if(!i){var l;return(0,n.jsx)("button",{type:"button",onClick:()=>o(!0),style:{display:"block",width:"100%",margin:"var(--space-2) 0",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left"},children:s("messageView.largeMessageReveal",{size:(l=e.length)>=1e6?`${(l/1e6).toFixed(1)} MB`:`${Math.round(l/1e3)} KB`})})}return(0,n.jsx)("div",{className:t,style:{maxHeight:420,overflow:"auto",fontSize:"var(--text-md)",lineHeight:1.5},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:e})})}function tb(e,t){if(!e)return null;let r=new Date(e),n=new Date,a=r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate(),s=r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"});if(a)return s;let i=r.toLocaleDateString(t,{month:"short",day:"numeric",year:r.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${i} ${s}`}let tw=(0,a.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:s,onOpenFile:i,entryId:o,onFork:l,forking:c,onNavigate:d,prevAssistantEntryId:u,onEditContent:p,showTimestamp:h,prevTimestamp:m,sessionId:f,toolCallsDefaultCollapsed:g=!0}){return"user"===e.role?(0,n.jsx)(tk,{message:e,cwd:s,onOpenFile:i,entryId:o,onFork:l,forking:c,onNavigate:d,prevAssistantEntryId:u,onEditContent:p}):"assistant"===e.role?(0,n.jsx)(tj,{message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:s,onOpenFile:i,showTimestamp:h,prevTimestamp:m,sessionId:f,entryId:o,toolCallsDefaultCollapsed:g}):"toolResult"===e.role?null:"custom"===e.role?"xdev-mount-notice"===e.customType?null:"compaction"===e.customType?(0,n.jsx)(tF,{message:e}):(0,n.jsx)(tB,{message:e,cwd:s,onOpenFile:i}):"bashExecution"===e.role?(0,n.jsx)(tU,{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 n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==r?.get(n.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&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&&e.toolCallsDefaultCollapsed===t.toolCallsDefaultCollapsed);function tk({message:e,cwd:t,onOpenFile:r,entryId:s,onFork:i,forking:o,onNavigate:l,prevAssistantEntryId:d,onEditContent:u}){let{t:p,locale:h}=(0,c.s9)(),[m,f]=(0,a.useState)(!1),[g,x]=(0,a.useState)(!1),{copied:v,copy:y}=(0,tl.q)(),b="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),w="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),k=tb(e.timestamp,h),j=!!s&&!!i,S=!!d&&!!l;return(0,n.jsx)("div",{style:{marginBottom:18,display:"flex",flexDirection:"column",alignItems:"flex-end",paddingRight:6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",maxWidth:"85%",minWidth:0},children:[(0,n.jsxs)("div",{className:"chat-message-card",style:{maxWidth:"100%",minWidth:0,background:"var(--user-bg)",border:"1px solid color-mix(in srgb, var(--accent) 28%, transparent)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-card)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-lg)",lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",maxHeight:300,overflowY:"auto"},children:[w.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",flexWrap:"wrap",marginBottom:b?"var(--space-4)":0},children:w.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,n.jsx)(tr,{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid color-mix(in srgb, var(--accent) 18%, transparent)"}},t)})}),b&&(0,n.jsx)(ty,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:b})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"var(--space-3)",marginTop:3,width:"100%"},children:[(0,n.jsx)("div",{style:{display:"flex",gap:"calc(var(--space-3) / 2)",opacity:m||g?1:0,pointerEvents:m||g?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:(0,n.jsx)(es.m_,{content:p("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>y(b),"aria-label":p("messageView.copyMessage"),style:{...tv,color:v?"var(--accent)":"var(--text-dim)"},onMouseEnter:e=>{v||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{v||(e.currentTarget.style.color="var(--text-dim)")},children:[v?(0,n.jsx)(C.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(e4.A,{size:11,strokeWidth:1.8}),p(v?"messageView.copied":"messageView.copy")]})})}),(j||S)&&(0,n.jsxs)("div",{style:{display:"flex",gap:"calc(var(--space-3) / 2)",opacity:m||g||o?1:0,pointerEvents:m||g||o?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:[S&&(0,n.jsx)(es.m_,{content:p("messageView.editFromHereTitle"),children:(0,n.jsxs)("button",{onClick:()=>{l(d),u?.(b)},"aria-label":p("messageView.editFromHereTitle"),style:{...tv,color:"var(--text-dim)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[(0,n.jsx)(e3.A,{size:11,strokeWidth:1.8}),p("messageView.editFromHere")]})}),j&&(0,n.jsx)(es.m_,{content:p(o?"messageView.creatingSession":"messageView.newSessionTitle"),children:(0,n.jsxs)("button",{onClick:()=>{i(s)},disabled:o,"aria-label":p(o?"messageView.creatingSession":"messageView.newSessionTitle"),style:{...tv,color:o?"var(--accent)":"var(--text-dim)",cursor:o?"not-allowed":"pointer"},onMouseEnter:e=>{o||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{o||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,n.jsx)(e6.A,{size:11,strokeWidth:1.8}),p(o?"messageView.creating":"messageView.newSession")]})})]}),k&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:k})]})]})})}function tj({message:e,isStreaming:t,toolResults:r,modelNames:s,cwd:i,onOpenFile:o,showTimestamp:l,prevTimestamp:d,sessionId:u,entryId:p,toolCallsDefaultCollapsed:h}){var m,f,g;let x,{t:v,locale:y}=(0,c.s9)(),b=l?tb(e.timestamp,y):null,w=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!e0(e,{isStreaming:t})),k=w.map(({block:e})=>e),[j,S]=(0,a.useState)(!1),[I,T]=(0,a.useState)(!1),{copied:E,copy:R}=(0,tl.q)(),M=(0,a.useRef)(null),[W,$]=(0,a.useState)(null),z=(0,a.useRef)(w);z.current=w;let N=(0,a.useRef)(new Map),[A,L]=(0,a.useState)(new Map),F=(0,a.useMemo)(()=>{if(!e.timestamp||!d)return;let t=Math.round((e.timestamp-d)/1e3);return t>0?t:void 0},[e.timestamp,d]),D=(0,a.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[n,a]of r)if(a.timestamp&&e.timestamp){let r=Math.round((a.timestamp-e.timestamp)/1e3);r>0&&t.set(n,r)}return t},[r,e.timestamp]),P=t?"":k.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if((0,a.useEffect)(()=>{if(!t){let e=new Date().getTime();L(t=>{let r=new Map(t);for(let[t,n]of N.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),M.current=null,$(null);return}let e=setInterval(()=>{let e=z.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{N.current.has(e)||N.current.set(e,r)}),L(t=>{let n=!1,a=new Map(t);for(let t=0;t<e.length-1;t++){let s=e[t].originalIndex,i=e[t+1].originalIndex;if(!a.has(s)&&N.current.has(s)){let e=N.current.get(s),t=N.current.get(i)??r;a.set(s,Math.round((t-e)/1e3)),n=!0}}return n?a:t});let n=0;for(let e of t)"text"===e.type?n+=e.text?.length??0:"thinking"===e.type&&(n+=e.thinking?.length??0);if(0===n)return;null===M.current&&(M.current=r);let a=(r-M.current)/1e3;a>.5&&$(n/4/a)},300);return()=>clearInterval(e)},[t]),0===k.length&&!t)return null;let B=t&&!k.some(e=>"toolCall"===e.type||"thinking"===e.type);return(0,n.jsxs)("div",{className:`chat-message${B?" chat-message--live":""}`,style:{marginBottom:18},onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",marginBottom:"var(--space-2)",display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[e.provider&&(0,n.jsx)("span",{children:s?.[`${e.provider}:${e.model}`]??s?.[e.model]??e.model}),t&&(()=>{let e,t,r=0;for(let e of k)"text"===e.type?r+=e.text?.length??0:"thinking"===e.type&&(r+=e.thinking?.length??0);let a=Math.round(r/4);return(0,n.jsx)(n.Fragment,{children:a>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",color:"var(--text)"},title:v("messageView.estimatedTokens"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-1)",fontSize:"var(--text-sm)",fontWeight:400},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),a]}),null!==W&&(e=W>=50?"success":W>=30?"renamed":W>=15?"warning":"error",t=`var(--status-${e})`,(0,n.jsx)("span",{style:{marginLeft:"var(--space-3)",padding:"1px 6px",borderRadius:4,background:`color-mix(in srgb, ${t} 14%, var(--bg-panel))`,color:t,fontSize:"var(--text-sm)",fontWeight:400},children:v("messageView.tokensPerSecond",{tps:W.toFixed(1)})}))]})})})()]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-4)"},children:w.map(({block:e,originalIndex:a})=>(0,n.jsx)(tS,{block:e,toolResults:r,isStreaming:t,streamingDuration:A.get(a)??("thinking"===e.type?F:void 0),toolCallDurations:D,cwd:i,onOpenFile:o,sessionId:u,entryId:p,blockIndex:a,toolCallsDefaultCollapsed:h},`${p??"stream"}-${a}`))}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",marginTop:"var(--space-2)"},children:[e.usage&&!t&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:(m=e.usage,f=v,g=y,x=[],m.input&&x.push(f("messageView.usageInput",{tokens:m.input.toLocaleString(g)})),m.output&&x.push(f("messageView.usageOutput",{tokens:m.output.toLocaleString(g)})),m.cacheRead&&x.push(f("messageView.usageCacheRead",{tokens:m.cacheRead.toLocaleString(g)})),m.cacheWrite&&x.push(f("messageView.usageCacheWrite",{tokens:m.cacheWrite.toLocaleString(g)})),m.cost?.total&&x.push(`$${m.cost.total.toFixed(4)}`),x.join(" \xb7 "))}),P&&!t&&(0,n.jsx)(es.m_,{content:v("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>R(P),"aria-label":v("messageView.copyMessage"),style:{...tv,color:E?"var(--accent)":"var(--text-dim)",opacity:j||I?1:0,pointerEvents:j||I?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onFocus:()=>T(!0),onBlur:()=>T(!1),onMouseEnter:e=>{E||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{E||(e.currentTarget.style.color="var(--text-dim)")},children:[E?(0,n.jsx)(C.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(e4.A,{size:11,strokeWidth:1.8}),E?v("messageView.copied"):v("messageView.copy")]})}),b&&!t&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginLeft:"auto"},children:b})]})]})}function tS({block:e,toolResults:t,isStreaming:r,streamingDuration:a,toolCallDurations:s,cwd:i,onOpenFile:o,sessionId:l,entryId:c,blockIndex:d,toolCallsDefaultCollapsed:u}){if("text"===e.type)return(0,n.jsx)(tC,{block:e,isStreaming:r,cwd:i,onOpenFile:o});if("thinking"===e.type)return(0,n.jsx)(tI,{block:e,duration:a,sessionId:l,entryId:c,blockIndex:d});if("toolCall"===e.type){let a=t?.get(e.toolCallId),i=s?.get(e.toolCallId);return(0,n.jsx)(tT,{block:e,result:a,duration:i,isStreaming:r,defaultCollapsed:u})}return null}let tC=(0,a.memo)(function({block:e,isStreaming:t,cwd:r,onOpenFile:a}){return(0,n.jsx)(ty,{isStreaming:t,cwd:r,onOpenFile:a,children:e.text})},(e,t)=>e.block.text===t.block.text&&e.isStreaming===t.isStreaming&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile),tI=(0,a.memo)(function({block:e,duration:t,sessionId:r,entryId:s,blockIndex:i}){let{t:o}=(0,c.s9)(),[l,d]=(0,a.useState)(!1),[u,p]=(0,a.useState)(null),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null);return(0,n.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:"var(--text-base)"},children:(0,n.jsxs)(es.Nt,{open:l,onOpenChange:t=>{if(d(t),t&&e.deferred&&null===u){if(!r||!s)return void g(o("messageView.thinkingUnavailable"));m(!0),g(null),(function(e,t,r){let n=`${e}:${t}:${r}`,a=tx.get(n);if(a)return tx.delete(n),tx.set(n,a),a;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((0,c.Tl)("messageView.invalidThinkingResponse"));return t.thinking}).catch(e=>{throw tx.delete(n),e});if(tx.set(n,s),tx.size>100){let e=tx.keys().next().value;e&&tx.delete(e)}return s})(r,s,i).then(e=>p(e)).catch(e=>g(e instanceof Error?e.message:String(e))).finally(()=>m(!1))}},children:[(0,n.jsxs)(es.R6,{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",width:"100%",padding:"var(--space-3) var(--control-padding-inline)",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:400,textAlign:"left"},children:[(0,n.jsx)(e8.A,{size:11,strokeWidth:1.8,style:{flexShrink:0}}),(0,n.jsx)("span",{children:o("messageView.thinking")}),void 0!==t&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:"var(--text-sm)",color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:o("messageView.durationSeconds",{seconds:t})}),(0,n.jsx)(v.A,{size:10,strokeWidth:1.6,style:{flexShrink:0,marginLeft:void 0===t?"auto":4,transform:l?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),(0,n.jsx)(es.je,{style:{padding:"var(--space-4) var(--control-padding-inline)",color:f?"var(--status-error)":"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)"},children:h?o("messageView.loadingThinking"):f??(e.deferred?u:e.thinking)})]})})},(e,t)=>e.block.thinking===t.block.thinking&&e.block.deferred===t.block.deferred&&e.duration===t.duration&&e.sessionId===t.sessionId&&e.entryId===t.entryId&&e.blockIndex===t.blockIndex),tT=(0,a.memo)(function({block:e,result:t,duration:r,isStreaming:s,defaultCollapsed:i=!0}){let o,{t:l}=(0,c.s9)(),[d,u]=(0,a.useState)(!!s&&!i),p="edit"===(o=e.toolName.toLowerCase())||"apply_patch"===o||o.includes("apply_patch")||o.startsWith("edit_")||o.endsWith(".edit")||o.endsWith("_edit")||o.includes("str_replace")||o.includes("replace_editor"),h=d&&t&&!t.isError?function(e){let t=e.details;if(!tA(t))return null;let r="string"==typeof t.patch?t.patch:null;if(r)return{text:r};let n="string"==typeof t.diff?t.diff:null;return n?{text:n}:null}(t):null,m=t?"string"==typeof t.content?t.content:(Array.isArray(t.content)?t.content:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n"):null,f=null!==m&&("(no output)"===m.trim()||""===m.trim()),g=t?.isError??!1;return(0,n.jsx)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:"var(--text-md)",border:g?"1px solid color-mix(in srgb, var(--status-error) 45%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",background:g?"color-mix(in srgb, var(--status-error) 5%, transparent)":"color-mix(in srgb, var(--status-success) 4%, transparent)"},children:(0,n.jsxs)(es.Nt,{open:d,onOpenChange:u,children:[(0,n.jsxs)(es.R6,{style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"var(--space-3) var(--control-padding-inline)",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:400,textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{style:{color:g?"var(--status-error)":"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)",flexShrink:0},children:e.toolName}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let r=Object.keys(t);if(0===r.length)return"";if("command"in t)return String(t.command).slice(0,120);if("path"in t)return String(t.path).slice(0,120);if("file_path"in t)return String(t.file_path).slice(0,120);if("pattern"in t)return String(t.pattern).slice(0,120);if("query"in t)return String(t.query).slice(0,120);if("input"in t&&"string"==typeof t.input){let e=t.input.match(/\*\*\*\s*(?:Update|Add|Delete)\s*File:\s*([^\r\n]+)/i);if(e)return e[1].trim();let r=t.input.match(/--- (?:a\/)?([^\r\n]+)/);if(r)return r[1].trim()}return String(t[r[0]]).slice(0,120)}(e)}),void 0!==r&&(0,n.jsx)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:l("messageView.durationSeconds",{seconds:r})}),(0,n.jsx)(v.A,{size:10,strokeWidth:1.6,style:{flexShrink:0,transform:d?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),d&&!p&&(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,overflow:"auto",backgroundColor:"var(--bg-subtle)",borderTop:g?"1px solid color-mix(in srgb, var(--status-error) 25%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 20%, transparent)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:JSON.stringify(e.input,null,2)}),d&&t&&(h?(0,n.jsx)(tM,{diff:h}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tR,{details:t.details}),(0,n.jsx)(tL,{text:m??"",isEmpty:f,isError:g})]}))]})})},(e,t)=>e.block.toolCallId===t.block.toolCallId&&e.block.toolName===t.block.toolName&&e.block.input===t.block.input&&e.result===t.result&&e.duration===t.duration&&e.defaultCollapsed===t.defaultCollapsed);function tE({status:e}){return(0,n.jsx)(tp,{status:e})}function tR({details:e}){let{t,tn:r}=(0,c.s9)();if(!tA(e))return null;let a=(Array.isArray(e.results)?e.results:[]).filter(tA),s=(Array.isArray(e.progress)?e.progress:[]).filter(tA),i=tA(e.async)?e.async:null;if(0===a.length&&0===s.length&&!i)return null;let o=a.length>0?a:s.length>0?s:i&&"string"==typeof i.jobId?[{id:i.jobId,agent:"task",status:"started",task:i.jobId}]:[],l=o.reduce((e,t)=>e+("number"==typeof t.tokens?t.tokens:0),0),d=o.reduce((e,t)=>e+("number"==typeof t.cost?t.cost:0),0),u="number"==typeof e.totalDurationMs?e.totalDurationMs:void 0,p=th(l),h=[r("chatWindow.subagentCount",o.length),p?t("chatWindow.tokensUnit",{count:p}):null,tm(d),tf(u)].filter(Boolean);return(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",padding:"var(--space-4) var(--control-padding-inline)",display:"grid",gap:"var(--space-2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontWeight:600,color:"var(--text)"},children:t("messageView.taskSubagents")}),(0,n.jsx)("span",{style:{marginLeft:"auto",fontFamily:"var(--font-mono)",color:"var(--text-dim)",fontSize:10.5},children:h.join(" \xb7 ")}),i&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:"⤴"})]}),o.map((e,r)=>{let a="string"==typeof e.id?e.id:`row-${r}`,s=function(e){if(!0===e.aborted)return"aborted";if("string"==typeof e.error&&e.error)return"failed";if("number"==typeof e.exitCode)return 0===e.exitCode?"completed":"failed";let t=e.status;return"completed"===t?"completed":"failed"===t?"failed":"aborted"===t?"aborted":"started"}(e),i="string"==typeof e.task&&e.task?e.task:"string"==typeof e.assignment?e.assignment:null,o=th("number"==typeof e.tokens?e.tokens:void 0),l=[o?t("chatWindow.tokensUnit",{count:o}):null,tm("number"==typeof e.cost?e.cost:void 0),"started"!==s?tf("number"==typeof e.durationMs?e.durationMs:void 0):null,tg("string"==typeof e.resolvedModel?e.resolvedModel:void 0)].filter(Boolean);return(0,n.jsxs)("div",{"aria-label":`${"string"==typeof e.agent?e.agent:"subagent"}: ${t(`chatWindow.subagentState.${s}`)}${i?` — ${i}`:""}`,style:{display:"flex",alignItems:"center",gap:"var(--space-3)",minWidth:0,fontSize:11.5},children:[(0,n.jsx)(tE,{status:s}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,fontSize:10.5,color:"var(--accent)",flexShrink:0},children:"string"==typeof e.agent?e.agent:"subagent"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,color:"var(--text)"},children:i??""}),l.length>0&&(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:l.join(" \xb7 ")})]},a)})]})}function tM({diff:e}){return(0,n.jsx)("div",{style:{borderTop:"1px solid color-mix(in srgb, var(--status-success) 15%, transparent)",background:"var(--bg)"},children:(0,n.jsx)(tW,{text:e.text})})}function tW({text:e}){let{t}=(0,c.s9)(),r=(0,a.useMemo)(()=>(0,to.y)(e),[e]);if(!r)return(0,n.jsx)(tN,{text:e});let s=r.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:r.map((e,r)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===r?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",lineHeight:1.55},children:[s&&(0,n.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,n.jsx)(t$,{title:e.oldPath||t("messageView.diffBefore"),side:"left"}),(0,n.jsx)(t$,{title:e.newPath||t("messageView.diffAfter"),side:"right"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)(tz,{cell:e.left,side:"left"}),(0,n.jsx)(tz,{cell:e.right,side:"right"})]},t))})]},r))})}function t$({title:e,side:t}){return(0,n.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 tz({cell:e,side:t}){let r="added"===e.type?"var(--status-success-subtle)":"removed"===e.type?"color-mix(in srgb, var(--status-error) 13%, transparent)":"empty"===e.type?"var(--bg-subtle)":"transparent",a="added"===e.type?"+":"removed"===e.type?"-":" ",s="added"===e.type?"var(--status-success)":"removed"===e.type?"var(--status-error)":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,n.jsx)("span",{style:{width:42,padding:"0 var(--space-3)",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{width:18,padding:"0 5px",color:s,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:a}),(0,n.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 tN({text:e}){let t=e.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",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,n.jsxs)("div",{style:{display:"flex",background:"added"===r?"var(--status-success-subtle)":"removed"===r?"color-mix(in srgb, var(--status-error) 13%, transparent)":"hunk"===r?"var(--accent-subtle)":"transparent",borderLeft:"added"===r?"3px solid var(--status-success)":"removed"===r?"3px solid var(--status-error)":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{width:48,padding:"0 var(--space-4)",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,n.jsx)("span",{style:{padding:"0 var(--control-padding-inline)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"var(--status-success)":"removed"===r?"var(--status-error)":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function tA(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function tL({text:e,isEmpty:t,isError:r}){let{t:a}=(0,c.s9)();return(0,n.jsx)("div",{style:{borderTop:`1px solid ${r?"color-mix(in srgb, var(--status-error) 30%, transparent)":"color-mix(in srgb, var(--status-success) 15%, transparent)"}`,background:r?"color-mix(in srgb, var(--status-error) 4%, transparent)":"var(--bg-subtle)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",color:r?"var(--status-error)":t?"var(--text-dim)":"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,overflow:"auto",maxHeight:400,backgroundColor:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?a("messageView.noOutput"):e})})}function tF({message:e}){let{t,locale:r}=(0,c.s9)(),s=tO(e.content),i=(0,a.useMemo)(()=>{let e,t,r,n,a;return e=[],t=[],r=s.match(ti),n=r?.[1]??"",a=r?.index===void 0?s:s.slice(0,r.index),n.replace(ts,(r,n,a)=>{let s=a.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...s):t.push(...s),""}),{body:a.trim(),readFiles:e,modifiedFiles:t}},[s]),o=tb(e.timestamp,r);return(0,n.jsx)("div",{style:{marginBottom:"var(--space-6)"},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:t("messageView.compactionLabel")}),o&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:o})]}),(0,n.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:t("messageView.conversationCompacted")}),(0,n.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:"var(--text-lg)",lineHeight:1.5},children:t("messageView.compactionDescription")}),i.body?(0,n.jsx)(ta,{className:"markdown-compaction-message",children:i.body}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:t("messageView.noSummary")}),(0,n.jsx)(tD,{readFiles:i.readFiles,modifiedFiles:i.modifiedFiles})]})]})})}function tD({readFiles:e,modifiedFiles:t}){let{t:r}=(0,c.s9)();if(0===e.length+t.length)return null;let a=[];return e.length>0&&a.push(r("messageView.filesReadCount",{count:e.length})),t.length>0&&a.push(r("messageView.filesModifiedCount",{count:t.length})),(0,n.jsxs)("details",{className:"compaction-file-details",children:[(0,n.jsx)("summary",{children:r("messageView.fileContext",{parts:a.join(", ")})}),t.length>0&&(0,n.jsx)(tP,{title:r("messageView.modifiedFiles"),files:t}),e.length>0&&(0,n.jsx)(tP,{title:r("messageView.readFiles"),files:e})]})}function tP({title:e,files:t}){return(0,n.jsxs)("div",{className:"compaction-file-section",children:[(0,n.jsx)("div",{className:"compaction-file-title",children:e}),(0,n.jsx)("ul",{className:"compaction-file-list",children:t.map(e=>(0,n.jsx)("li",{children:e},e))})]})}function tB({message:e,cwd:t,onOpenFile:r}){var s;let i,{t:o,locale:l}=(0,c.s9)(),d=!1===e.display,[u,p]=(0,a.useState)(!d),[h,m]=(0,a.useState)(!1),{copied:f,copy:g}=(0,tl.q)(),x=tO(e.content),v="string"==typeof(s=e.content)?[]:s.filter(e=>"image"===e.type),y=void 0!==e.details,b=y?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",w=tH.has(e.customType),k=w?function(e){let t=e.split("\n"),r=null,n=0;for(let e=0;e<t.length;e+=1){let a=t[e].match(/agent\s*`([^`]+)`/);if(a){r=a[1],n=e+1;break}}return{sender:r,body:t.slice(n).join("\n").trim()}}(x):null,j=k?k.body:x,S=w?k?.sender??t_(e.customType):"advisor"===e.customType?o("messageView.advisorLabel"):t_(e.customType),C=tb(e.timestamp,l);return(0,n.jsx)("div",{style:{marginBottom:"var(--space-6)"},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",overflow:"hidden",background:d?"var(--bg-subtle)":"var(--bg)",opacity:d&&!u?.82:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:w&&"irc:incoming"===e.customType?`← ${S}`:S}),d&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:o("messageView.hiddenExtensionMessage")}),C&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:C})]}),u?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",flexWrap:"wrap",marginBottom:j?"var(--space-4)":0},children:v.map((e,t)=>{var r;let a=(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 a?(0,n.jsx)(tr,{src:a,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},t):null})}),j?(0,n.jsx)(ta,{className:"markdown-custom-message",cwd:t,onOpenFile:r,children:j}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:o("messageView.noMessage")})]}):(0,n.jsx)("button",{onClick:()=>p(!0),style:{display:"block",width:"100%",padding:"var(--space-4) var(--control-padding-inline)",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left"},children:j?(i=j.replace(/\s+/g," ").trim())?i.length>140?`${i.slice(0,140)}...`:i:(0,c.Tl)("messageView.showExtensionMessage"):o("messageView.showExtensionMessage")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[x||b?(0,n.jsx)("button",{onClick:()=>g(j||b),style:{padding:"3px 7px",border:"none",background:"none",color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:o(f?"messageView.copied":"messageView.copy")}):null,(y||d)&&(0,n.jsx)("button",{onClick:()=>{d?p(e=>!e):m(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:o(d?u?"messageView.collapse":"messageView.expand":h?"messageView.hideDetails":"messageView.showDetails")})]}),y&&(d&&u||!d&&h)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",backgroundColor:"var(--bg)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:b})]})})}function tO(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function t_(e){return e||(0,c.Tl)("messageView.extensionType")}let tH=new Set(["irc:incoming","irc:autoreply","irc:relay"]);function tU({message:e,sessionId:t}){let{t:r}=(0,c.s9)(),[s,i]=(0,a.useState)(null),o=(0,a.useRef)(0);(0,a.useEffect)(()=>{o.current+=1,i(null)},[e.command,e.fullOutputPath,e.output,e.timestamp]);let l=!e.output&&void 0===e.exitCode&&!e.cancelled,d=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,u=e.excludeFromContext?"bash (local)":"bash",p={type:"toolCall",toolCallId:`bash-${e.timestamp??""}`,toolName:u,input:{command:e.command}},h=l?void 0:{role:"toolResult",toolCallId:p.toolCallId,toolName:u,content:e.output?[{type:"text",text:e.output}]:[],isError:d,timestamp:e.timestamp},m=(0,a.useCallback)(async()=>{if(!e.fullOutputPath||!t||s?.phase==="ready")return;let r=o.current;i({phase:"loading"});try{let n=await fetch(`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`),a=await n.json();if(o.current!==r)return;if(!n.ok||!a.success)throw Error(a.error??`HTTP ${n.status}`);i({phase:"ready",output:a.data?.output??""})}catch(e){if(o.current!==r)return;i({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.fullOutputPath,t,s?.phase]),f=e.fullOutputPath&&t?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}&download=1`:null;return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(tT,{block:p,result:h}),f&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-5)",marginTop:"var(--space-3)"},children:[s?.phase!=="ready"&&(0,n.jsx)("button",{type:"button",disabled:s?.phase==="loading",onClick:()=>void m(),style:{padding:0,border:"none",background:"none",color:"var(--accent)",cursor:s?.phase==="loading"?"default":"pointer",fontSize:"var(--text-md)",opacity:s?.phase==="loading"?.6:1,fontFamily:"inherit"},children:r(s?.phase==="loading"?"messageView.fullOutputLoading":"messageView.viewFullOutput")}),(0,n.jsx)("a",{href:f,download:!0,style:{color:"var(--text-dim)",fontSize:"var(--text-md)",textDecoration:"none"},children:r("messageView.fullOutputDownload")})]}),s?.phase==="ready"&&(0,n.jsx)("div",{style:{maxHeight:420,overflow:"auto",marginTop:"var(--space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",color:"var(--text-muted)"},children:s.output})}),s?.phase==="error"&&(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--status-error)"},children:s.message})]})}var tq=r(17494),tV=r(8143),tK=r(86272),tZ=r(35893),tJ=r(84111);let tY=new Map;function tG(e){return{value:e.value,images:e.images.map(e=>({...e})),files:e.files.map(e=>({...e}))}}function tX(e){let t=tY.get(e);return t?tG(t):null}function tQ(e,t){t.value||0!==t.images.length||0!==t.files.length?tY.set(e,tG(t)):tY.delete(e)}let t0=[{name:"goal",descriptionKey:"chatInput.cmdGoal",argumentHintKey:"chatInput.cmdGoalArg",requiresArgs:!0,buildPrompt:e=>`Work toward this goal for the rest of the session:
|
|
3
|
-
|
|
4
|
-
${e}
|
|
5
|
-
|
|
6
|
-
Treat it as the objective to prioritize when deciding what to do next.`},{name:"plan",descriptionKey:"chatInput.cmdPlan",argumentHintKey:"chatInput.cmdPlanArg",requiresArgs:!0,buildPrompt:e=>`Create a plan for this task before doing anything else:
|
|
7
|
-
|
|
8
|
-
${e}
|
|
9
|
-
|
|
10
|
-
Think it through step by step, list concrete steps, and state what you will verify when done.`},{name:"review",descriptionKey:"chatInput.cmdReview",argumentHintKey:"chatInput.cmdReviewArg",requiresArgs:!1,buildPrompt:e=>e?`Review ${e} for bugs, security issues, and opportunities to simplify. Summarize what you find, then fix anything clearly wrong.`:"Review the current project state and recent changes for bugs, security issues, and opportunities to simplify. Summarize what you find, then fix anything clearly wrong."},{name:"fix",descriptionKey:"chatInput.cmdFix",argumentHintKey:"chatInput.cmdFixArg",requiresArgs:!0,buildPrompt:e=>`Fix this issue:
|
|
11
|
-
|
|
12
|
-
${e}
|
|
13
|
-
|
|
14
|
-
Reproduce the problem, apply the smallest correct fix, and verify it works before finishing.`},{name:"test",descriptionKey:"chatInput.cmdTest",argumentHintKey:"chatInput.cmdTestArg",requiresArgs:!0,buildPrompt:e=>`Write tests for ${e}. Follow the project's test conventions, cover the important behavior and edge cases, and run the tests to confirm they pass.`},{name:"explain",descriptionKey:"chatInput.cmdExplain",argumentHintKey:"chatInput.cmdExplainArg",requiresArgs:!0,buildPrompt:e=>`Explain ${e} concisely: what it does, how it works, and the key details worth knowing.`},{name:"simplify",descriptionKey:"chatInput.cmdSimplify",argumentHintKey:"chatInput.cmdSimplifyArg",requiresArgs:!0,buildPrompt:e=>`Simplify ${e}. Remove unnecessary complexity while preserving behavior, keep the change focused, and verify nothing breaks.`},{name:"commit",descriptionKey:"chatInput.cmdCommit",argumentHintKey:"chatInput.cmdCommitArg",requiresArgs:!1,buildPrompt:e=>e?`Stage the relevant files and commit the current changes with this message: ${JSON.stringify(e)}. Run the project's checks first so the commit is green.`:"Stage the relevant files and commit the current changes with a clear conventional commit message. Run the project's checks first so the commit is green."}],t1=new Map(t0.map(e=>[e.name,e]));function t2(e){var t;if(!e.startsWith("/"))return{kind:"not-web"};let r=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!r)return{kind:"not-web"};let n=(t=r[1],t1.get(t));if(!n)return{kind:"not-web"};let a=(r[2]??"").trim();return n.requiresArgs&&!a?{kind:"usage-error",command:`/${n.name}`,argumentHintKey:n.argumentHintKey}:{kind:"expand",prompt:n.buildPrompt(a)}}function t5(e){if(!e||"object"!=typeof e||"string"!=typeof e.data||"string"!=typeof e.mimeType||!e.mimeType.startsWith("image/"))return!1;let t=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),r=e.length-t;for(let t=0;t<r;t+=1){var n;if(!((n=e.charCodeAt(t))>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||43===n||47===n))return null}for(let t=r;t<e.length;t+=1)if("="!==e[t])return null;return e.length/4*3-t}(e.data);return null!==t&&t<=0xa00000}function t4(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 t3(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function t6(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function t8(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}var t9=r(31590);let t7=["auto","off","minimal","low","medium","high","xhigh","max"];function re(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function rt(e){let t=Math.round(10*e)/10;return`${t%1==0?t.toFixed(0):t.toFixed(1)}%`}let rr=2*Math.PI*9.5;function rn(e,t,r){return e.compare(t.name||t.modelId,r.name||r.modelId)||e.compare(t.provider,r.provider)||e.compare(t.modelId,r.modelId)}let ra={auto:"chatInput.thinkingAuto",off:"chatInput.thinkingOff",minimal:"chatInput.thinkingMinimal",low:"chatInput.thinkingLow",medium:"chatInput.thinkingMedium",high:"chatInput.thinkingHigh",xhigh:"chatInput.thinkingXhigh",max:"chatInput.thinkingMax"};function rs(e,t){return"skill"===e.source&&t.has(e.name)}let ri=[...t0.map(e=>({name:e.name,descriptionKey:e.descriptionKey,argumentHintKey:e.argumentHintKey})),{name:"compact",descriptionKey:"chatInput.cmdCompact"},{name:"reload",descriptionKey:"chatInput.cmdReload"},{name:"name",descriptionKey:"chatInput.cmdName"},{name:"session",descriptionKey:"chatInput.cmdSession"},{name:"agents",descriptionKey:"chatInput.cmdAgents"},{name:"copy",descriptionKey:"chatInput.cmdCopy"}],ro=new Set(ri.map(e=>e.name)),rl=["builtin","extension","prompt","skill","ompBuiltin"],rc={builtin:"chatInput.groupBuiltin",extension:"chatInput.groupExtensions",prompt:"chatInput.groupPrompts",skill:"chatInput.groupSkills",ompBuiltin:"chatInput.groupOmpBuiltin"},rd={builtin:0,extension:1,prompt:2,skill:3,ompBuiltin:4};function ru(e,t){let r=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return r===t?0:r.startsWith(t)?1:r.includes(t)?2:n.includes(t)?3:4}function rp(e){return{data:e.data,mimeType:e.mimeType}}function rh(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function rm(e){return(e??[]).filter(t5).slice(0,10).map(rh)}function rf(e){return{name:e.name,mimeType:e.mimeType,content:e.content,size:e.size}}function rg(e){return(e??[]).filter(e=>"string"==typeof e.name&&"string"==typeof e.mimeType&&"string"==typeof e.content&&Number.isFinite(e.size)&&e.size<=262144).slice(0,10)}function rx(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function rv({onClick:e,title:t,accent:r=!1,children:a}){return(0,n.jsx)("button",{type:"button",onClick:e,title:t,style:{flexShrink:0,padding:"4px 8px",minHeight:24,border:"none",borderRadius:6,background:"transparent",color:r?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:r?600:400,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",r||(e.currentTarget.style.color="var(--text-muted)")},onMouseLeave:e=>{e.currentTarget.style.background="transparent",r||(e.currentTarget.style.color="var(--text-dim)")},children:a})}function ry({error:e}){let{t}=(0,c.s9)();return e?(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:"1px solid color-mix(in srgb, var(--status-error) 35%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-error) 8%, transparent)",color:"var(--status-error)",fontSize:11,lineHeight:1.45},children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,n.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,n.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontWeight:600},children:t("chatInput.modelError")}),(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e})]})]}):null}function rb({goal:e,plan:t}){let r,s,i,{t:o}=(0,c.s9)(),[l,d]=(0,a.useState)(!1),[u,p]=(0,a.useState)(()=>Date.now());return((0,a.useEffect)(()=>{if(!e)return;d(!1),p(Date.now());let t=window.setInterval(()=>p(Date.now()),3e4);return()=>window.clearInterval(t)},[e]),e||t)?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:8},children:[e&&(0,n.jsxs)("button",{type:"button","aria-expanded":l,onClick:()=>d(e=>!e),title:o(l?"chatInput.collapseGoal":"chatInput.expandGoal"),style:{display:"flex",alignItems:l?"flex-start":"center",gap:8,width:"100%",padding:"6px 9px",border:"1px solid color-mix(in srgb, var(--accent) 32%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg-panel))",color:"var(--text)",cursor:"pointer",textAlign:"left",transition:"background var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(tq.A,{size:14,strokeWidth:2,style:{flexShrink:0,marginTop:+!!l,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)",textTransform:"uppercase",letterSpacing:"0.04em"},children:[o("chatInput.goalActive")," \xb7 ",(s=Math.floor((r=Math.max(0,Math.floor((u-e.startedAt)/6e4)))/60),i=r%60,s>0?`${s}h ${i}m`:`${i}m`)]}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:l?"visible":"hidden",textOverflow:l?void 0:"ellipsis",whiteSpace:l?"pre-wrap":"nowrap",fontSize:12,lineHeight:1.4},children:e.objective})]}),t&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:7,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)(tV.A,{size:14,strokeWidth:2,style:{flexShrink:0,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontWeight:600},children:o("chatInput.planningInProgress")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)"},children:t.objective})]})]}):null}let rw=(0,a.memo)((0,a.forwardRef)(function({onSend:e,onAbort:t,onSteer:r,onFollowUp:s,isStreaming:i,model:o,isAutoModelSelection:l,modelNames:d,modelList:u,modelError:p,modelsLoading:h,onModelChange:m,fastModeEnabled:f,fastModeActive:g,fastModeSupported:x,onFastModeChange:v,onAbortCompaction:y,isCompacting:b,compactResult:w,thinkingLevel:k,onThinkingLevelChange:j,availableThinkingLevels:S,thinkingLevelMap:C,modelNameOverride:I,retryInfo:T,queuedMessages:E,inputHistory:R=[],onAbortRetry:W,slashCommands:$,slashCommandsLoading:z,onLoadSlashCommands:N,onBuiltinCommand:A,onAudioUnlock:L,onPromptWithStreamingBehavior:F,contextUsage:D,onRemoveQueuedMessage:P,onPromoteQueuedToSteer:B,draftKey:O,cwd:_,activeGoal:H,activePlan:U,advisorEnabled:q},V){var K,Z,J,Y;let G,X,Q,ee,et,er,en,es,ei=(0,t9.a)(),{t:eo,tn:el,locale:ec}=(0,c.s9)(),ed=a.useMemo(()=>new Intl.Collator(ec,{numeric:!0,sensitivity:"base"}),[ec]),[eu,ep]=(0,a.useState)(()=>O?tX(O)?.value??"":""),[eh,ef]=(0,a.useState)(!1),[eg,ex]=(0,a.useState)(null),[ev,ey]=(0,a.useState)(!1),[eb,ew]=(0,a.useState)(!1),[ek,ej]=(0,a.useState)(""),[eS,eC]=(0,a.useState)(()=>O?rm(tX(O)?.images):[]),[eT,eE]=(0,a.useState)(()=>O?rg(tX(O)?.files):[]),[eR,eM]=(0,a.useState)(null),e$=eu.trimStart(),ez=0===eS.length&&0===eT.length&&e$.startsWith("!"),eN=ez&&e$.startsWith("!!"),[eA,eL]=(0,a.useState)(!1),[eF,eD]=(0,a.useState)(0),[eP,eB]=(0,a.useState)(null),[eO,e_]=(0,a.useState)(!1),[eH,eU]=(0,a.useState)(0),[eq,eV]=(0,a.useState)(!1),[eK,eZ]=(0,a.useState)(0),[eJ,eY]=(0,a.useState)(null),[eG,eX]=(0,a.useState)(!1),[eQ,e0]=(0,a.useState)(null),e1=(0,a.useRef)(null),e2=(0,a.useRef)(null),e5=(0,a.useRef)(null),e4=(0,a.useRef)(null),e3=(0,a.useRef)(null),e6=(0,a.useRef)(null),e8=(0,a.useRef)(null),e9=(0,a.useRef)(null),e7=(0,a.useRef)(!1),te=(0,a.useRef)(0),tt=(0,a.useRef)(!1),tr=(0,a.useRef)([]),tn=(0,a.useRef)([]),ta=(0,a.useRef)([]),ts=(0,a.useRef)(null),ti=(0,a.useRef)(null),to=(0,a.useRef)(O),tl=(0,a.useRef)(eu),tc=(0,a.useRef)(eS),td=(0,a.useRef)(eT),tu=(0,a.useRef)(0),tp=(0,a.useRef)(0),th=(0,a.useRef)(0);tl.current=eu,tc.current=eS,td.current=eT,(0,a.useImperativeHandle)(V,()=>({insertIfEmpty(e){let t=e1.current;(t?t.value:eu).trim()||(ep(e),eB(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=e1.current,r=[e,t?t.value:eu].filter(e=>e.trim()).join("\n\n");ep(r),eB(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=e1.current;if(!t)return void ep(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,a=t.value.slice(0,r),s=t.value.slice(n),i=a.length>0&&!a.endsWith(" ")?" ":"";ep(a+i+e+s),eB(null),requestAnimationFrame(()=>{if(!t)return;let n=r+i.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addFiles(e){tg(e)}}));let tm=(0,a.useCallback)(async e=>{let t=Math.max(0,10-tc.current.length-tp.current),r=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(!r.length){e.length>0&&eM(0===t?"Maximum of 10 attached images reached.":`${e.length} image(s) skipped: images up to ${Math.round(10)} MB are supported.`);return}let n=tu.current;tp.current+=r.length;let a=[];try{let e=await Promise.all(r.map(e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{let r={data:n.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)};a.push(r),t(r)},n.onerror=r,n.readAsDataURL(e)})));if(tu.current!==n)return void e.forEach(rx);eC(t=>{let r=e.slice(0,Math.max(0,10-t.length));return e.slice(r.length).forEach(rx),[...t,...r]}),eM(null)}catch{a.forEach(rx),eM("One or more images could not be read. Try a different file.")}finally{tp.current-=r.length}},[]),tf=(0,a.useCallback)(async e=>{let t=Math.max(0,10-td.current.length-th.current),r=e.filter(e=>e.size<=262144).slice(0,t);if(!r.length){e.length>0&&eM(0===t?"Maximum of 10 text files reached.":`${e.length} file(s) skipped: files up to ${Math.round(256)} KB are supported.`);return}let n=tu.current;th.current+=r.length;try{let e=await Promise.all(r.map(async e=>({name:e.name,mimeType:e.type,content:await e.text(),size:e.size})));if(tu.current!==n)return;let t=e.filter(e=>!e.content.includes("\0")&&!e.content.includes("�")),a=r.length-t.length;eE(e=>[...e,...t.slice(0,Math.max(0,10-e.length))]),a>0?eM(`${a} file(s) skipped: binary or non-text files cannot be attached.`):eM(null)}catch{eM("One or more files could not be read. Try a different file.")}finally{th.current-=r.length}},[]),tg=(0,a.useCallback)(e=>{if(i)return void eM("Attachments are disabled while the agent is running.");let t=e.filter(e=>e.type.startsWith("image/")),r=e.filter(e=>!e.type.startsWith("image/"));tm(t),tf(r)},[i,tm,tf]),tx=(0,a.useCallback)(e=>{eC(t=>{let r=[...t],[n]=r.splice(e,1);return n&&rx(n),r}),eM(null)},[]),tv=(0,a.useCallback)(e=>{eE(t=>t.filter((t,r)=>r!==e)),eM(null)},[]),ty=(0,a.useCallback)(()=>{eC(e=>(e.forEach(rx),[]))},[]),tb=(0,a.useCallback)(()=>{eE([])},[]),tw=(0,a.useCallback)(()=>{var e;ep(""),eB(null),eV(!1),O&&tY.delete(O),to.current&&to.current!==O&&(e=to.current,tY.delete(e)),ty(),tb(),tu.current+=1,e1.current&&(e1.current.style.height="auto")},[ty,tb,O]);(0,a.useEffect)(()=>{O&&to.current===O&&tQ(O,{value:eu,images:eS.map(rp),files:eT.map(rf)})},[eS,eT,O,eu]),(0,a.useEffect)(()=>{let e=to.current;if(e===O)return;e&&tQ(e,{value:tl.current,images:tc.current.map(rp),files:td.current.map(rf)});let t=O?tX(O):null;to.current=O,ep(t?.value??""),eB(null),eV(!1),eC(e=>(e.forEach(rx),rm(t?.images))),eE(rg(t?.files))},[O]),(0,a.useEffect)(()=>{let e=e1.current;e&&(e.style.height="auto",eu&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[eu]),(0,a.useEffect)(()=>()=>{tc.current.forEach(rx)},[]);let tk=(0,a.useCallback)(async()=>{let t=eu.trim();if(!t&&!eS.length&&!eT.length||i)return;L?.();let r=function(e,t){if(0===t.length)return e;let r=t.map(e=>{var t,r;let n,a,s=(t=e.content,n=t.match(/`+/g)?.reduce((e,t)=>Math.max(e,t.length),0)??0,"`".repeat(Math.max(3,n+1)));return`Attached file: ${e.name}
|
|
15
|
-
${s}${r=e.name,"md"===(a=r.toLowerCase().replace(/\\/g,"/").split("/").pop()?.split(".").pop()??"")||"markdown"===a||"mdx"===a?"markdown":"text"}
|
|
16
|
-
${e.content}
|
|
17
|
-
${s}`});return[e.trim(),...r].filter(Boolean).join("\n\n")}(t,eT);if(!eS.length&&!eT.length&&t.startsWith("/")&&A){let e=await A(t);if(e.handled){e.error||e.retainInput||tw();return}}e(r,eS.length?eS:void 0),tw()},[eu,eS,eT,i,A,e,tw,L]),tj=eu.startsWith("/")&&!/\s/.test(eu.slice(1))?eu.slice(1).toLowerCase():null,[tS,tC]=(0,a.useState)(()=>new Set);(0,a.useEffect)(()=>{if(null===tj||!_)return;let e=new AbortController;return fetch(`/api/skills?cwd=${encodeURIComponent(_)}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{e&&tC(new Set((e.skills??[]).flatMap(e=>e.disableModelInvocation&&e.name?[e.name]:[])))}).catch(()=>{}),()=>e.abort()},[_,tj]);let tI=a.useMemo(()=>ri.map(e=>({name:e.name,description:eo(e.descriptionKey),...e.argumentHintKey?{argumentHint:eo(e.argumentHintKey)}:{},source:"builtin"})),[eo]),tT=a.useMemo(()=>($??[]).flatMap(e=>{let t=e.source;return ro.has(e.name)?[]:"builtin"===t||"ompBuiltin"===t?[{name:e.name,description:e.description,source:"ompBuiltin"}]:[e]}),[$]),tE=null===tj?[]:[...i?[]:tI,...tT].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(tj)||r.includes(tj)}).sort((e,t)=>{let r=ru(e,tj)-ru(t,tj);if(0!==r)return r;let n=Number(rs(e,tS))-Number(rs(t,tS));return 0!==n?n:rd[e.source]-rd[t.source]||ed.compare(e.name,t.name)}),tR=(()=>{let e=new Map;for(let t of rl)e.set(t,{source:t,items:[]});return tE.forEach((t,r)=>{e.get(t.source)?.items.push({command:t,index:r})}),rl.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),tM=el(tj?"chatInput.matchCount":"chatInput.commandCount",tE.length),tW=(0,a.useCallback)((e,t)=>{if(!_)return void eB(null);let r=t??e.length;eB(t4(e.slice(0,r)))},[_]),t$=eP?.query??null,tz=a.useMemo(()=>null!==t$&&eJ&&eJ.cwd===_?function(e,t,r=20){let n=t.toLowerCase();if(!n)return e.slice(0,r);let a=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),n=0;if(t.includes("/"))r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:t6(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),a=-1===e?r:r.slice(e+1);a===t?n=100:a.startsWith(t)?n=80:a.includes(t)?n=50:r.includes(t)?n=30:t6(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&a.push({entry:t,score:e})}return a.sort((e,t)=>t.score-e.score||t3(e.entry.path)-t3(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),a.slice(0,r).map(e=>e.entry)}(eJ.entries,t$):[],[t$,eJ,_]),tN=!!(t$&&eJ?.truncated&&eJ.cwd===_);(0,a.useEffect)(()=>{if(!tN||!_||!t$)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(_)}&q=${encodeURIComponent(t$)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>e0({cwd:_,query:t$,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tN,t$,_]);let tA=tN&&null!==eQ&&eQ.cwd===_&&eQ.query===t$,tL=tA?eQ.matches:tz,tF=null===eP?null:`${eP.start}:${+!!eP.quoted}:${eP.query}`;(0,a.useEffect)(()=>{if(null===tF){e_(!1),eU(0);return}e_(!0),eU(0)},[tF]);let tD=null!==eP;(0,a.useEffect)(()=>{if(!tD||!_)return;let e=ts.current;e&&e.cwd===_&&Date.now()-e.fetchedAt<1e4||ti.current===_||(ti.current=_,eX(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(_)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{eY({cwd:_,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)=>t3(e.path)-t3(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),ts.current={cwd:_,fetchedAt:Date.now()}}).catch(()=>{ts.current=null}).finally(()=>{ti.current=null,eX(!1)}))},[tD,_]);let tP=(0,a.useCallback)(e=>{if(!eP)return;let t=e1.current,r=t?.selectionStart??eu.length,n=eu.slice(0,eP.start),a=eu.slice(r);eP.quoted&&a.startsWith('"')&&(a=a.slice(1));let s=function(e,t,r=!1){let n=t?`${e}/`:e,a=r||n.includes(" ");if(t){let e=a?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:a?e.length-1:e.length}}let s=a?`@"${n}" `:`@${n} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,eP.quoted),i=n+s.text+a,o=n.length+s.cursorOffset;ep(i),eB(t4(i.slice(0,o))),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(o,o),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[eP,eu]);(0,a.useEffect)(()=>{eH>=tL.length&&eU(Math.max(0,tL.length-1))},[tL.length,eH]),(0,a.useEffect)(()=>{tn.current.length=tL.length},[tL.length]),(0,a.useEffect)(()=>{eO&&tn.current[eH]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eH,eO]),(0,a.useEffect)(()=>{eK>=R.length&&eZ(Math.max(0,R.length-1))},[R.length,eK]),(0,a.useEffect)(()=>{ta.current.length=R.length},[R.length]),(0,a.useEffect)(()=>{eq&&ta.current[eK]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eK,eq]);let tB=(0,a.useCallback)(e=>{ep(e),eV(!1),eZ(0),eB(null),requestAnimationFrame(()=>{let t=e1.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),tO=(0,a.useCallback)(e=>{let t=`/${e.name} `;ep(t),eL(!1),eD(0),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),t_=(0,a.useCallback)(e=>{let t=eu.trim();if(!t&&!eS.length&&!eT.length||eS.length||eT.length)return;L?.();let n="steer"===e?"steer":"followUp";if(t.startsWith("/")&&F){let e=t2(t);if("expand"===e.kind){F(e.prompt,n,eS.length?eS:void 0),tw();return}return"usage-error"===e.kind?void em.oR.error(eo("chatInput.commandUsageTitle"),eo("agentSession.commandRequiresArgs",{command:e.command,usage:eo(e.argumentHintKey)})):(F(t,n,eS.length?eS:void 0),void tw())}"steer"===e&&r?r(t,eS.length?eS:void 0):"followup"===e&&s&&s(t,eS.length?eS:void 0),tw()},[eu,eS,eT,F,r,s,tw,L,eo]),tH=[...(E?.followUp??[]).map(e=>({kind:"follow-up",text:e})),...(E?.steering??[]).map(e=>({kind:"steer",text:e}))],tU=tH[0]??null,tq=tH.length,tV=(0,a.useCallback)(()=>{tU&&(P?.(tU.text),ep(tU.text),eB(null),eV(!1),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(tU.text.length,tU.text.length),e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")}))},[tU,P]),tG=(0,a.useCallback)(()=>{tU&&P?.(tU.text)},[tU,P]),t0=(0,a.useCallback)(()=>{tU&&"follow-up"===tU.kind&&B?.(tU.text)},[tU,B]),t1=(0,a.useCallback)(e=>{let t=tE.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,eF-1);if("right"===e)return Math.min(t,eF+1);let r=tr.current[eF];if(!r)return"down"===e?Math.min(t,eF+1):Math.max(0,eF-1);let n=r.getBoundingClientRect(),a=n.left+n.width/2,s=n.top+n.height/2,i=-1,o=1/0;for(let r=0;r<=t;r+=1){if(r===eF)continue;let t=tr.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-s;if("down"===e?l<=4:l>=-4)continue;let c=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-a);c<o&&(i=r,o=c)}return i>=0?i:"down"===e?Math.min(t,eF+1):Math.max(0,eF-1)},[tE.length,eF]),t5=(0,a.useCallback)(e=>{let n=e.nativeEvent,a=Date.now()-te.current<100,o=e7.current||n.isComposing||229===n.keyCode;if("Enter"===e.key&&!e.shiftKey&&(o||a)){a&&e.preventDefault();return}if(eq&&!o){if("ArrowDown"===e.key){e.preventDefault(),eZ(e=>Math.min(Math.max(0,R.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),eZ(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eV(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&R[eK]){e.preventDefault(),tB(R[eK]);return}}if(eA&&null!==tj){if("ArrowDown"===e.key){e.preventDefault(),eD(t1("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eD(t1("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eD(t1("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eD(t1("left"));return}if("Escape"===e.key){e.preventDefault(),eL(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tE[eF]){e.preventDefault(),tO(tE[eF]);return}}if(eO&&null!==eP&&!o){if("ArrowDown"===e.key){e.preventDefault(),eU(e=>Math.min(Math.max(0,tL.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),eU(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),e_(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tL[eH]){e.preventDefault(),tP(tL[eH]);return}}if("ArrowUp"===e.key&&!o&&!i&&R.length>0&&0===eu.trim().length){e.preventDefault(),eL(!1),e_(!1),eZ(R.length-1),eV(!0);return}if("Escape"===e.key&&!o&&i&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(ei)return;e.preventDefault(),i&&(r||s)?"steer"===(0,tZ.v)()&&r?t_("steer"):t_("followup"):tk()}},[ei,i,r,s,t,eA,tj,tE,eF,tO,t_,tk,t1,eO,eP,tL,eH,tP,eq,R,eK,tB,eu]),t8=(0,a.useCallback)(()=>{let e=e1.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),rh=(0,a.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),tg(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[tg]);(0,a.useEffect)(()=>{if(null===tj){eL(!1),eD(0),tt.current=!1;return}eL(!0),eD(0),!tt.current&&N&&(tt.current=!0,Promise.resolve(N()).catch(()=>{tt.current=!1}))},[tj,N]),(0,a.useEffect)(()=>{eF>=tE.length&&eD(Math.max(0,tE.length-1))},[tE.length,eF]),(0,a.useEffect)(()=>{tr.current.length=tE.length},[tE.length]),(0,a.useEffect)(()=>{eA&&tr.current[eF]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eF,eA]);let[rw,rk]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=()=>rk(function(){try{let e=JSON.parse(localStorage.getItem("omp-composer-models")??"null");return Array.isArray(e)?new Set(e.filter(e=>"string"==typeof e)):null}catch{return null}}());return e(),window.addEventListener("omp-composer-models-change",e),()=>window.removeEventListener("omp-composer-models-change",e)},[]);let rj=a.useMemo(()=>u&&u.length>0?u.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).filter(e=>null===rw||rw.has(`${e.provider}:${e.modelId}`)).sort((e,t)=>rn(ed,e,t)):Object.entries(d??{}).map(([e,t])=>({provider:o?.provider??"unknown",modelId:e,name:t})).sort((e,t)=>rn(ed,e,t)),[u,d,o?.provider,rw,ed]),rS=a.useMemo(()=>{let e;return(e=ek.trim().toLocaleLowerCase(ec))?rj.filter(t=>t.name.toLocaleLowerCase(ec).includes(e)||t.modelId.toLocaleLowerCase(ec).includes(e)||t.provider.toLocaleLowerCase(ec).includes(e)):rj},[ec,rj,ek]),rC=a.useMemo(()=>{let e=[];for(let t of rS){let r=e.find(e=>e.provider===t.provider);r?r.options.push(t):e.push({provider:t.provider,options:[t]})}return e},[rS]),rI=o?rj.find(e=>e.modelId===o.modelId&&e.provider===o.provider)?.name??I??d?.[`${o.provider}:${o.modelId}`]??o.modelId:null,rT=!!h&&!p,rE=i||rT&&0===rj.length,rR=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,rM=w?.reason&&"manual"!==w.reason?eo("chatInput.compactedWithReason",{reason:`${w.reason[0].toUpperCase()}${w.reason.slice(1)}`}):eo("chatInput.compacted"),rW=w?eo("chatInput.compactResult",{verb:rM,before:(K=w.tokensBefore,(0,tJ.w)(K,ec)),after:(Z=w.estimatedTokensAfter,(0,tJ.w)(Z,ec)),saved:(0,tJ.w)(rR,ec)}):null,r$="auto"!==(G=k??"auto")&&C?C[G]??G:G,rz="medium"===r$.toLowerCase()?"med":r$,rN=null==(J=D?.percent)||Number.isNaN(J)?0:Math.min(100,Math.max(0,J)),rA=rN>0&&rN<10?rt(rN):`${Math.round(rN)}%`,rL=!!(D&&null!=D.percent&&D.contextWindow>0),rF=rL&&D?`${rt(rN)} / ${!re(Y=D.contextWindow)?"":Y>=1e6?`${Y/1e6}M`:Y>=1e3?`${Y/1e3}k`:String(Y)}`:null,rD=a.useMemo(()=>(function(e){if(!e)return[...t7];let t=new Set(e.filter(e=>e&&"auto"!==e));return[...t7.filter(e=>"auto"===e||t.delete(e)),...t]})(S),[S]);return(0,a.useEffect)(()=>{i&&ey(!1)},[i]),(0,a.useEffect)(()=>{if(!rL)return void ew(!1);if(!eb)return;let e=e=>{let t=e6.current;t&&!t.contains(e.target)&&ew(!1)},t=e=>{"Escape"===e.key&&ew(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[eb,rL]),(0,a.useEffect)(()=>{eh?requestAnimationFrame(()=>e4.current?.focus()):ej("")},[eh]),(0,a.useEffect)(()=>{let e=e=>{e2.current&&!e2.current.contains(e.target)&&e5.current&&!e5.current.contains(e.target)&&ef(!1),e3.current&&!e3.current.contains(e.target)&&ey(!1),!e8.current||e8.current.contains(e.target)||e1.current?.contains(e.target)||eV(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px calc(8px + env(safe-area-inset-bottom))",paddingRight:ei?16:52},children:[(0,n.jsx)("input",{ref:e9,type:"file",accept:"*/*",multiple:!0,disabled:i,style:{display:"none"},onChange:e=>{tg(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(ry,{error:p}),(0,n.jsx)(rb,{goal:H,plan:U}),T&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-warning) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-warning) 25%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-warning)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"})]}),eo("chatInput.retrying",{attempt:T.attempt,maxAttempts:T.maxAttempts}),T.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",T.errorMessage]}),W&&(0,n.jsx)("button",{type:"button",onClick:W,title:"Stop the automatic retry and leave the failed turn as-is",style:{marginLeft:"auto",padding:"3px 9px",fontSize:11,color:"var(--status-warning)",background:"transparent",border:"1px solid color-mix(in srgb, var(--status-warning) 45%, transparent)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--status-warning) 12%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:"Abort retry"})]}),rW&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-success) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-success) 24%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-success)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}),rW]}),eR&&(0,n.jsx)("div",{role:"alert",style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-error) 7%, transparent)",border:"1px solid color-mix(in srgb, var(--status-error) 30%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-error)"},children:eR}),eS.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eS.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,n.jsx)("button",{onClick:()=>tx(t),title:"Remove image","aria-label":"Remove image",style:{position:"absolute",top:-5,right:-5,width:24,height:24,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)",transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-panel)"},children:(0,n.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,n.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},t))}),eT.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eT.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,maxWidth:260,height:30,padding:"0 6px 0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",fontSize:12,color:"var(--text)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",color:"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}),(0,n.jsx)("span",{title:e.name,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11.5},children:e.name}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-dim)"},children:e.size<1024?`${e.size} B`:`${Math.round(e.size/1024)} KB`}),(0,n.jsx)("button",{onClick:()=>tv(t),title:"Remove file","aria-label":"Remove file",style:{flexShrink:0,width:18,height:18,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"transparent",border:"none",cursor:"pointer",padding:0,color:"var(--text-muted)",transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},children:(0,n.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,n.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[eq&&R.length>0&&(0,n.jsxs)("div",{ref:e8,className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(44vh, 360px)"},children:[(0,n.jsx)("div",{title:eo("chatInput.inputHistory"),style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,n.jsx)("path",{d:"M3 4v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:R.map((e,t)=>{let r=t===eK;return(0,n.jsxs)("button",{ref:e=>{ta.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tB(e)},onMouseEnter:()=>eZ(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:t+1}),(0,n.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:e})]},`${t}:${e}`)})})]}),eA&&null!==tj&&(0,n.jsxs)("div",{className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(56vh, 460px)"},children:[(0,n.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:z?eo("chatInput.loadingCommands"):eo("chatInput.slashCommandsHeader",{countLabel:tM})}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eo("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(56vh, 460px) - 34px)",overflowY:"auto",padding:10},children:z||0!==tE.length?tR.map(e=>(0,n.jsxs)("section",{style:{marginBottom:12},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:-10,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"4px 0 6px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eo(rc[e.source])}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:e.items.map(({command:e,index:t})=>{let r=t===eF,a=rs(e,tS);return(0,n.jsxs)("button",{ref:e=>{tr.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tO(e)},onMouseEnter:()=>eD(t),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${r?"var(--accent)":"var(--border)"}`,borderRadius:7,background:r?"var(--bg-selected)":"var(--bg-panel)",color:a?"var(--text-dim)":"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:r?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,n.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word"},children:["/",e.name,e.argumentHint&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--text-dim)"},children:e.argumentHint}),a&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--text-dim)"},children:eo("chatInput.dormant")})]}),e.description&&(0,n.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:e.description})]},`${e.source}:${e.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:eo("chatInput.noCommandsFound")})})]}),eO&&null!==eP&&(X=eG&&(!eJ||eJ.cwd!==_),Q=el("chatInput.matchCount",tL.length),ee=eJ?.truncated&&!tA?` \xb7 ${eP.query?eo("chatInput.searchingAllFiles"):eo("chatInput.indexTruncated")}`:"",(0,n.jsxs)("div",{className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(48vh, 400px)"},children:[(0,n.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:X?eo("chatInput.loadingFiles"):`${eo("chatInput.filesHeader",{countLabel:Q})}${ee}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eo("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(48vh, 400px) - 34px)",overflowY:"auto",padding:4},children:X||0!==tL.length?tL.map((e,t)=>{let r=t===eH,a=e.path.split("/").pop()??e.path,s=e.path.slice(0,e.path.length-a.length);return(0,n.jsxs)("button",{ref:e=>{tn.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tP(e)},onMouseEnter:()=>eU(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:6,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(M,{size:14}):ea(a,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:s}),a,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:tN&&!tA?eo("chatInput.searching"):eo("chatInput.noMatchingFiles")})})]})),tU&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderBottom:"none",borderRadius:"var(--radius-card) var(--radius-card) 0 0",background:"var(--bg-panel)",padding:"5px 8px 5px 12px",display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:10,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--text-muted)"},children:["steer"===tU.kind?eo("chatInput.queuedSteer"):eo("chatInput.queuedFollowUp"),tq>1&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:" \xb7 "+tq})]}),(0,n.jsx)("span",{title:tU.text,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-muted)"},children:tU.text}),(0,n.jsx)(rv,{onClick:tV,title:eo("chatInput.queuedEditTitle"),children:eo("chatInput.queuedEdit")}),(0,n.jsx)(rv,{onClick:tG,title:eo("chatInput.queuedDeleteTitle"),children:eo("chatInput.queuedDelete")}),(0,n.jsx)(rv,{onClick:t0,title:eo("chatInput.queuedSteerTitle"),accent:!0,children:eo("chatInput.queuedSteerAction")})]}),(0,n.jsxs)("div",{className:"chat-input-shell",style:{display:"flex",flexDirection:"column",background:"var(--bg)",border:`1px solid ${ez?"var(--tool-bg)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:"var(--radius-card)",padding:"var(--composer-shell-padding)",boxShadow:"var(--shadow-card)",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("textarea",{ref:e1,value:eu,onChange:e=>{ep(e.target.value),eV(!1),tW(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tW(t.value,t.selectionStart)},onKeyDown:t5,onCompositionStart:()=>{e7.current=!0},onCompositionEnd:e=>{e7.current=!1,te.current=Date.now();let t=e.currentTarget;tW(t.value,t.selectionStart)},onInput:t8,onPaste:rh,placeholder:eo("chatInput.placeholder"),rows:1,style:{width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto"}}),(0,n.jsxs)("div",{className:"composer-toolbar",style:{display:"flex",alignItems:"center",gap:2,marginTop:"var(--composer-toolbar-separation)",paddingTop:"var(--composer-toolbar-separation)",borderTop:"1px solid color-mix(in srgb, var(--border) 62%, transparent)",flexWrap:ei?"wrap":"nowrap"},children:[(0,n.jsx)("button",{className:"composer-attachment ui-focus-ring",onClick:()=>e9.current?.click(),disabled:i,title:eo("chatInput.attachFile"),"aria-label":eo("chatInput.attachFile"),"data-has-attachments":eS.length||eT.length?"true":void 0,children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}),(rj.length>0||rI||p||rT)&&m&&(0,n.jsxs)("div",{ref:e2,className:"composer-model-control",style:{position:"relative",minWidth:0},children:[(0,n.jsxs)("button",{className:"composer-model-button ui-focus-ring",onClick:e=>{let t=e.currentTarget.getBoundingClientRect();ex({top:t.top,left:t.left,width:t.width}),ef(e=>!e)},disabled:rE,style:{background:eh?"var(--bg-hover)":"none",cursor:rE?"not-allowed":"pointer",opacity:rE?.5:1},onMouseEnter:e=>{i||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eh?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},title:rj.length>0?eo("chatInput.changeModel"):rT?eo("chatInput.loadingModels"):eo("chatInput.noAvailableModels"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,n.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,n.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,n.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,n.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,n.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,n.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,n.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),q&&(0,n.jsx)("span",{title:eo("chatInput.advisorEnabled"),"aria-label":eo("chatInput.advisorEnabled"),style:{display:"flex",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(tK.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"composer-model-name",title:rI??void 0,children:rI??(rj.length>0?eo("chatInput.selectModel"):rT?eo("chatInput.loadingModels"):eo("chatInput.noModels"))}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),eh&&eg&&(er=(et=window.visualViewport?.height??window.innerHeight)-eg.top+6,en=Math.max(120,Math.min(eg.top-8,.6*et)),es=ei?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:eg.left,width:"max-content",minWidth:eg.width,maxWidth:"calc(100vw - 16px)"},(0,n.jsxs)("div",{ref:e5,className:"dropdown-surface",style:{position:"fixed",bottom:er,...es,zIndex:500,display:"flex",flexDirection:"column",overflow:"hidden",maxHeight:en},children:[(0,n.jsx)("div",{style:{padding:"8px 8px 6px",flexShrink:0},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:[(0,n.jsx)(eI.A,{size:13,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,n.jsx)("input",{ref:e4,type:"search",autoComplete:"off",spellCheck:!1,value:ek,onChange:e=>ej(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),ef(!1))},placeholder:eo("chatInput.searchModels"),"aria-label":eo("chatInput.searchModels"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box",minWidth:0}})]})}),(0,n.jsx)("div",{style:{overflowY:"auto",minHeight:0,paddingBottom:4},children:0===rC.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:ek.trim()?eo("chatInput.noMatchingModels"):rT?eo("chatInput.loadingModels"):eo("chatInput.noAvailableModels")}):rC.map((e,t)=>(0,n.jsxs)("div",{children:[rC.length>1&&(0,n.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:t>0?"1px solid var(--border)":"none"},children:e.provider}),e.options.map(e=>{let t=e.modelId===o?.modelId&&e.provider===o?.provider;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ef(!1),(!t||l)&&m(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:t?"var(--bg-selected)":"transparent",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{className:"model-option-name",title:e.name,style:{flex:1,minWidth:0},children:e.name})]},`${e.provider}:${e.modelId}`)})]},e.provider))})]}))]}),j&&(0,n.jsxs)("div",{ref:e3,className:"composer-thinking-control",style:{position:"relative"},children:[(0,n.jsxs)("button",{className:"composer-thinking-button ui-focus-ring",onClick:()=>ey(e=>!e),disabled:i,title:eo("chatInput.changeReasoningTitle",{level:r$}),"aria-label":`${eo("chatInput.changeReasoning")}: ${r$}`,style:{background:ev?"var(--bg-hover)":"none",cursor:i?"not-allowed":"pointer",opacity:i?.5:1},onMouseEnter:e=>{i||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=ev?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z"}),(0,n.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,n.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]}),(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:rz}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),ev&&(0,n.jsx)("div",{className:"dropdown-surface",style:{position:"absolute",bottom:"calc(100% + 6px)",left:ei?"auto":0,right:ei?0:void 0,zIndex:100,minWidth:250,maxWidth:"calc(100vw - 32px)"},children:rD.map(e=>{let t=(k??"auto")===e,r=ra[e],a=r?eo(r):"",s="auto"!==e&&C?C[e]:void 0,o=null!=s&&s!==e?s:e,l=null!=s&&s!==e;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ey(!1),t||i||j(e)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:t?"var(--bg-selected)":"transparent",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{flexShrink:0,whiteSpace:"nowrap"},children:[o,l&&(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontWeight:400},children:[" (",e,")"]})]}),a&&(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)",marginLeft:8},children:a})]},e)})})]}),x&&v&&(0,n.jsxs)("button",{className:"composer-fast-toggle ui-focus-ring",type:"button",onClick:()=>{i||v(!f)},disabled:i,title:f&&!1===g?"Fast mode is enabled but inactive for this model":`Turn OMP Fast mode ${f?"off":"on"} for this model`,"aria-pressed":f,style:{background:f?"var(--bg-selected)":"none",color:f&&!1===g?"var(--status-warning)":f?"var(--accent)":"var(--text-muted)",cursor:i?"not-allowed":"pointer",opacity:i?.5:1},children:[(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),eo("chatInput.fastLabel")]}),(0,n.jsx)("div",{className:"composer-toolbar-spacer",style:{flex:1}}),(0,n.jsxs)("div",{ref:e6,className:"composer-context-ring-wrap",children:[(0,n.jsxs)("button",{type:"button",className:"composer-context-ring","aria-haspopup":rL?"dialog":void 0,"aria-expanded":eb,"aria-label":rL?"Context window usage":"Context window usage unavailable",title:rF??void 0,disabled:!rL,onClick:()=>ew(e=>!e),children:[(0,n.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 26 26","aria-hidden":"true",style:{position:"absolute",inset:0},children:[(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--accent)",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:rr,strokeDashoffset:rr*(1-rN/100),transform:"rotate(-90 13 13)"})]}),(0,n.jsx)("span",{className:"composer-context-ring-label",children:rA})]}),rL&&rF&&eb&&(0,n.jsx)("div",{className:"dropdown-surface composer-context-ring-popup",role:"dialog","aria-label":"Context window usage",children:(0,n.jsx)("span",{className:"composer-context-ring-popup-summary",children:rF})})]}),i&&r&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-steer ui-focus-ring",onClick:()=>t_("steer"),disabled:!eu.trim()||!!eS.length||!!eT.length,title:eS.length||eT.length?eo("chatInput.imagesCannotQueue"):eo("chatInput.steerNowTitle"),"aria-label":eo("chatInput.steer"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eo("chatInput.steer")})]}),i&&s&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-followup ui-focus-ring",onClick:()=>t_("followup"),disabled:!eu.trim()||!!eS.length||!!eT.length,title:eS.length||eT.length?eo("chatInput.imagesCannotQueue"):eo("chatInput.followUpTitle"),"aria-label":eo("chatInput.followUp"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,n.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,n.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eo("chatInput.followUp")})]}),i?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:b?y:t,title:eo("chatInput.stopAgent"),"aria-label":eo("chatInput.stopAgent"),"data-state":"stop",children:[(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none","aria-hidden":"true",children:(0,n.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),(0,n.jsx)("span",{className:"composer-primary-label",children:eo("chatInput.stop")})]}):(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:tk,disabled:!eu.trim()&&!eS.length&&!eT.length,title:eo("chatInput.send"),"aria-label":eo("chatInput.send"),"data-state":"send",children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,n.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),(0,n.jsx)("span",{className:"composer-primary-label",children:eo("chatInput.send")})]})]})]})]}),ez&&(0,n.jsx)("div",{className:"text-xs px-2 py-1",style:{color:eN?"var(--text-muted)":"var(--accent)",marginTop:4},children:eN?eo("chatInput.shellLocal"):eo("chatInput.shellToModel")})]})]})}));function rk({request:e,onRespond:t}){let{t:r}=(0,c.s9)(),[s,i]=(0,a.useState)("editor"===e.method?e.prefill??"":"");(0,a.useEffect)(()=>{i("editor"===e.method?e.prefill??"":"")},[e]);let o=()=>t(e,{cancelled:!0}),l=p({onClose:o,active:!0}),d=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:s})};return(0,n.jsx)("div",{className:"animate-fade-in",onMouseDown:e=>{e.target===e.currentTarget&&o()},style:{position:"absolute",inset:0,zIndex:"var(--z-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":e.title,tabIndex:-1,className:"animate-scale-in",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",background:"var(--bg)",boxShadow:"var(--shadow-modal)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{padding:"var(--space-5) 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-lg)",fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:r("chatWindow.extensionRequest")})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-base)",lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-4)"},children:e.options.map(r=>(0,n.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:"var(--text-base)",transition:"background-color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)"},children:r},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,"aria-label":e.title||e.placeholder||"Input value",value:s,placeholder:e.placeholder,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"===e.key&&d()},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:"var(--text-base)"}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,"aria-label":e.title||"Input value",value:s,onChange:e=>i(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&d()},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:"var(--text-base)",lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-4)",padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:o,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg)",e.currentTarget.style.color="var(--text-muted)"},children:r("chatWindow.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:d,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--accent-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--accent)"},children:r("chatWindow.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:d,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--accent-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--accent)"},children:r("chatWindow.submit")}):null]})]})})}var rj=r(32383);function rS({message:e}){let t="user"===e.role?"U":"assistant"===e.role?"A":"R",r="user"===e.role?"var(--accent)":"assistant"===e.role?"var(--text-muted)":"var(--text-dim)",a=e.content,s=("string"==typeof a?[{type:"text",text:a}]:Array.isArray(a)?a:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").slice(0,400),i=!0===e.isError;return(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:r,paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{fontSize:"toolResult"===e.role||"assistant"===e.role?11.5:12.5,lineHeight:1.55,minWidth:0,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"toolResult"===e.role?"var(--text-muted)":"var(--text)",fontFamily:"toolResult"===e.role?"var(--font-mono)":"inherit"},children:"assistant"===e.role&&"string"!=typeof a&&Array.isArray(a)?a.map((e,t)=>(0,n.jsx)("div",{children:e&&"object"==typeof e&&"toolCall"===e.type?`→ ${e.toolName??"tool"} ${JSON.stringify(e.input??{})}`:e&&"object"==typeof e&&"text"===e.type?e.text??"":""},t)):s||("user"===e.role||"assistant"===e.role?"":i?"(error)":"(no output)")})]})}let rC="calc(var(--space-4) + var(--space-1)) var(--space-5)",rI={fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-dim)"};function rT({value:e}){return"string"==typeof e?(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:e}):Array.isArray(e)?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-3) / 2)"},children:e.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"•"}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(rT,{value:e})})]},t))}):null!==e&&"object"==typeof e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-2)"},children:Object.keys(e).map(t=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10.5,color:"var(--text-dim)",minWidth:110,textAlign:"right",paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(rT,{value:e[t]})})]},t))}):(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:String(e)})}function rE({task:e}){let{t}=(0,c.s9)();return e?(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",padding:rC},children:[(0,n.jsx)("span",{style:rI,children:t("subagentTranscript.taskLabel")}),(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})})]}):null}function rR({completion:e,truncated:t}){let{t:r}=(0,c.s9)(),a=null;if(e)try{let t=JSON.parse(e);null===t||"object"!=typeof t||Array.isArray(t)||(a=t)}catch{a=null}let s=a?Object.keys(a):[],i=a&&1===s.length&&"string"==typeof a[s[0]]?a[s[0]]:null;return(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",padding:rC},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"var(--space-4)"},children:[(0,n.jsx)("span",{style:rI,children:r("subagentTranscript.resultLabel")}),t&&(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:r("subagentTranscript.completionTruncated")})]}),i?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:i}):a?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(rT,{value:a})}):e?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})}):(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:r("subagentTranscript.noCompletion")})]})}function rM({subagent:e,sessionId:t,transcriptVersion:r,events:s,onClose:i}){let{t:o}=(0,c.s9)(),[l,d]=(0,a.useState)(null),[u,p]=(0,a.useState)(null),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1),[x,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(!1),[w,k]=(0,a.useState)([]),[j,S]=(0,a.useState)(0),[C,I]=(0,a.useState)(!1),[T,E]=(0,a.useState)(null),[R,M]=(0,a.useState)(!1),W=(0,a.useRef)(0),$=(0,a.useRef)(0),z=(0,a.useRef)(0),N=(0,a.useRef)(0),A=(0,a.useRef)(0),L=(0,a.useRef)(null),F=null!==e,D=e?.source==="history",P=!D,B=(0,a.useCallback)(async()=>{if(!t||!e?.id)throw Error("No session");let r=await fetch(`/api/sessions/${encodeURIComponent(t)}/subagents/${encodeURIComponent(e.id)}?mode=completion`);if(404===r.status)return{completion:null,truncated:!1};if(!r.ok)throw Error(`HTTP ${r.status}`);return await r.json()},[t,e?.id]),O=(0,a.useCallback)(async(r,n)=>{if(!t||!e?.id)throw Error("No session");if(n){let n=await fetch(`/api/sessions/${encodeURIComponent(t)}/subagents/${encodeURIComponent(e.id)}?fromByte=${r}`);if(!n.ok)throw Error(`HTTP ${n.status}`);return await n.json()}return await (0,rj.$)(t,{type:"get_subagent_messages",subagentId:e.id,sessionFile:e.sessionFile,fromByte:r})},[t,e?.id,e?.sessionFile]),_=(0,a.useCallback)(async r=>{if(!t||!e?.id)return;let n=++$.current;I(!0),E(null);try{let t;try{t=await O(r,D)}catch(n){if(D||!e.id)throw n;t=await O(r,!0)}if(n!==$.current)return;t.reset?k(t.messages):k(e=>[...e,...t.messages]),S(t.nextByte);let a="number"==typeof t.totalBytes?t.nextByte>=t.totalBytes:0===t.messages.length;M(a||t.nextByte<=t.fromByte)}catch(e){if(n!==$.current)return;E(e instanceof Error?e.message:String(e))}finally{n===$.current&&I(!1)}},[t,e?.id,D,O]),H=(0,a.useCallback)(async()=>{if(!t||!e?.id)return;let r=++W.current;g(!0),v(null);try{let n=await B();if(null===n.completion&&P){let n=((await (0,rj.$)(t,{type:"get_subagents"})).subagents??[]).find(t=>t.id===e?.id);if(r!==W.current)return;n&&d(n)}if(r!==W.current)return;p(n.completion),m(n.truncated)}catch(e){if(r!==W.current)return;v(e instanceof Error?e.message:String(e))}finally{r===W.current&&g(!1)}},[t,e?.id,P,B]);(0,a.useEffect)(()=>{F&&t&&(W.current+=1,$.current+=1,p(null),m(!1),v(null),d(null),b(!1),k([]),S(0),M(!1),E(null),I(!1),H())},[F,t,H]),(0,a.useEffect)(()=>{if(!F||!t||0===r||f)return;let e=r===z.current&&r===A.current,n=r===N.current;if(!e||!n)return A.current=r,L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{L.current=null,z.current!==A.current&&(z.current=A.current,H()),y&&!C&&N.current!==A.current&&(N.current=A.current,_(j))},600),()=>{L.current&&clearTimeout(L.current)}},[F,t,r,f,y,C,H,_,j]);let U=l?.agent??e?.agent??"",q=l?.description??e?.description??"",V=l?.task??e?.task??e?.assignment??"",K=e?.progress,Z=th(K?.tokens),J=e?.source==="history"?[Z?o("chatWindow.tokensUnit",{count:Z}):null,tm(K?.cost),tf(K?.durationMs),K?.resolvedModel?K.resolvedModel.replace(/:.*$/,""):null].filter(Boolean).join(" \xb7 "):null,Y=e?.source==="history"?e?.result?.abortReason??e?.result?.error:void 0,G=P&&!u&&s&&s.length>0?s.slice(-4):null;return(0,n.jsx)(es.lG,{open:F,onOpenChange:e=>{e||i()},children:e&&(0,n.jsx)(es.Cf,{ariaLabel:o("subagentTranscript.title"),style:{width:"min(94vw, 920px)",maxWidth:"min(94vw, 920px)"},children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"calc(var(--space-4) + var(--space-1))",marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)(es.L3,{style:{marginBottom:2,fontSize:16,lineHeight:1.3},children:(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)",fontSize:"var(--text-lg)"},children:U})}),q&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:"var(--space-2)"},children:q}),(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.sessionFile??e.sessionFile??e.id}),J&&(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:"var(--space-1)"},children:J}),Y&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--status-error)",marginTop:"var(--space-1)",wordBreak:"break-word"},children:Y})]}),(0,n.jsx)(es.HM,{style:{flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1,padding:"2px 6px"},"aria-label":o("subagentTranscript.close"),children:"\xd7"})]}),G&&(0,n.jsx)("div",{"aria-live":"polite",style:{display:"grid",gap:"var(--space-1)",marginBottom:"var(--space-4)",padding:"var(--space-3) var(--control-padding-inline)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:G.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",color:"tool"===e.kind?"var(--accent)":"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"tool"===e.kind?"\xb7":"notice"===e.kind?"!":"\xbb"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label})]},t))}),x?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",padding:"8px 2px"},children:x}):(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-4) + var(--space-1))"},children:[(0,n.jsx)(rE,{task:V}),(0,n.jsx)(rR,{completion:u,truncated:h}),f&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:o("subagentTranscript.loading")}),(0,n.jsx)("button",{type:"button","aria-expanded":y,"aria-controls":"subagent-transcript-panel",onClick:()=>{let e=!y;b(e),e&&0===w.length&&!C&&_(0)},style:{alignSelf:"flex-start",background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:o(y?"subagentTranscript.hideTranscript":"subagentTranscript.showTranscript")}),y&&(0,n.jsxs)("div",{id:"subagent-transcript-panel",style:{display:"grid",gap:"var(--space-4)",padding:rC,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",maxHeight:"50dvh",overflowY:"auto"},children:[T?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)"},children:T}):0!==w.length||C?w.map((e,t)=>(0,n.jsx)(rS,{message:e},t)):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:o("subagentTranscript.noMessages")}),C&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:o("subagentTranscript.loading")}),!R&&!C&&(0,n.jsx)("button",{type:"button",onClick:()=>void _(j),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:o("subagentTranscript.loadMore")})]})]})]})},e.id)})}function rW(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 r.slice(0,200);let n=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(n.length)return n.join(", ")}return""}function r$(e){return"user"===e.role?{bg:"color-mix(in srgb, var(--accent) 18%, transparent)",border:"color-mix(in srgb, var(--accent) 70%, transparent)"}:{bg:"color-mix(in srgb, var(--text-dim) 12%, transparent)",border:"color-mix(in srgb, var(--text-dim) 50%, transparent)"}}let rz=(0,a.memo)(function({messages:e,scrollContainer:t,messageRefs:r}){let[s,i]=(0,a.useState)(0),[o,l]=(0,a.useState)(1),[c,d]=(0,a.useState)(!1),[u,p]=(0,a.useState)([]),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null),x=(0,a.useRef)(!1),v=(0,a.useRef)(null),y=(0,a.useRef)(null),b=(0,a.useRef)(null),w=(0,a.useRef)(null),k=(0,a.useRef)(e);k.current=e;let j=(0,a.useCallback)(()=>{let e=t.current;if(!e)return;let r=e.scrollHeight,n=e.clientHeight,a=r-n;d(a>20),a<=0?(i(0),l(1)):(i(e.scrollTop/a),l(n/r))},[t]),S=(0,a.useRef)(null),C=(0,a.useCallback)(()=>{S.current||(S.current=setTimeout(()=>{S.current=null;let e=t.current;if(!e)return;let n=e.scrollHeight;if(n<=0)return;let a=r.current,s=[],i=0,o=k.current,l=e.getBoundingClientRect();for(let t=0;t<o.length;t++){let r=o[t];if("user"!==r.role&&"assistant"!==r.role)continue;let c=a?.[i];if(i++,("user"===r.role||"assistant"===r.role&&(r.content??[]).some(e=>"text"===e.type))&&c){let t=c.getBoundingClientRect(),a=t.top-l.top+e.scrollTop,i=t.height;s.push({topRatio:a/n,heightRatio:i/n,msg:r,index:s.length})}}p(s)},150))},[t,r]),I=(0,a.useRef)(null),T=(0,a.useCallback)(()=>{I.current=null,j()},[j]);(0,a.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{null===I.current&&(I.current=requestAnimationFrame(T))};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r),null!==I.current&&(cancelAnimationFrame(I.current),I.current=null)}},[t,T]),(0,a.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{j(),C()},n=new ResizeObserver(r);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),r(),()=>{n.disconnect(),S.current&&(clearTimeout(S.current),S.current=null)}},[t,C,j]),(0,a.useEffect)(()=>{let e=setTimeout(()=>{j(),C()},50);return()=>clearTimeout(e)},[e.length,C,j]),(0,a.useEffect)(()=>()=>{null!==b.current&&(cancelAnimationFrame(b.current),b.current=null)},[]);let E=(0,a.useCallback)(e=>{let r=t.current;if(!r)return;let n=r.scrollHeight-r.clientHeight;n<=0||(r.scrollTop=Math.max(0,Math.min(1-o,e))/(1-o)*n)},[t,o]),R=(0,a.useCallback)(()=>{b.current=null,null!==w.current&&(g(w.current),w.current=null)},[]),M=(0,a.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();w.current=(e.clientY-t.top)/t.height,null===b.current&&(b.current=requestAnimationFrame(R))},[R]),W=(0,a.useCallback)(e=>{if(!c)return;x.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-s*(1-o),a=n>=0&&n<=o?n:o/2;E(r-a);let i=e=>{x.current&&E((e.clientY-t.top)/t.height-a)},l=()=>{x.current=!1,v.current=null,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",l)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",l),v.current={onMove:i,onUp:l}},[c,o,s,E]);(0,a.useEffect)(()=>()=>{let e=v.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),v.current=null),x.current=!1},[]);let $=y.current?.clientHeight??600,z=(0,a.useMemo)(()=>u.map(e=>r$(e.msg)),[u]),N=(0,a.useMemo)(()=>u.map(e=>rW(e.msg)),[u]),A=(0,a.useMemo)(()=>{if(!h||0===u.length)return[];let e=u.map(e=>Math.round(e.topRatio*$-11));for(let t=0;t<10;t++){for(let t=1;t<e.length;t++){let r=e[t-1]+22+2;e[t]<r&&(e[t]=r)}for(let t=e.length-2;t>=0;t--){let r=e[t+1]-22-2;e[t]>r&&(e[t]=r)}}for(let t=0;t<e.length;t++)e[t]=Math.max(0,Math.min($-22,e[t]));return e},[h,u,$]);if(!c)return null;let L=s*(1-o)*100,F=100*o,D=null!==f&&u.length>0?u.reduce((e,t)=>Math.abs(t.topRatio-f)<Math.abs(u[e].topRatio-f)?t.index:e,0):null;return(0,n.jsxs)("div",{ref:y,onMouseDown:W,onMouseEnter:()=>m(!0),onMouseLeave:()=>{m(!1),g(null)},onMouseMove:M,style:{position:"absolute",top:0,right:0,bottom:0,width:20,zIndex:20,cursor:"default",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",right:3,width:3,top:`${L}%`,height:`${F}%`,background:"color-mix(in srgb, var(--text-dim) 32%, transparent)",borderRadius:2,pointerEvents:"none",zIndex:1}}),u.map(e=>{let t=z[e.index]??r$(e.msg),r=h&&D===e.index,a="user"===e.msg.role,s=100*e.topRatio;return(0,n.jsx)("div",{style:{position:"absolute",top:`${s}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"flex-end",paddingRight:1,cursor:"pointer",zIndex:2},children:(0,n.jsx)("div",{style:{width:a?8:6,height:a?8:6,borderRadius:a?2:"50%",background:t.bg,border:`1.5px solid ${t.border}`,flexShrink:0,transition:"transform var(--dur-fast) var(--ease-out-warm)",transform:r?"scale(1.6)":"scale(1)"}})},e.index)}),(0,n.jsx)("div",{style:{position:"absolute",right:4,top:0,bottom:0,width:1,background:"color-mix(in srgb, var(--border) 72%, transparent)",zIndex:0}}),h&&u.map((e,t)=>{let r=N[t]??rW(e.msg),a=z[t]??r$(e.msg),s=D===e.index;return r&&0!==A.length?(0,n.jsx)("div",{style:{position:"absolute",top:A[t],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${s?a.border:"var(--border)"}`,borderRight:`1px solid ${s?a.border:"var(--border)"}`,borderBottom:`1px solid ${s?a.border:"var(--border)"}`,borderLeft:`2px solid ${a.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:s?1:.45,transition:"top var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:s?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r})},e.index):null})]})});var rN=r(58769);let rA={display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-xs)",color:"var(--text-muted)"};function rL({status:e}){let t={size:14,strokeWidth:1.8,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(tc.A,{...t,color:"var(--accent)"}):"in_progress"===e?(0,n.jsx)(rN.A,{...t,color:"var(--accent)"}):"blocked"===e?(0,n.jsx)(E.A,{...t,color:"var(--text-muted)"}):"abandoned"===e?(0,n.jsx)(td.A,{...t,color:"var(--text-dim)"}):(0,n.jsx)(tu.A,{...t,color:"var(--text-dim)"})}function rF({phases:e=[],collapsible:t=!1,defaultExpanded:r=!1}){let{t:s}=(0,c.s9)(),[i,o]=(0,a.useState)(!1),[l,d]=(0,a.useState)(!!t&&!r);if(0===e.length)return null;let u=e.flatMap(e=>e.tasks),p=u.filter(e=>"completed"===e.status).length,h=5,m=(i?e:e.slice(0,4)).map(e=>{let t=i?e.tasks:e.tasks.slice(0,h);return h-=t.length,{...e,tasks:t}}).filter(e=>e.tasks.length>0),f=m.reduce((e,t)=>e+t.tasks.length,0)<u.length,g=l?"":"border-b border-border",x=s("chatWindow.todoProgress",{done:p,total:u.length});return(0,n.jsxs)("section",{"aria-label":s("chatWindow.todoList"),className:"overflow-hidden border border-border bg-bg-subtle",style:{borderRadius:"var(--radius-card)",marginBlock:t?void 0:"var(--space-4)"},children:[t?(0,n.jsxs)("button",{type:"button","aria-expanded":!l,onClick:()=>d(e=>!e),title:l?s("chatWindow.expandPanel"):s("chatWindow.collapsePanel"),className:`${g} w-full cursor-pointer text-left`,style:{...rA,background:"none"},children:[(0,n.jsx)(tV.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:s("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:x}),(0,n.jsx)(eW.A,{size:14,strokeWidth:1.8,"aria-hidden":!0,style:{color:"var(--text-dim)",transform:l?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}):(0,n.jsxs)("div",{className:g,style:rA,children:[(0,n.jsx)(tV.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:s("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:x})]}),!l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"animate-slide-down",style:{display:"grid",gap:"var(--space-5)",padding:"calc(var(--space-4) + var(--space-1)) var(--space-5)"},children:m.map((e,t)=>(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)"},children:[(0,n.jsx)("div",{className:"text-sm font-medium text-text-muted",children:e.name}),(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)"},children:e.tasks.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-4)",fontSize:"var(--text-base)",color:"var(--text)"},"aria-label":`${s(`chatWindow.todoStatus.${e.status}`)}: ${e.content}`,children:[(0,n.jsx)("span",{style:{marginTop:"var(--space-1)",flexShrink:0},children:(0,n.jsx)(rL,{status:e.status})}),(0,n.jsxs)("span",{className:"min-w-0",children:[(0,n.jsx)("span",{className:"completed"===e.status||"abandoned"===e.status?"text-text-dim line-through":void 0,children:e.content}),e.blocker&&(0,n.jsx)("span",{style:{display:"block",marginTop:"var(--space-1)",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:s("chatWindow.todoBlocker",{blocker:e.blocker})})]})]},e.id??`${e.content}-${t}`))})]},e.id??`${e.name}-${t}`))}),(f||i)&&(0,n.jsx)("button",{type:"button",className:"border-t border-border text-left text-xs text-accent hover:text-accent-hover",style:{padding:"var(--space-4) var(--space-5)"},onClick:()=>o(e=>!e),children:i?s("chatWindow.todoShowLess"):s("chatWindow.todoShowAll")})]})]})}var rD=r(57990),rP=r(36338),rB=r(88359),rO=r(12651),r_=r(85302),rH=r(90710),rU=r(59103),rq=r(83599),rV=r(14577);function rK(e,t){switch(t){case"active":return e.filter(e=>"history"!==e.source&&"started"===e.status);case"completed":return e.filter(e=>"completed"===e.status);case"failed":return e.filter(e=>"failed"===e.status||"aborted"===e.status);default:return e}}function rZ(e){return"history"===e.source?"history":"live"}function rJ(e){return"started"!==e.status}function rY(e,t,r){if(0===t.length)return e;let n=new Map;for(let t of e)n.set(t.id,t);let a=r?.skipNewerThan;for(let e of t){let t=n.get(e.id);if(!t){n.set(e.id,e);continue}if(void 0!==a&&(t.lastUpdate??0)>=a)continue;let r=rZ(t),s=rZ(e);if("history"===s&&"live"===r){if(!rJ(e))continue;let r={...t};for(let[t,n]of Object.entries(e))void 0!==n&&(r[t]=n);r.source="history",n.set(e.id,r);continue}if("live"===s&&"history"===r){n.set(e.id,e);continue}"history"===s&&!rJ(e)&&rJ(t)||n.set(e.id,{...t,...e,source:s})}return[...n.values()].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id))}let rG={started:"chatWindow.subagentState.started",completed:"chatWindow.subagentState.completed",failed:"chatWindow.subagentState.failed",aborted:"chatWindow.subagentState.aborted"},rX=[{value:"all",key:"chatWindow.subagentHub.filter.all"},{value:"active",key:"chatWindow.subagentHub.filter.active"},{value:"completed",key:"chatWindow.subagentHub.filter.completed"},{value:"failed",key:"chatWindow.subagentHub.filter.failed"}];function rQ({icon:e,label:t,children:r}){return(0,n.jsxs)("span",{"aria-label":t,title:t,"data-subagent-metric":t,style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",minWidth:0,fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)(e,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0}}),(0,n.jsx)("span",{children:r})]})}function r0({subagent:e}){let{t}=(0,c.s9)(),r=e.progress,a=!!(r?.retryState??r?.retryFailure),s=[];if(a){let e=r?.retryState?.attempt??r?.retryFailure?.attempt??0,a=r?.retryState?.maxAttempts??0,i=a>0?t("chatWindow.subagentRetrying",{attempt:e,max:a}):t("chatWindow.subagentRetryAttempt",{attempt:e});s.push((0,n.jsx)(rQ,{icon:eS.A,label:i,children:a>0?`${e}/${a}`:e},"retry"))}else if("started"===e.status){let e=r?.currentTool?`${r.currentTool}${r.lastIntent?` — ${r.lastIntent}`:""}`:r?.lastIntent;e&&s.push((0,n.jsx)(rQ,{icon:r?.currentTool?rD.A:rP.A,label:e,children:e},"activity"))}let i=function(e){if(!e)return 0;let t=0,r=e.inflightTaskDetails;r&&"object"==typeof r&&!Array.isArray(r)&&Array.isArray(r.progress)&&(t+=r.progress.length);let n=e.extractedToolData?.task;if(Array.isArray(n))for(let e of n)e&&"object"==typeof e&&!Array.isArray(e)&&Array.isArray(e.progress)&&(t+=e.progress.length);return t}(r),o=e.agentSource&&"bundled"!==e.agentSource?e.agentSource:null,l=th(r?.tokens),d=tm(r?.cost??e.result?.cost),u=th(r?.contextTokens),p=u?`${u}/${th(r?.contextWindow)??"?"}`:null,h=tg(r?.resolvedModel),m=tf(r?.durationMs),f=[o?(0,n.jsx)(rQ,{icon:rB.A,label:o,children:"user"===o?null:o},"source"):null,i>0?(0,n.jsx)(rQ,{icon:ez.A,label:t("chatWindow.subagentNestedCount",{count:i}),children:i},"nested"):null,l?(0,n.jsx)(rQ,{icon:rO.A,label:t("chatWindow.tokensUnit",{count:l}),children:l},"tokens"):null,d?(0,n.jsx)(rQ,{icon:r_.A,label:d,children:d},"cost"):null,p?(0,n.jsx)(rQ,{icon:eR.A,label:t("chatWindow.contextGauge",{used:u??"?",total:th(r?.contextWindow)??"?"}),children:p},"context"):null,h?(0,n.jsx)(rQ,{icon:rH.A,label:h,children:h},"model"):null,m?(0,n.jsx)(rQ,{icon:rU.A,label:m,children:m},"duration"):null].filter(Boolean);return(f.length>0&&s.push((0,n.jsx)("span",{style:{display:"inline-flex",flexWrap:"wrap",gap:"var(--space-2) var(--space-4)"},children:f},"meta")),0===s.length)?null:(0,n.jsx)("span",{style:{display:"flex",minWidth:0,overflow:"hidden",fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:a?"var(--accent)":"var(--text-dim)",lineHeight:1.4,fontVariantNumeric:"tabular-nums",gap:"var(--space-4)",flexWrap:"wrap"},children:s})}function r1({events:e}){let{t}=(0,c.s9)(),r=(e??[]).slice(-2).map(e=>e.label.trim()).filter(Boolean);if(0===r.length)return null;let a=r.join(" \xb7 "),s=`${t("chatWindow.subagentHub.preview")}: ${a}`;return(0,n.jsxs)("span",{title:s,"aria-label":s,style:{display:"flex",minWidth:0,overflow:"hidden",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",lineHeight:1.4,wordBreak:"keep-all"},children:[(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)"},children:[t("chatWindow.subagentHub.preview"),":"]}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:"var(--space-2)"},children:a})]})}function r2({children:e,depth:t=0}){return(0,n.jsx)("div",{style:{marginLeft:t>0?`calc(var(--space-6) * ${t})`:void 0,color:"var(--text-dim)",fontSize:"var(--text-xs)",fontWeight:650,letterSpacing:"0.04em",textTransform:"uppercase",padding:"var(--space-2) var(--space-5) var(--space-2)",wordBreak:"keep-all"},children:e})}function r5({subagent:e,events:t,freshnessNow:r,onSelectSubagent:a}){let{t:s}=(0,c.s9)(),i="history"!==e.source,o=s(rG[e.status]),l="history"!==e.source||"started"!==e.status,d=e.task??e.description??e.assignment??s("chatWindow.subagentHub.noTask"),u=void 0===r?"history"===e.source?"history":"live":function(e,t=Date.now()){return"history"===e.source?"history":"started"!==e.status?"live":void 0===e.lastUpdate||t-e.lastUpdate>15e3?"stale":"live"}(e,r),p=s(`chatWindow.subagentHub.fresh.${u}`),h="stale"===u&&void 0!==r&&"number"==typeof e.lastUpdate?Math.max(Math.ceil(15),Math.floor(Math.max(0,r-e.lastUpdate)/1e3)):null,m=null===h?null:s("chatWindow.subagentHub.lastUpdated",{value:`${h}s`}),f=m?`${p} \xb7 ${m}`:p,g="live"===u?"var(--status-success)":"stale"===u?"var(--status-warning)":"var(--text-dim)",x=[e.agent,d,l?o:null,f].filter(Boolean).join(" \xb7 ");return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring",onClick:()=>a(e),"aria-label":x,title:x,style:{display:"flex",width:"100%",minWidth:0,minHeight:"var(--control-touch, 44px)",flexDirection:"column",alignItems:"stretch",justifyContent:"center",gap:"var(--space-2)",padding:"var(--space-4) var(--space-5)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:i?"var(--bg)":"var(--bg-panel)",color:i?"var(--text)":"var(--text-dim)",opacity:i?1:.72,fontFamily:"inherit",fontSize:"var(--text-sm)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 40%, var(--border))",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background=i?"var(--bg)":"var(--bg-panel)"},children:[(0,n.jsxs)("span",{style:{display:"flex",minWidth:0,alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)(tp,{status:e.status,live:i}),(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:e.agent}),(0,n.jsx)("span",{title:d,style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"inherit"},children:d}),l&&(0,n.jsx)("span",{style:{flexShrink:0,color:i?"var(--text-muted)":"var(--text-dim)",fontSize:"var(--text-xs)"},children:o}),(0,n.jsxs)("span",{"data-subagent-freshness":u,"aria-label":f,title:f,style:{display:"inline-flex",flexShrink:0,alignItems:"center",gap:"var(--space-2)",color:g,fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums",opacity:"history"===u?.8:.9},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{width:"var(--space-2)",height:"var(--space-2)",flexShrink:0,borderRadius:"var(--radius-control)",background:g}}),(0,n.jsx)("span",{children:p}),m&&(0,n.jsx)("span",{children:m})]}),e.detached&&(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:"⤴"})]}),(0,n.jsx)(r0,{subagent:e}),(0,n.jsx)(r1,{events:t})]})}function r4({subagents:e,subagentEvents:t={},onSelectSubagent:r,defaultExpanded:s=!1,now:i}){let{t:o}=(0,c.s9)(),[l,d]=(0,a.useState)(!s),[u,p]=(0,a.useState)("all"),[h,m]=(0,a.useState)(null),f=e.filter(e=>"history"!==e.source&&"started"===e.status).length,g=e.some(e=>"history"!==e.source&&"started"===e.status);(0,a.useEffect)(()=>{if(void 0!==i||l||!g)return;let e=()=>m(Date.now());e();let t=window.setInterval(e,5e3);return()=>window.clearInterval(t)},[l,g,i]);let x=i??h??0,v=void 0!==i||null!==h,y=(0,a.useMemo)(()=>({all:e.length,active:rK(e,"active").length,completed:rK(e,"completed").length,failed:rK(e,"failed").length}),[e]),b=(0,a.useMemo)(()=>rK(e,u),[e,u]),w=(0,a.useMemo)(()=>(function(e){let t=[...e].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id)),r=new Set(t.map(e=>e.id)),n=new Map,a=[],s=new Map;for(let e of t){let t=e.parentToolCallId;if(!t){a.push(e);continue}let i=n.get(t)??[];if(i.push(e),n.set(t,i),!r.has(t)){let r=s.get(t)??[];r.push(e),s.set(t,r)}}let i=[],o=new Set,l=(e,t)=>{for(let r of e){if(o.has(r.id))continue;o.add(r.id),i.push({kind:"row",key:`row-${r.id}`,subagent:r,depth:t});let e=(n.get(r.id)??[]).filter(e=>!o.has(e.id));0!==e.length&&(i.push({kind:"group",key:`group-nested-${r.id}`,group:"nested",parentLabel:r.agent,depth:t+1}),l(e,t+1))}};if(a.length>0&&(i.push({kind:"group",key:"group-roots",group:"roots",depth:0}),l(a,0)),s.size>0)for(let[e,t]of(i.push({kind:"group",key:"group-orphans",group:"orphans",depth:0}),s))i.push({kind:"group",key:`group-parent-${e}`,group:"nested",parentLabel:e,depth:0}),l(t,0);let c=t.filter(e=>!o.has(e.id));return c.length>0&&l(c,0),i})(b),[b]);return(0,n.jsxs)("section",{"aria-label":o("chatWindow.subagentsPanel"),style:{width:"100%",minWidth:0,overflow:"hidden",border:"thin solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","aria-expanded":!l,onClick:()=>d(e=>!e),title:l?o("chatWindow.subagentHub.expand"):o("chatWindow.subagentHub.collapse"),style:{display:"flex",width:"100%",minHeight:"var(--control-touch, 44px)",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-4) var(--space-5)",border:"none",borderBottom:l?"none":"thin solid var(--border)",background:"transparent",color:"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-sm)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all"},children:[(0,n.jsx)(rq.A,{"aria-hidden":!0,style:{width:"var(--text-lg)",height:"var(--text-lg)",flexShrink:0}}),(0,n.jsx)("strong",{style:{color:"var(--text)",fontWeight:650},children:o("chatWindow.subagentsPanel")}),(0,n.jsxs)("span",{"aria-label":o("chatWindow.subagentSummary",{running:f,total:e.length}),title:o("chatWindow.subagentSummary",{running:f,total:e.length}),style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",marginLeft:"auto",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)("span",{children:f}),(0,n.jsx)("span",{"aria-hidden":!0,children:"/"}),(0,n.jsx)("span",{children:e.length})]}),(0,n.jsx)(eW.A,{"aria-hidden":!0,style:{width:"var(--text-lg)",height:"var(--text-lg)",flexShrink:0,color:"var(--text-dim)",transform:l?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}),!l&&(0,n.jsxs)("div",{style:{display:"grid",maxHeight:"30vh",gap:"var(--space-4)",overflowY:"auto",padding:"var(--space-4) var(--space-5) var(--space-5)"},children:[(0,n.jsx)("div",{"data-subagent-filter-row":!0,role:"group",style:{display:"flex",minWidth:0,flexWrap:"wrap",gap:"var(--space-1)",alignItems:"center",padding:"var(--space-1)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)"},children:rX.map(({value:e,key:t})=>{let r=u===e,a=o(t);return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","data-subagent-filter":e,"aria-pressed":r,title:`${a} (${y[e]})`,onClick:()=>p(e),style:{display:"inline-flex",minHeight:"var(--control-touch, 44px)",alignItems:"center",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",border:"none",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 16%, var(--bg))":"transparent",color:r?"var(--accent)":"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-xs)",fontWeight:r?650:550,cursor:"pointer",wordBreak:"keep-all",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{children:a}),(0,n.jsx)("span",{"aria-hidden":!0,style:{display:"inline-flex",minWidth:"var(--space-8)",height:"var(--space-6)",alignItems:"center",justifyContent:"center",padding:"0 var(--space-2)",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 20%, transparent)":"var(--bg-subtle)",color:r?"var(--accent)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums"},children:y[e]})]},e)})}),0===b.length?(0,n.jsx)("div",{style:{padding:"var(--space-5)",color:"var(--text-dim)",fontSize:"var(--text-sm)",textAlign:"center",wordBreak:"keep-all"},children:o("chatWindow.subagentHub.empty")}):w.map(e=>{if("group"===e.kind){let t="roots"===e.group?o("chatWindow.subagentHub.group.roots"):"orphans"===e.group?o("chatWindow.subagentHub.group.orphans"):o("chatWindow.subagentHub.group.nested",{agent:e.parentLabel??""});return(0,n.jsx)(r2,{depth:e.depth,children:t},e.key)}let a=e.depth>0?{marginLeft:`calc(var(--space-6) * ${e.depth})`,paddingLeft:"var(--space-5)",borderLeft:"thin solid var(--border)"}:void 0;return(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)",...a},children:(0,n.jsx)(r5,{subagent:e.subagent,events:t[e.subagent.id],freshnessNow:v?x:void 0,onSelectSubagent:r})},e.key)}),(0,n.jsxs)("div",{"data-subagent-observe-only":!0,role:"note",style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text-dim)",wordBreak:"keep-all"},children:[(0,n.jsx)(rV.A,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0,marginTop:"var(--space-1)"}}),(0,n.jsxs)("span",{style:{display:"grid",minWidth:0,gap:"var(--space-1)",fontSize:"var(--text-xs)",lineHeight:1.4},children:[(0,n.jsx)("strong",{style:{color:"var(--text-muted)",fontWeight:650},children:o("chatWindow.subagentHub.observeOnly")}),(0,n.jsx)("span",{title:o("chatWindow.subagentHub.observeOnlyHint"),children:o("chatWindow.subagentHub.observeOnlyHint")})]})]})]})]})}function r3({todoPhases:e,subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:s=!1}){return 0===e.length&&0===t.length?null:(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[(0,n.jsx)(rF,{phases:e,collapsible:!0,defaultExpanded:s}),t.length>0&&(0,n.jsx)(r4,{subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:s})]})}function r6(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:{...e,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}}class r8 extends TypeError{constructor(e){super(e),this.name="AssistantMessagePatchError"}}function r9(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function r7(e){return r9(e)&&"assistant"===e.role&&Array.isArray(e.content)&&e.content.every(e=>r9(e)&&"string"==typeof e.type)}function ne(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0}function nt(e,t=new WeakMap){if(null===e||"object"!=typeof e)return e;let r=t.get(e);if(void 0!==r)return r;if(Array.isArray(e)){let r=[];for(let n of(t.set(e,r),e))r.push(nt(n,t));return r}let n={};for(let r of(t.set(e,n),Object.keys(e)))n[r]=nt(e[r],t);return n}function nr(e,t){if(!r9(e)||"string"!=typeof e.op)throw new r8(`operation ${t} malformed`);switch(e.op){case"append_text":if(!ne(e.index)||"string"!=typeof e.text)throw new r8(`operation ${t} malformed`);return;case"append_thinking":if(!ne(e.index)||"string"!=typeof e.thinking)throw new r8(`operation ${t} malformed`);return;case"set_block":var r;if(!ne(e.index)||!(r9(r=e.block)&&"string"==typeof r.type))throw new r8(`operation ${t} malformed`);return;case"truncate_content":if(!ne(e.length))throw new r8(`operation ${t} malformed`);return;case"replace_message":if(!r7(e.message))throw new r8(`operation ${t} malformed`);return;default:throw new r8(`operation ${t} unknown`)}}let nn=Number.MAX_SAFE_INTEGER;class na extends TypeError{constructor(e,t="frame"){super(`${t}: ${e}`),this.name="RelayFrameValidationError",this.path=t}}function ns(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ni(e){return"number"==typeof e&&Number.isSafeInteger(e)&&e>=0&&e<=nn}function no(e,t=0){if(t>64)return!1;if(null===e||"boolean"==typeof e||"string"==typeof e&&e.length<=0x1000000||"number"==typeof e&&Number.isFinite(e))return!0;if(Array.isArray(e))return e.length<=16384&&e.every(e=>no(e,t+1));if(!ns(e))return!1;let r=Object.keys(e);return r.length<=65536&&r.every(r=>no(e[r],t+1))}function nl(e,t,r){if("string"!=typeof e||0===e.length||e.length>r)throw new na(`expected non-empty string (max ${r})`,t)}function nc(e,t){if(!ni(e))throw new na("expected a non-negative safe integer",t)}function nd(e,t){if(!ns(e))throw new na("expected an object",t);if(nl(e.type,`${t}.type`,256),!no(e))throw new na("contains a non-JSON value",t)}function nu(e,t="message"){if(!ns(e))throw new na("expected an object",t);if("assistant"!==e.role)throw new na('role must be "assistant"',`${t}.role`);if(!Array.isArray(e.content)||e.content.length>16384)throw new na("content must be an array within bounds",`${t}.content`);if(!no(e))throw new na("contains a non-JSON value",t);e.content.forEach((e,r)=>nd(e,`${t}.content[${r}]`))}function np(e){return!function(e){if(!ns(e))throw new na("expected an object");if(1!==e.wire)throw new na("wire must be 1","frame.wire");if(nl(e.sessionId,"frame.sessionId",256),nc(e.epoch,"frame.epoch"),nc(e.seq,"frame.seq"),!no(e))throw new na("contains a non-JSON value","frame");switch(e.type){case"relay_sync":if(nc(e.headSeq,"frame.headSeq"),nc(e.commitSeq,"frame.commitSeq"),e.seq!==e.headSeq)throw new na("sync seq must equal headSeq","frame.seq");if(e.commitSeq>e.headSeq)throw new na("commitSeq cannot exceed headSeq","frame.commitSeq");if("boolean"!=typeof e.requiresStateRefresh)throw new na("expected a boolean","frame.requiresStateRefresh");null!==e.active&&function(e,t){if(!ns(e))throw new na("expected an object",t);nl(e.messageId,`${t}.messageId`,256),nc(e.revision,`${t}.revision`),nu(e.message,`${t}.message`)}(e.active,"frame.active");return;case"event":if(!ns(e.event)||!no(e.event))throw new na("event must be a JSON object","frame.event");return;case"message_begin":nl(e.messageId,"frame.messageId",256),nc(e.revision,"frame.revision"),nu(e.message,"frame.message");return;case"message_patch":if(nl(e.messageId,"frame.messageId",256),nc(e.baseRevision,"frame.baseRevision"),nc(e.revision,"frame.revision"),e.revision<=e.baseRevision)throw new na("revision must be greater than baseRevision","frame.revision");!function(e,t="frame.operations"){if(!Array.isArray(e)||e.length>4096)throw new na("expected an array within bounds",t);e.forEach((e,r)=>(function(e,t){if(!ns(e))throw new na("expected an object",t);switch(e.op){case"append_text":if(!ni(e.index))throw new na("index must be a non-negative safe integer",`${t}.index`);if("string"!=typeof e.text||e.text.length>0x1000000)throw new na("text must be a bounded string",`${t}.text`);return;case"append_thinking":if(!ni(e.index))throw new na("index must be a non-negative safe integer",`${t}.index`);if("string"!=typeof e.thinking||e.thinking.length>0x1000000)throw new na("thinking must be a bounded string",`${t}.thinking`);return;case"set_block":if(!ni(e.index))throw new na("index must be a non-negative safe integer",`${t}.index`);nd(e.block,`${t}.block`);return;case"truncate_content":if(!ni(e.length))throw new na("length must be a non-negative safe integer",`${t}.length`);return;case"replace_message":nu(e.message,`${t}.message`);return;default:throw new na("unknown patch operation",`${t}.op`)}})(e,`${t}[${r}]`))}(e.operations,"frame.operations");return;case"message_commit":if(nl(e.messageId,"frame.messageId",256),!0!==e.authoritative)throw new na("authoritative must be true","frame.authoritative");nu(e.message,"frame.message");return;case"session_closed":if("destroyed"!==e.reason&&"identity_changed"!==e.reason&&"startup_failed"!==e.reason)throw new na("unknown close reason","frame.reason");return;default:throw new na("unknown frame type","frame.type")}}(e),e}function nh(e,t=new WeakMap){if(null===e||"object"!=typeof e)return e;let r=t.get(e);if(void 0!==r)return r;if(Array.isArray(e)){let r=[];for(let n of(t.set(e,r),e))r.push(nh(n,t));return r}let n={};for(let r of(t.set(e,n),Object.keys(e)))n[r]=nh(e[r],t);return n}function nm(e){return{sessionId:e,epoch:null,lastSeq:-1,lastAppliedSeq:-1,headSeq:-1,commitSeq:-1,requiresStateRefresh:!1,status:"idle",active:null,activeMessageId:null,activeRevision:null,activeMessage:null,committedMessageId:null,committedMessage:null,closedReason:null}}function nf(e=null){return nm(e)}function ng(e,t){return{...e,active:t?nh(t):null,activeMessageId:t?.messageId??null,activeRevision:t?.revision??null,activeMessage:t?nh(t.message):null}}function nx(e,t){return{...e,sessionId:e.sessionId??t.sessionId,epoch:e.epoch??t.epoch,lastSeq:t.seq,lastAppliedSeq:t.seq,headSeq:t.seq}}function nv(e,t,r,n,a,s=!1){let i=s&&r?nx(e,r):{...e};return i.status="desynced",i.requiresStateRefresh=!0,{state:i,effect:{type:"desync",reason:t,expectedSeq:n,receivedSeq:a,frame:r}}}let ny=[],nb=["read","bash","edit","write","task"],nw=["bash","read","edit","write","grep","find","ls","task"],nk="omp-web:tool-preset";function nj(){try{return window.localStorage}catch{return null}}function nS(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function nC(e){return"string"==typeof e?e:void 0}function nI(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function nT(e){return"bundled"===e||"user"===e||"project"===e?e:void 0}function nE(e){var t;if(!nS(e))return;let r={},n=nI(e.index);void 0!==n&&(r.index=n);let a=nC(e.id);void 0!==a&&(r.id=a);let s=nC(e.agent);void 0!==s&&(r.agent=s);let i=nT(e.agentSource);void 0!==i&&(r.agentSource=i);let o="pending"===(t=e.status)||"running"===t||"completed"===t||"failed"===t||"aborted"===t?t:void 0;void 0!==o&&(r.status=o);let l=nC(e.task);void 0!==l&&(r.task=l);let c=nC(e.assignment);void 0!==c&&(r.assignment=c);let d=nC(e.description);void 0!==d&&(r.description=d);let u=nC(e.lastIntent);void 0!==u&&(r.lastIntent=u);let p=nC(e.currentTool);void 0!==p&&(r.currentTool=p);let h=nC(e.currentToolArgs);void 0!==h&&(r.currentToolArgs=h);let m=nI(e.currentToolStartMs);void 0!==m&&(r.currentToolStartMs=m),Array.isArray(e.recentTools)&&(r.recentTools=e.recentTools),Array.isArray(e.recentOutput)&&(r.recentOutput=e.recentOutput.filter(e=>"string"==typeof e));let f=nI(e.toolCount);void 0!==f&&(r.toolCount=f);let g=nI(e.requests);void 0!==g&&(r.requests=g);let x=nI(e.tokens);void 0!==x&&(r.tokens=x);let v=nI(e.contextTokens);void 0!==v&&(r.contextTokens=v);let y=nI(e.contextWindow);void 0!==y&&(r.contextWindow=y);let b=nI(e.cost);void 0!==b&&(r.cost=b);let w=nI(e.durationMs);void 0!==w&&(r.durationMs=w),("string"==typeof e.modelOverride||Array.isArray(e.modelOverride)&&e.modelOverride.every(e=>"string"==typeof e))&&(r.modelOverride=e.modelOverride);let k=nC(e.modelRole);void 0!==k&&(r.modelRole=k);let j=nC(e.resolvedModel);if(void 0!==j&&(r.resolvedModel=j),"boolean"==typeof e.resolvedModelIsFallback&&(r.resolvedModelIsFallback=e.resolvedModelIsFallback),nS(e.retryState)){let t=nI(e.retryState.attempt),n=nI(e.retryState.maxAttempts),a=nI(e.retryState.delayMs),s=nC(e.retryState.errorMessage),i=nI(e.retryState.startedAtMs);void 0!==t&&void 0!==n&&void 0!==a&&void 0!==s&&void 0!==i&&(r.retryState={attempt:t,maxAttempts:n,delayMs:a,errorMessage:s,startedAtMs:i})}if(nS(e.retryFailure)){let t=nI(e.retryFailure.attempt),n=nC(e.retryFailure.errorMessage);void 0!==t&&void 0!==n&&(r.retryFailure={attempt:t,errorMessage:n})}return void 0!==e.inflightTaskDetails&&(r.inflightTaskDetails=e.inflightTaskDetails),nS(e.extractedToolData)&&(r.extractedToolData=e.extractedToolData),Object.keys(r).length>0?r:void 0}function nR(e){let t;if(!nS(e))return;let r=nC(e.id),n=nC(e.agent);if(!r||!n)return;if("started"===e.status||"completed"===e.status||"failed"===e.status||"aborted"===e.status)t=e.status;else{if("pending"!==e.status&&"running"!==e.status)return;t="started"}let a={id:r,agent:n,status:t,index:nI(e.index)??-1,source:"live"},s=nT(e.agentSource);void 0!==s&&(a.agentSource=s);let i=nC(e.description);void 0!==i&&(a.description=i);let o=nC(e.task);void 0!==o&&(a.task=o);let l=nC(e.assignment);void 0!==l&&(a.assignment=l);let c=nC(e.sessionFile);void 0!==c&&(a.sessionFile=c);let d=nC(e.parentToolCallId);void 0!==d&&(a.parentToolCallId=d);let u=nI(e.lastUpdate);void 0!==u&&(a.lastUpdate=u);let p=nE(e.progress);return void 0!==p&&(a.progress=p),a}function nM(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 nW(e){let t=Object.keys(e);if(t.length<=64)return e;let r={...e},n=t.length-64;for(let e of t.filter(e=>!/^(?:0|[1-9]\d*)$/.test(e))){if(n<=0)break;delete r[e],n-=1}if(n>0)for(let e of t){if(n<=0)break;void 0!==r[e]&&(delete r[e],n-=1)}return r}function n$(e){let t={id:e.id,agent:e.agent,agentSource:e.agentSource,description:e.description,status:e.status,task:e.task,assignment:e.assignment,index:e.index,sessionFile:e.sessionFile,source:"history",detached:e.detached,result:e.result};return t.progress={status:"started"===e.status?"running":e.status,task:e.task,assignment:e.assignment,description:e.description,lastIntent:e.lastIntent,toolCount:e.toolCount,requests:e.requests,tokens:e.tokens,contextTokens:e.contextTokens,contextWindow:e.contextWindow,cost:e.cost,durationMs:e.durationMs,modelOverride:e.modelOverride,modelRole:e.modelRole,resolvedModel:e.resolvedModel,resolvedModelIsFallback:e.resolvedModelIsFallback,retryFailure:e.retryFailure},t}let nz={steering:[],followUp:[]},nN="omp-queue-";function nA(e){return 0===e.steering.length&&0===e.followUp.length}function nL(e){return e&&"inherit"!==e?e:"auto"}function nF(e){return e?.provider&&e.id?{provider:e.provider,modelId:e.id,name:e.name,reasoning:e.reasoning,thinking:e.thinking}:null}let nD=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class nP extends Error{constructor(e){super("timeout"===e?(0,c.Tl)("agentSession.eventStreamTimeout"):(0,c.Tl)("agentSession.eventStreamFailed")),this.status=e,this.name="EventStreamConnectionError"}}function nB(e){if("string"!=typeof e)return!1;let t=e.trim();if(!t||t.startsWith("//"))return!1;let r=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(t);if(!r)return!1;let n=r[1].toLowerCase();return"http"===n||"https"===n||"mailto"===n}function nO(e){return new Promise(t=>setTimeout(t,e))}function n_(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function nH(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:n_(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:n_(e.visible)};case"remove":return function(e,t){let r=e,n=t;for(;n.length>0&&r.length<5;){let[e,...t]=n;r=[...r,e],n=t}return n.length>0&&!r.some(e=>e.exiting)&&(r=n_(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function nU(e){let t=e.content;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function nq(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 nV(e){try{return JSON.stringify(e)}catch{return""}}function nK(e){let t=e.content;return"string"==typeof t?JSON.stringify({text:t,images:[]}):Array.isArray(t)?JSON.stringify({text:nU(e),images:t.map(nq).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function nZ(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:"number"==typeof e.estimatedTokensAfter?e.estimatedTokensAfter:0}:null}function nJ(e,t){let r=t?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}}));return{userMsg:{role:"user",content:r?.length?[...e.trim()?[{type:"text",text:e}]:[],...r]:e,timestamp:Date.now()},piImages:t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}))}}function nY(e){if("builtin"===e.source)return null;let t="extension"===e.source?"extension":"skill"===e.source?"skill":"prompt";return{name:e.name,description:e.description,source:t}}function nG(e){return e.type.startsWith("image/")||"text/plain"===e.type||"text/markdown"===e.type}let nX=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,nQ=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,n0=/\x1B\[([0-9;]*)m/g,n1=/\x1B_pi:c\x07/g,n2=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],n5=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function n4(e){return e.replace(n1,"").replace(nX,"")}function n3(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(nQ);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let a=String.fromCodePoint(n);t.push({start:r,end:r+a.length,char:a}),r+=a.length}return t}function n6(e,t){let r=n3(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function n8(e){return n3(e)[0]?.char}let n9={ArrowUp:"\x1b[A",ArrowDown:"\x1b[B",ArrowRight:"\x1b[C",ArrowLeft:"\x1b[D",Home:"\x1b[H",End:"\x1b[F",Insert:"\x1b[2~",Delete:"\x1b[3~",PageUp:"\x1b[5~",PageDown:"\x1b[6~",Escape:"\x1b",Backspace:""},n7={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function ae(e,t=50){return e+t}function at(e){return"user"===e.role||"custom"===e.role&&"compaction"===e.customType}function ar(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function an(){let{t:e}=(0,c.s9)(),[t,r]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=!1;return fetch("/api/omp-version").then(e=>e.ok?e.json():null).then(t=>{!e&&t?.version&&r(t.version.replace(/^omp\//,""))}).catch(()=>{}),()=>{e=!0}},[]),(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["omp ",(0,n.jsx)("span",{style:{color:"var(--text)"},children:t?`v${t}`:e("chatWindow.versionNotFound")})]})}function aa({messageCount:e,toolCallCount:t,children:r}){let{t:s,tn:i}=(0,c.s9)(),[o,l]=(0,a.useState)(!1),d=[s("chatWindow.processDetails"),i("chatWindow.messageCount",e)];return t>0&&d.push(i("chatWindow.toolCallCount",t)),(0,n.jsxs)("div",{style:{marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":o,onClick:()=>l(e=>!e),className:"process-details-toggle",title:s(o?"chatWindow.collapseProcessDetails":"chatWindow.expandProcessDetails"),children:[(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true",style:{flexShrink:0,transform:o?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("span",{className:"process-details-label",children:d.join(" \xb7 ")})]}),o&&(0,n.jsx)("div",{style:{marginTop:"var(--space-4)"},children:r})]})}let as=(0,a.memo)(function({messages:e,entryIds:t,conversationMeta:r,messageRefs:s,isStreaming:i,sessionBusy:o,isNew:l,forkingEntryId:d,handleFork:u,handleNavigate:p,handleEditContent:h,modelNames:m,messageCwd:f,onOpenFile:g,sessionId:x,toolCallsDefaultCollapsed:v,visibleCount:y,nearBottom:b,sentinelRef:w,handleLoadMoreClick:k}){let{t:j}=(0,c.s9)(),{toolResultsMap:S,lastAnchorIdx:C,visibleRefIndexByMessage:I}=r,T=(r,a={})=>{let c=a.messageOverride??e[r],y="user"===c.role&&r>0&&"assistant"===e[r-1].role?t[r-1]:void 0,b="user"===c.role||"assistant"===c.role,w=I.get(r),k=a.keyPrefix??"message",j=!1;if("assistant"===c.role){j=!0;for(let t=r+1;t<e.length;t++){let r=e[t].role;if("user"===r)break;if("assistant"===r){j=!1;break}}j&&i&&r===e.length-1&&(j=!1)}void 0!==a.showTimestamp&&(j=a.showTimestamp);let C=(0,n.jsx)(tw,{message:c,toolResults:S,modelNames:m,cwd:f,onOpenFile:g,entryId:t[r],onFork:o||l||0===r&&"user"===c.role?void 0:u,forking:d===t[r],onNavigate:o?void 0:p,prevAssistantEntryId:o?void 0:y,onEditContent:h,showTimestamp:j,prevTimestamp:r>0?e[r-1].timestamp:void 0,sessionId:x,toolCallsDefaultCollapsed:v},`${k}-view-${r}`);return b&&!1!==a.attachRef&&void 0!==w?(0,n.jsx)("div",{ref:e=>{s.current[w]=e},children:C},`${k}-${r}`):C},E=[];for(let t=0;t<e.length;){if(!at(e[t])){E.push(T(t)),t+=1;continue}let r=t,a=r+1;for(;a<e.length&&!at(e[a]);)a+=1;let l=function(e,t,r){for(let a=r-1;a>t;a--){var n;if("assistant"===(n=e[a]).role&&e2(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return a}for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,r,a);if(-1===l||(o||i)&&a===e.length&&r===C){for(let e=r;e<a;e++)E.push(T(e));t=a;continue}E.push(T(r));let c=[];for(let e=r+1;e<l;e++)c.push(e);let d=c.filter(t=>{var r;return"assistant"===(r=e[t]).role?e1(r).length>0:"custom"===r.role}),u=e[l],p=e2(u),h=p.processBlocks.length>0?ar(u,p.processBlocks,{omitUsage:!0}):null,m=p.answerBlocks.length>0?ar(u,p.answerBlocks):null,f=d.length+ +!!h;if(f>0){let t=d.map(e=>I.get(e)).find(e=>"number"==typeof e)??(m?void 0:I.get(l)),a=(0,n.jsxs)(aa,{messageCount:f,toolCallCount:function(e,t){let r=0;for(let n of t){let t=e[n];t?.role==="assistant"&&(r+=e5(e1(t)))}return r}(e,d)+e5(p.processBlocks),children:[d.map(e=>T(e,{attachRef:!1,keyPrefix:"process"})),h&&T(l,{attachRef:!1,keyPrefix:"process-final",messageOverride:h,showTimestamp:!1})]});E.push((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{s.current[t]=e},children:a},`process-group-${r}-${l}`))}m&&E.push(T(l,{messageOverride:m}));for(let e=l+1;e<a;e++)E.push(T(e));t=a}let R=(0,a.useRef)(null),{startIndex:M,hasMore:W}=(0,a.useMemo)(()=>{let e=Math.max(0,E.length-y);if(b||null===R.current)return R.current=e,{startIndex:e,hasMore:e>0};let t=Math.min(R.current,e);return R.current=t,{startIndex:t,hasMore:t>0}},[E.length,y,b]);return(0,n.jsxs)(n.Fragment,{children:[W&&(0,n.jsx)("button",{ref:w,type:"button",onClick:k,className:"py-3 w-full text-center text-xs text-text-muted hover:text-text transition-colors cursor-pointer",children:j("chatWindow.scrollUpToLoad",{count:M})}),E.slice(M)]})});function ai({session:e,newSessionCwd:t,advisorEnabled:r,toolCallsDefaultCollapsed:s=!0,onAgentEnd:i,onSessionCreated:l,onSessionForked:d,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:m,onSystemPromptLoaderChange:f,onSessionStatsChange:g,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onContextUsageChange:y,onOpenFile:b}){let{t:w,tn:k}=(0,c.s9)(),{playDoneSound:j,unlockAudio:S}=function(){let[e,t]=(0,a.useState)(()=>{let e=localStorage.getItem("omp-sound-enabled");return null===e||"true"===e}),r=(0,a.useRef)(e);(0,a.useEffect)(()=>{r.current=e},[e]),(0,a.useEffect)(()=>{let e=e=>{let n=e.detail;"boolean"==typeof n&&(r.current=n,t(n))};return window.addEventListener("omp-sound-pref-change",e),()=>window.removeEventListener("omp-sound-pref-change",e)},[]);let n=(0,a.useRef)(null),s=(0,a.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),i=(0,a.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=s();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[s]);return{soundEnabled:e,onSoundToggle:(0,a.useCallback)(()=>{let e=!r.current;e&&i(!0),r.current=e,localStorage.setItem("omp-sound-enabled",String(e)),t(e)},[i]),playDoneSound:(0,a.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,n)=>{let a=e.createOscillator(),s=e.createGain();a.connect(s),s.connect(e.destination),a.type="sine",a.frequency.value=r;let i=t+.18*n;s.gain.setValueAtTime(0,i),s.gain.linearRampToValueAtTime(.18,i+.02),s.gain.exponentialRampToValueAtTime(.001,i+.45),a.start(i),a.stop(i+.45),a.onended=()=>{a.disconnect(),s.disconnect()}})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[s]),unlockAudio:i,soundEnabledRef:r}}(),C=(0,t9.a)(),I=(0,a.useRef)(j);I.current=j;let T=(0,a.useCallback)(()=>{I.current(),i?.()},[i]),E=(0,a.useCallback)(e=>{p?.current?.insertIfEmpty(e)},[p]),{loading:R,error:M,messages:W,entryIds:$,streamState:z,agentRunning:N,bashRunning:A,pendingBash:L,modelNames:F,modelList:D,modelsLoading:P,modelError:B,modelThinkingLevels:O,modelThinkingLevelMaps:_,thinkingLevel:H,fastModeEnabled:U,fastModeActive:q,liveModelMeta:V,retryInfo:K,contextUsage:Z,forkingEntryId:J,isCompacting:Y,compactResult:G,displayModel:X,sessionStats:Q,slashCommands:ee,slashCommandsLoading:et,queuedMessages:er,notices:en,extensionDialog:ea,extensionCustomUi:es,extensionStatuses:ei,extensionWidgets:eo,respondToExtensionUi:el,sendExtensionCustomInput:ec,isAutoModelSelection:ed,agentPhase:eu,activeGoal:ep,activePlan:eh,subagents:eg,subagentEvents:ex,subagentTranscriptVersions:ev,activeSubagentCount:ey,currentTodoPhase:eb,todoPhases:ew,isNew:ek,sessionIdRef:ej,messagesEndRef:eS,scrollContainerRef:eC,handleSend:eI,handleAbort:eT,handleFork:eE,handleNavigate:eR,handleModelChange:eM,handleSteer:eW,handleFollowUp:e$,handlePromptWithStreamingBehavior:ez,handleAbortCompaction:eN,removeQueuedMessage:eA,promoteQueuedToSteer:eL,handleBuiltinSlashCommand:eF,handleThinkingLevelChange:eD,handleFastModeChange:eP,handleCycleModel:eB,handleCycleThinkingLevel:eO,handleAbortRetry:e_,loadSlashCommands:eH}=function(e){let{session:t,newSessionCwd:r,advisorEnabled:n,onAgentEnd:s,onSessionCreated:i,onSessionForked:o,modelsRefreshKey:l,onBranchDataChange:d,onSystemPromptChange:u,onSystemPromptLoaderChange:p,onSessionStatsPanelOpen:h,onOpenSettingsTab:m,onOpenFile:f}=e,g=ef(),x=null===t&&null!==r,[v,y]=(0,a.useState)(null),[b,w]=(0,a.useState)(!x),[k,j]=(0,a.useState)(null),[S,C]=(0,a.useState)(null),[I,T]=(0,a.useState)([]),[E,R]=(0,a.useState)([]),[M,W]=(0,a.useReducer)(nM,{isStreaming:!1,streamingMessage:null}),[$,z]=(0,a.useState)(!1),[N,A]=(0,a.useState)(!1),[L,F]=(0,a.useState)(null),D=(0,a.useRef)(!0),[P,B]=(0,a.useState)({}),[O,_]=(0,a.useState)([]),[H,U]=(0,a.useState)(!1),[q,V]=(0,a.useState)(null),[K,Z]=(0,a.useState)(null),[J,Y]=(0,a.useState)({}),[G,X]=(0,a.useState)({}),[Q,ee]=(0,a.useState)(null),[et,er]=(0,a.useState)(null),[en,ea]=(0,a.useState)(()=>(function(e=nj()){if(!e)return"default";try{let t=e.getItem(nk);return"none"===t||"default"===t||"full"===t?t:"default"}catch{return"default"}})()),[es,ei]=(0,a.useState)("auto"),[eo,el]=(0,a.useState)(!1),[ec,ed]=(0,a.useState)(void 0),[eu,ep]=(0,a.useState)("immediate"),[eh,eg]=(0,a.useState)(!0),[ex,ev]=(0,a.useState)(!1),[ey,eb]=(0,a.useState)("all"),[ew,ek]=(0,a.useState)("all"),[ej,eS]=(0,a.useState)(null),[eC,eI]=(0,a.useState)(null),eT=(0,a.useRef)(0),eE=(0,a.useCallback)(e=>{e&&e.contextWindow>0&&(eT.current=e.contextWindow),eI(t=>(function(e,t){if(!t)return null;let r=0===t.tokens||null===t.tokens,n=(e?.tokens??0)>0;if(r&&n||null!=t.tokens&&t.contextWindow>0&&t.tokens>1.1*t.contextWindow)return e;let a=t.tokens??e?.tokens??null;return{percent:t.percent??(t.contextWindow>0&&null!=a?a/t.contextWindow*100:e?.percent??null),contextWindow:t.contextWindow,tokens:a}})(t,e))},[]),[eR,eM]=(0,a.useState)(null),[eW,e$]=(0,a.useState)(null),[ez,eN]=(0,a.useState)(null),[eA,eL]=(0,a.useState)(null),[eF,eD]=(0,a.useState)(!1),[eP,eB]=(0,a.useState)(null),[eO,e_]=(0,a.useState)(null),[eH,eU]=(0,a.useState)(null),[eq,eV]=(0,a.useState)([]),[eK,eZ]=(0,a.useState)(!1),[eJ,eY]=(0,a.useReducer)(nH,{visible:[],pending:[]}),[eG,eX]=(0,a.useState)(null),[eQ,e0]=(0,a.useState)(null),[e1,e2]=(0,a.useState)(null),[e5,e4]=(0,a.useState)([]),[e3,e6]=(0,a.useState)([]),[e8,e9]=(0,a.useState)({steering:[],followUp:[]}),[e7,te]=(0,a.useState)([]),[tt,tr]=(0,a.useState)({}),[tn,ta]=(0,a.useState)({}),[ts,ti]=(0,a.useState)([]),[to,tl]=(0,a.useState)(null),[tc,td]=(0,a.useState)(null),tu=e7.filter(e=>"history"!==e.source&&"started"===e.status).length,tp=(0,a.useRef)(null),th=(0,a.useRef)(null),tm=(0,a.useRef)(null),tf=(0,a.useRef)(null),tg=(0,a.useRef)(null),tx=(0,a.useRef)(t?.id??null),tv=(0,a.useRef)(0),ty=(0,a.useRef)(!1),tb=(0,a.useRef)(!1),tw=(0,a.useRef)(0),tk=(0,a.useRef)(!1),tj=(0,a.useRef)(!1),tS=(0,a.useRef)(0),tC=(0,a.useRef)(null),tI=(0,a.useRef)(nf(t?.id??null)),tT=(0,a.useRef)(-1),tE=(0,a.useRef)(null),tR=(0,a.useRef)(!1),tM=(0,a.useRef)(0),tW=(0,a.useRef)(new Set),t$=(0,a.useRef)(null),tz=(0,a.useRef)(!1),tN=(0,a.useRef)(!1),tA=(0,a.useRef)(!0),tL=(0,a.useRef)(void 0),tF=(0,a.useRef)(0),tD=(0,a.useRef)(0),tP=(0,a.useRef)(null),tB=(0,a.useRef)(null),tO=(0,a.useRef)(null),t_=(0,a.useRef)(!1),tH=(0,a.useRef)(null),tU=(0,a.useRef)(null),tq=(0,a.useRef)(null),tV=(0,a.useRef)(null),tK=(0,a.useRef)(0),tZ=(0,a.useRef)(0),tJ=(0,a.useRef)(null),tY=(0,a.useRef)(!1);null===th.current&&(th.current=function({createSource:e,timeoutMs:t,readyOnOpen:r=!0,onFatalClose:n}){let a=null,s=e=>a===e&&!e.invalidated,i=e=>{null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.timeout=setTimeout(()=>{s(e)&&l(e,"timeout")},t)},o=e=>{e.promise=new Promise(t=>{e.resolve=t}),e.settled=!1,e.status=null,i(e)},l=(e,t)=>{e.settled||(e.settled=!0,e.status=t,null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.resolve({status:t,source:e.source}))},c=(e,t)=>{!e.invalidated&&(e.invalidated=!0,a===e&&(a=null),l(e,"closed"),t&&2!==e.source.readyState&&e.source.close())},d=e=>{if(s(e)){if(2===e.source.readyState){l(e,"closed"),c(e,!1),n?.(e.sessionId,e.source);return}0===e.source.readyState&&e.settled&&o(e)}},u=t=>{let n,o=null,c=new Promise(e=>{n=e}),u=e(t,{onOpen:()=>{var e;o&&(!s(e=o)||2!==e.source.readyState&&r&&l(e,"connected"))},onError:()=>{o&&d(o)}});return a=o={sessionId:t,source:u,promise:c,resolve:n,settled:!1,status:null,invalidated:!1,timeout:null},i(o),1===u.readyState?r&&l(o,"connected"):2===u.readyState&&d(o),o.promise};return{ensure(e){let t=a;if(t&&t.sessionId===e){if(1===t.source.readyState)return r?(t.settled||l(t,"connected"),Promise.resolve({status:"connected",source:t.source})):t.settled?"connected"===t.status?Promise.resolve({status:"connected",source:t.source}):(c(t,!0),u(e)):t.promise;if(0===t.source.readyState)return t.settled&&o(t),t.promise;c(t,!0)}else t&&c(t,!0);return u(e)},currentSource:e=>a?.sessionId!==e||a.invalidated?null:a.source,isCurrent:(e,t)=>a?.sessionId===e&&a.source===t&&!a.invalidated,markConnected(e,t){let r=a;r&&r.sessionId===e&&r.source===t&&2!==r.source.readyState&&l(r,"connected")},invalidate(e,t){let r=a;r&&(void 0===e||r.sessionId===e)&&(void 0===t||r.source===t)&&c(r,!0)}}}({timeoutMs:6e4,readyOnOpen:!1,createSource:(e,t)=>{tM.current+=1,tI.current=nf(e);let r=new URLSearchParams({wire:"compact-v1"});tT.current>=0&&r.set("commit",String(tT.current));let n=new EventSource(`/api/agent/${encodeURIComponent(e)}/events?${r.toString()}`),a=tM.current;return n.onopen=t.onOpen,n.onerror=t.onError,n.onmessage=t=>{let r;if(th.current?.isCurrent(e,n)&&tM.current===a){try{r=JSON.parse(t.data)}catch{t$.current?.(e,n,a,void 0);return}t$.current?.(e,n,a,r)}},tp.current=n,n},onFatalClose:(e,t)=>{tp.current!==t||(tp.current=null,tg.current&&(clearTimeout(tg.current),tg.current=null),tk.current&&(tg.current=setTimeout(()=>{tg.current=null,tk.current&&tx.current===e&&(tm.current?.(e),tf.current?.(e))},1e3)))}}));let tG=th.current,tX=e.setToolPreset??ea,tQ=ez??v?.context.model??eA??null,t0=x?Q??et:ez??(K?{provider:K.provider,modelId:K.modelId}:v?.context.model??eA),t1=function(e,t,r){if(re(r))return r;if(!t)return 0;let n=e.find(e=>e.provider===t.provider&&e.id===t.modelId);return re(n?.contextWindow)?n.contextWindow:0}(O,t0,eT.current),t5=(0,a.useMemo)(()=>eC??function(e,t){if(!t||!(t>0))return null;for(let r=e.length-1;r>=0;r--){let n=e[r];if("assistant"!==n.role||!n.usage)continue;let a=n.usage,s=(a.input??0)+(a.output??0)+(a.cacheRead??0)+(a.cacheWrite??0);if(!(s<=0)&&!(s>1.1*t))return{tokens:s,contextWindow:t,percent:s/t*100}}return null}(I,t1),[eC,I,t1]),t4=(0,a.useMemo)(()=>{if(eG)return eG;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,a=0,s=0,i=0;for(let t of I){if("user"===t.role&&(n+=1),"toolResult"===t.role&&(s+=1),"assistant"!==t.role)continue;a+=1;let o=t.usage;i+=t.content.filter(e=>"toolCall"===e.type).length,o&&(e.input+=o.input??0,e.output+=o.output??0,e.cacheRead+=o.cacheRead??0,e.cacheWrite+=o.cacheWrite??0,r+=o.cost?.total??0)}return(e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0===e.total&&0===I.length)?null:{sessionFile:v?.filePath||void 0,sessionId:tx.current??t?.id??"",sessionName:t?.name,userMessages:n,assistantMessages:a,toolCalls:i,toolResults:s,totalMessages:I.length,tokens:e,cost:r,...t5?{contextUsage:t5}:{}}},[I,eG,t5,v?.filePath,t?.id,t?.name]);(0,a.useEffect)(()=>{eI(null),eT.current=0},[t?.id]),(0,a.useEffect)(()=>{let e=t?.id??null,r=tp.current;tx.current=e,tM.current+=1,tI.current=nf(e),tT.current=-1,tE.current=null,tR.current=!1,tW.current.clear(),tG.invalidate(),r&&r.readyState!==EventSource.CLOSED&&r.close(),tp.current=null},[tG,t?.id]),(0,a.useEffect)(()=>{let e=t?.id;(td(null),e)?tl(function(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return null;let{objective:r,startedAt:n}=t;if("string"!=typeof r||!r.trim()||"number"!=typeof n||!Number.isFinite(n)||n<0)return null;return{objective:r,startedAt:n}}catch{return null}}(sessionStorage.getItem(`ompgui:goal:${e}`)||sessionStorage.getItem(`omp-web:goal:${e}`))):tl(null)},[t?.id]),(0,a.useEffect)(()=>{$||td(null)},[$]);let t3=(0,a.useMemo)(()=>{for(let e=0;e<ts.length;e++){let t=ts[e],r=Array.isArray(t?.tasks)?t.tasks:[],n=r.filter(e=>"completed"===e.status).length;if(r.some(e=>"pending"===e.status||"in_progress"===e.status))return{name:t.name,index:e+1,phaseCount:ts.length,done:n,total:r.length}}return null},[ts]),t6=(0,a.useCallback)((e,t)=>{te(r=>rY(r,e,t))},[]),t8=(0,a.useCallback)(async e=>{let t=tZ.current;try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/subagents`);if(!r.ok)return;let n=await r.json();if(tx.current!==e||tZ.current!==t)return;let a=(n.subagents??[]).map(n$);t6(a)}catch{}},[t6]),t9=(0,a.useCallback)(async e=>{let t=Date.now(),r=tK.current,n=tZ.current;try{let a=await (0,rj.$)(e,{type:"get_subagents"});if(tx.current!==e||tK.current!==r||tZ.current!==n)return;let s=(a.subagents??[]).map(nR).filter(e=>void 0!==e);t6(s,{skipNewerThan:t});let i=new Set(s.map(e=>e.id));te(e=>{let r,n;return r=!1,n=e.filter(e=>{if("history"===e.source)return!0;let n=i.has(e.id)||(e.lastUpdate??0)>=t;return n||(r=!0),n}),r?n:e}),t8(e)}catch{}},[t6,t8]),t7=(0,a.useCallback)(()=>{null!==tq.current&&(cancelAnimationFrame(tq.current),tq.current=null),tH.current=null,tU.current=null,tr({}),ta({})},[]),rt=(0,a.useRef)(0),rr=(0,a.useCallback)(()=>(rt.current+=1,rt.current),[]),rn=(0,a.useCallback)((e,t)=>(void 0===t||t===rt.current)&&(rt.current+=1,Z(e),!e||(eN(t=>t&&(t.provider!==e.provider||t.modelId!==e.modelId)?null:t),!0)),[]),ra=(0,a.useCallback)(async e=>{let t=rr();try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)return;let n=await r.json();if(tx.current!==e||!rn(nF(n.state?.model),t))return;n.state?.thinkingLevel!==void 0&&ei(nL(n.state.thinkingLevel)),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ed(n.state?.fastModeActive),n.state?.autoRetryEnabled!==void 0&&ev(n.state.autoRetryEnabled),n.state?.interruptMode!==void 0&&ep(n.state.interruptMode),n.state?.autoCompactionEnabled!==void 0&&eg(n.state.autoCompactionEnabled),n.state?.steeringMode!==void 0&&eb(n.state.steeringMode),n.state?.followUpMode!==void 0&&ek(n.state.followUpMode)}catch{}},[rn,rr]),rs=(0,a.useCallback)(async(e,t=!1,r=!1,n)=>{let a=!1;try{t&&w(!0);let s=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),i=await fetch(`/api/sessions/${encodeURIComponent(e)}?${s}`);if(404===i.status)return t&&(y(null),C(null),T([]),j(null)),null;if(!i.ok)throw Error(`HTTP ${i.status}`);let o=await i.json();if(tx.current!==e||void 0!==n&&tK.current!==n)return null;if(y(o),C(o.leafId),T(o.context.messages),R(o.context.entryIds??[]),ti(o.context.todoPhases??[]),t8(e),eN(null),j(null),o.context.thinkingLevel&&"off"!==o.context.thinkingLevel&&ei(o.context.thinkingLevel),a=!0,!r)return t&&w(!1),null;try{let r=rr(),a=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!a.ok)throw Error(`HTTP ${a.status}`);let s=await a.json();if(tx.current!==e||void 0!==n&&tK.current!==n)return t&&w(!1),null;let i=s.state,o=rn(nF(i?.model),r);return i?(void 0!==i.contextUsage&&eE(i.contextUsage??null),void 0!==i.systemPrompt&&eM(i.systemPrompt||null),o&&void 0!==i.thinkingLevel&&ei(nL(i.thinkingLevel)),void 0!==i.fastModeEnabled&&el(i.fastModeEnabled),ed(i.fastModeActive),void 0!==i.autoRetryEnabled&&ev(i.autoRetryEnabled),void 0!==i.interruptMode&&ep(i.interruptMode),void 0!==i.autoCompactionEnabled&&eg(i.autoCompactionEnabled),void 0!==i.steeringMode&&eb(i.steeringMode),void 0!==i.followUpMode&&ek(i.followUpMode),void 0!==i.extensionStatuses&&e4(i.extensionStatuses??[]),void 0!==i.extensionWidgets&&e6(i.extensionWidgets??[]),void 0!==i.todoPhases&&ti(i.todoPhases??[]),0===i.queuedMessageCount&&Date.now()-tw.current>=5e3&&e9(nz)):(eE(null),!s.running&&Date.now()-tw.current>=5e3&&e9(nz)),t&&w(!1),s}catch(e){return console.error("Failed to load agent state:",e),t&&w(!1),null}}catch(e){return j(String(e)),null}finally{t&&!a&&w(!1)}},[t8,rn,rr,eE]),ri=(0,a.useCallback)(async(e,t)=>{let r=++tv.current;try{let n=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&n.set("leafId",t);let a=`/api/sessions/${encodeURIComponent(e)}/context?${n}`,s=await fetch(a);if(!s.ok)throw Error(`HTTP ${s.status}`);let i=await s.json();if(tx.current!==e||tv.current!==r)return;T(i.context.messages),R(i.context.entryIds??[]),ti(i.context.todoPhases??[])}catch(e){console.error("Failed to load context:",e)}},[]),ro=(0,a.useCallback)((e=0,t)=>{t??=(0,c.Tl)("agentSession.noMessages");let n=tx.current;x&&r&&n&&!t_.current&&(t_.current=!0,i?.({id:n,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[x,r,i]),rl=(0,a.useCallback)(async()=>{if(tx.current||!x||!r)return tx.current;if(tO.current)return tO.current;let e=(async()=>{let e=Q??et;e&&eL(e);let t="none"===en?[...ny]:"full"===en?[...nw]:[...nb],a=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,type:"ensure_session",toolNames:t,...e?{provider:e.provider,modelId:e.modelId}:{},..."auto"!==es?{thinkingLevel:es}:{},...n?{advisor:!0}:{}})});if(!a.ok)throw Error(`HTTP ${a.status}`);let s=(await a.json()).sessionId;return tx.current=s,s})();tO.current=e;try{return await e}finally{tO.current=null}},[n,x,r,Q,et,en,es]),rc=(0,a.useCallback)(async()=>{let e=tx.current??await rl();if(!e)return;let t=await (0,rj.$)(e,{type:"get_state"});D.current&&tx.current===e&&eM(t.systemPrompt??"")},[rl]),rd=(0,a.useCallback)(async()=>{let e=tx.current??await rl();if(!e)return eV([]),[];eZ(!0);try{let t=await (0,rj.$)(e,{type:"get_commands"}),r=(t?.commands??[]).map(nY).filter(e=>null!==e);return eV(r),r}catch(e){return console.error("Failed to load slash commands:",e),eV([]),[]}finally{eZ(!1)}},[rl]),ru=(0,a.useCallback)(e=>tG.ensure(e),[tG]);tm.current=ru;let rp=(0,a.useCallback)(async(e,t)=>{let r=tx.current;if(e0(t=>t?.id===e.id?null:t),r)try{await (0,rj.$)(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),rh=(0,a.useMemo)(()=>[{name:"open_url",description:"Open a URL in the user's browser.",parameters:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"notify",description:"Show a browser notification to the user.",parameters:{type:"object",properties:{title:{type:"string"},message:{type:"string",description:"Optional notification body."}},required:["title"]}},{name:"open_file",description:"Open a file in the workspace file viewer.",parameters:{type:"object",properties:{path:{type:"string",description:"Absolute or workspace-relative file path."}},required:["path"]}}],[]),rm=(0,a.useCallback)(async e=>{try{await (0,rj.$)(e,{type:"set_host_tools",tools:rh})}catch{}},[rh]),rf=(0,a.useMemo)(()=>[{scheme:"pi-web",description:"Browser-integrated resources: pi-web://clipboard reads/writes the user's clipboard via the web UI.",writable:!0}],[]),rg=(0,a.useCallback)(async e=>{try{await (0,rj.$)(e,{type:"set_host_uri_schemes",schemes:rf})}catch{}},[rf]);tf.current=e=>{rm(e),rg(e),t9(e)};let rx=(0,a.useCallback)(async(e,t,r,n=!1)=>{try{await (0,rj.$)(e,{type:"host_tool_result",id:t,isError:n,result:{content:[{type:"text",text:r}]}})}catch(e){console.error("Failed to send host tool result:",e)}},[]),rv=(0,a.useCallback)(async(e,t,r)=>{let n=tx.current;if(!n)return;let a=e=>"string"==typeof e?e:void 0;switch(t){case"open_url":{let t="string"==typeof r.url?r.url:"",a=nB(t),s=a?t:"";if(s&&1){let e=window.open(s,"_blank","noopener,noreferrer");e?.focus?.()}let i=a?t?`Opened ${t}`:"No URL provided":"Unsafe or invalid URL not opened";await rx(n,e,i,!a&&!!t);break}case"notify":{let t=a(r.title)??"OMP",s=a(r.message)??"";if("u">typeof Notification)try{if("granted"===Notification.permission)new Notification(t,{body:s});else if("default"===Notification.permission){let e=await Notification.requestPermission();"granted"===e&&new Notification(t,{body:s})}}catch{}await rx(n,e,"Notification shown");break}case"open_file":{let t=a(r.path)??"";if(t&&f)try{let e=t.split(/[\\/]/).pop()||t;f(t,e,n)}catch{}await rx(n,e,t?`Opened ${t}`:"No path provided",!t);break}default:await rx(n,e,`Host tool "${t}" is not available in omp-web`,!0)}},[f,rx]),ry=(0,a.useCallback)(async(e,t,r)=>{try{await (0,rj.$)(e,{type:"host_uri_result",id:t,...r})}catch(e){console.error("Failed to send host URI result:",e)}},[]),rb=(0,a.useCallback)(async(e,t,r,n)=>{let a=tx.current;if(!a)return;let s=r.replace(/^pi-web:\/\//i,"")||"";if("clipboard"===s){if("read"===t){if("u"<typeof navigator||!navigator.clipboard?.readText)return void await ry(a,e,{isError:!0,error:"Clipboard read is not available in this browser"});try{let t=await navigator.clipboard.readText();await ry(a,e,{content:t||"(clipboard is empty)",contentType:"text/plain"})}catch{await ry(a,e,{isError:!0,error:"Clipboard read was denied. Click into the omp-web window and try again."})}return}if("u">typeof navigator&&navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(n??""),await ry(a,e,{});return}catch{await ry(a,e,{isError:!0,error:"Clipboard write failed in this browser"});return}return void await ry(a,e,{isError:!0,error:"Clipboard write is not available in this browser"})}await ry(a,e,{isError:!0,error:`Unknown pi-web resource: ${s}`})},[ry]),rw=(0,a.useCallback)(async(e,t)=>{let r=tx.current;if(r)try{await (0,rj.$)(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rk=(0,a.useCallback)(e=>{let t=e.message.trim();t&&eY({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"}})},[]),rS=(0,a.useCallback)(async e=>{let t,r=setTimeout(()=>{rk({type:"info",message:(0,c.Tl)("agentSession.startingAgent")})},4e3);try{t=await ru(e),"closed"===t.status&&tR.current&&tx.current===e&&(await nO(0),t=await ru(e))}finally{clearTimeout(r)}if("connected"===t.status)return;let n=tG.isCurrent(e,t.source);throw tp.current===t.source&&(tp.current=null),n?tG.invalidate(e,t.source):t.source.close(),new nP(t.status)},[rk,ru,tG]),rC=(0,a.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":e0(t);break;case"cancel":e0(e=>e?.id===t.targetId?null:e);break;case"open_url":{let e=t.launchUrl??t.url,r=nB(e)?e:"";if(r)try{window.open(r,"_blank","noopener,noreferrer")}catch{}rk({id:t.id,type:"info",message:r?t.instructions?`${t.instructions}
|
|
18
|
-
${r}`:(0,c.Tl)("agentSession.openInBrowser",{url:r}):(0,c.Tl)("agentSession.unsafeUrlBlocked")});break}case"notify":rk({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":e4(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":e6(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":e2(e=>t.closed?e?.id===t.id?null:e:t)}},[rk,e.chatInputRef]),rI=(0,a.useCallback)(async(e=tx.current,t)=>{if(void 0===t||tK.current===t)try{e&&await rs(e,!1,!0,t)}finally{if(void 0!==t&&tK.current!==t||(tJ.current=null,!tk.current))return;tk.current=!1,z(!1),eU(null),eS(null),te([]),tZ.current+=1,t7(),e&&t8(e),W({type:"end"}),s?.()}},[rs,s,t8,t7]),rT=(0,a.useCallback)(async(e,t)=>{await nO(800);let r=Date.now();for(;D.current&&tx.current===e&&tk.current&&Date.now()-r<2e4;){if(void 0!==t&&tK.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let n=await r.json(),a=n.state;if(!n.running||!a||!a.isStreaming&&!a.isPromptRunning)return void await rI(e,t)}}catch{}await nO(600)}},[rI]),rE=(0,a.useCallback)(async e=>{let t=tS.current+1;for(tS.current=t;tj.current&&tS.current===t&&tx.current===e;){await nO(1e3);try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)continue;let n=await r.json();if(n.state?.isBashRunning)continue;if(await rs(e),tS.current!==t||tx.current!==e)return;tj.current=!1,A(!1),F(null);return}catch{}}},[rs]),rR=(0,a.useCallback)(async e=>{if(!tk.current)return;let t=tK.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let n=await r.json();if(tK.current!==t)return;let a=n.state;if(ty.current=a?.isCompacting??!1,eD(a?.isCompacting??!1),a?.todoPhases!==void 0&&ti(a.todoPhases??[]),t9(e),(!a||0===a.queuedMessageCount)&&Date.now()-tw.current>=5e3&&e9(nz),n.running&&a&&(a.isStreaming||a.isPromptRunning||a.isCompacting)||!tk.current)return;a?(void 0!==a.contextUsage&&eE(a.contextUsage??null),void 0!==a.systemPrompt&&eM(a.systemPrompt??null),void 0!==a.extensionStatuses&&e4(a.extensionStatuses??[]),void 0!==a.extensionWidgets&&e6(a.extensionWidgets??[])):eE(null),await rI(e,t)}catch{}},[rI,t9,eE]);(0,a.useEffect)(()=>{if(!$)return;let e=()=>{let e=tx.current;e&&rR(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)}},[$,rR]),(0,a.useEffect)(()=>{tk.current=$},[$]);let rM=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.steering.indexOf(e);if(-1!==r)return{...t,steering:t.steering.filter((e,t)=>t!==r)};let n=t.followUp.indexOf(e);return -1!==n?{...t,followUp:t.followUp.filter((e,t)=>t!==n)}:t})},[]),rW=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.steering.indexOf(e),n=t.followUp.indexOf(e);return -1===r&&-1===n?t:{steering:-1===r?t.steering:t.steering.filter((e,t)=>t!==r),followUp:-1===n?t.followUp:t.followUp.filter((e,t)=>t!==n)}})},[]),r$=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.followUp.indexOf(e);return -1===r?t:{steering:[...t.steering,e],followUp:t.followUp.filter((e,t)=>t!==r)}})},[]);(0,a.useEffect)(()=>{let e=tx.current;if(!e)return;let t=nA(e8);(!t||tY.current)&&(tY.current=!t,function(e,t){try{let r=nN+e;if(nA(t))return void sessionStorage.removeItem(r);let n=t,a=JSON.stringify(n);for(;a.length>5e4&&n.steering.length+n.followUp.length>1;)n=n.steering.length>=n.followUp.length?{...n,steering:n.steering.slice(1)}:{...n,followUp:n.followUp.slice(1)},a=JSON.stringify(n);if(a.length>5e4)return void sessionStorage.removeItem(r);sessionStorage.setItem(r,a)}catch{}}(e,e8))},[e8]),tC.current=(0,a.useCallback)(e=>{switch(e.type){case"agent_start":tb.current=!1,tk.current=!0,z(!0),eU({kind:"waiting_model"}),W({type:"start"});break;case"agent_end":if(!1===e.isTerminal)break;if(tb.current){tb.current=!1;break}if(!tk.current)break;let t=tx.current,r=tK.current;if(tk.current=!1,z(!1),eU(null),eS(null),te([]),tZ.current+=1,t7(),W({type:"end"}),t){rs(t,!1,!1,r);let e=rr();fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||tx.current!==t||tK.current!==r||rn(nF(n.state.model),e)&&(n.state?.contextUsage!==void 0&&eE(n.state.contextUsage??null),n.state?.systemPrompt!==void 0&&eM(n.state.systemPrompt||null),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ed(n.state?.fastModeActive),n.state?.extensionStatuses!==void 0&&e4(n.state.extensionStatuses??[]),n.state?.extensionWidgets!==void 0&&e6(n.state.extensionWidgets??[]),n.state?.todoPhases!==void 0&&ti(n.state.todoPhases??[]),(!n.state||0===n.state.queuedMessageCount)&&Date.now()-tw.current>=5e3&&e9(nz))}).catch(()=>{})}s?.();break;case"prompt_result":if(!1!==e.agentInvoked||!tk.current)break;rI(tx.current,tK.current);break;case"prompt_error":rk({type:"error",message:e.errorMessage??(0,c.Tl)("agentSession.commandFailed")}),tk.current&&rI(tx.current,tK.current);break;case"notice":{let t=e.level,r=e.message?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(r)?em.oR.info("MCP tools updated",r,{clamp:!0}):rk({type:"error"===t?"error":"warning"===t?"warning":"info",message:r});break}case"command_output":{let t=e.text?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(t)?em.oR.info("MCP tools updated",t,{clamp:!0}):t&&rk({type:"info",message:t});break}case"thinking_level_changed":ei(nL(e.thinkingLevel));break;case"model_changed":{let e=tx.current;if(!e)break;let t=rr();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||tx.current!==e||rn(nF(r.state.model),t)&&(void 0!==r.state.thinkingLevel&&ei(nL(r.state.thinkingLevel)),void 0!==r.state.fastModeEnabled&&el(r.state.fastModeEnabled),ed(r.state.fastModeActive),void 0!==r.state.autoRetryEnabled&&ev(r.state.autoRetryEnabled),void 0!==r.state.interruptMode&&ep(r.state.interruptMode),void 0!==r.state.autoCompactionEnabled&&eg(r.state.autoCompactionEnabled),void 0!==r.state.steeringMode&&eb(r.state.steeringMode),void 0!==r.state.followUpMode&&ek(r.state.followUpMode))}).catch(()=>{});break}case"config_update":{let t=e.model;t&&rn(nF(t)),void 0!==e.thinkingLevel&&ei(nL(e.thinkingLevel));break}case"available_commands_update":eV((e.commands??[]).map(nY).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!tk.current)break;let t=e.message;if(t?.role==="user")break;t&&W({type:"update",message:r6(t)}),eU(null);break}case"message_end":{let t=!0===e.__relayAuthoritative,r="string"==typeof e.__relayMessageId?e.__relayMessageId:null;if(!tk.current&&!t)break;if(t&&r){if(tW.current.has(r))break;tW.current.add(r)}let n=e.message;if(n&&"user"===n.role){let e=r6(n),t=nK(e),r=tJ.current;tJ.current=null,rM(nU(e)),T(n=>{let a=n[n.length-1];return r&&a?.role==="user"&&nK(a)===r?r===t?n:[...n.slice(0,-1),e]:[...n,e]})}else if(n?.role==="custom"&&"xdev-mount-notice"===n.customType)em.oR.info("MCP tools updated",nU(n).trim()||"The MCP tool inventory changed.",{clamp:!0});else if(n){let e=r6(n);if(t){let t=nV(e);T(r=>{let n=r[r.length-1];return n?.role==="assistant"&&nV(n)===t?r:[...r,e]})}else T(t=>[...t,e])}W({type:"reset"}),eU({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;eU(e=>{let n=e?.kind==="running_tools"?[...e.tools]:[];return n.some(e=>e.id===t)||n.push({id:t,name:r}),{kind:"running_tools",tools:n}});break}case"tool_execution_end":{let t=e.toolCallId;"todo"===e.toolName&&tx.current&&rR(tx.current),eU(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"todo_reminder":case"todo_auto_clear":tx.current&&rR(tx.current);break;case"auto_retry_start":eS({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eS(null);break;case"auto_compaction_start":eD(!0),eB(null),e_(null);break;case"auto_compaction_end":eD(!1),e.errorMessage?(eB(e.errorMessage),e_(null)):e.aborted||e.skipped||(e_(nZ(e.result,"auto")),tx.current&&rs(tx.current));break;case"subagent_lifecycle":{let t=function(e){if(!nS(e))return;let t=nC(e.id),r=nC(e.status);if(!t||!r||"started"!==r&&"completed"!==r&&"failed"!==r&&"aborted"!==r)return;let n={id:t,agent:nC(e.agent)??"subagent",status:r,index:nI(e.index)??-1,lastUpdate:Date.now(),source:"live"},a=nT(e.agentSource);void 0!==a&&(n.agentSource=a);let s=nC(e.description);void 0!==s&&(n.description=s);let i=nC(e.sessionFile);void 0!==i&&(n.sessionFile=i);let o=nC(e.parentToolCallId);return void 0!==o&&(n.parentToolCallId=o),"boolean"==typeof e.detached&&(n.detached=e.detached),n}(e.payload);if(!t)break;t6([t]);break}case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=nS(e.arguments)?e.arguments:{};t&&r&&rv(t,r,n);break}case"host_uri_request":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.url?e.url:"",n="write"===e.operation?"write":"read",a="string"==typeof e.content?e.content:void 0;t&&r&&rb(t,n,r,a);break}case"subagent_progress":{let t=e.payload,r=nE(t?.progress),n=r?.id,a="number"==typeof t?.index&&Number.isFinite(t.index)?t.index:r?.index??-1,s="string"==typeof t?.parentToolCallId?t.parentToolCallId:null,i="string"==typeof t?.task&&t.task.trim()?t.task:r?.task??null,o="string"==typeof t?.assignment?t.assignment:r?.assignment;if(!n&&!i&&!s&&a<0)break;te(e=>{let l=-1;if(n){if(-1===(l=e.findIndex(e=>e.id===n))&&r){let n=function(e,t,r=Date.now()){let n=t.id;if(!n)return;let a=e?.index,s=t.index,i="number"==typeof a&&Number.isFinite(a)&&a>=0?a:"number"==typeof s&&Number.isFinite(s)&&s>=0?s:0,o="pending"===t.status||"running"===t.status?"started":"failed"===t.status?"failed":"aborted"===t.status?"aborted":"completed",l={id:n,agent:e?.agent||t.agent||"task",index:i,status:o,progress:t,lastUpdate:r,source:"live"},c=e?.agentSource??t.agentSource;void 0!==c&&(l.agentSource=c);let d=e?.task?.trim()?e.task:t.task;void 0!==d&&(l.task=d);let u=e?.assignment??t.assignment;void 0!==u&&(l.assignment=u);let p=e?.description??t.description;return void 0!==p&&(l.description=p),e?.parentToolCallId!==void 0&&(l.parentToolCallId=e.parentToolCallId),e?.sessionFile!==void 0&&(l.sessionFile=e.sessionFile),e?.detached!==void 0&&(l.detached=e.detached),l}({index:"number"==typeof t?.index&&Number.isFinite(t.index)?t.index:void 0,agent:"string"==typeof t?.agent?t.agent:void 0,agentSource:"string"==typeof t?.agentSource&&("bundled"===t.agentSource||"user"===t.agentSource||"project"===t.agentSource)?t.agentSource:void 0,task:"string"==typeof t?.task?t.task:void 0,assignment:o,description:"string"==typeof t?.description?t.description:void 0,parentToolCallId:s??void 0,sessionFile:"string"==typeof t?.sessionFile?t.sessionFile:void 0,detached:"boolean"==typeof t?.detached?t.detached:void 0},r);return n?rY(e,[n]):e}}else s&&a>=0&&(l=e.findIndex(e=>e.parentToolCallId===s&&e.index===a)),-1===l&&s&&(l=e.findIndex(e=>e.parentToolCallId===s)),-1===l&&a>=0&&(l=e.findIndex(e=>e.index===a));if(-1===l)return e;let c=e[l],d={...c,agent:"string"==typeof t?.agent?t.agent:c.agent,agentSource:"string"==typeof t?.agentSource&&("bundled"===t.agentSource||"user"===t.agentSource||"project"===t.agentSource)?t.agentSource:c.agentSource,..."string"==typeof t?.sessionFile?{sessionFile:t.sessionFile}:{},..."boolean"==typeof t?.detached?{detached:t.detached}:{},...i?{task:i}:{},...void 0!==o?{assignment:o}:{},...r?{progress:r}:{},lastUpdate:Date.now(),source:"live"};if(c.agent===d.agent&&c.agentSource===d.agentSource&&c.sessionFile===d.sessionFile&&c.detached===d.detached&&c.task===d.task&&c.assignment===d.assignment&&JSON.stringify(c.progress)===JSON.stringify(d.progress))return e;let u=[...e];return u[l]=d,u});break}case"subagent_event":{let t=e.payload,r="string"==typeof t?.id?t.id:null;if(r){(tH.current??(tH.current=new Set)).add(r);let e=function(e){if(!nS(e))return null;let t=nS(e.event)?e.event:null;if(!t)return null;let r=nC(t.type),n=Date.now();if("tool_execution_start"===r){let e=nC(t.toolName)??"tool",r=nC(t.intent)?.trim();if(r)return{kind:"tool",label:`→ ${e} — ${r}`,ts:n};let a=nS(t.args)?Object.keys(t.args).slice(0,3).join(", "):void 0;return{kind:"tool",label:a?`→ ${e} (${a})`:`→ ${e}`,ts:n}}if("message_end"===r){let e=nS(t.message)?t.message:null;if(e&&"assistant"===e.role){let t=e.content,r=("string"==typeof t?t:Array.isArray(t)?t.filter(e=>nS(e)&&"text"===e.type).map(e=>"string"==typeof e.text?e.text:"").join("\n"):"").trim();if(r)return{kind:"text",label:r.slice(0,140),ts:n}}}if("notice"===r){let e=nC(t.message);if(e)return{kind:"notice",label:e.slice(0,140),ts:n}}return null}(t);if(e){let t=tU.current??(tU.current=new Map),n=t.get(r);n?(n.length>=50&&n.shift(),n.push(e),t.delete(r),t.set(r,n)):t.set(r,[e])}null===tq.current&&(tq.current=requestAnimationFrame(()=>{tq.current=null;let e=tH.current;tH.current=null;let t=tU.current;tU.current=null;let r=null!==e&&e.size>0,n=null!==t&&t.size>0;(r||n)&&(e&&e.size>0&&ta(t=>{let r=t;for(let t of e)r={...r,[t]:(r[t]??0)+1};return nW(r)}),t&&t.size>0&&tr(e=>{let r=e;for(let[n,a]of t){let t=e[n]??[],s=0===t.length?a.length<=50?a:a.slice(-50):[...t,...a].slice(-50);r===e&&(r={...e}),delete r[n],r[n]=s}return nW(r)}))}))}break}case"extension_ui_request":rC(e)}},[rk,rM,rI,rC,rv,rb,rs,t6,s,rR,t7,rn,rr,eE]),t$.current=(0,a.useCallback)((e,t,r,n)=>{if(!D.current||tx.current!==e||!tG.isCurrent(e,t)||tM.current!==r)return;let a=function(e){try{return{ok:!0,frame:np(e)}}catch(e){return{ok:!1,error:e instanceof na?e:new na(e instanceof Error?e.message:"invalid frame")}}}(n);if(!a.ok){if(tx.current!==e||!tG.isCurrent(e,t))return;let r=tK.current;tG.invalidate(e,t),tp.current===t&&(tp.current=null),tI.current=nf(e),rk({type:"error",message:(0,c.Tl)("agentSession.eventStreamFailed")}),rs(e,!1,!0,r),tg.current&&clearTimeout(tg.current),tg.current=setTimeout(()=>{if(tg.current=null,!D.current||tx.current!==e)return;let t=tm.current;t&&t(e).then(t=>{"connected"===t.status&&tf.current?.(e)}).catch(()=>{})},1e3);return}let s=function(e,t){let r;try{r=np(t)}catch{return nv(e,"invalid_frame")}if("relay_sync"===r.type){var n,a=r;if(null!==e.sessionId&&e.sessionId!==a.sessionId)return nv(e,"session_mismatch",a);if("closed"===e.status&&e.epoch===a.epoch)return nv(e,"closed",a);if(null!==e.epoch&&a.epoch<e.epoch||null!==e.epoch&&a.epoch===e.epoch&&a.seq<=e.lastSeq)return{state:e,effect:{type:"duplicate",frame:a}};if(e.epoch===a.epoch&&e.active&&a.active&&e.active.messageId===a.active.messageId&&a.active.revision<e.active.revision)return nv(e,"revision_mismatch",a);let t=a.active?nh(a.active):null,s={...nm(a.sessionId),epoch:a.epoch,lastSeq:a.seq,lastAppliedSeq:a.seq,headSeq:a.headSeq,commitSeq:a.commitSeq,requiresStateRefresh:a.requiresStateRefresh,status:a.requiresStateRefresh?"desynced":"synced"};return{state:s=ng(s,t),effect:{type:"sync",frame:a,active:t,requiresStateRefresh:a.requiresStateRefresh}}}let s="message_commit"===r.type&&null!==e.epoch&&r.epoch===e.epoch&&r.seq!==e.lastSeq+1,i=(n=r,null!==e.sessionId&&n.sessionId!==e.sessionId?nv(e,"session_mismatch",n):null!==e.epoch&&n.epoch<e.epoch?{state:e,effect:{type:"duplicate",frame:n}}:null!==e.epoch&&n.epoch>e.epoch&&"relay_sync"!==n.type?nv(e,"epoch_mismatch",n):null!==e.epoch&&n.epoch===e.epoch&&n.seq<=e.lastSeq?{state:e,effect:{type:"duplicate",frame:n}}:null!==e.epoch&&n.epoch===e.epoch&&"relay_sync"!==n.type&&"message_commit"!==n.type&&"session_closed"!==n.type&&n.seq!==e.lastSeq+1?nv(e,"gap",n,e.lastSeq+1,n.seq):void 0);if(i)return i;if("closed"===e.status)return nv(e,"closed",r);if("desynced"===e.status&&"message_commit"!==r.type&&"session_closed"!==r.type)return nv(e,"gap",r,e.lastSeq+1,r.seq);if(null===e.epoch)return nv(e,"epoch_mismatch",r);let o=nx(e,r);switch(r.type){case"event":return o.status=o.active?"streaming":"synced",{state:o,effect:{type:"event",frame:r,event:nh(r.event)}};case"message_begin":{let e={messageId:r.messageId,revision:r.revision,message:nh(r.message)},t=ng(o,e);return t.status="streaming",t.requiresStateRefresh=!1,{state:t,effect:{type:"message_begin",frame:r,messageId:e.messageId,revision:e.revision,message:nh(e.message)}}}case"message_patch":{let t;if(!o.active||r.messageId!==o.active.messageId)return nv(e,"message_mismatch",r);if(r.baseRevision!==o.active.revision||r.revision!==r.baseRevision+1)return nv(e,"revision_mismatch",r);try{t=function(e,t){if(!r7(e))throw new r8("message is not an assistant snapshot");if(!Array.isArray(t))throw new r8("operations must be an array");if(t.forEach(nr),t.some(e=>"replace_message"===e.op)&&1!==t.length)throw new r8("replace_message must be the sole operation");let r=nt(e);for(let e=0;e<t.length;e+=1)r=function(e,t,r){switch(t.op){case"append_text":{let n=e.content[t.index];if(!n||"text"!==n.type||"string"!=typeof n.text)throw new r8(`operation ${r} wrong text block`);return n.text+=t.text,e}case"append_thinking":{let n=e.content[t.index];if(!n||"thinking"!==n.type||"string"!=typeof n.thinking)throw new r8(`operation ${r} wrong thinking block`);return n.thinking+=t.thinking,e}case"set_block":if(t.index>e.content.length)throw new r8(`operation ${r} out of bounds`);return e.content[t.index]=nt(t.block),e;case"truncate_content":if(t.length>e.content.length)throw new r8(`operation ${r} out of bounds`);return e.content=e.content.slice(0,t.length),e;case"replace_message":return nt(t.message)}}(r,t[e],e);return r}(o.active.message,r.operations)}catch{return nv(e,"patch_rejected",r)}let n=ng(o,{messageId:r.messageId,revision:r.revision,message:t});return n.status="streaming",n.requiresStateRefresh=!1,{state:n,effect:{type:"message_patch",frame:r,messageId:r.messageId,revision:r.revision,message:nh(t)}}}case"message_commit":{if(e.committedMessageId===r.messageId&&!e.active)return{state:o,effect:{type:"duplicate",frame:r}};if(o.active&&r.messageId!==o.active.messageId)return nv(e,"message_mismatch",r);let t=nh(r.message),n="desynced"===e.status||s,a=ng(o,null);return a.committedMessageId=r.messageId,a.committedMessage=t,a.commitSeq=r.seq,a.status=n?"desynced":"synced",a.requiresStateRefresh=n,{state:a,effect:{type:"commit",frame:r,messageId:r.messageId,message:nh(t),authoritative:!0,recoveredFromDesync:n}}}case"session_closed":return o.status="closed",o.closedReason=r.reason,o.active=null,o.activeMessage=null,o.activeMessageId=null,o.activeRevision=null,{state:o,effect:{type:"session_closed",frame:r,reason:r.reason}}}}(tI.current,a.frame);tI.current=s.state;let i=s.effect;if("sync"===i.type){if(null!==tE.current&&tE.current!==i.frame.epoch?(tT.current=i.frame.commitSeq,tW.current.clear()):tT.current=Math.max(tT.current,i.frame.commitSeq),tE.current=i.frame.epoch,i.requiresStateRefresh){let r=tK.current;tR.current=!0,tG.invalidate(e,t),tp.current===t&&(tp.current=null),tI.current=nf(e),rs(e,!1,!0,r),tg.current&&clearTimeout(tg.current),tg.current=setTimeout(()=>{if(tg.current=null,tR.current=!1,!D.current||tx.current!==e)return;let t=tm.current;t&&t(e).then(t=>{"connected"===t.status&&tf.current?.(e)}).catch(()=>{})},0);return}tG.markConnected(e,t),i.active&&(tk.current||(tk.current=!0,z(!0)),W({type:"start"}),tC.current?.({type:"message_start",message:r6(i.active.message)}));return}if("duplicate"!==i.type&&"none"!==i.type){if("desync"===i.type){if(tx.current!==e||!tG.isCurrent(e,t))return;let r=tK.current;tG.invalidate(e,t),tp.current===t&&(tp.current=null),tI.current=nf(e),rs(e,!1,!0,r),tg.current&&clearTimeout(tg.current),tg.current=setTimeout(()=>{if(tg.current=null,!D.current||tx.current!==e)return;let t=tm.current;t&&t(e).then(t=>{"connected"===t.status&&tf.current?.(e)}).catch(()=>{})},0);return}switch(i.type){case"event":tC.current?.(i.event);break;case"message_begin":tk.current||(tk.current=!0,z(!0),W({type:"start"})),tC.current?.({type:"message_start",message:r6(i.message)});break;case"message_patch":tC.current?.({type:"message_update",message:r6(i.message)});break;case"commit":tT.current=Math.max(tT.current,i.frame.seq),i.recoveredFromDesync&&rs(e,!1,!0,tK.current),tC.current?.({type:"message_end",message:i.message,__relayAuthoritative:!0,__relayMessageId:i.messageId});break;case"session_closed":tG.invalidate(e,t),tp.current===t&&(tp.current=null)}}},[rk,tG,rs]);let rz=(0,a.useCallback)(async(n,a)=>{let s=n.trim();if(!s&&!a?.length||tk.current||tj.current)return!1;let i=!a?.length&&s.startsWith("/");if(!a?.length&&s.startsWith("!")){let e=s.startsWith("!!"),t=(e?s.slice(2):s.slice(1)).trim();return!!t&&(await tL.current?.(t,e),!0)}let o=tK.current+1,{userMsg:l,piImages:d}=nJ(n,a);T(e=>[...e,l]),tJ.current=nK(l),tK.current=o,tk.current=!0,z(!0),eU(i?{kind:"running_command"}:{kind:"waiting_model"}),W({type:"start"}),tN.current=!0,tA.current=!0,tF.current=0;try{let e=null;if(x&&r){let t=tx.current??await tO.current,r=t??await rl();r&&(e=r,ro(1,n),Q&&(eL(Q),t&&await (0,rj.$)(r,{type:"set_model",provider:Q.provider,modelId:Q.modelId})),await rS(r),t9(r),await (0,rj.$)(r,{type:"prompt",message:n,...d?.length?{images:d}:{}}))}else t&&(e=t.id,await rS(t.id),t9(t.id),rm(t.id),rg(t.id),await (0,rj.$)(t.id,{type:"prompt",message:n,...d?.length?{images:d}:{}}));return i&&e&&rT(e,o),!0}catch(r){console.error("Failed to send message:",r);let t=tJ.current;return t&&T(e=>{let r=e[e.length-1];return r?.role==="user"&&nK(r)===t?e.slice(0,-1):e}),rk({type:"error",message:r instanceof nP?r.message:(0,c.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),tJ.current=null,tk.current=!1,z(!1),eU(null),W({type:"end"}),!1}},[x,r,Q,t,rl,rS,ro,rT,rk,e.chatInputRef,t9,rm,rg]),rN=(0,a.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=tx.current;if(!n||!tk.current)return!1;let{userMsg:a,piImages:s}=nJ(e,t);T(e=>[...e,a]),tJ.current=nK(a),tb.current=!0,tN.current=!0,tA.current=!0,tF.current=0;try{return await rS(n),t9(n),await (0,rj.$)(n,{type:"abort_and_prompt",message:r,...s?.length?{images:s}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tb.current=!1;let e=tJ.current;return e&&T(t=>{let r=t[t.length-1];return r?.role==="user"&&nK(r)===e?t.slice(0,-1):t}),tJ.current=null,rk({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rk,rS,t9]);tL.current=(0,a.useCallback)(async(r,n)=>{if(tk.current||tj.current)return;let a=`${n?"!!":"!"}${r}`;tj.current=!0,F({command:r,excludeFromContext:n}),A(!0);try{let e=tx.current??t?.id??await rl();if(!e)throw Error((0,c.Tl)("agentSession.shellSessionFailed"));await (0,rj.$)(e,{type:"bash",command:r,excludeFromContext:n}),await rs(e),ro(1,a)}catch(t){console.error("Failed to execute shell command:",t),rk({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(a)}finally{tj.current=!1,F(null),A(!1)}},[rk,rl,rs,e.chatInputRef,ro,t]);let rA=(0,a.useCallback)(async()=>{let e=tx.current;if(e){if(tj.current){try{await (0,rj.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,rj.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[]),rL=(0,a.useCallback)(async e=>{if(tj.current)return;let t=tx.current;if(t){e$(e);try{let{cancelled:r,newSessionId:n}=await (0,rj.$)(t,{type:"fork",entryId:e})??{};!r&&n&&o?.(n)}catch(e){console.error("Fork failed:",e)}finally{e$(null)}}},[o]),rF=(0,a.useCallback)(async e=>{if(tj.current||tk.current)return;let t=tx.current;t&&(C(e),await ri(t,e))},[ri]),rD=(0,a.useCallback)(async e=>{if(tj.current||tk.current)return;C(e);let t=tx.current;t&&await ri(t,e)},[ri]),rP=(0,a.useCallback)(async(e,t)=>{if(x){ee({provider:e,modelId:t}),eL({provider:e,modelId:t});let r=tx.current??await tO.current;if(!r)return;try{await (0,rj.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=tx.current;if(r)try{await (0,rj.$)(r,{type:"set_model",provider:e,modelId:t}),eN({provider:e,modelId:t}),ra(r)}catch(e){console.error("Failed to set model:",e)}},[x,ee,ra]),rB=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current??await rl();if(t)try{let r=await (0,rj.$)(t,{type:"set_fast_mode",enabled:e});el(r?.enabled??e),ed(r?.active),ra(t)}catch(e){console.error("Failed to change Fast mode:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}},[rk,rl,ra]),rO=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current;if(t){ev(e);try{await (0,rj.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){ev(t=>t===e?!e:t),rk({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rk]),r_=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current;if(t){ep(e);try{await (0,rj.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rk]),rH=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current;if(t){eg(e);try{await (0,rj.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rk]),rU=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current;if(t){eb(e);try{await (0,rj.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rk]),rq=(0,a.useCallback)(async e=>{let t=tx.current??await tO.current;if(t){ek(e);try{await (0,rj.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rk]),rV=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"cycle_model"}),ra(e)}catch(e){console.error("Failed to cycle model:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}},[rk,ra]),rK=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"cycle_thinking_level"}),ra(e)}catch(e){console.error("Failed to cycle thinking level:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}},[rk,ra]),rZ=(0,a.useCallback)(async()=>{let e=tx.current;if(e){eS(null);try{await (0,rj.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rk({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rk]),rJ=(0,a.useCallback)(async()=>{let e=tx.current;if(e&&!ty.current&&!tk.current&&!tj.current)try{await (0,rj.$)(e,{type:"handoff"}),await rs(e,!0),ra(e)}catch(e){rk({type:"error",message:e instanceof Error?e.message:String(e)})}},[rk,rs,ra]),rG=(0,a.useCallback)(async()=>{let e=tx.current;if(e&&!ty.current&&!eF){ty.current=!0,eD(!0),eB(null),e_(null);try{let t=await (0,rj.$)(e,{type:"compact"});e_(nZ(t,"manual")),await rs(e,!0),ra(e)}catch(e){eB(e instanceof Error?e.message:String(e)),e_(null)}finally{ty.current=!1,eD(!1)}}},[eF,rs,ra]),rX=(0,a.useCallback)(async e=>{U(!0);try{let n=r??t?.cwd??"",a=n?`/api/models?cwd=${encodeURIComponent(n)}`:"/api/models",s=await fetch(a,e?{signal:e}:void 0);if(!s.ok)throw Error(`HTTP ${s.status}`);let i=await s.json();B(i.models),V(i.modelError??null),Y(i.thinkingLevels??{}),X(i.thinkingLevelMaps??{});let o=i.modelList??[];if(_(o),x){let e=(i.defaultModel?o.find(e=>e.id===i.defaultModel?.modelId&&e.provider===i.defaultModel?.provider):void 0)??o[0];er(e?{provider:e.provider,modelId:e.id}:null)}}catch(t){e?.aborted||V(t instanceof Error?t.message:String(t))}finally{U(!1)}},[x,r,t?.cwd]),rQ=(0,a.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,n=""]=t,a=n.trim(),s=tx.current??await rl(),i=e=>(e.handled&&(e.error?rk({type:"error",message:e.error}):"openSessionStats"!==e.action&&rk({type:"success",message:e.message??(0,c.Tl)("agentSession.commandCompleted")})),e);try{switch(r){case"compact":{if(!s||ty.current||eF)return i({handled:!0,error:(0,c.Tl)("agentSession.noSessionToCompact")});ty.current=!0,eD(!0),eB(null),e_(null);let e=await (0,rj.$)(s,{type:"compact",...a?{customInstructions:a}:{}});return e_(nZ(e,"manual")),await rs(s,!0),ty.current=!1,eD(!1),ro(),i({handled:!0,message:(0,c.Tl)("agentSession.compactedContext")})}case"reload":if(!s)return i({handled:!0,error:(0,c.Tl)("agentSession.noSessionToReload")});return await (0,rj.$)(s,{type:"reload"}),await Promise.all([rs(s,!1,!0),rd(),rX()]),i({handled:!0,message:(0,c.Tl)("agentSession.reloadedResources")});case"name":if(!s)return i({handled:!0,error:(0,c.Tl)("agentSession.noSessionToName")});if(!a)return i({handled:!0,error:(0,c.Tl)("agentSession.nameUsage")});return await (0,rj.$)(s,{type:"set_session_name",name:a}),await rs(s),ro(),i({handled:!0,message:(0,c.Tl)("agentSession.sessionRenamed",{name:a})});case"session":{if(!s)return i({handled:!0,error:(0,c.Tl)("agentSession.noActiveSession")});let e=await (0,rj.$)(s,{type:"get_session_stats"});return e&&eX(e),h?.(),i({handled:!0,action:"openSessionStats"})}case"agents":return m?.("agents"),i({handled:!0,action:"openSettings"});case"copy":{if(!s)return i({handled:!0,error:(0,c.Tl)("agentSession.noActiveSession")});let e=await (0,rj.$)(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return i({handled:!0,error:(0,c.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),i({handled:!0,message:(0,c.Tl)("agentSession.copiedLastMessage")})}default:{let t=t2(e);if("not-web"===t.kind)return{handled:!1};if("usage-error"===t.kind)return i({handled:!0,error:(0,c.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,c.Tl)(t.argumentHintKey)})});if("plan"===r&&td({objective:a}),!await rz(t.prompt))return"plan"===r&&td(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(a);tl(e);let t=tx.current;t&&sessionStorage.setItem(`ompgui:goal:${t}`,JSON.stringify(e))}return{handled:!0}}}}catch(e){return i({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&(ty.current=!1,eD(!1))}},[rk,rl,rz,eF,rX,rs,rd,ro,m,h]),r0=e=>e?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),r1=(0,a.useCallback)(async(t,r)=>{let n=tx.current;if(!n)return;let a=r0(r);try{await (0,rj.$)(n,{type:"prompt",message:t,streamingBehavior:"steer",...a?.length?{images:a}:{}}),tw.current=Date.now(),e9(e=>({...e,steering:[...e.steering,t]}))}catch(r){console.error("Failed to steer:",r),rk({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rk,e.chatInputRef]),r2=(0,a.useCallback)(async(t,r,n)=>{let a=tx.current;if(!a)return;let s=r0(n);try{await (0,rj.$)(a,{type:"prompt",message:t,streamingBehavior:r,...s?.length?{images:s}:{}}),tw.current=Date.now(),e9(e=>"steer"===r?{...e,steering:[...e.steering,t]}:{...e,followUp:[...e.followUp,t]})}catch(r){console.error("Failed to queue prompt:",r),rk({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rk,e.chatInputRef]),r5=(0,a.useCallback)(async(t,r)=>{let n=tx.current;if(!n)return;let a=r0(r);try{await (0,rj.$)(n,{type:"prompt",message:t,streamingBehavior:"followUp",...a?.length?{images:a}:{}}),tw.current=Date.now(),e9(e=>({...e,followUp:[...e.followUp,t]}))}catch(r){console.error("Failed to follow up:",r),rk({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rk,e.chatInputRef]),r4=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),r3=(0,a.useCallback)(async e=>{if(ei(e),"auto"===e)return;let t=tx.current??await tO.current;if(t)try{await (0,rj.$)(t,{type:"set_thinking_level",level:e}),ra(t)}catch(e){console.error("Failed to set thinking level:",e)}},[ra]),r9=(0,a.useCallback)(async e=>{tX(e),function(e,t=nj()){if(t)try{t.setItem(nk,e)}catch{}}(e),(tx.current??await tO.current)&&rk({type:"info",message:(0,c.Tl)("agentSession.toolPresetNotice")})},[tX,rk]),ne=(0,a.useCallback)((e="smooth")=>{let t=tB.current,r=tP.current;t&&r&&(tD.current=Date.now()+700,r.scrollIntoView({block:"nearest",behavior:g?"instant":e}))},[g]),nn=(0,a.useCallback)(e=>{e instanceof KeyboardEvent&&(!nD.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tF.current=Date.now()+1200)},[]),ns=(0,a.useCallback)(()=>{let e=Date.now()<=tF.current;if(!e&&Date.now()<tD.current||!e)return;let t=tB.current,r=tP.current;t&&r&&(tA.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]);(0,a.useEffect)(()=>(t&&(tx.current=t.id,rs(t.id,!0,!0).then(e=>{if(e?.running){if(e.state?.isStreaming||e.state?.isPromptRunning){tk.current=!0,z(!0),eU(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),W({type:"start"}),ru(t.id),rm(t.id),rg(t.id),tV.current&&(clearTimeout(tV.current),tV.current=null);let r=t.id;tV.current=setTimeout(()=>{tV.current=null,tx.current===r&&t9(r)},600),!e.state.isStreaming&&e.state.isPromptRunning&&rT(t.id)}e.state?.isBashRunning&&(tj.current=!0,A(!0),rE(t.id))}if(e?.state){if(void 0!==e.state.isCompacting&&eD(e.state.isCompacting),void 0!==e.state.contextUsage&&eE(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eM(e.state.systemPrompt||null),void 0!==e.state.extensionStatuses&&e4(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&e6(e.state.extensionWidgets??[]),0===e.state.queuedMessageCount&&Date.now()-tw.current>=5e3){e9(nz);var r=t.id;if(r)try{sessionStorage.removeItem(nN+r)}catch{}}else if("number"==typeof e.state.queuedMessageCount){let e=function(e){try{let t=sessionStorage.getItem(nN+e);if(!t)return null;let r=JSON.parse(t),n=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],a={steering:n(r?.steering),followUp:n(r?.followUp)};return nA(a)?null:a}catch{return null}}(t.id);e&&e9(t=>nA(t)?e:t)}}else eE(null)})),()=>{tS.current+=1;let e=tp.current;tG.invalidate(),e&&e.readyState!==EventSource.CLOSED&&e.close(),tp.current=null,tg.current&&(clearTimeout(tg.current),tg.current=null),tR.current=!1,tV.current&&(clearTimeout(tV.current),tV.current=null),null!==tq.current&&(cancelAnimationFrame(tq.current),tq.current=null),tH.current=null,tU.current=null}),[t9,rm,rg]),(0,a.useEffect)(()=>{u?.(eR)},[eR,u]),(0,a.useEffect)(()=>(p?.(rc),()=>p?.(null)),[rc,p]),(0,a.useEffect)(()=>{d&&d(v?.tree??[],S,rD)},[v?.tree,S,rD,d]),(0,a.useEffect)(()=>(window.addEventListener("keydown",nn),window.addEventListener("pointerdown",nn,{passive:!0}),()=>{window.removeEventListener("keydown",nn),window.removeEventListener("pointerdown",nn)}),[nn]),(0,a.useEffect)(()=>{let e=tB.current;if(e)return e.addEventListener("wheel",nn,{passive:!0}),e.addEventListener("touchstart",nn,{passive:!0}),e.addEventListener("scroll",ns,{passive:!0}),()=>{e.removeEventListener("wheel",nn),e.removeEventListener("touchstart",nn),e.removeEventListener("scroll",ns)}},[I.length,b,ns,nn]);let ni=(0,a.useRef)(null),no=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=t?.id??null;no.current!==e&&(no.current=e,tz.current=!1,tA.current=!0,tN.current=!1,null!==ni.current&&(cancelAnimationFrame(ni.current),ni.current=null))},[t?.id]),(0,a.useEffect)(()=>{if(I.length>0||M.isStreaming)if(tN.current)tN.current=!1,tz.current=!0,ne(M.isStreaming||tk.current?"instant":"smooth");else if(tz.current)tA.current&&null===ni.current&&(ni.current=requestAnimationFrame(()=>{ni.current=null,tA.current&&ne(tk.current||M.isStreaming?"instant":"smooth")}));else{if(b)return;tz.current=!0,ne("instant")}},[I,M,$,eH,e3,eF,ej,tu,ts,ne,b]),(0,a.useEffect)(()=>(D.current=!0,()=>{D.current=!1,null!==ni.current&&cancelAnimationFrame(ni.current)}),[]),(0,a.useEffect)(()=>{let e=new AbortController;return rX(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[rX,l]),(0,a.useEffect)(()=>{if(!eP)return;let e=setTimeout(()=>eB(null),3e3);return()=>clearTimeout(e)},[eP]),(0,a.useEffect)(()=>{if(!eO)return;let e=setTimeout(()=>e_(null),6e3);return()=>clearTimeout(e)},[eO]),(0,a.useEffect)(()=>{if(0===eJ.visible.length)return;let e=eJ.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{eY({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!eJ.visible[0])return;let t=setTimeout(()=>{eY({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[eJ.visible]),(0,a.useEffect)(()=>{eX(null)},[I.length,t5?.tokens,t5?.percent,t5?.contextWindow]),{data:v,loading:b,error:k,activeLeafId:S,messages:I,entryIds:E,streamState:M,agentRunning:$,modelNames:P,modelList:O,modelsLoading:H,modelError:q,modelThinkingLevels:J,modelThinkingLevelMaps:G,newSessionModel:Q,toolPreset:en,thinkingLevel:es,fastModeEnabled:eo,fastModeActive:ec,autoRetryEnabled:ex,interruptMode:eu,autoCompactionEnabled:eh,steeringMode:ey,followUpMode:ew,liveModelMeta:K,retryInfo:ej,contextUsage:t5,systemPrompt:eR,forkingEntryId:eW,isCompacting:eF,compactError:eP,compactResult:eO,currentModel:tQ,displayModel:t0,sessionStats:t4,slashCommands:eq,slashCommandsLoading:eK,queuedMessages:e8,notices:eJ.visible,extensionDialog:eQ,extensionCustomUi:e1,extensionStatuses:e5,extensionWidgets:e3,respondToExtensionUi:rp,sendExtensionCustomInput:rw,isAutoModelSelection:x&&null===Q,agentPhase:eH,subagents:e7,subagentEvents:tt,subagentTranscriptVersions:tn,activeSubagentCount:tu,currentTodoPhase:t3,todoPhases:ts,activeGoal:to,activePlan:tc,isNew:x,sessionIdRef:tx,messagesEndRef:tP,scrollContainerRef:tB,pendingScrollToUserRef:tN,initialScrollDoneRef:tz,handleSend:rz,handleAbort:rA,handleFork:rL,handleNavigate:rF,handleModelChange:rP,handleFastModeChange:rB,handleAutoRetryChange:rO,handleInterruptModeChange:r_,handleAutoCompactionChange:rH,handleSteeringModeChange:rU,handleFollowUpModeChange:rq,handleCycleModel:rV,handleCycleThinkingLevel:rK,handleAbortRetry:rZ,handleInterruptAndReply:rN,handleCompact:rG,handleHandoff:rJ,handleSteer:r1,handleFollowUp:r5,handlePromptWithStreamingBehavior:r2,handleAbortCompaction:r4,removeQueuedMessage:rW,promoteQueuedToSteer:r$,handleBuiltinSlashCommand:rQ,handleToolPresetChange:r9,handleThinkingLevelChange:r3,loadSlashCommands:rd,setActiveLeafId:C,setData:y,setMessages:T,dispatch:W,setAgentRunning:z,setForkingEntryId:e$,bashRunning:N,pendingBash:L,handleAgentEventRef:tC}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:T,onSessionCreated:l,onSessionForked:d,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:m,onSystemPromptLoaderChange:f,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onOpenFile:b}),eU=N||A;(0,a.useEffect)(()=>(o=eU?eT:null,()=>void(o=null)),[eU,eT]),(0,a.useEffect)(()=>{if(!e)return;let t=e=>{if(!(e.metaKey||e.ctrlKey)||!e.altKey)return;let t=e.key.toLowerCase();"m"===t?(e.preventDefault(),eB()):"t"===t&&(e.preventDefault(),eO())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,eB,eO]);let[eq,eV]=(0,a.useState)(50),eK=(0,a.useRef)(null),eZ=e?.id??(t?`new:${t}`:"empty");(0,a.useEffect)(()=>{eK.current!==eZ&&(eK.current=eZ,eV(50))},[eZ]);let[eJ,eY]=(0,a.useState)(null),[eG,eX]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=eC.current;if(!e)return;let t=null,r=()=>{t=null;let r=e.scrollTop+e.clientHeight>=e.scrollHeight-96;eX(e=>e===r?e:r)},n=()=>{null===t&&(t=requestAnimationFrame(r))};return r(),e.addEventListener("scroll",n,{passive:!0}),()=>{e.removeEventListener("scroll",n),null!==t&&cancelAnimationFrame(t)}},[eC]);let eQ=(0,a.useRef)(null),e0=(0,a.useRef)(null),e1=(0,a.useRef)("auto");(0,a.useEffect)(()=>{let e=eQ.current,t=eC.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{e[0]?.isIntersecting&&t.scrollTop>0&&(e0.current=t.scrollHeight-t.scrollTop,e1.current="auto",eV(e=>ae(e)))},{root:t,rootMargin:"400px 0px 0px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[eq,W.length,eC]),(0,a.useEffect)(()=>{if(null==e0.current)return;let e=eC.current;if(e){if("click"===e1.current){let t=eQ.current;if(t){let r=e.getBoundingClientRect(),n=t.getBoundingClientRect();e.scrollTop=e.scrollTop+(n.bottom-r.top)+1}else e.scrollTop=0}else{var t;t=e.scrollHeight,e.scrollTop=Math.max(0,t-e0.current)}e1.current="auto",e0.current=null}},[eq,eC]);let e2=(0,a.useCallback)(()=>{let e=eC.current;e&&(e0.current=e.scrollHeight-e.scrollTop),e1.current="click",eV(e=>ae(e))},[eC]),e5=Q?[Q.sessionId,Q.sessionFile??"",Q.sessionName??"",Q.userMessages,Q.assistantMessages,Q.toolCalls,Q.toolResults,Q.totalMessages,Q.tokens.input,Q.tokens.output,Q.tokens.cacheRead,Q.tokens.cacheWrite,Q.tokens.total,Q.cost??0].join("|"):null,e4=(0,a.useRef)(Q);e4.current=Q,(0,a.useEffect)(()=>{g?.(e4.current)},[e5,g]),(0,a.useEffect)(()=>()=>{g?.(null)},[g]);let e3=Z?`${Z.percent??"null"}|${Z.contextWindow}|${Z.tokens??"null"}`:null,e6=(0,a.useRef)(Z);e6.current=Z,(0,a.useEffect)(()=>{y?.(e6.current)},[e3,y]),(0,a.useEffect)(()=>()=>{y?.(null)},[y]);let{isDragOver:e8,handleDragEnter:e9,handleDragOver:e7,handleDragLeave:te,handleDrop:tt}=function(e){let[t,r]=(0,a.useState)(!1),n=(0,a.useRef)(0);(0,a.useEffect)(()=>{let e=()=>{n.current=0,r(!1)};return window.addEventListener("drop",e),window.addEventListener("dragend",e),()=>{window.removeEventListener("drop",e),window.removeEventListener("dragend",e)}},[]);let s=(0,a.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nG)&&(e.preventDefault(),n.current+=1,r(!0))},[]),i=(0,a.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nG)&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:s,handleDragOver:i,handleDragLeave:(0,a.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,a.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files))},[e])}}((0,a.useCallback)(e=>{eU||p?.current?.addFiles(e)},[eU,p])),tr=(0,a.useMemo)(()=>{let e=new Set,t=[];for(let r=W.length-1;r>=0;r-=1){let n=function(e){if("user"!==e.role)return null;if("string"==typeof e.content){let t=e.content.trim();return t.length>0?t:null}let t=e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim();return t.length>0?t:null}(W[r]);if(!(!n||e.has(n))&&(e.add(n),t.push(n),t.length>=50))break}return t.reverse()},[W]),tn=(0,a.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return W.forEach((a,s)=>{"toolResult"===a.role&&e.set(a.toolCallId,a),at(a)&&(t=s),("user"===a.role||"assistant"===a.role)&&r.set(s,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[W]),ta=function(e){let t=(0,a.useRef)([]),r=(0,a.useRef)(0);if(r.current!==e){r.current=e;let n=Array(e);for(let r=0;r<e;r+=1)n[r]=t.current[r]??null;t.current=n}return t}(tn.visibleRefIndexByMessage.size),ts=(0,a.useMemo)(()=>{let e=new Set;for(let t of W)if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return e},[W]),ti=(0,a.useMemo)(()=>{if(eu?.kind!=="running_tools")return[];let e=new Set(ts),t=z.streamingMessage;if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return eu.tools.filter(t=>!e.has(t.id))},[eu,ts,z.streamingMessage]),to=ek&&0===W.length&&!z.isStreaming&&!eU,tl=e?.cwd??t??void 0,tc=X?function(e,t,r){if(e&&e.length>0)return e;if(t&&r&&r.provider===t.provider&&r.modelId===t.modelId)return r.reasoning?["off",...r.thinking?.efforts??[]]:["off"];return null}(O[`${X.provider}:${X.modelId}`],X,V):null,td=X?_[`${X.provider}:${X.modelId}`]??null:null,tu=(0,n.jsx)(rw,{ref:p,onSend:eI,onAbort:eT,onSteer:N?eW:void 0,onFollowUp:N?e$:void 0,onPromptWithStreamingBehavior:N?ez:void 0,isStreaming:eU,model:X,isAutoModelSelection:ed,modelNames:F,modelList:D,modelsLoading:P,modelError:B,onModelChange:eM,onAbortCompaction:eN,isCompacting:Y,compactResult:G,thinkingLevel:H,onThinkingLevelChange:e||ek?eD:void 0,fastModeEnabled:U,fastModeActive:q,fastModeSupported:!!(X&&D.some(e=>e.provider===X.provider&&e.id===X.modelId&&e.supportsFastMode)),onFastModeChange:e||ek?eP:void 0,onAbortRetry:e?e_:void 0,availableThinkingLevels:tc,thinkingLevelMap:td,modelNameOverride:V?.name??null,retryInfo:K,activeGoal:ep,activePlan:eh,advisorEnabled:r,queuedMessages:er,inputHistory:tr,contextUsage:Z,onRemoveQueuedMessage:eA,onPromoteQueuedToSteer:eL,slashCommands:ee,slashCommandsLoading:et,onLoadSlashCommands:eH,onBuiltinCommand:eF,onAudioUnlock:S,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tp=eo.filter(e=>"belowEditor"!==e.placement),th=eo.filter(e=>"belowEditor"===e.placement);return R?(0,n.jsx)("div",{role:"status",className:"flex h-full items-center justify-center",style:{color:"var(--text-muted)"},children:w("chatWindow.loadingSession")}):M?(0,n.jsx)("div",{role:"alert",className:"flex h-full items-center justify-center",style:{color:"var(--accent-strong)",padding:"0 var(--space-6)",textAlign:"center",fontSize:"var(--text-base)"},children:M}):(0,n.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:e9,onDragOver:e7,onDragLeave:te,onDrop:tt,children:[e8&&!eU&&(0,n.jsxs)("div",{className:"drop-zone-overlay pointer-events-none absolute inset-0 flex items-center justify-center backdrop-blur-[1px]",style:{zIndex:"var(--z-dropdown)"},children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"drop-ripple-ring absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-zone-illustration",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"color-mix(in srgb, var(--accent) 8%, transparent)",stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"color-mix(in srgb, var(--accent) 16%, transparent)",stroke:"color-mix(in srgb, var(--accent) 40%, transparent)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"color-mix(in srgb, var(--accent) 22%, transparent)",stroke:"color-mix(in srgb, var(--accent) 55%, transparent)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"color-mix(in srgb, var(--accent) 45%, transparent)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ea&&(0,n.jsx)(rk,{request:ea,onRespond:el}),(0,n.jsx)(rM,{subagent:eJ,sessionId:e?.id??ej.current??null,transcriptVersion:eJ?ev[eJ.id]??0:0,events:eJ?ex[eJ.id]??[]:void 0,onClose:()=>eY(null)}),es&&(0,n.jsx)(ad,{request:es,onInput:ec}),to?(0,n.jsx)("div",{className:"relative flex flex-1 flex-col overflow-hidden",children:(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-8",style:{minHeight:0},children:(0,n.jsxs)("div",{className:"w-full",style:{maxWidth:960},children:[(0,n.jsxs)("div",{className:"mb-3 empty-chat-brand",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",marginLeft:"var(--space-4)",marginRight:"var(--space-4)",fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4,overflow:"hidden"},children:[(0,n.jsx)("span",{style:{fontSize:18,fontWeight:600,letterSpacing:"0.04em",color:"var(--accent)",flexShrink:0,whiteSpace:"nowrap"},children:"⌥"}),(0,n.jsx)("span",{style:{fontSize:18,color:"var(--text)",fontWeight:600,letterSpacing:"0.02em",flexShrink:0,whiteSpace:"nowrap"},children:"ompgui"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"var(--space-1)",flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["gui ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.5.0"]})]}),(0,n.jsx)(an,{})]})]}),(0,n.jsx)(ac,{notices:en,align:"right"}),tu]})})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:20*!C,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:960,margin:"0 auto"},children:(0,n.jsx)(ac,{notices:en,floating:!0,align:"right"})})}),(0,n.jsx)("div",{ref:eC,className:"flex-1 overflow-y-auto pt-6"+(C?"":" [scrollbar-width:none]"),children:(0,n.jsx)("div",{style:{padding:"0 16px"},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(ao,{statuses:ei}),(0,n.jsx)(al,{widgets:tp}),(0,n.jsx)(as,{messages:W,entryIds:$,conversationMeta:tn,messageRefs:ta,isStreaming:z.isStreaming,sessionBusy:eU,isNew:ek,forkingEntryId:J,handleFork:eE,handleNavigate:eR,handleEditContent:E,modelNames:F,messageCwd:tl,onOpenFile:b,sessionId:e?.id??ej.current??void 0,toolCallsDefaultCollapsed:s,visibleCount:eq,nearBottom:eG,sentinelRef:eQ,handleLoadMoreClick:e2}),z.isStreaming&&z.streamingMessage&&(0,n.jsx)(tw,{message:z.streamingMessage,isStreaming:!0,modelNames:F,cwd:tl,onOpenFile:b,toolCallsDefaultCollapsed:s}),s&&ti.map(e=>(0,n.jsxs)("div",{role:"status","aria-label":w("chatWindow.runningNamed",{names:e.name}),style:{display:"flex",alignItems:"center",gap:7,marginBottom:"var(--space-4)",padding:"var(--space-3) 10px",border:"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-success) 4%, transparent)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{style:{color:"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)"},children:e.name})]},e.id)),N&&!z.streamingMessage&&0===ti.length&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:[function(e){if(e?.kind==="running_tools"){let t=e.tools.map(e=>e.name);return 0===t.length?(0,c.Tl)("chatWindow.runningTool"):t.length<=3?(0,c.Tl)("chatWindow.runningNamed",{names:t.join(", ")}):(0,c.Tl)("chatWindow.runningNamedMore",{names:t.slice(0,2).join(", "),more:t.length-2})}return e?.kind==="waiting_model"?(0,c.Tl)("chatWindow.waitingModel"):e?.kind==="running_command"?(0,c.Tl)("chatWindow.runningCommand"):(0,c.Tl)("chatWindow.thinking")}(eu),ey>0?k("chatWindow.subagentCount",ey):null,eb?w("chatWindow.todoPhaseStatus",{name:eb.name,done:eb.done,total:eb.total}):null].filter(Boolean).join(" \xb7 ")})]}),A&&!L&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:w("chatWindow.runningCommand")})]}),L&&(0,n.jsx)(tw,{message:{role:"bashExecution",command:L.command,output:"",excludeFromContext:L.excludeFromContext},sessionId:e?.id??ej.current??void 0}),(0,n.jsx)("div",{ref:eS})]})})}),C?null:(0,n.jsx)(rz,{messages:W,scrollContainer:eC,messageRefs:ta})]}),(0,n.jsxs)("div",{className:"relative",style:{flexShrink:0},children:[(0,n.jsx)("div",{style:{padding:"0 16px"},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(r3,{todoPhases:ew,subagents:eg,subagentEvents:ex,onSelectSubagent:eY}),(0,n.jsx)(al,{widgets:th})]})}),tu]})]})]})}function ao({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-2)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{display:"flex",alignItems:"center",gap:"var(--space-3)",maxWidth:"100%",padding:"var(--space-2) var(--space-4)",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function al({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) 9px",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function ac({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{role:"status","aria-live":"polite",style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,a)=>{let s="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"var(--status-success)":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:"var(--space-4)",minHeight:"var(--control-height-lg)",height:"var(--control-height-lg)",maxHeight:48,marginBottom:a===e.length-1?0:"var(--space-2)",overflow:"hidden",borderRadius:"var(--radius-control)",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?"var(--shadow-pop)":"var(--shadow-card)",fontSize:"var(--text-md)",lineHeight:1.35,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out var(--dur-med) ease-in forwards":"notice-shelf-in var(--dur-med) var(--ease-out-warm) both",padding:"0 10px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:s,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"8px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.message})]},r.id)})})}function ad({request:e,onInput:t}){let{t:r}=(0,c.s9)(),s=(0,a.useRef)(null),i=(0,a.useRef)(!1),o=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(n1,""),a=n4(e).trimEnd();if(t.test(a))continue;let s=e,i=n8(s);("│"===i||"┃"===i)&&" "===n8(s=n6(s,0))&&(s=n6(s,0));let o=function(e){let t=n3(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(s),l=o>=0?n3(s)[o]?.char:void 0;("│"===l||"┃"===l)&&(s=n6(s,o)),r.push(function(e){let t=e;for(;;){let e=n3(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(s))}for(;r.length>0&&""===n4(r[0]).trim();)r.shift();for(;r.length>0&&""===n4(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,a.useEffect)(()=>{s.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:"var(--z-extension-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:e=>{e.target.closest("button")||s.current?.focus()},style:{position:"relative",width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"var(--shadow-modal)",overflow:"hidden",outline:"none"},children:[(0,n.jsx)("textarea",{ref:s,"aria-label":r("chatWindow.extensionTerminalInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:r=>{if(i.current||r.nativeEvent.isComposing)return;let n=function(e){if(e.metaKey||e.ctrlKey&&!e.altKey&&"v"===e.key.toLowerCase())return null;if(e.ctrlKey&&!e.altKey){let t=function(e){if(1!==e.length)return null;let t=e.toUpperCase().charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):"?"===e?"":null}(e.key);if(t)return t}if(e.altKey&&!e.ctrlKey){if("Backspace"===e.key)return"\x1b\x7f";let t=n7[e.key];if(t)return t;if(1===e.key.length)return`\x1b${e.key}`}return"Enter"===e.key?e.shiftKey?"\n":"\r":"Tab"===e.key?e.shiftKey?"\x1b[Z":" ":n9[e.key]??null}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},onInput:r=>{if(i.current||r.nativeEvent.isComposing)return;let n=r.currentTarget.value;r.currentTarget.value="",n&&t(e,n)},onCompositionStart:()=>{i.current=!0},onCompositionEnd:r=>{i.current=!1;let n=r.currentTarget;queueMicrotask(()=>{let r=n.value;n.value="",r&&t(e,r)})},onPaste:r=>{r.preventDefault();let n=r.clipboardData.getData("text");n&&t(e,`\x1b[200~${n}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",padding:"10px var(--space-5)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-base)",fontWeight:650},children:r("chatWindow.extensionPanel")}),(0,n.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:"var(--text-md)"},children:r("chatWindow.close")})]}),(0,n.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:"var(--text-base)",lineHeight:1.45,whiteSpace:"pre"},children:(o.length?o:[""]).map((e,t,r)=>{var s;return(0,n.jsxs)(a.Fragment,{children:[(s=`line-${t}`,(function(e){let t,r=[],n={},a=0;for(n0.lastIndex=0;null!==(t=n0.exec(e));)t.index>a&&r.push({text:e.slice(a,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.background;else if(n>=30&&n<=37)r.color=n2[n-30];else if(n>=90&&n<=97)r.color=n5[n-90];else if(n>=40&&n<=47)r.background=n2[n-40];else if(n>=100&&n<=107)r.background=n5[n-100];else if((38===n||48===n)&&2===t[e+1]){let[a,s,i]=[t[e+2],t[e+3],t[e+4]];[a,s,i].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${a}, ${s}, ${i})`:r.background=`rgb(${a}, ${s}, ${i})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let a=function(e){if(e>=0&&e<8)return n2[e];if(e>=8&&e<16)return n5[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),a=e=>0===e?0:55+40*e;return`rgb(${a(r)}, ${a(n)}, ${a(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);a&&(38===n?r.color=a:r.background=a),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),a=t.index+t[0].length;return a<e.length&&r.push({text:e.slice(a),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${s}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}function au({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:s}){let{t:i}=(0,c.s9)(),[o,l]=(0,a.useState)(null),d=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=d.current;if(!e)return;let r=e.querySelector(`[data-tab-id="${CSS.escape(t)}"]`);if(!r)return;let n=e.getBoundingClientRect(),a=r.getBoundingClientRect();a.left<n.left?e.scrollLeft-=n.left-a.left:a.right>n.right&&(e.scrollLeft+=a.right-n.right)},[t,e]),(0,n.jsx)("div",{ref:d,role:"tablist","aria-label":"Open files",className:"tabbar-scroll",style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:"var(--control-height-lg)"},children:e.map(a=>{let c=a.id===t;return(0,n.jsxs)("div",{"data-tab-id":a.id,className:"tabbar-tab ui-focus-ring",onClick:()=>r(a.id),role:"tab",tabIndex:c?0:-1,"aria-selected":c,"aria-label":a.filePath,onKeyDown:t=>{if(("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(a.id)),("Delete"===t.key||"Backspace"===t.key)&&(t.preventDefault(),s(a.id)),"ArrowRight"===t.key||"ArrowLeft"===t.key){t.preventDefault();let n=e.findIndex(e=>e.id===a.id),s=e[(n+("ArrowRight"===t.key?1:-1)+e.length)%e.length];if(s){r(s.id);let e=d.current?.querySelector(`[data-tab-id="${CSS.escape(s.id)}"]`);e?.focus()}}},onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),s(a.id))},style:{display:"flex",alignItems:"center",gap:"var(--space-3)",height:"var(--control-height-lg)",paddingLeft:"var(--space-5)",paddingRight:"var(--space-3)",borderRight:"1px solid var(--border)",background:c?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:"var(--text-md)",color:c?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",position:"relative",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[c&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:0,right:0,bottom:0,height:2,background:"var(--accent)",borderTopLeftRadius:"var(--radius-control)",borderTopRightRadius:"var(--radius-control)"}}),(0,n.jsx)("span",{style:{flexShrink:0,opacity:c?1:.7,display:"flex",alignItems:"center"},children:ea(a.label,13)}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:c?500:400},title:a.filePath,children:a.label}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),s(a.id)},tabIndex:-1,className:"tabbar-close ui-focus-ring",onMouseEnter:()=>l(a.id),onMouseLeave:()=>l(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"var(--space-8)",height:"var(--space-8)",background:o===a.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:"var(--radius-control)",color:o===a.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},title:i("tabBar.close"),"aria-label":i("tabBar.closeTab",{label:a.label}),children:(0,n.jsx)(x.A,{size:11,strokeWidth:2,"aria-hidden":"true"})})]},a.id)})})}function ap(e){return"message"===e.type&&"message"in e}function ah(e){if(!ap(e))return;let t=e.message.content,r="string"==typeof t?t:Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join(" "):"";(r=r.replace(/\s+/g," ").trim()).length>40&&(r=`${r.slice(0,40)}…`),r||(r="assistant"===e.message.role?(0,c.Tl)("branchNavigator.assistantLabel"):"message");let n="user"===e.message.role||"assistant"===e.message.role?e.message.role:void 0;return{...n?{role:n}:{},text:r}}function am(e){let t=e,r=t.branchPreview,n=t.entry;ap(t.entry)&&(r??=ah(t.entry),n=t.entry);let a=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r??=t.branchPreview??ah(t.entry),!ap(n)&&ap(t.entry)&&(n=t.entry),a+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:a,branchPreview:r,labelEntry:n}}let af=(0,a.memo)(function e({node:t,activePathIds:r,depth:s,isLast:i,parentLines:o,onSelect:l}){let{t:d}=(0,c.s9)(),{node:u,skipped:p,branchPreview:h,labelEntry:m}=(0,a.useMemo)(()=>am(t),[t]),f=u.entry.id,g=t.entry.id,x=r.has(f),v=r.has(g)||r.has(f),y=(0,a.useMemo)(()=>h?.text??ah(m)?.text??m.type,[h,m]),b=(0,a.useMemo)(()=>h?.role??("message"===m.type&&"message"in m?m.message.role:null),[h,m]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{role:"button",tabIndex:0,"aria-label":y,style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(u.entry.id),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l(u.entry.id))},children:[o.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:i?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:x?"var(--accent)":v?"var(--text-muted)":"var(--border)",border:x?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background var(--dur-fast) var(--ease-out-warm)"}}),b&&(0,n.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===b?"var(--accent)":"var(--text-dim)",background:"user"===b?"color-mix(in srgb, var(--accent) 8%, transparent)":"var(--bg-hover)",border:`1px solid ${"user"===b?"color-mix(in srgb, var(--accent) 20%, transparent)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:d("user"===b?"branchNavigator.roleUser":"branchNavigator.roleAssistant")}),p>0&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",p]}),(0,n.jsx)("span",{style:{fontSize:"var(--text-sm)",color:x?"var(--text)":v?"var(--text-muted)":"var(--text-dim)",fontWeight:x?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:y})]}),u.children.map((t,a)=>(0,n.jsx)(e,{node:t,activePathIds:r,depth:s+1,isLast:a===u.children.length-1,parentLines:[...o,!i],onSelect:l},t.entry.id))]})},(e,t)=>{if(e.node!==t.node||e.onSelect!==t.onSelect)return!1;if(e.activePathIds===t.activePathIds)return!0;let r=t.node.entry.id,n=am(t.node).node.entry.id;return e.activePathIds.has(n)===t.activePathIds.has(n)&&e.activePathIds.has(r)===t.activePathIds.has(r)});function ag({tree:e,activeLeafId:t,onLeafChange:r,inline:s,containerRef:i,open:o,onToggle:l,hasSession:d}){let{t:u}=(0,c.s9)(),[p,h]=(0,a.useState)(!1),m=void 0!==o?o:p,f=(0,a.useRef)(null),[g,x]=(0,a.useState)(null);(0,a.useEffect)(()=>{if(!m||!s)return;let e=i?.current??f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=t.width,n=Math.min(260,window.innerHeight-t.bottom-8);x({top:t.bottom,left:Math.max(0,Math.min(t.left,window.innerWidth-r)),width:r,height:Math.max(60,n)})};t();let r=new ResizeObserver(t);return r.observe(e),window.addEventListener("scroll",t,!0),window.addEventListener("resize",t),()=>{r.disconnect(),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",t)}},[m,s,i]),(0,a.useEffect)(()=>{if(!m||!s)return;let e=()=>{l?l():h(!1)},t=t=>{let r=f.current;r&&r.contains(t.target)||t.target instanceof Element&&t.target.closest("[data-branch-panel]")||e()},r=t=>{"Escape"===t.key&&(t.stopPropagation(),e())};return document.addEventListener("mousedown",t),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",r)}},[m,s,i,l]);let v=(0,a.useMemo)(()=>t?new Set(function e(r,n){for(let a of r){let r=[...n,a.entry.id];if(a.entry.id===t||a.compressedEntryIds?.includes(t))return r;let s=e(a.children,r);if(s)return s}return null}(e,[])??[]):new Set,[e,t]),y=(0,a.useCallback)(e=>{r(e),void 0===o&&h(!1)},[r,o]),b=(0,a.useMemo)(()=>d?!function e(t){if(t.length>1)return!0;for(let r of t)if(r.children.length>1||e(r.children))return!0;return!1}(e)?u("branchNavigator.noBranches"):null:u("branchNavigator.noActiveSession"),[d,e,u]),w=(0,a.useMemo)(()=>{let t=e.length>0?am(e[0]):null;return t?.node??null},[e]),k=(0,a.useMemo)(()=>e.length>1?e:w&&w.children.length>1?w.children:[],[w,e]),j=!b&&k.length>0,S=(0,n.jsx)(ez.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:j?"var(--accent)":void 0,flexShrink:0}}),C=(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:m?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return s?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center"},children:[(0,n.jsx)("button",{ref:f,onClick:()=>l?l():h(e=>!e),className:"shell-toolbar-btn ui-focus-ring",style:{background:m?"var(--bg-selected)":void 0,color:m?"var(--text)":void 0},title:u("branchNavigator.branches"),"aria-label":u("branchNavigator.branches"),"aria-haspopup":"menu","aria-expanded":m,children:S}),m&&g&&(0,n.jsx)("div",{"data-branch-panel":!0,className:"dropdown-surface",style:{position:"fixed",top:g.top,left:g.left,width:g.width,maxHeight:g.height,overflowY:"auto",zIndex:"var(--z-branch-popover)"},children:j?(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-5) var(--space-4) var(--space-5)",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(af,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:b})})]}):(0,n.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,n.jsxs)("button",{onClick:()=>h(e=>!e),style:{display:"flex",alignItems:"center",gap:"var(--space-3)",width:"100%",padding:"5px var(--space-5)",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:"var(--text-sm)",textAlign:"left"},children:[S,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:u("branchNavigator.branches")}),C]}),m&&(0,n.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"var(--shadow-pop)",zIndex:100},children:j?(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-5) var(--space-4) var(--space-5)",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(af,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:b??u("branchNavigator.noBranches")})})]})}function ax(){let{locale:e,setLocale:t,t:r}=(0,c.s9)(),s=(0,t9.a)(),[i,o]=(0,a.useState)(!1),[l,d]=(0,a.useState)(0),u=(0,a.useRef)(null),p=(0,a.useRef)([]),h=(0,a.useId)(),m=`${h}-listbox`,f=Math.max(0,c.YZ.findIndex(t=>t.value===e)),g=c.YZ[f];(0,a.useEffect)(()=>{i||d(f)},[f,i]),(0,a.useEffect)(()=>{i&&p.current[l]?.focus()},[i,l]);let x=(e=!0)=>{o(!1),e&&u.current?.focus()},v=e=>{t(e),x(!0)};return(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||o(!1)},children:[(0,n.jsxs)("button",{ref:u,type:"button",onClick:()=>o(e=>!e),onKeyDown:e=>{("ArrowDown"===e.key||"Enter"===e.key||" "===e.key||"ArrowUp"===e.key)&&(e.preventDefault(),o(!0),d("ArrowUp"===e.key?c.YZ.length-1:f))},title:r("languageSwitcher.switchTo",{language:g.label}),"aria-haspopup":"menu","aria-expanded":i,"aria-controls":i?m:void 0,className:"shell-toolbar-btn ui-focus-ring",style:{width:"auto",minWidth:s?"var(--control-touch)":"var(--control-height-lg)",padding:"0 var(--space-4)",gap:"var(--space-2)",background:i?"var(--bg-selected)":void 0,color:i?"var(--text)":void 0,fontSize:"var(--text-sm)",whiteSpace:"nowrap"},children:[g.label,(0,n.jsx)(eW.A,{size:10,strokeWidth:2,"aria-hidden":"true",style:{flexShrink:0,transform:i?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),i&&(0,n.jsx)("ul",{id:m,role:"menu",className:"dropdown-surface animate-slide-down",style:{position:"absolute",top:"calc(100% + var(--space-2))",right:0,zIndex:"var(--z-dropdown)",minWidth:120,margin:0,padding:"var(--space-2)",listStyle:"none",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxShadow:"var(--shadow-pop)"},children:c.YZ.map((t,r)=>{let a=t.value===e;return(0,n.jsx)("li",{role:"none",children:(0,n.jsxs)("button",{className:"dropdown-item",ref:e=>{p.current[r]=e},type:"button",role:"menuitem",tabIndex:-1,"aria-current":a||void 0,onClick:()=>v(t.value),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=a?"var(--bg-selected)":"transparent"},onKeyDown:e=>((e,t)=>{switch(e.key){case"ArrowDown":e.preventDefault(),d((t+1)%c.YZ.length);break;case"ArrowUp":e.preventDefault(),d((t-1+c.YZ.length)%c.YZ.length);break;case"Home":e.preventDefault(),d(0);break;case"End":e.preventDefault(),d(c.YZ.length-1);break;case"Enter":case" ":e.preventDefault(),v(c.YZ[t].value);break;case"Escape":e.preventDefault(),e.stopPropagation(),x(!0);break;case"Tab":x(!1)}})(e,r),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-4)",padding:"7px 10px",border:0,borderRadius:5,background:a?"var(--bg-selected)":"transparent",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{children:t.label}),a&&(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m3 8 3.5 3.5L13 5"})})]})},t.value)})})]})}var av=r(91669),ay=r(96304),ab=r(47603),aw=r(78890),ak=r(61663),aj=r(61491),aS=r(16449),aC=r(45486),aI=r(96793),aT=r(7834);let aE=(0,s.default)(()=>Promise.all([r.e(4854),r.e(9754),r.e(5658)]).then(r.bind(r,65658)).then(e=>e.FileViewer),{loadableGenerated:{webpack:()=>[65658]},ssr:!1,loading:()=>(0,n.jsx)(aD,{})}),aR="ompgui:sidebar-width",aM="ompgui:tool-calls-collapsed",aW="ompgui:right-panel-width";function a$(e){return Math.min(520,Math.max(200,Math.round(e)))}function az(e){return Math.min(960,Math.max(300,Math.round(e)))}function aN(){return az(.42*window.innerWidth)}let aA=(0,s.default)(()=>r.e(9182).then(r.bind(r,9182)).then(e=>e.SettingsConfig),{loadableGenerated:{webpack:()=>[9182]},ssr:!1,loading:()=>(0,n.jsx)(aP,{})}),aL=(0,s.default)(()=>r.e(6604).then(r.bind(r,96604)).then(e=>e.UsageConfig),{loadableGenerated:{webpack:()=>[96604]},ssr:!1,loading:()=>(0,n.jsx)(aP,{})}),aF=(0,s.default)(()=>Promise.all([r.e(8717),r.e(1133)]).then(r.bind(r,11133)).then(e=>e.CommandPalette),{loadableGenerated:{webpack:()=>[11133]},ssr:!1});function aD(){let{t:e}=(0,c.s9)();return(0,n.jsx)("div",{role:"status",style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:e("appShell.loading")})}function aP(){let{t:e}=(0,c.s9)();return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:"var(--z-dialog-backdrop)",background:"var(--overlay-backdrop)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:e("appShell.loading")})}function aB(){let e,t,r,s,l,u,p,h,m,f,g,x,v,y=(0,i.useRouter)(),b=(0,i.useSearchParams)(),[w]=(0,a.useState)(()=>{let e;return{requestedCwd:e=b.get("cwd")?.trim()||null,sessionId:e?null:b.get("session")}}),{isDark:k,preference:j,toggleTheme:S}=(0,aI.DP)(),{t:I,locale:T}=(0,c.s9)(),E=(0,t9.a)(),[R,M]=(0,a.useState)(null),[W,$]=(0,a.useState)(null),[z,N]=(0,a.useState)(()=>w.requestedCwd?"validating":"idle"),[A,L]=(0,a.useState)(null),[F,D]=(0,a.useState)(0),[P,B]=(0,a.useState)(0),[O,_]=(0,a.useState)(0),[H,U]=(0,a.useState)(!1),[q,V]=(0,a.useState)(null),[K,Z]=(0,a.useState)(!1),[J,Y]=(0,a.useState)(0),[G,X]=(0,a.useState)(!1),[Q,ee]=(0,a.useState)(!0),[et,er]=(0,a.useState)(!1),[en,ea]=(0,a.useState)(260),[es,eo]=(0,a.useState)(!0),[el,ec]=(0,a.useState)(!1),ed=(0,a.useRef)(null),eu=(0,a.useRef)(null),ep=(0,a.useRef)(260);(0,a.useEffect)(()=>{ea(function(){try{let e=window.localStorage.getItem(aR),t=e?Number(e):NaN;return Number.isFinite(t)?a$(t):260}catch{return 260}}());try{eo("false"!==window.localStorage.getItem(aM))}catch{}},[]);let eh=(0,a.useCallback)(e=>{eo(e);try{window.localStorage.setItem(aM,String(e))}catch{}},[]),ef=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(!ef.current){ef.current=!0;return}if(!el)try{window.localStorage.setItem(aR,String(en))}catch{}},[en,el]);let[eg,ex]=(0,a.useState)(!1),[ev,ey]=(0,a.useState)(!1);(0,a.useEffect)(()=>{E&&ee(!1)},[E]),(0,a.useEffect)(()=>{er(!0)},[]),(0,a.useEffect)(()=>{X("true"===localStorage.getItem("omp-advisor-enabled"))},[]);let eb=(0,a.useCallback)(e=>{X(e),localStorage.setItem("omp-advisor-enabled",String(e))},[]);(0,a.useEffect)(()=>{let e=new AbortController;return fetch("/api/omp-update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check"}),signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{if(ey(!!e?.updateAvailable),!e?.updateAvailable||!e.availableVersion)return;let t=e.updateCommand||"omp update";em.oR.info((0,c.Tl)("appShell.ompUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginTop:"var(--space-2)"},children:[(0,n.jsx)("div",{children:(0,c.Tl)("appShell.updateVersion",{current:e.currentVersion??"?",available:e.availableVersion})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,aT.D)(t).then(()=>em.oR.success((0,c.Tl)("appShell.commandCopied"))).catch(()=>em.oR.error((0,c.Tl)("appShell.commandCopyFailed")))},style:{padding:"3px 7px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:(0,c.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]),(0,a.useEffect)(()=>{let e=new AbortController;return fetch("/api/app-update",{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{if(ex(!!e?.updateAvailable),!e?.updateAvailable||!e.availableVersion)return;let t=e.updateCommand||"npm install -g ompgui";em.oR.info((0,c.Tl)("appShell.appUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginTop:"var(--space-2)"},children:[(0,n.jsx)("div",{children:(0,c.Tl)("appShell.updateVersion",{current:e.currentVersion??"?",available:e.availableVersion})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,aT.D)(t).then(()=>em.oR.success((0,c.Tl)("appShell.commandCopied"))).catch(()=>em.oR.error((0,c.Tl)("appShell.commandCopyFailed")))},style:{padding:"3px 7px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:(0,c.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]);let ew=(0,a.useRef)(null),ej=(0,a.useRef)(null),[eS,eC]=(0,a.useState)([]),[eI,eT]=(0,a.useState)(null),eE=(0,a.useRef)(null),eR=(0,a.useCallback)((e,t,r)=>{eC(e),eT(t),eE.current=r},[]),eM=(0,a.useCallback)(e=>{eE.current?.(e)},[]),[eW,e$]=(0,a.useState)(null),[ez,eN]=(0,a.useState)(!1),eA=(0,a.useRef)(null),eL=(0,a.useRef)(0),eF=(0,a.useRef)(null),eD=(0,a.useRef)(null),eP=(0,a.useCallback)(e=>{e$(e),eN(!1)},[]),eB=(0,a.useCallback)(e=>{eL.current+=1,eA.current=e,eN(!1)},[]),[eO,e_]=(0,a.useState)(null),[eH,eU]=(0,a.useState)({kind:"idle"}),eq=(0,a.useRef)(null),eK=(0,a.useRef)(R?.id??null);eK.current=R?.id??null;let eZ=(0,a.useCallback)(e=>{e_(e)},[]),[eJ,eY]=(0,a.useState)(null),eG=(0,a.useRef)(null),eX=(0,a.useCallback)((e,t)=>{(0,aT.D)(t).then(()=>{eG.current&&clearTimeout(eG.current),eY(e),eG.current=setTimeout(()=>eY(null),1400)})},[]);(0,a.useEffect)(()=>()=>{eG.current&&clearTimeout(eG.current),eq.current&&clearTimeout(eq.current)},[]);let[eQ,e0]=(0,a.useState)(null),e1=(0,a.useCallback)(e=>{e0(e)},[]),[e2,e5]=(0,a.useState)(null),[e4,e3]=(0,a.useState)(null),e6=(0,a.useCallback)(e=>{E&&ee(!1),e5(t=>t===e?null:e)},[E]),e8=(0,a.useCallback)(()=>{let e="system"!==e2;if(e6("system"),!e||ez||null!==eW)return;let t=eA.current;if(!t)return;let r=++eL.current;eN(!0),t().catch(e=>{console.error("Failed to load system prompt:",e)}).finally(()=>{eL.current===r&&eN(!1)})},[e2,eW,ez,e6]),e9=(0,a.useCallback)(()=>{E&&ee(!1),e5("session")},[E]),e7=(0,a.useCallback)(()=>{E&&e5(null),ee(e=>!e)},[E]),te=(0,a.useCallback)(()=>{ea(260)},[]),tt=(0,a.useCallback)(e=>{ea(t=>a$(t+e))},[]),tr=(0,a.useCallback)(e=>{"ArrowLeft"===e.key?(e.preventDefault(),tt(-10)):"ArrowRight"===e.key?(e.preventDefault(),tt(10)):("Enter"===e.key||" "===e.key)&&(e.preventDefault(),te())},[tt,te]),tn=(0,a.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;ec(!0);let r=e=>{let r=a$(en+(e.clientX-t));eu.current?.style.setProperty("--sidebar-width",`${r}px`),ep.current=r},n=()=>{window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",n),ed.current=null,ec(!1),ea(ep.current),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",ep.current=en,ed.current={onMove:r,onUp:n},window.addEventListener("mousemove",r),window.addEventListener("mouseup",n)},[E,en]);(0,a.useEffect)(()=>()=>{let e=ed.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),ed.current=null,document.body.style.cursor="",document.body.style.userSelect="")},[]),(0,a.useEffect)(()=>{if(!e2||!ej.current)return;let e=()=>{let e=ej.current.getBoundingClientRect();e3({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(ej.current),()=>t.disconnect()},[e2]),(0,a.useEffect)(()=>{if(!e2||"branches"===e2)return;let e=e=>{e.target instanceof Element&&e.target.closest("[data-top-panel]")||eF.current?.contains(e.target)||eD.current?.contains(e.target)||e5(null)},t=e=>{"Escape"===e.key&&(e.stopPropagation(),e5(null))};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[e2]);let[ta,ts]=(0,a.useState)([]),[ti,to]=(0,a.useState)(null),[tl,tc]=(0,a.useState)(!1),[td,tu]=(0,a.useState)(520),[tp,th]=(0,a.useState)(!1),tm=(0,a.useRef)(null),tf=(0,a.useRef)(520),tg=(0,a.useRef)(null),tx=(0,a.useRef)(!1);(0,a.useEffect)(()=>{tu(function(){try{let e=window.localStorage.getItem(aW),t=e?Number(e):NaN;return Number.isFinite(t)?az(t):aN()}catch{return aN()}}())},[]),(0,a.useEffect)(()=>{if(!tx.current){tx.current=!0;return}if(!tp)try{window.localStorage.setItem(aW,String(td))}catch{}},[tp,td]);let tv=(0,a.useCallback)(()=>{tu(aN())},[]),ty=(0,a.useCallback)(e=>{tu(t=>az(t+e))},[]),tb=(0,a.useCallback)(e=>{"ArrowLeft"===e.key?(e.preventDefault(),ty(16)):"ArrowRight"===e.key?(e.preventDefault(),ty(-16)):("Enter"===e.key||" "===e.key)&&(e.preventDefault(),tv())},[ty,tv]),tw=(0,a.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;th(!0);let r=e=>{let r=az(td+(t-e.clientX));tm.current?.style.setProperty("--right-panel-width",`${r}px`),tf.current=r},n=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),tg.current=null,th(!1),tu(tf.current),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",tf.current=td,tg.current={onMove:r,onUp:n},window.addEventListener("pointermove",r),window.addEventListener("pointerup",n)},[E,td]);(0,a.useEffect)(()=>()=>{let e=tg.current;e&&(window.removeEventListener("pointermove",e.onMove),window.removeEventListener("pointerup",e.onUp),tg.current=null,document.body.style.cursor="",document.body.style.userSelect="")},[]);let tk=(0,a.useCallback)((e,t)=>{ew.current?.insertText(t8(e,t))},[]),tj=(0,a.useCallback)(e=>{let t=e.map(e=>t8(e,!1)).join("");t&&ew.current?.insertText(t)},[]),tS=(0,a.useCallback)((e,t,r)=>{let n,a,s,i;ew.current?.insertText((n=Math.max(1,Math.min(t,r)),a=Math.max(1,Math.max(t,r)),s=e.includes(" ")?`@"${e}"`:`@${e}`,i=n===a?`:${n}`:`:${n}-${a}`,`${s}${i} `))},[]),tC=w.sessionId,[tI,tT]=(0,a.useState)(null),[tE,tR]=(0,a.useState)(()=>!tC),tM=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=w.requestedCwd;if(!e)return;let t=new AbortController;return N("validating"),L(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||t.code?(0,d.K)(t):`HTTP ${e.status}`);tM.current=!0,$(t.cwd),N("ready")}).catch(e=>{t.signal.aborted||(L(e instanceof Error?e.message:String(e)),N("error"))}),()=>t.abort()},[w]);let tW=(0,a.useCallback)((e,t)=>{if(tT(e),!e)return;if(tM.current){tM.current=!1;return}let r=t??e,n=R?R.projectRoot??R.cwd:null;n&&ek(n)===ek(r)||(M(null),$(t=>t&&t!==e?null:t),B(e=>e+1),eC([]),eT(null),e$(null),eN(!1),e5(null),y.replace("/",{scroll:!1}))},[y,R]),t$=(0,a.useCallback)((e,t=!1)=>{$(null),M(e),B(e=>e+1),e$(null),eN(!1),tR(!0),E&&!t&&ee(!1),t&&(tM.current=!0),t||y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,E]),tz=(0,a.useCallback)((e,t)=>{M(null),$(t),B(e=>e+1),eC([]),eT(null),e$(null),eN(!1),e5(null),E&&ee(!1),y.replace("/",{scroll:!1})},[y,E]);!function(e){let{onNewSession:t,activeCwd:r}=e;(0,a.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!o)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),o();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=>tz(`kb-${Date.now()}`,e),activeCwd:tI});let tN=(0,a.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&M(t=>t&&t.id===e&&!t.projectRoot?r:t)}).catch(()=>{})},[]),tA=(0,a.useCallback)(e=>{$(null),M(e),D(e=>e+1),tN(e.id),y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,tN]),tL=(0,a.useCallback)(()=>{if(D(e=>e+1),_(e=>e+1),"hidden"!==document.visibilityState||!("Notification"in window))return;let e=()=>{!function(e,t,r,n={createNotification:(e,t)=>new Notification(e,t)}){try{let a=n.createNotification(e,{body:t});a.onclick=()=>{a.close(),r()}}catch{return!1}}(R?.name??(0,c.Tl)("appShell.sessionComplete"),(0,c.Tl)("appShell.taskFinished"),()=>{window.focus(),R&&t$(R)})};"granted"===Notification.permission?e():"default"===Notification.permission&&Notification.requestPermission().then(t=>{"granted"===t&&e()})},[t$,R]),tF=(0,a.useCallback)(async()=>{let e=R?.id;if(e&&"naming"!==eH.kind){eq.current&&clearTimeout(eq.current),e5(null),eU({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||r.code?(0,d.K)(r):`HTTP ${t.status}`);let n=r.title.trim();if(D(e=>e+1),eK.current!==e)return;M(t=>t?.id===e?{...t,name:n}:t),e_(t=>t?.sessionId===e?{...t,sessionName:n}:t),eU({kind:"success"}),eq.current=setTimeout(()=>eU({kind:"idle"}),1800)}catch(t){if(eK.current!==e)return;eU({kind:"error",message:t instanceof Error?t.message:String(t)}),eq.current=setTimeout(()=>eU({kind:"idle"}),5e3)}}},[eH.kind,R?.id]);(0,a.useEffect)(()=>{eq.current&&clearTimeout(eq.current),eU({kind:"idle"})},[R?.id]);let tD=(0,a.useCallback)(()=>{U(!0),_(e=>e+1)},[]),tP=(0,a.useCallback)(()=>{U(!1)},[]),tB=(0,a.useCallback)(e=>{D(e=>e+1),B(e=>e+1),$(null),M(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e})),tN(e),y.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[y,tN]),tO=(0,a.useCallback)(()=>{tR(!0)},[]),t_=(0,a.useCallback)(e=>{if(D(e=>e+1),R?.id===e){let e=R.cwd;M(null),$(e??null),B(e=>e+1),eC([]),eT(null),e$(null),e5(null),y.replace("/",{scroll:!1})}},[R,y]),tH=(0,a.useCallback)((e,t,r)=>{let n=`file:${e}`;ts(a=>{let s=a.find(e=>e.id===n);return s?r&&s.sourceSessionId!==r?a.map(e=>e.id===n?{...e,sourceSessionId:r}:e):a:[...a,{id:n,label:t,filePath:e,sourceSessionId:r}]}),to(n),tc(!0),E&&ee(!1)},[E]),tU=(0,a.useCallback)(e=>{tH(e,(0,ei.WP)(e),R?.id??null)},[tH,R?.id]),tq=(0,a.useCallback)(e=>{let t=ta.filter(t=>t.id!==e);ts(t),0===t.length&&tc(!1),to(r=>r!==e?r:t.length>0?t[t.length-1].id:null)},[ta]),tV=(0,a.useCallback)(()=>{R&&window.open(`/api/sessions/${encodeURIComponent(R.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[R]),tK=W??(null===R&&tI?tI:null),tZ=null!==R||null!==tK,tY=tE&&!tZ,tG=tI?(0,ei.WP)(tI)||tI:null,tX=tG?`${tG} - ompgui`:"ompgui";(0,a.useEffect)(()=>{let e=()=>{document.title!==tX&&(document.title=tX)};e();let t=new MutationObserver(e);return t.observe(document.head,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[tX]);let tQ=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aF,{onSelectSession:t$,onNewSession:()=>tz(`palette-${Date.now()}`,tI??""),currentModel:null}),(0,n.jsx)(eV,{selectedSessionId:R?.id??null,optimisticSession:R?.path===""?R:null,onSelectSession:t$,onNewSession:tz,initialSessionId:tC,skipInitialProjectSelection:null!==w.requestedCwd,onInitialRestoreDone:tO,refreshKey:F,onSessionDeleted:t_,selectedCwd:R?.cwd??W??null,onCwdChange:tW,onOpenFile:tH,explorerRefreshKey:O,onExplorerRefresh:tD,explorerRefreshing:H,onExplorerRefreshDone:tP,onAtMention:tk,onAtMentions:tj,onOpenSettings:()=>V("general"),onOpenUsage:()=>Z(!0),updateAvailable:eg||ev})]});return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(em.tE,{children:[(0,n.jsx)("style",{children:`
|
|
19
|
-
@keyframes session-info-pop {
|
|
20
|
-
0% {
|
|
21
|
-
opacity: 0;
|
|
22
|
-
transform: translateY(-24px);
|
|
23
|
-
}
|
|
24
|
-
100% {
|
|
25
|
-
opacity: 1;
|
|
26
|
-
transform: translateY(0);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
@keyframes session-info-light-wash {
|
|
30
|
-
0% {
|
|
31
|
-
opacity: 0;
|
|
32
|
-
transform: translateX(-110%) skewX(-16deg);
|
|
33
|
-
}
|
|
34
|
-
24% {
|
|
35
|
-
opacity: 0.42;
|
|
36
|
-
}
|
|
37
|
-
100% {
|
|
38
|
-
opacity: 0;
|
|
39
|
-
transform: translateX(115%) skewX(-16deg);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
.session-info-popover {
|
|
43
|
-
position: relative;
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
transform-origin: top right;
|
|
46
|
-
animation: session-info-pop var(--dur-slow) var(--ease-out-warm) both;
|
|
47
|
-
will-change: transform, opacity;
|
|
48
|
-
}
|
|
49
|
-
.session-info-popover::after {
|
|
50
|
-
content: "";
|
|
51
|
-
position: absolute;
|
|
52
|
-
top: 0;
|
|
53
|
-
bottom: 0;
|
|
54
|
-
left: 0;
|
|
55
|
-
width: 44%;
|
|
56
|
-
pointer-events: none;
|
|
57
|
-
background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 24%, transparent), transparent);
|
|
58
|
-
animation: session-info-light-wash var(--dur-slow) var(--ease-out-warm) both;
|
|
59
|
-
}
|
|
60
|
-
@media (prefers-reduced-motion: reduce) {
|
|
61
|
-
.session-info-popover,
|
|
62
|
-
.session-info-popover::after {
|
|
63
|
-
animation: none;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
@media (max-width: 640px) {
|
|
67
|
-
.sidebar-overlay-backdrop.sidebar-mobile-pending {
|
|
68
|
-
opacity: 0 !important;
|
|
69
|
-
pointer-events: none !important;
|
|
70
|
-
}
|
|
71
|
-
.sidebar-container.sidebar-mobile-pending.sidebar-open {
|
|
72
|
-
transform: translateX(-100%);
|
|
73
|
-
box-shadow: none;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
`}),(0,n.jsxs)("div",{style:{display:"flex",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${et?"":" sidebar-mobile-pending"}`,onClick:()=>ee(!1),style:{position:"fixed",inset:0,zIndex:"var(--z-sidebar-backdrop)",background:"color-mix(in srgb, var(--text) 28%, transparent)",opacity:+!!Q,pointerEvents:Q?"auto":"none",transition:"opacity var(--dur-slow) var(--ease-out-warm)"}}),(0,n.jsx)("div",{ref:eu,className:`sidebar-container${Q?" sidebar-open":" sidebar-closed"}${et?"":" sidebar-mobile-pending"}${el?" sidebar-resizing":""}`,"aria-hidden":!!et&&!Q||void 0,inert:!!et&&!Q||void 0,style:{background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:"var(--z-sidebar)",...!E?{"--sidebar-width":`${en}px`}:{}},children:tQ}),!E&&Q&&(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":I("appShell.resizeSidebar"),tabIndex:0,onMouseDown:tn,onDoubleClick:te,onKeyDown:tr,title:I("appShell.resizeSidebarTitle"),style:{width:5,flexShrink:0,marginLeft:-5,cursor:"col-resize",background:"transparent",zIndex:"var(--z-resize-handle)",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onFocus:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onBlur:e=>{e.currentTarget.style.background="transparent"}}),(0,n.jsxs)("main",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:ej,className:"shell-topbar",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",height:"100%",paddingLeft:E?"var(--space-2)":"var(--space-4)"},children:[(0,n.jsx)("button",{onClick:e7,title:Q?I("appShell.hideSidebar"):I("appShell.showSidebar"),"aria-label":Q?I("appShell.hideSidebar"):I("appShell.showSidebar"),className:"shell-toolbar-btn ui-focus-ring",children:Q?(0,n.jsx)(av.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(ay.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();S({x:t.left+t.width/2,y:t.top+t.height/2})},title:"system"===j?I("appShell.systemTheme"):k?I("appShell.switchToSystemTheme"):I("appShell.switchToDarkMode"),"aria-label":"system"===j?I("appShell.systemTheme"):k?I("appShell.switchToSystemTheme"):I("appShell.switchToDarkMode"),"aria-pressed":k,className:"shell-toolbar-btn ui-focus-ring",children:k?(0,n.jsx)(ab.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(aw.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsx)(ax,{})]}),tZ&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"shell-toolbar-divider","aria-hidden":"true"}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",height:"100%"},children:[(0,n.jsx)("button",{onClick:tV,disabled:!R,title:R?I("appShell.fullHistory"):I("appShell.fullHistoryUnavailable"),"aria-label":I("appShell.fullHistory"),className:"shell-toolbar-btn ui-focus-ring",children:(0,n.jsx)(ak.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(e=!!(R&&(eO?.userMessages??R.messageCount)>0),t=!R||!e||"naming"===eH.kind,r="success"===eH.kind,s="error"===eH.kind,l="naming"===eH.kind?I("appShell.generating"):r?I("appShell.titleUpdated"):s?I("appShell.generationFailed"):I("appShell.generateTitle"),u=R?e?s?eH.message:I("appShell.generateSessionTitle"):I("appShell.titleGenNeedsMessage"):I("appShell.titleGenUnavailable"),(0,n.jsx)("button",{type:"button",onClick:()=>void tF(),disabled:t,title:u,"aria-label":l,className:"shell-toolbar-btn ui-focus-ring",style:{opacity:"naming"===eH.kind?1:void 0},children:"naming"===eH.kind?(0,n.jsxs)("svg",{className:"animate-spin",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):r?(0,n.jsx)(C.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:"var(--accent)"}}):s?(0,n.jsx)(aj.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:"var(--status-error)"}}):(0,n.jsx)(aj.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})})),(0,n.jsx)(ag,{tree:eS,activeLeafId:eI,onLeafChange:eM,inline:!0,containerRef:ej,open:"branches"===e2,onToggle:()=>e6("branches"),hasSession:!0}),(0,n.jsx)("button",{ref:eF,onClick:e8,title:I("appShell.system"),"aria-label":I("appShell.system"),"aria-pressed":"system"===e2,className:"shell-toolbar-btn ui-focus-ring",children:(0,n.jsx)(aS.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:eW?"var(--accent)":void 0}})})]})]}),tZ&&(eO||eQ)&&(()=>{let e=eO?.tokens,t=eO?.cost??0,r=t>0?t>=.01?`$${t.toFixed(2)}`:"<$0.01":null,a="var(--text-muted)",s=null;if(eQ?.contextWindow){let e=eQ.percent;null!==e&&e>90?a="var(--status-error)":null!==e&&e>70&&(a="var(--status-warning)"),s=null!==e?`${(0,tJ.l)(e)} / ${(0,tJ.w)(eQ.contextWindow)}`:`? / ${(0,tJ.w)(eQ.contextWindow)}`}let i=[];if(e&&(i.push(I("appShell.tooltipInput",{value:e.input.toLocaleString(T)})),i.push(I("appShell.tooltipOutput",{value:e.output.toLocaleString(T)})),i.push(I("appShell.tooltipCacheRead",{value:e.cacheRead.toLocaleString(T)})),i.push(I("appShell.tooltipCacheWrite",{value:e.cacheWrite.toLocaleString(T)})),t>0&&i.push(I("appShell.tooltipCost",{value:t.toFixed(4)}))),eQ?.contextWindow){let e=eQ.percent;i.push(I("appShell.tooltipContext",{percent:null!==e?e.toFixed(1)+"%":I("appShell.unknown"),tokens:eQ.contextWindow.toLocaleString(T)}))}let o=i.join(" | ");return(0,n.jsxs)("button",{ref:eD,type:"button",onClick:()=>e6("session"),title:o||I("appShell.sessionInfo"),"aria-label":I("appShell.sessionInfo"),"aria-pressed":"session"===e2,className:"shell-stats-btn ui-focus-ring",children:[E&&(0,n.jsx)(rV.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}),!E&&e&&e.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),(0,tJ.w)(e.input)]}),!E&&e&&e.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),(0,tJ.w)(e.output)]}),!E&&e&&e.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),(0,tJ.w)(e.cacheRead)]}),!E&&r&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:r}),s&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",color:a,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),s]})]})})(),("system"===e2||"session"===e2)&&e4&&(0,n.jsxs)("div",{"data-top-panel":!0,className:"dropdown-surface",style:{position:"fixed",top:e4.top,left:e4.left,width:e4.width,maxHeight:`calc(100dvh - ${e4.top}px)`,overflow:"auto",zIndex:"var(--z-dropdown)"},children:["system"===e2&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:eW?(0,n.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"var(--space-5) var(--space-6)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:eW}):""===eW?(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:I("appShell.systemPromptEmpty")}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:ez?I("appShell.systemPromptLoading"):I("appShell.systemPromptLoadHint")})}),"session"===e2&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"var(--shadow-pop)",padding:"var(--space-5) var(--space-6)"},children:eO?(p=[...eO.sessionName?[{label:I("appShell.statName"),value:eO.sessionName,copyField:null}]:[],{label:I("appShell.statFile"),value:eO.sessionFile??I("appShell.inMemory"),copyField:"file"},{label:I("appShell.statId"),value:eO.sessionId,copyField:"id"}],h=[[I("appShell.statUser"),eO.userMessages.toLocaleString(T)],[I("appShell.statAssistant"),eO.assistantMessages.toLocaleString(T)],[I("appShell.statToolCalls"),eO.toolCalls.toLocaleString(T)],[I("appShell.statToolResults"),eO.toolResults.toLocaleString(T)],[I("appShell.statTotal"),eO.totalMessages.toLocaleString(T)]],m=[[I("appShell.statInput"),eO.tokens.input.toLocaleString(T)],[I("appShell.statOutput"),eO.tokens.output.toLocaleString(T)],...eO.tokens.cacheRead>0?[[I("appShell.statCacheRead"),eO.tokens.cacheRead.toLocaleString(T)]]:[],...eO.tokens.cacheWrite>0?[[I("appShell.statCacheWrite"),eO.tokens.cacheWrite.toLocaleString(T)]]:[],[I("appShell.statTotal"),eO.tokens.total.toLocaleString(T)]],f=eQ??eO.contextUsage,g=[...eO.cost>0?[[I("appShell.statCost"),`$${eO.cost.toFixed(4)}`]]:[],...f?.contextWindow?[[I("appShell.statContext"),`${null!==f.percent?(0,tJ.l)(f.percent):"?"} / ${(0,tJ.w)(f.contextWindow)}`]]:[]],x=(e,t,r="left",a=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:700,color:"var(--text)",marginBottom:"var(--space-3)"},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:a?"max-content max-content":"auto minmax(0, 1fr)",columnGap:a?14:12,rowGap:"var(--space-2)",justifyContent:a?"start":void 0},children:t.map(([t,s])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:a?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:s})]},`${e}:${t}`))})]}),v=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:700,color:"var(--text)",marginBottom:"var(--space-3)"},children:I("appShell.sectionSessionInfo")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:"var(--space-5)",rowGap:"var(--space-4)",alignItems:"start"},children:p.map(e=>{var t,r;let a;return(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?(t=e.copyField,r=e.value,a=eJ===t,(0,n.jsx)("button",{type:"button",title:a?I("appShell.copied"):"file"===t?I("appShell.copyFilePath"):I("appShell.copySessionId"),onClick:()=>eX(t,r),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:a?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},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=a?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:a?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})):null})]},`session-info:${e.label}`)})})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:E?"1fr":"minmax(300px, 1.7fr) minmax(120px, 0.55fr) minmax(160px, 0.75fr)",gap:E?"var(--space-6)":"var(--space-8)",fontSize:"var(--text-md)",lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[v,x(I("appShell.sectionMessages"),h),x(I("appShell.sectionTokens"),[...m,...g],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:I("appShell.sessionInfoLoadHint")})})]})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:tZ?(0,n.jsx)(ai,{session:R,newSessionCwd:tK,onAgentEnd:tL,onSessionCreated:tA,onSessionForked:tB,modelsRefreshKey:J,chatInputRef:ew,onBranchDataChange:eR,onSystemPromptChange:eP,onSystemPromptLoaderChange:eB,onSessionStatsChange:eZ,onSessionStatsPanelOpen:e9,onOpenSettingsTab:e=>V(e),onContextUsageChange:e1,onOpenFile:tU,advisorEnabled:G,toolCallsDefaultCollapsed:es},P):"validating"===z?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"var(--space-4)",padding:"var(--space-8)",color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-lg)",color:"var(--text)"},children:I("appShell.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)"},children:w.requestedCwd})]}):"error"===z?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"var(--space-4)",padding:"var(--space-8)",color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-lg)",color:"var(--status-error)"},children:I("appShell.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)"},children:w.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:"var(--text-md)"},children:A})]}):tY?tI?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:16},children:(0,n.jsx)("span",{className:"display-serif",children:I("appShell.selectSessionHint")})}):(0,n.jsxs)("div",{style:{position:"absolute",top:"var(--space-5)",left:"var(--space-5)",display:"flex",alignItems:"flex-start",gap:"var(--space-4)",userSelect:"none",pointerEvents:"none"},children:[(0,n.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,n.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,n.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"display-serif",style:{fontSize:20,color:"var(--text)",marginBottom:"var(--space-4)"},children:I("appShell.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:"var(--space-3)"},children:"1."}),I("appShell.getStartedStep1"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:"var(--space-3)"},children:"2."}),(()=>{let[e,t]=I("appShell.getStartedStep2").split("{models}");return(0,n.jsxs)(n.Fragment,{children:[e,(0,n.jsx)("strong",{style:{color:"var(--text)"},children:I("appShell.models")}),t]})})()]})]})]}):(0,n.jsx)(aD,{})})]}),!E&&tl&&(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":I("appShell.resizeFilePanel"),"aria-valuemin":300,"aria-valuemax":960,"aria-valuenow":td,tabIndex:0,onPointerDown:tw,onDoubleClick:tv,onKeyDown:tb,title:I("appShell.resizeFilePanelTitle"),style:{width:5,flexShrink:0,marginRight:-5,cursor:"col-resize",background:"transparent",zIndex:"var(--z-resize-handle)",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onFocus:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onBlur:e=>{e.currentTarget.style.background="transparent"}}),(0,n.jsxs)("div",{ref:tm,className:`right-panel-container${tl?" right-panel-open":" right-panel-closed"}${tp?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)",...!E?{"--right-panel-width":`${td}px`}:{}},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:"var(--control-height-lg)"},children:(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(au,{tabs:ta,activeTabId:ti??"",onSelectTab:to,onCloseTab:tq})})}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:ta.length>0?ta.map(e=>(0,n.jsx)("div",{style:{display:e.id===ti?"block":"none",height:"100%"},children:(0,n.jsx)(aE,{filePath:e.filePath,cwd:tI??void 0,sourceSessionId:e.sourceSessionId,gitRefreshKey:O,onMentionLines:e.id===ti&&tl?tS:void 0,onOpenFile:t=>tH(t,(0,ei.WP)(t),e.sourceSessionId)})},e.id)):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:I("appShell.noFileOpen")})})]})]}),(0,n.jsx)("button",{onClick:()=>tc(e=>!e),title:tl?I("appShell.hideFilePanel"):I("appShell.showFilePanel"),"aria-label":tl?I("appShell.hideFilePanel"):I("appShell.showFilePanel"),"aria-pressed":tl,className:"shell-file-toggle ui-focus-ring",children:(0,n.jsx)(aC.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),q&&(0,n.jsx)(aA,{activeTab:q,advisorEnabled:G,onAdvisorChange:eb,toolCallsDefaultCollapsed:es,onToolCallsDefaultCollapsedChange:eh,cwd:tI??R?.cwd??W,sessionId:R?.id??null,onModelsSaved:()=>Y(e=>e+1),onPluginsReloaded:()=>B(e=>e+1),onOmpUpdateAvailabilityChange:ey,onSelectTab:V,onClose:()=>V(null)}),K&&(0,n.jsx)(aL,{onClose:()=>Z(!1)})]})})}}},e=>{e.O(0,[3451,4315,8441,3794,7358],()=>e(e.s=5456)),_N_E=e.O()}]);
|