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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1388],{12651:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]])},32383:(e,t,r)=>{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)=>{r.d(t,{t:()=>i,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 i(e){try{window.localStorage.setItem(n,e)}catch{}}},51388:(e,t,r)=>{r.r(t),r.d(t,{ChatWindow:()=>rS});var n=r(95155),a=r(83588),i=r(12115),o=r(12363),s=r(4315);function l(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function c(e,t={}){return(e.content??[]).filter(e=>!l(e,t))}function d(e,t={}){let r=c(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 u(e){return e.filter(e=>"toolCall"===e.type).length}var p=r(64577),m=r(99314),h=r(99537);let g=(0,h.A)("corner-up-left",[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]),f=(0,h.A)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]),x=(0,h.A)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);var v=r(76721),y=r(32316),b=r(19870),w=r(28999),k=r(68925),j=r(94309),S=r(47650);function C({src:e,alt:t,...r}){let{t:a}=(0,s.s9)(),[o,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(null);(0,i.useEffect)(()=>{if("string"==typeof e||void 0===e)return void d(null);let t=URL.createObjectURL(e);return d(t),()=>URL.revokeObjectURL(t)},[e]);let u="string"==typeof e?e:c??"";return u?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"image-clickable",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(!0)},"aria-label":t?a("imagePreview.openWithAlt",{alt:t}):a("imagePreview.open"),title:t?a("imagePreview.openWithAlt",{alt:t}):a("imagePreview.open"),children:(0,n.jsx)("img",{src:u,alt:t??"",loading:"lazy",...r})}),o&&(0,S.createPortal)((0,n.jsx)(I,{src:u,alt:t??"",onClose:()=>l(!1)}),document.body)]}):null}function I({src:e,alt:t,onClose:r}){let a=(0,i.useRef)(null),[o,l]=(0,i.useState)(1),{t:c}=(0,s.s9)();return(0,i.useEffect)(()=>{let e=a.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:a,className:"image-lightbox-dialog","aria-label":c("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||c("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:()=>l(e=>Math.max(.25,e-.25)),disabled:o<=.25,title:c("imagePreview.zoomOut"),"aria-label":c("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*o),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>l(e=>Math.min(8,e+.25)),disabled:o>=8,title:c("imagePreview.zoomIn"),"aria-label":c("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:()=>l(1),title:c("imagePreview.resetZoom"),"aria-label":c("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:c("imagePreview.close"),"aria-label":c("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(${o})`}})})]})})}function M({children:e,className:t,isStreaming:r,cwd:a,onOpenFile:o}){let s=(0,i.useMemo)(()=>(0,k.Ep)(e),[e]),{remarkPlugins:l,rehypePlugins:c}=(0,k.T6)(s),d=(0,i.useMemo)(()=>{let e=({src:e,alt:t,...r})=>{delete r.node;let i="string"==typeof e?(0,b.V)(e,a):null,o=i?`/api/files/${(0,w.HG)(i)}?type=read`:e;return(0,n.jsx)(C,{src:o,alt:t??"",loading:"lazy",...r})},t=e=>(0,i.isValidElement)(e),s=r=>{let n=[],a=[];for(let o of i.Children.toArray(r)){if(!t(o)){n.push(o);continue}if(o.type===e){a.push(o);continue}let r=s(o.props.children);0===r.imageParts.length?n.push(o):0===r.textParts.length?a.push(o):(n.push((0,i.cloneElement)(o,void 0,r.textParts)),a.push(...r.imageParts))}return{textParts:n,imageParts:a}},l=e=>e.some(e=>"string"==typeof e?e.trim().length>0:"number"==typeof e||!!t(e)&&l(i.Children.toArray(e.props.children)));return{code:(0,j.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:i,imageParts:c}=s(t);if(c.length>0&&!l(i))return(0,n.jsx)(n.Fragment,{children:t});let d=o?(0,b.V)(e,a):null;if(d&&o){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(),o(d))},children:i});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:i});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,a,o]);return(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,n.jsx)(y.oz,{remarkPlugins:l,rehypePlugins:c,components:d,children:s})})}let T=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,R=/(?:\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 E=r(82490),W=r(30808),$=r(6014);let A=(0,h.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var F=r(35484);let z=(0,h.A)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]),L=(0,h.A)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);function N({status:e,live:t}){let r={size:12,strokeWidth:2,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(A,{...r,color:"var(--accent)"}):"failed"===e?(0,n.jsx)(F.A,{...r,color:"var(--accent-strong)"}):"aborted"===e?(0,n.jsx)(z,{...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)(L,{...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 B(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 D(e){return null==e||!Number.isFinite(e)||e<=0?null:`$${e.toFixed(e<.01?4:2)}`}function H(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 _(e){if(!e)return null;let t=e.lastIndexOf("/");return(t>=0?e.slice(t+1):e).replace(/:.*$/,"")||null}let U=new Map,O={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 P({children:e,className:t,...r}){let{t:a}=(0,s.s9)(),[o,l]=(0,i.useState)(!1);if(e.length<=1e5)return(0,n.jsx)(M,{className:t,...r,children:e});if(!o){var c;return(0,n.jsx)("button",{type:"button",onClick:()=>l(!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:a("messageView.largeMessageReveal",{size:(c=e.length)>=1e6?`${(c/1e6).toFixed(1)} MB`:`${Math.round(c/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 q(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(),i=r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"});if(a)return i;let o=r.toLocaleDateString(t,{month:"short",day:"numeric",year:r.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${o} ${i}`}let V=(0,i.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:i,onOpenFile:o,entryId:s,onFork:l,forking:c,onNavigate:d,prevAssistantEntryId:u,onEditContent:p,showTimestamp:m,prevTimestamp:h,sessionId:g,toolCallsDefaultCollapsed:f=!0}){return"user"===e.role?(0,n.jsx)(K,{message:e,cwd:i,onOpenFile:o,entryId:s,onFork:l,forking:c,onNavigate:d,prevAssistantEntryId:u,onEditContent:p}):"assistant"===e.role?(0,n.jsx)(J,{message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:i,onOpenFile:o,showTimestamp:m,prevTimestamp:h,sessionId:g,entryId:s,toolCallsDefaultCollapsed:f}):"toolResult"===e.role?null:"custom"===e.role?"xdev-mount-notice"===e.customType?null:"compaction"===e.customType?(0,n.jsx)(el,{message:e}):(0,n.jsx)(eu,{message:e,cwd:i,onOpenFile:o}):"bashExecution"===e.role?(0,n.jsx)(eg,{message:e,sessionId:g}):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 K({message:e,cwd:t,onOpenFile:r,entryId:a,onFork:o,forking:l,onNavigate:c,prevAssistantEntryId:d,onEditContent:u}){let{t:h,locale:x}=(0,s.s9)(),[v,y]=(0,i.useState)(!1),[b,w]=(0,i.useState)(!1),{copied:k,copy:j}=(0,$.q)(),S="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),I="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),M=q(e.timestamp,x),T=!!a&&!!o,R=!!d&&!!c;return(0,n.jsx)("div",{style:{marginBottom:18,display:"flex",flexDirection:"column",alignItems:"flex-end",paddingRight:6},onMouseEnter:()=>y(!0),onMouseLeave:()=>y(!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:[I.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",flexWrap:"wrap",marginBottom:S?"var(--space-4)":0},children:I.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)(C,{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)})}),S&&(0,n.jsx)(P,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:S})]}),(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:v||b?1:0,pointerEvents:v||b?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>w(!0),onBlurCapture:()=>w(!1),children:(0,n.jsx)(W.m_,{content:h("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>j(S),"aria-label":h("messageView.copyMessage"),style:{...O,color:k?"var(--accent)":"var(--text-dim)"},onMouseEnter:e=>{k||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{k||(e.currentTarget.style.color="var(--text-dim)")},children:[k?(0,n.jsx)(p.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(m.A,{size:11,strokeWidth:1.8}),h(k?"messageView.copied":"messageView.copy")]})})}),(T||R)&&(0,n.jsxs)("div",{style:{display:"flex",gap:"calc(var(--space-3) / 2)",opacity:v||b||l?1:0,pointerEvents:v||b||l?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>w(!0),onBlurCapture:()=>w(!1),children:[R&&(0,n.jsx)(W.m_,{content:h("messageView.editFromHereTitle"),children:(0,n.jsxs)("button",{onClick:()=>{c(d),u?.(S)},"aria-label":h("messageView.editFromHereTitle"),style:{...O,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)(g,{size:11,strokeWidth:1.8}),h("messageView.editFromHere")]})}),T&&(0,n.jsx)(W.m_,{content:h(l?"messageView.creatingSession":"messageView.newSessionTitle"),children:(0,n.jsxs)("button",{onClick:()=>{o(a)},disabled:l,"aria-label":h(l?"messageView.creatingSession":"messageView.newSessionTitle"),style:{...O,color:l?"var(--accent)":"var(--text-dim)",cursor:l?"not-allowed":"pointer"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,n.jsx)(f,{size:11,strokeWidth:1.8}),h(l?"messageView.creating":"messageView.newSession")]})})]}),M&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:M})]})]})})}function J({message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:o,onOpenFile:c,showTimestamp:d,prevTimestamp:u,sessionId:h,entryId:g,toolCallsDefaultCollapsed:f}){var x,v,y;let b,{t:w,locale:k}=(0,s.s9)(),j=d?q(e.timestamp,k):null,S=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!l(e,{isStreaming:t})),C=S.map(({block:e})=>e),[I,M]=(0,i.useState)(!1),[T,R]=(0,i.useState)(!1),{copied:E,copy:A}=(0,$.q)(),F=(0,i.useRef)(null),[z,L]=(0,i.useState)(null),N=(0,i.useRef)(S);N.current=S;let B=(0,i.useRef)(new Map),[D,H]=(0,i.useState)(new Map),_=(0,i.useMemo)(()=>{if(!e.timestamp||!u)return;let t=Math.round((e.timestamp-u)/1e3);return t>0?t:void 0},[e.timestamp,u]),U=(0,i.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?"":C.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if((0,i.useEffect)(()=>{if(!t){let e=new Date().getTime();H(t=>{let r=new Map(t);for(let[t,n]of B.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),F.current=null,L(null);return}let e=setInterval(()=>{let e=N.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{B.current.has(e)||B.current.set(e,r)}),H(t=>{let n=!1,a=new Map(t);for(let t=0;t<e.length-1;t++){let i=e[t].originalIndex,o=e[t+1].originalIndex;if(!a.has(i)&&B.current.has(i)){let e=B.current.get(i),t=B.current.get(o)??r;a.set(i,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===F.current&&(F.current=r);let a=(r-F.current)/1e3;a>.5&&L(n/4/a)},300);return()=>clearInterval(e)},[t]),0===C.length&&!t)return null;let V=t&&!C.some(e=>"toolCall"===e.type||"thinking"===e.type);return(0,n.jsxs)("div",{className:`chat-message${V?" chat-message--live":""}`,style:{marginBottom:18},onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!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:a?.[`${e.provider}:${e.model}`]??a?.[e.model]??e.model}),t&&(()=>{let e,t,r=0;for(let e of C)"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:w("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!==z&&(e=z>=50?"success":z>=30?"renamed":z>=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:w("messageView.tokensPerSecond",{tps:z.toFixed(1)})}))]})})})()]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-4)"},children:S.map(({block:e,originalIndex:a})=>(0,n.jsx)(Y,{block:e,toolResults:r,isStreaming:t,streamingDuration:D.get(a)??("thinking"===e.type?_:void 0),toolCallDurations:U,cwd:o,onOpenFile:c,sessionId:h,entryId:g,blockIndex:a,toolCallsDefaultCollapsed:f},`${g??"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:(x=e.usage,v=w,y=k,b=[],x.input&&b.push(v("messageView.usageInput",{tokens:x.input.toLocaleString(y)})),x.output&&b.push(v("messageView.usageOutput",{tokens:x.output.toLocaleString(y)})),x.cacheRead&&b.push(v("messageView.usageCacheRead",{tokens:x.cacheRead.toLocaleString(y)})),x.cacheWrite&&b.push(v("messageView.usageCacheWrite",{tokens:x.cacheWrite.toLocaleString(y)})),x.cost?.total&&b.push(`$${x.cost.total.toFixed(4)}`),b.join(" \xb7 "))}),P&&!t&&(0,n.jsx)(W.m_,{content:w("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>A(P),"aria-label":w("messageView.copyMessage"),style:{...O,color:E?"var(--accent)":"var(--text-dim)",opacity:I||T?1:0,pointerEvents:I||T?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onFocus:()=>R(!0),onBlur:()=>R(!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)(p.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(m.A,{size:11,strokeWidth:1.8}),E?w("messageView.copied"):w("messageView.copy")]})}),j&&!t&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginLeft:"auto"},children:j})]})]})}function Y({block:e,toolResults:t,isStreaming:r,streamingDuration:a,toolCallDurations:i,cwd:o,onOpenFile:s,sessionId:l,entryId:c,blockIndex:d,toolCallsDefaultCollapsed:u}){if("text"===e.type)return(0,n.jsx)(G,{block:e,isStreaming:r,cwd:o,onOpenFile:s});if("thinking"===e.type)return(0,n.jsx)(Z,{block:e,duration:a,sessionId:l,entryId:c,blockIndex:d});if("toolCall"===e.type){let a=t?.get(e.toolCallId),o=i?.get(e.toolCallId);return(0,n.jsx)(Q,{block:e,result:a,duration:o,isStreaming:r,defaultCollapsed:u})}return null}let G=(0,i.memo)(function({block:e,isStreaming:t,cwd:r,onOpenFile:a}){return(0,n.jsx)(P,{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),Z=(0,i.memo)(function({block:e,duration:t,sessionId:r,entryId:a,blockIndex:o}){let{t:l}=(0,s.s9)(),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)(null),[m,h]=(0,i.useState)(!1),[g,f]=(0,i.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)(W.Nt,{open:c,onOpenChange:t=>{if(d(t),t&&e.deferred&&null===u){if(!r||!a)return void f(l("messageView.thinkingUnavailable"));h(!0),f(null),(function(e,t,r){let n=`${e}:${t}:${r}`,a=U.get(n);if(a)return U.delete(n),U.set(n,a),a;let i=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,s.Tl)("messageView.invalidThinkingResponse"));return t.thinking}).catch(e=>{throw U.delete(n),e});if(U.set(n,i),U.size>100){let e=U.keys().next().value;e&&U.delete(e)}return i})(r,a,o).then(e=>p(e)).catch(e=>f(e instanceof Error?e.message:String(e))).finally(()=>h(!1))}},children:[(0,n.jsxs)(W.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)(x,{size:11,strokeWidth:1.8,style:{flexShrink:0}}),(0,n.jsx)("span",{children:l("messageView.thinking")}),void 0!==t&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:"var(--text-sm)",color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:l("messageView.durationSeconds",{seconds:t})}),(0,n.jsx)(v.A,{size:10,strokeWidth:1.6,style:{flexShrink:0,marginLeft:void 0===t?"auto":4,transform:c?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),(0,n.jsx)(W.je,{style:{padding:"var(--space-4) var(--control-padding-inline)",color:g?"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:m?l("messageView.loadingThinking"):g??(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),Q=(0,i.memo)(function({block:e,result:t,duration:r,isStreaming:a,defaultCollapsed:o=!0}){let l,{t:c}=(0,s.s9)(),[d,u]=(0,i.useState)(!!a&&!o),p="edit"===(l=e.toolName.toLowerCase())||"apply_patch"===l||l.includes("apply_patch")||l.startsWith("edit_")||l.endsWith(".edit")||l.endsWith("_edit")||l.includes("str_replace")||l.includes("replace_editor"),m=d&&t&&!t.isError?function(e){let t=e.details;if(!eo(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,h=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,g=null!==h&&("(no output)"===h.trim()||""===h.trim()),f=t?.isError??!1;return(0,n.jsx)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:"var(--text-md)",border:f?"1px solid color-mix(in srgb, var(--status-error) 45%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",background:f?"color-mix(in srgb, var(--status-error) 5%, transparent)":"color-mix(in srgb, var(--status-success) 4%, transparent)"},children:(0,n.jsxs)(W.Nt,{open:d,onOpenChange:u,children:[(0,n.jsxs)(W.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:f?"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:c("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:f?"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&&(m?(0,n.jsx)(et,{diff:m}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(ee,{details:t.details}),(0,n.jsx)(es,{text:h??"",isEmpty:g,isError:f})]}))]})})},(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 X({status:e}){return(0,n.jsx)(N,{status:e})}function ee({details:e}){let{t,tn:r}=(0,s.s9)();if(!eo(e))return null;let a=(Array.isArray(e.results)?e.results:[]).filter(eo),i=(Array.isArray(e.progress)?e.progress:[]).filter(eo),o=eo(e.async)?e.async:null;if(0===a.length&&0===i.length&&!o)return null;let l=a.length>0?a:i.length>0?i:o&&"string"==typeof o.jobId?[{id:o.jobId,agent:"task",status:"started",task:o.jobId}]:[],c=l.reduce((e,t)=>e+("number"==typeof t.tokens?t.tokens:0),0),d=l.reduce((e,t)=>e+("number"==typeof t.cost?t.cost:0),0),u="number"==typeof e.totalDurationMs?e.totalDurationMs:void 0,p=B(c),m=[r("chatWindow.subagentCount",l.length),p?t("chatWindow.tokensUnit",{count:p}):null,D(d),H(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:m.join(" \xb7 ")}),o&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:"⤴"})]}),l.map((e,r)=>{let a="string"==typeof e.id?e.id:`row-${r}`,i=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),o="string"==typeof e.task&&e.task?e.task:"string"==typeof e.assignment?e.assignment:null,s=B("number"==typeof e.tokens?e.tokens:void 0),l=[s?t("chatWindow.tokensUnit",{count:s}):null,D("number"==typeof e.cost?e.cost:void 0),"started"!==i?H("number"==typeof e.durationMs?e.durationMs:void 0):null,_("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.${i}`)}${o?` — ${o}`:""}`,style:{display:"flex",alignItems:"center",gap:"var(--space-3)",minWidth:0,fontSize:11.5},children:[(0,n.jsx)(X,{status:i}),(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:o??""}),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 et({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)(er,{text:e.text})})}function er({text:e}){let{t}=(0,s.s9)(),r=(0,i.useMemo)(()=>(0,E.y)(e),[e]);if(!r)return(0,n.jsx)(ei,{text:e});let a=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:[a&&(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)(en,{title:e.oldPath||t("messageView.diffBefore"),side:"left"}),(0,n.jsx)(en,{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)(ea,{cell:e.left,side:"left"}),(0,n.jsx)(ea,{cell:e.right,side:"right"})]},t))})]},r))})}function en({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 ea({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?"-":" ",i="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:i,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 ei({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 eo(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function es({text:e,isEmpty:t,isError:r}){let{t:a}=(0,s.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 el({message:e}){let{t,locale:r}=(0,s.s9)(),a=ep(e.content),o=(0,i.useMemo)(()=>{let e,t,r,n,i;return e=[],t=[],r=a.match(R),n=r?.[1]??"",i=r?.index===void 0?a:a.slice(0,r.index),n.replace(T,(r,n,a)=>{let i=a.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...i):t.push(...i),""}),{body:i.trim(),readFiles:e,modifiedFiles:t}},[a]),l=q(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")}),l&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:l})]}),(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")}),o.body?(0,n.jsx)(M,{className:"markdown-compaction-message",children:o.body}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:t("messageView.noSummary")}),(0,n.jsx)(ec,{readFiles:o.readFiles,modifiedFiles:o.modifiedFiles})]})]})})}function ec({readFiles:e,modifiedFiles:t}){let{t:r}=(0,s.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)(ed,{title:r("messageView.modifiedFiles"),files:t}),e.length>0&&(0,n.jsx)(ed,{title:r("messageView.readFiles"),files:e})]})}function ed({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 eu({message:e,cwd:t,onOpenFile:r}){var a;let o,{t:l,locale:c}=(0,s.s9)(),d=!1===e.display,[u,p]=(0,i.useState)(!d),[m,h]=(0,i.useState)(!1),{copied:g,copy:f}=(0,$.q)(),x=ep(e.content),v="string"==typeof(a=e.content)?[]:a.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=eh.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??em(e.customType):"advisor"===e.customType?l("messageView.advisorLabel"):em(e.customType),I=q(e.timestamp,c);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:l("messageView.hiddenExtensionMessage")}),I&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:I})]}),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)(C,{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)(M,{className:"markdown-custom-message",cwd:t,onOpenFile:r,children:j}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:l("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?(o=j.replace(/\s+/g," ").trim())?o.length>140?`${o.slice(0,140)}...`:o:(0,s.Tl)("messageView.showExtensionMessage"):l("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:()=>f(j||b),style:{padding:"3px 7px",border:"none",background:"none",color:g?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:l(g?"messageView.copied":"messageView.copy")}):null,(y||d)&&(0,n.jsx)("button",{onClick:()=>{d?p(e=>!e):h(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:l(d?u?"messageView.collapse":"messageView.expand":m?"messageView.hideDetails":"messageView.showDetails")})]}),y&&(d&&u||!d&&m)&&(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 ep(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function em(e){return e||(0,s.Tl)("messageView.extensionType")}let eh=new Set(["irc:incoming","irc:autoreply","irc:relay"]);function eg({message:e,sessionId:t}){let{t:r}=(0,s.s9)(),[a,o]=(0,i.useState)(null),l=(0,i.useRef)(0);(0,i.useEffect)(()=>{l.current+=1,o(null)},[e.command,e.fullOutputPath,e.output,e.timestamp]);let c=!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}},m=c?void 0:{role:"toolResult",toolCallId:p.toolCallId,toolName:u,content:e.output?[{type:"text",text:e.output}]:[],isError:d,timestamp:e.timestamp},h=(0,i.useCallback)(async()=>{if(!e.fullOutputPath||!t||a?.phase==="ready")return;let r=l.current;o({phase:"loading"});try{let n=await fetch(`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`),a=await n.json();if(l.current!==r)return;if(!n.ok||!a.success)throw Error(a.error??`HTTP ${n.status}`);o({phase:"ready",output:a.data?.output??""})}catch(e){if(l.current!==r)return;o({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.fullOutputPath,t,a?.phase]),g=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)(Q,{block:p,result:m}),g&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-5)",marginTop:"var(--space-3)"},children:[a?.phase!=="ready"&&(0,n.jsx)("button",{type:"button",disabled:a?.phase==="loading",onClick:()=>void h(),style:{padding:0,border:"none",background:"none",color:"var(--accent)",cursor:a?.phase==="loading"?"default":"pointer",fontSize:"var(--text-md)",opacity:a?.phase==="loading"?.6:1,fontFamily:"inherit"},children:r(a?.phase==="loading"?"messageView.fullOutputLoading":"messageView.viewFullOutput")}),(0,n.jsx)("a",{href:g,download:!0,style:{color:"var(--text-dim)",fontSize:"var(--text-md)",textDecoration:"none"},children:r("messageView.fullOutputDownload")})]}),a?.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:a.output})}),a?.phase==="error"&&(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--status-error)"},children:a.message})]})}let ef=(0,h.A)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),ex=(0,h.A)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);var ev=r(86272),ey=r(65377),eb=r(35893),ew=r(51087),ek=r(84111);let ej=new Map;function eS(e){return{value:e.value,images:e.images.map(e=>({...e})),files:e.files.map(e=>({...e}))}}function eC(e){let t=ej.get(e);return t?eS(t):null}function eI(e,t){t.value||0!==t.images.length||0!==t.files.length?ej.set(e,eS(t)):ej.delete(e)}let eM=[{name:"goal",descriptionKey:"chatInput.cmdGoal",argumentHintKey:"chatInput.cmdGoalArg",requiresArgs:!0,buildPrompt:e=>`Work toward this goal for the rest of the session:
|
|
2
|
+
|
|
3
|
+
${e}
|
|
4
|
+
|
|
5
|
+
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:
|
|
6
|
+
|
|
7
|
+
${e}
|
|
8
|
+
|
|
9
|
+
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:
|
|
10
|
+
|
|
11
|
+
${e}
|
|
12
|
+
|
|
13
|
+
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."}],eT=new Map(eM.map(e=>[e.name,e]));function eR(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],eT.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 eE(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}var eW=r(3099),e$=r(30527),eA=r(31590);let eF=["auto","off","minimal","low","medium","high","xhigh","max"];function ez(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function eL(e){let t=Math.round(10*e)/10;return`${t%1==0?t.toFixed(0):t.toFixed(1)}%`}let eN=2*Math.PI*9.5;function eB(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 eD={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 eH(e,t){return"skill"===e.source&&t.has(e.name)}let e_=[...eM.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"}],eU=new Set(e_.map(e=>e.name)),eO=["builtin","extension","prompt","skill","ompBuiltin"],eP={builtin:"chatInput.groupBuiltin",extension:"chatInput.groupExtensions",prompt:"chatInput.groupPrompts",skill:"chatInput.groupSkills",ompBuiltin:"chatInput.groupOmpBuiltin"},eq={builtin:0,extension:1,prompt:2,skill:3,ompBuiltin:4};function eV(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 eK(e){return{data:e.data,mimeType:e.mimeType}}function eJ(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function eY(e){return(e??[]).filter(eE).slice(0,10).map(eJ)}function eG(e){return{name:e.name,mimeType:e.mimeType,content:e.content,size:e.size}}function eZ(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 eQ(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function eX({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 e0({error:e}){let{t}=(0,s.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 e1({goal:e,plan:t}){let r,a,o,{t:l}=(0,s.s9)(),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)(()=>Date.now());return((0,i.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":c,onClick:()=>d(e=>!e),title:l(c?"chatInput.collapseGoal":"chatInput.expandGoal"),style:{display:"flex",alignItems:c?"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)(ef,{size:14,strokeWidth:2,style:{flexShrink:0,marginTop:+!!c,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:[l("chatInput.goalActive")," \xb7 ",(a=Math.floor((r=Math.max(0,Math.floor((u-e.startedAt)/6e4)))/60),o=r%60,a>0?`${a}h ${o}m`:`${o}m`)]}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:c?"visible":"hidden",textOverflow:c?void 0:"ellipsis",whiteSpace:c?"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)(ex,{size:14,strokeWidth:2,style:{flexShrink:0,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontWeight:600},children:l("chatInput.planningInProgress")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)"},children:t.objective})]})]}):null}let e2=(0,i.memo)((0,i.forwardRef)(function({onSend:e,onAbort:t,onSteer:r,onFollowUp:a,isStreaming:l,model:c,isAutoModelSelection:d,modelNames:u,modelList:p,modelError:m,modelsLoading:h,onModelChange:g,fastModeEnabled:f,fastModeActive:x,fastModeSupported:v,onFastModeChange:y,onAbortCompaction:b,isCompacting:w,compactResult:k,thinkingLevel:j,onThinkingLevelChange:S,availableThinkingLevels:C,thinkingLevelMap:I,modelNameOverride:M,retryInfo:T,queuedMessages:R,inputHistory:E=[],onAbortRetry:W,slashCommands:$,slashCommandsLoading:A,onLoadSlashCommands:F,onBuiltinCommand:z,onAudioUnlock:L,onPromptWithStreamingBehavior:N,contextUsage:B,onRemoveQueuedMessage:D,onPromoteQueuedToSteer:H,draftKey:_,cwd:U,activeGoal:O,activePlan:P,advisorEnabled:q},V){var K,J,Y,G;let Z,Q,X,ee,et,er,en,ea,ei=(0,eA.a)(),{t:eo,tn:es,locale:el}=(0,s.s9)(),ec=i.useMemo(()=>new Intl.Collator(el,{numeric:!0,sensitivity:"base"}),[el]),[ed,eu]=(0,i.useState)(()=>_?eC(_)?.value??"":""),[ep,em]=(0,i.useState)(!1),[eh,eg]=(0,i.useState)(null),[ef,ex]=(0,i.useState)(!1),[eS,eM]=(0,i.useState)(!1),[eT,eE]=(0,i.useState)(""),[eJ,e2]=(0,i.useState)(()=>_?eY(eC(_)?.images):[]),[e4,e5]=(0,i.useState)(()=>_?eZ(eC(_)?.files):[]),[e6,e3]=(0,i.useState)(null),e9=ed.trimStart(),e8=0===eJ.length&&0===e4.length&&e9.startsWith("!"),e7=e8&&e9.startsWith("!!"),[te,tt]=(0,i.useState)(!1),[tr,tn]=(0,i.useState)(0),[ta,ti]=(0,i.useState)(null),[to,ts]=(0,i.useState)(!1),[tl,tc]=(0,i.useState)(0),[td,tu]=(0,i.useState)(!1),[tp,tm]=(0,i.useState)(0),[th,tg]=(0,i.useState)(null),[tf,tx]=(0,i.useState)(!1),[tv,ty]=(0,i.useState)(null),tb=(0,i.useRef)(null),tw=(0,i.useRef)(null),tk=(0,i.useRef)(null),tj=(0,i.useRef)(null),tS=(0,i.useRef)(null),tC=(0,i.useRef)(null),tI=(0,i.useRef)(null),tM=(0,i.useRef)(null),tT=(0,i.useRef)(!1),tR=(0,i.useRef)(0),tE=(0,i.useRef)(!1),tW=(0,i.useRef)([]),t$=(0,i.useRef)([]),tA=(0,i.useRef)([]),tF=(0,i.useRef)(null),tz=(0,i.useRef)(null),tL=(0,i.useRef)(_),tN=(0,i.useRef)(ed),tB=(0,i.useRef)(eJ),tD=(0,i.useRef)(e4),tH=(0,i.useRef)(0),t_=(0,i.useRef)(0),tU=(0,i.useRef)(0);tN.current=ed,tB.current=eJ,tD.current=e4,(0,i.useImperativeHandle)(V,()=>({insertIfEmpty(e){let t=tb.current;(t?t.value:ed).trim()||(eu(e),ti(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=tb.current,r=[e,t?t.value:ed].filter(e=>e.trim()).join("\n\n");eu(r),ti(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=tb.current;if(!t)return void eu(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,a=t.value.slice(0,r),i=t.value.slice(n),o=a.length>0&&!a.endsWith(" ")?" ":"";eu(a+o+e+i),ti(null),requestAnimationFrame(()=>{if(!t)return;let n=r+o.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addFiles(e){tq(e)}}));let tO=(0,i.useCallback)(async e=>{let t=Math.max(0,10-tB.current.length-t_.current),r=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(!r.length){e.length>0&&e3(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=tH.current;t_.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(tH.current!==n)return void e.forEach(eQ);e2(t=>{let r=e.slice(0,Math.max(0,10-t.length));return e.slice(r.length).forEach(eQ),[...t,...r]}),e3(null)}catch{a.forEach(eQ),e3("One or more images could not be read. Try a different file.")}finally{t_.current-=r.length}},[]),tP=(0,i.useCallback)(async e=>{let t=Math.max(0,10-tD.current.length-tU.current),r=e.filter(e=>e.size<=262144).slice(0,t);if(!r.length){e.length>0&&e3(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=tH.current;tU.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(tH.current!==n)return;let t=e.filter(e=>!e.content.includes("\0")&&!e.content.includes("�")),a=r.length-t.length;e5(e=>[...e,...t.slice(0,Math.max(0,10-e.length))]),a>0?e3(`${a} file(s) skipped: binary or non-text files cannot be attached.`):e3(null)}catch{e3("One or more files could not be read. Try a different file.")}finally{tU.current-=r.length}},[]),tq=(0,i.useCallback)(e=>{if(l)return void e3("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/"));tO(t),tP(r)},[l,tO,tP]),tV=(0,i.useCallback)(e=>{e2(t=>{let r=[...t],[n]=r.splice(e,1);return n&&eQ(n),r}),e3(null)},[]),tK=(0,i.useCallback)(e=>{e5(t=>t.filter((t,r)=>r!==e)),e3(null)},[]),tJ=(0,i.useCallback)(()=>{e2(e=>(e.forEach(eQ),[]))},[]),tY=(0,i.useCallback)(()=>{e5([])},[]),tG=(0,i.useCallback)(()=>{var e;eu(""),ti(null),tu(!1),_&&ej.delete(_),tL.current&&tL.current!==_&&(e=tL.current,ej.delete(e)),tJ(),tY(),tH.current+=1,tb.current&&(tb.current.style.height="auto")},[tJ,tY,_]);(0,i.useEffect)(()=>{_&&tL.current===_&&eI(_,{value:ed,images:eJ.map(eK),files:e4.map(eG)})},[eJ,e4,_,ed]),(0,i.useEffect)(()=>{let e=tL.current;if(e===_)return;e&&eI(e,{value:tN.current,images:tB.current.map(eK),files:tD.current.map(eG)});let t=_?eC(_):null;tL.current=_,eu(t?.value??""),ti(null),tu(!1),e2(e=>(e.forEach(eQ),eY(t?.images))),e5(eZ(t?.files))},[_]),(0,i.useEffect)(()=>{let e=tb.current;e&&(e.style.height="auto",ed&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[ed]),(0,i.useEffect)(()=>()=>{tB.current.forEach(eQ)},[]);let tZ=(0,i.useCallback)(async()=>{let t=ed.trim();if(!t&&!eJ.length&&!e4.length||l)return;L?.();let r=function(e,t){if(0===t.length)return e;let r=t.map(e=>{var t,r;let n,a,i=(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}
|
|
14
|
+
${i}${r=e.name,"md"===(a=r.toLowerCase().replace(/\\/g,"/").split("/").pop()?.split(".").pop()??"")||"markdown"===a||"mdx"===a?"markdown":"text"}
|
|
15
|
+
${e.content}
|
|
16
|
+
${i}`});return[e.trim(),...r].filter(Boolean).join("\n\n")}(t,e4);if(!eJ.length&&!e4.length&&t.startsWith("/")&&z){let e=await z(t);if(e.handled){e.error||e.retainInput||tG();return}}e(r,eJ.length?eJ:void 0),tG()},[ed,eJ,e4,l,z,e,tG,L]),tQ=ed.startsWith("/")&&!/\s/.test(ed.slice(1))?ed.slice(1).toLowerCase():null,[tX,t0]=(0,i.useState)(()=>new Set);(0,i.useEffect)(()=>{if(null===tQ||!U)return;let e=new AbortController;return fetch(`/api/skills?cwd=${encodeURIComponent(U)}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{e&&t0(new Set((e.skills??[]).flatMap(e=>e.disableModelInvocation&&e.name?[e.name]:[])))}).catch(()=>{}),()=>e.abort()},[U,tQ]);let t1=i.useMemo(()=>e_.map(e=>({name:e.name,description:eo(e.descriptionKey),...e.argumentHintKey?{argumentHint:eo(e.argumentHintKey)}:{},source:"builtin"})),[eo]),t2=i.useMemo(()=>($??[]).flatMap(e=>{let t=e.source;return eU.has(e.name)?[]:"builtin"===t||"ompBuiltin"===t?[{name:e.name,description:e.description,source:"ompBuiltin"}]:[e]}),[$]),t4=null===tQ?[]:[...l?[]:t1,...t2].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(tQ)||r.includes(tQ)}).sort((e,t)=>{let r=eV(e,tQ)-eV(t,tQ);if(0!==r)return r;let n=Number(eH(e,tX))-Number(eH(t,tX));return 0!==n?n:eq[e.source]-eq[t.source]||ec.compare(e.name,t.name)}),t5=(()=>{let e=new Map;for(let t of eO)e.set(t,{source:t,items:[]});return t4.forEach((t,r)=>{e.get(t.source)?.items.push({command:t,index:r})}),eO.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),t6=es(tQ?"chatInput.matchCount":"chatInput.commandCount",t4.length),t3=(0,i.useCallback)((e,t)=>{if(!U)return void ti(null);let r=t??e.length;ti((0,eW.RO)(e.slice(0,r)))},[U]),t9=ta?.query??null,t8=i.useMemo(()=>null!==t9&&th&&th.cwd===U?(0,eW.R7)(th.entries,t9):[],[t9,th,U]),t7=!!(t9&&th?.truncated&&th.cwd===U);(0,i.useEffect)(()=>{if(!t7||!U||!t9)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(U)}&q=${encodeURIComponent(t9)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>ty({cwd:U,query:t9,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[t7,t9,U]);let re=t7&&null!==tv&&tv.cwd===U&&tv.query===t9,rt=re?tv.matches:t8,rr=null===ta?null:`${ta.start}:${+!!ta.quoted}:${ta.query}`;(0,i.useEffect)(()=>{if(null===rr){ts(!1),tc(0);return}ts(!0),tc(0)},[rr]);let rn=null!==ta;(0,i.useEffect)(()=>{if(!rn||!U)return;let e=tF.current;e&&e.cwd===U&&Date.now()-e.fetchedAt<1e4||tz.current===U||(tz.current=U,tx(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(U)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{tg({cwd:U,entries:(0,eW.Yh)(e.files??[]),truncated:!!e.truncated}),tF.current={cwd:U,fetchedAt:Date.now()}}).catch(()=>{tF.current=null}).finally(()=>{tz.current=null,tx(!1)}))},[rn,U]);let ra=(0,i.useCallback)(e=>{if(!ta)return;let t=tb.current,r=t?.selectionStart??ed.length,n=ed.slice(0,ta.start),a=ed.slice(r);ta.quoted&&a.startsWith('"')&&(a=a.slice(1));let i=(0,eW.W)(e.path,e.isDir,ta.quoted),o=n+i.text+a,s=n.length+i.cursorOffset;eu(o),ti((0,eW.RO)(o.slice(0,s))),requestAnimationFrame(()=>{let e=tb.current;e&&(e.focus(),e.setSelectionRange(s,s),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ta,ed]);(0,i.useEffect)(()=>{tl>=rt.length&&tc(Math.max(0,rt.length-1))},[rt.length,tl]),(0,i.useEffect)(()=>{t$.current.length=rt.length},[rt.length]),(0,i.useEffect)(()=>{to&&t$.current[tl]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tl,to]),(0,i.useEffect)(()=>{tp>=E.length&&tm(Math.max(0,E.length-1))},[E.length,tp]),(0,i.useEffect)(()=>{tA.current.length=E.length},[E.length]),(0,i.useEffect)(()=>{td&&tA.current[tp]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tp,td]);let ri=(0,i.useCallback)(e=>{eu(e),tu(!1),tm(0),ti(null),requestAnimationFrame(()=>{let t=tb.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),ro=(0,i.useCallback)(e=>{let t=`/${e.name} `;eu(t),tt(!1),tn(0),requestAnimationFrame(()=>{let e=tb.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),rs=(0,i.useCallback)(e=>{let t=ed.trim();if(!t&&!eJ.length&&!e4.length||eJ.length||e4.length)return;L?.();let n="steer"===e?"steer":"followUp";if(t.startsWith("/")&&N){let e=eR(t);if("expand"===e.kind){N(e.prompt,n,eJ.length?eJ:void 0),tG();return}return"usage-error"===e.kind?void ew.oR.error(eo("chatInput.commandUsageTitle"),eo("agentSession.commandRequiresArgs",{command:e.command,usage:eo(e.argumentHintKey)})):(N(t,n,eJ.length?eJ:void 0),void tG())}"steer"===e&&r?r(t,eJ.length?eJ:void 0):"followup"===e&&a&&a(t,eJ.length?eJ:void 0),tG()},[ed,eJ,e4,N,r,a,tG,L,eo]),rl=[...(R?.followUp??[]).map(e=>({kind:"follow-up",text:e})),...(R?.steering??[]).map(e=>({kind:"steer",text:e}))],rc=rl[0]??null,rd=rl.length,ru=(0,i.useCallback)(()=>{rc&&(D?.(rc.text),eu(rc.text),ti(null),tu(!1),requestAnimationFrame(()=>{let e=tb.current;e&&(e.focus(),e.setSelectionRange(rc.text.length,rc.text.length),e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")}))},[rc,D]),rp=(0,i.useCallback)(()=>{rc&&D?.(rc.text)},[rc,D]),rm=(0,i.useCallback)(()=>{rc&&"follow-up"===rc.kind&&H?.(rc.text)},[rc,H]),rh=(0,i.useCallback)(e=>{let t=t4.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tr-1);if("right"===e)return Math.min(t,tr+1);let r=tW.current[tr];if(!r)return"down"===e?Math.min(t,tr+1):Math.max(0,tr-1);let n=r.getBoundingClientRect(),a=n.left+n.width/2,i=n.top+n.height/2,o=-1,s=1/0;for(let r=0;r<=t;r+=1){if(r===tr)continue;let t=tW.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-i;if("down"===e?l<=4:l>=-4)continue;let c=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-a);c<s&&(o=r,s=c)}return o>=0?o:"down"===e?Math.min(t,tr+1):Math.max(0,tr-1)},[t4.length,tr]),rg=(0,i.useCallback)(e=>{let n=e.nativeEvent,i=Date.now()-tR.current<100,o=tT.current||n.isComposing||229===n.keyCode;if("Enter"===e.key&&!e.shiftKey&&(o||i)){i&&e.preventDefault();return}if(td&&!o){if("ArrowDown"===e.key){e.preventDefault(),tm(e=>Math.min(Math.max(0,E.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tm(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tu(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&E[tp]){e.preventDefault(),ri(E[tp]);return}}if(te&&null!==tQ){if("ArrowDown"===e.key){e.preventDefault(),tn(rh("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tn(rh("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tn(rh("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tn(rh("left"));return}if("Escape"===e.key){e.preventDefault(),tt(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&t4[tr]){e.preventDefault(),ro(t4[tr]);return}}if(to&&null!==ta&&!o){if("ArrowDown"===e.key){e.preventDefault(),tc(e=>Math.min(Math.max(0,rt.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tc(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),ts(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rt[tl]){e.preventDefault(),ra(rt[tl]);return}}if("ArrowUp"===e.key&&!o&&!l&&E.length>0&&0===ed.trim().length){e.preventDefault(),tt(!1),ts(!1),tm(E.length-1),tu(!0);return}if("Escape"===e.key&&!o&&l&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(ei)return;e.preventDefault(),l&&(r||a)?"steer"===(0,eb.v)()&&r?rs("steer"):rs("followup"):tZ()}},[ei,l,r,a,t,te,tQ,t4,tr,ro,rs,tZ,rh,to,ta,rt,tl,ra,td,E,tp,ri,ed]),rf=(0,i.useCallback)(()=>{let e=tb.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),rx=(0,i.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),tq(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[tq]);(0,i.useEffect)(()=>{if(null===tQ){tt(!1),tn(0),tE.current=!1;return}tt(!0),tn(0),!tE.current&&F&&(tE.current=!0,Promise.resolve(F()).catch(()=>{tE.current=!1}))},[tQ,F]),(0,i.useEffect)(()=>{tr>=t4.length&&tn(Math.max(0,t4.length-1))},[t4.length,tr]),(0,i.useEffect)(()=>{tW.current.length=t4.length},[t4.length]),(0,i.useEffect)(()=>{te&&tW.current[tr]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tr,te]);let[rv,ry]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=()=>ry(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 rb=i.useMemo(()=>p&&p.length>0?p.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).filter(e=>null===rv||rv.has(`${e.provider}:${e.modelId}`)).sort((e,t)=>eB(ec,e,t)):Object.entries(u??{}).map(([e,t])=>({provider:c?.provider??"unknown",modelId:e,name:t})).sort((e,t)=>eB(ec,e,t)),[p,u,c?.provider,rv,ec]),rw=i.useMemo(()=>{let e;return(e=eT.trim().toLocaleLowerCase(el))?rb.filter(t=>t.name.toLocaleLowerCase(el).includes(e)||t.modelId.toLocaleLowerCase(el).includes(e)||t.provider.toLocaleLowerCase(el).includes(e)):rb},[el,rb,eT]),rk=i.useMemo(()=>{let e=[];for(let t of rw){let r=e.find(e=>e.provider===t.provider);r?r.options.push(t):e.push({provider:t.provider,options:[t]})}return e},[rw]),rj=c?rb.find(e=>e.modelId===c.modelId&&e.provider===c.provider)?.name??M??u?.[`${c.provider}:${c.modelId}`]??c.modelId:null,rS=!!h&&!m,rC=l||rS&&0===rb.length,rI=k?Math.max(0,k.tokensBefore-k.estimatedTokensAfter):0,rM=k?.reason&&"manual"!==k.reason?eo("chatInput.compactedWithReason",{reason:`${k.reason[0].toUpperCase()}${k.reason.slice(1)}`}):eo("chatInput.compacted"),rT=k?eo("chatInput.compactResult",{verb:rM,before:(K=k.tokensBefore,(0,ek.w)(K,el)),after:(J=k.estimatedTokensAfter,(0,ek.w)(J,el)),saved:(0,ek.w)(rI,el)}):null,rR="auto"!==(Z=j??"auto")&&I?I[Z]??Z:Z,rE="medium"===rR.toLowerCase()?"med":rR,rW=null==(Y=B?.percent)||Number.isNaN(Y)?0:Math.min(100,Math.max(0,Y)),r$=rW>0&&rW<10?eL(rW):`${Math.round(rW)}%`,rA=!!(B&&null!=B.percent&&B.contextWindow>0),rF=rA&&B?`${eL(rW)} / ${!ez(G=B.contextWindow)?"":G>=1e6?`${G/1e6}M`:G>=1e3?`${G/1e3}k`:String(G)}`:null,rz=i.useMemo(()=>(function(e){if(!e)return[...eF];let t=new Set(e.filter(e=>e&&"auto"!==e));return[...eF.filter(e=>"auto"===e||t.delete(e)),...t]})(C),[C]);return(0,i.useEffect)(()=>{l&&ex(!1)},[l]),(0,i.useEffect)(()=>{if(!rA)return void eM(!1);if(!eS)return;let e=e=>{let t=tC.current;t&&!t.contains(e.target)&&eM(!1)},t=e=>{"Escape"===e.key&&eM(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[eS,rA]),(0,i.useEffect)(()=>{ep?requestAnimationFrame(()=>tj.current?.focus()):eE("")},[ep]),(0,i.useEffect)(()=>{let e=e=>{tw.current&&!tw.current.contains(e.target)&&tk.current&&!tk.current.contains(e.target)&&em(!1),tS.current&&!tS.current.contains(e.target)&&ex(!1),!tI.current||tI.current.contains(e.target)||tb.current?.contains(e.target)||tu(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",paddingTop:0,paddingBottom:"calc(8px + env(safe-area-inset-bottom))",paddingLeft:16,paddingRight:16},children:[(0,n.jsx)("input",{ref:tM,type:"file",accept:"*/*",multiple:!0,disabled:l,style:{display:"none"},onChange:e=>{tq(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(e0,{error:m}),(0,n.jsx)(e1,{goal:O,plan:P}),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"})]}),rT&&(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"})}),rT]}),e6&&(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:e6}),eJ.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eJ.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:()=>tV(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))}),e4.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:e4.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:()=>tK(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:[td&&E.length>0&&(0,n.jsxs)("div",{ref:tI,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:E.map((e,t)=>{let r=t===tp;return(0,n.jsxs)("button",{ref:e=>{tA.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),ri(e)},onMouseEnter:()=>tm(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}`)})})]}),te&&null!==tQ&&(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:A?eo("chatInput.loadingCommands"):eo("chatInput.slashCommandsHeader",{countLabel:t6})}),(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:A||0!==t4.length?t5.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(eP[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===tr,a=eH(e,tX);return(0,n.jsxs)("button",{ref:e=>{tW.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),ro(e)},onMouseEnter:()=>tn(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")})})]}),to&&null!==ta&&(Q=tf&&(!th||th.cwd!==U),X=es("chatInput.matchCount",rt.length),ee=th?.truncated&&!re?` \xb7 ${ta.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:Q?eo("chatInput.loadingFiles"):`${eo("chatInput.filesHeader",{countLabel:X})}${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:Q||0!==rt.length?rt.map((e,t)=>{let r=t===tl,a=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-a.length);return(0,n.jsxs)("button",{ref:e=>{t$.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),ra(e)},onMouseEnter:()=>tc(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)(e$.sj,{size:14}):(0,e$.I3)(a,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:i}),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:t7&&!re?eo("chatInput.searching"):eo("chatInput.noMatchingFiles")})})]})),rc&&(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"===rc.kind?eo("chatInput.queuedSteer"):eo("chatInput.queuedFollowUp"),rd>1&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:" \xb7 "+rd})]}),(0,n.jsx)("span",{title:rc.text,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-muted)"},children:rc.text}),(0,n.jsx)(eX,{onClick:ru,title:eo("chatInput.queuedEditTitle"),children:eo("chatInput.queuedEdit")}),(0,n.jsx)(eX,{onClick:rp,title:eo("chatInput.queuedDeleteTitle"),children:eo("chatInput.queuedDelete")}),(0,n.jsx)(eX,{onClick:rm,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 ${e8?"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:tb,value:ed,onChange:e=>{eu(e.target.value),tu(!1),t3(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;t3(t.value,t.selectionStart)},onKeyDown:rg,onCompositionStart:()=>{tT.current=!0},onCompositionEnd:e=>{tT.current=!1,tR.current=Date.now();let t=e.currentTarget;t3(t.value,t.selectionStart)},onInput:rf,onPaste:rx,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:()=>tM.current?.click(),disabled:l,title:eo("chatInput.attachFile"),"aria-label":eo("chatInput.attachFile"),"data-has-attachments":eJ.length||e4.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"})]})}),(rb.length>0||rj||m||rS)&&g&&(0,n.jsxs)("div",{ref:tw,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();eg({top:t.top,left:t.left,width:t.width}),em(e=>!e)},disabled:rC,style:{background:ep?"var(--bg-hover)":"none",cursor:rC?"not-allowed":"pointer",opacity:rC?.5:1},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=ep?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},title:rb.length>0?eo("chatInput.changeModel"):rS?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)(ev.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"composer-model-name",title:rj??void 0,children:rj??(rb.length>0?eo("chatInput.selectModel"):rS?eo("chatInput.loadingModels"):eo("chatInput.noModels"))}),(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),ep&&eh&&(er=(et=window.visualViewport?.height??window.innerHeight)-eh.top+6,en=Math.max(120,Math.min(eh.top-8,.6*et)),ea=ei?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:eh.left,width:"max-content",minWidth:eh.width,maxWidth:"calc(100vw - 16px)"},(0,n.jsxs)("div",{ref:tk,className:"dropdown-surface",style:{position:"fixed",bottom:er,...ea,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)(ey.A,{size:13,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,n.jsx)("input",{ref:tj,type:"search",autoComplete:"off",spellCheck:!1,value:eT,onChange:e=>eE(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),em(!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===rk.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:eT.trim()?eo("chatInput.noMatchingModels"):rS?eo("chatInput.loadingModels"):eo("chatInput.noAvailableModels")}):rk.map((e,t)=>(0,n.jsxs)("div",{children:[rk.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===c?.modelId&&e.provider===c?.provider;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{em(!1),(!t||d)&&g(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))})]}))]}),S&&(0,n.jsxs)("div",{ref:tS,className:"composer-thinking-control",style:{position:"relative"},children:[(0,n.jsxs)("button",{className:"composer-thinking-button ui-focus-ring",onClick:()=>ex(e=>!e),disabled:l,title:eo("chatInput.changeReasoningTitle",{level:rR}),"aria-label":`${eo("chatInput.changeReasoning")}: ${rR}`,style:{background:ef?"var(--bg-hover)":"none",cursor:l?"not-allowed":"pointer",opacity:l?.5:1},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=ef?"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:rE}),(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),ef&&(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:rz.map(e=>{let t=(j??"auto")===e,r=eD[e],a=r?eo(r):"",i="auto"!==e&&I?I[e]:void 0,o=null!=i&&i!==e?i:e,s=null!=i&&i!==e;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ex(!1),t||l||S(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,s&&(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)})})]}),v&&y&&(0,n.jsxs)("button",{className:"composer-fast-toggle ui-focus-ring",type:"button",onClick:()=>{l||y(!f)},disabled:l,title:f&&!1===x?"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===x?"var(--status-warning)":f?"var(--accent)":"var(--text-muted)",cursor:l?"not-allowed":"pointer",opacity:l?.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:tC,className:"composer-context-ring-wrap",children:[(0,n.jsxs)("button",{type:"button",className:"composer-context-ring","aria-haspopup":rA?"dialog":void 0,"aria-expanded":eS,"aria-label":rA?"Context window usage":"Context window usage unavailable",title:rF??void 0,disabled:!rA,onClick:()=>eM(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:eN,strokeDashoffset:eN*(1-rW/100),transform:"rotate(-90 13 13)"})]}),(0,n.jsx)("span",{className:"composer-context-ring-label",children:r$})]}),rA&&rF&&eS&&(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})})]}),l&&r&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-steer ui-focus-ring",onClick:()=>rs("steer"),disabled:!ed.trim()||!!eJ.length||!!e4.length,title:eJ.length||e4.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")})]}),l&&a&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-followup ui-focus-ring",onClick:()=>rs("followup"),disabled:!ed.trim()||!!eJ.length||!!e4.length,title:eJ.length||e4.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")})]}),l?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:w?b: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:tZ,disabled:!ed.trim()&&!eJ.length&&!e4.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")})]})]})]})]}),e8&&(0,n.jsx)("div",{className:"text-xs px-2 py-1",style:{color:e7?"var(--text-muted)":"var(--accent)",marginTop:4},children:e7?eo("chatInput.shellLocal"):eo("chatInput.shellToModel")})]})]})}));var e4=r(1697);function e5({request:e,onRespond:t}){let{t:r}=(0,s.s9)(),[a,o]=(0,i.useState)("editor"===e.method?e.prefill??"":"");(0,i.useEffect)(()=>{o("editor"===e.method?e.prefill??"":"")},[e]);let l=()=>t(e,{cancelled:!0}),c=(0,e4.Z)({onClose:l,active:!0}),d=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:a})};return(0,n.jsx)("div",{className:"animate-fade-in",onMouseDown:e=>{e.target===e.currentTarget&&l()},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:c,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:a,placeholder:e.placeholder,onChange:e=>o(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:a,onChange:e=>o(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:l,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 e6=r(32383);function e3({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,i=("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),o=!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)):i||("user"===e.role||"assistant"===e.role?"":o?"(error)":"(no output)")})]})}let e9="calc(var(--space-4) + var(--space-1)) var(--space-5)",e8={fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-dim)"};function e7({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)(e7,{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)(e7,{value:e[t]})})]},t))}):(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:String(e)})}function te({task:e}){let{t}=(0,s.s9)();return e?(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",padding:e9},children:[(0,n.jsx)("span",{style:e8,children:t("subagentTranscript.taskLabel")}),(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(M,{className:"markdown-subagent-text",children:e})})]}):null}function tt({completion:e,truncated:t}){let{t:r}=(0,s.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 i=a?Object.keys(a):[],o=a&&1===i.length&&"string"==typeof a[i[0]]?a[i[0]]:null;return(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",padding:e9},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"var(--space-4)"},children:[(0,n.jsx)("span",{style:e8,children:r("subagentTranscript.resultLabel")}),t&&(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:r("subagentTranscript.completionTruncated")})]}),o?(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:o}):a?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(e7,{value:a})}):e?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(M,{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 tr({subagent:e,sessionId:t,transcriptVersion:r,events:a,onClose:o}){let{t:l}=(0,s.s9)(),[c,d]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[m,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)(!1),[x,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)([]),[j,S]=(0,i.useState)(0),[C,I]=(0,i.useState)(!1),[M,T]=(0,i.useState)(null),[R,E]=(0,i.useState)(!1),$=(0,i.useRef)(0),A=(0,i.useRef)(0),F=(0,i.useRef)(0),z=(0,i.useRef)(0),L=(0,i.useRef)(0),N=(0,i.useRef)(null),_=null!==e,U=e?.source==="history",O=!U,P=(0,i.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]),q=(0,i.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,e6.$)(t,{type:"get_subagent_messages",subagentId:e.id,sessionFile:e.sessionFile,fromByte:r})},[t,e?.id,e?.sessionFile]),V=(0,i.useCallback)(async r=>{if(!t||!e?.id)return;let n=++A.current;I(!0),T(null);try{let t;try{t=await q(r,U)}catch(n){if(U||!e.id)throw n;t=await q(r,!0)}if(n!==A.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;E(a||t.nextByte<=t.fromByte)}catch(e){if(n!==A.current)return;T(e instanceof Error?e.message:String(e))}finally{n===A.current&&I(!1)}},[t,e?.id,U,q]),K=(0,i.useCallback)(async()=>{if(!t||!e?.id)return;let r=++$.current;f(!0),v(null);try{let n=await P();if(null===n.completion&&O){let n=((await (0,e6.$)(t,{type:"get_subagents"})).subagents??[]).find(t=>t.id===e?.id);if(r!==$.current)return;n&&d(n)}if(r!==$.current)return;p(n.completion),h(n.truncated)}catch(e){if(r!==$.current)return;v(e instanceof Error?e.message:String(e))}finally{r===$.current&&f(!1)}},[t,e?.id,O,P]);(0,i.useEffect)(()=>{_&&t&&($.current+=1,A.current+=1,p(null),h(!1),v(null),d(null),b(!1),k([]),S(0),E(!1),T(null),I(!1),K())},[_,t,K]),(0,i.useEffect)(()=>{if(!_||!t||0===r||g)return;let e=r===F.current&&r===L.current,n=r===z.current;if(!e||!n)return L.current=r,N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{N.current=null,F.current!==L.current&&(F.current=L.current,K()),y&&!C&&z.current!==L.current&&(z.current=L.current,V(j))},600),()=>{N.current&&clearTimeout(N.current)}},[_,t,r,g,y,C,K,V,j]);let J=c?.agent??e?.agent??"",Y=c?.description??e?.description??"",G=c?.task??e?.task??e?.assignment??"",Z=e?.progress,Q=B(Z?.tokens),X=e?.source==="history"?[Q?l("chatWindow.tokensUnit",{count:Q}):null,D(Z?.cost),H(Z?.durationMs),Z?.resolvedModel?Z.resolvedModel.replace(/:.*$/,""):null].filter(Boolean).join(" \xb7 "):null,ee=e?.source==="history"?e?.result?.abortReason??e?.result?.error:void 0,et=O&&!u&&a&&a.length>0?a.slice(-4):null;return(0,n.jsx)(W.lG,{open:_,onOpenChange:e=>{e||o()},children:e&&(0,n.jsx)(W.Cf,{ariaLabel:l("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)(W.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:J})}),Y&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:"var(--space-2)"},children:Y}),(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c?.sessionFile??e.sessionFile??e.id}),X&&(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:"var(--space-1)"},children:X}),ee&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--status-error)",marginTop:"var(--space-1)",wordBreak:"break-word"},children:ee})]}),(0,n.jsx)(W.HM,{style:{flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1,padding:"2px 6px"},"aria-label":l("subagentTranscript.close"),children:"\xd7"})]}),et&&(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:et.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)(te,{task:G}),(0,n.jsx)(tt,{completion:u,truncated:m}),g&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:l("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&&V(0)},style:{alignSelf:"flex-start",background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:l(y?"subagentTranscript.hideTranscript":"subagentTranscript.showTranscript")}),y&&(0,n.jsxs)("div",{id:"subagent-transcript-panel",style:{display:"grid",gap:"var(--space-4)",padding:e9,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",maxHeight:"50dvh",overflowY:"auto"},children:[M?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)"},children:M}):0!==w.length||C?w.map((e,t)=>(0,n.jsx)(e3,{message:e},t)):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:l("subagentTranscript.noMessages")}),C&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:l("subagentTranscript.loading")}),!R&&!C&&(0,n.jsx)("button",{type:"button",onClick:()=>void V(j),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:l("subagentTranscript.loadMore")})]})]})]})},e.id)})}function tn(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 ta(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 ti=(0,i.memo)(function({messages:e,scrollContainer:t,messageRefs:r}){let[a,o]=(0,i.useState)(0),[s,l]=(0,i.useState)(1),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)([]),[m,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)(null),x=(0,i.useRef)(!1),v=(0,i.useRef)(null),y=(0,i.useRef)(null),b=(0,i.useRef)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(e);k.current=e;let j=(0,i.useCallback)(()=>{let e=t.current;if(!e)return;let r=e.scrollHeight,n=e.clientHeight,a=r-n;d(a>20),a<=0?(o(0),l(1)):(o(e.scrollTop/a),l(n/r))},[t]),S=(0,i.useRef)(null),C=(0,i.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,i=[],o=0,s=k.current,l=e.getBoundingClientRect();for(let t=0;t<s.length;t++){let r=s[t];if("user"!==r.role&&"assistant"!==r.role)continue;let c=a?.[o];if(o++,("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,o=t.height;i.push({topRatio:a/n,heightRatio:o/n,msg:r,index:i.length})}}p(i)},150))},[t,r]),I=(0,i.useRef)(null),M=(0,i.useCallback)(()=>{I.current=null,j()},[j]);(0,i.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{null===I.current&&(I.current=requestAnimationFrame(M))};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r),null!==I.current&&(cancelAnimationFrame(I.current),I.current=null)}},[t,M]),(0,i.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,i.useEffect)(()=>{let e=setTimeout(()=>{j(),C()},50);return()=>clearTimeout(e)},[e.length,C,j]),(0,i.useEffect)(()=>()=>{null!==b.current&&(cancelAnimationFrame(b.current),b.current=null)},[]);let T=(0,i.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-s,e))/(1-s)*n)},[t,s]),R=(0,i.useCallback)(()=>{b.current=null,null!==w.current&&(f(w.current),w.current=null)},[]),E=(0,i.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,i.useCallback)(e=>{if(!c)return;x.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-a*(1-s),i=n>=0&&n<=s?n:s/2;T(r-i);let o=e=>{x.current&&T((e.clientY-t.top)/t.height-i)},l=()=>{x.current=!1,v.current=null,window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",l)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",l),v.current={onMove:o,onUp:l}},[c,s,a,T]);(0,i.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,A=(0,i.useMemo)(()=>u.map(e=>ta(e.msg)),[u]),F=(0,i.useMemo)(()=>u.map(e=>tn(e.msg)),[u]),z=(0,i.useMemo)(()=>{if(!m||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},[m,u,$]);if(!c)return null;let L=a*(1-s)*100,N=100*s,B=null!==g&&u.length>0?u.reduce((e,t)=>Math.abs(t.topRatio-g)<Math.abs(u[e].topRatio-g)?t.index:e,0):null;return(0,n.jsxs)("div",{ref:y,onMouseDown:W,onMouseEnter:()=>h(!0),onMouseLeave:()=>{h(!1),f(null)},onMouseMove:E,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:`${N}%`,background:"color-mix(in srgb, var(--text-dim) 32%, transparent)",borderRadius:2,pointerEvents:"none",zIndex:1}}),u.map(e=>{let t=A[e.index]??ta(e.msg),r=m&&B===e.index,a="user"===e.msg.role,i=100*e.topRatio;return(0,n.jsx)("div",{style:{position:"absolute",top:`${i}%`,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}}),m&&u.map((e,t)=>{let r=F[t]??tn(e.msg),a=A[t]??ta(e.msg),i=B===e.index;return r&&0!==z.length?(0,n.jsx)("div",{style:{position:"absolute",top:z[t],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${i?a.border:"var(--border)"}`,borderRight:`1px solid ${i?a.border:"var(--border)"}`,borderBottom:`1px solid ${i?a.border:"var(--border)"}`,borderLeft:`2px solid ${a.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:i?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:i?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r})},e.index):null})]})}),to=(0,h.A)("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),ts={display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-xs)",color:"var(--text-muted)"};function tl({status:e}){let t={size:14,strokeWidth:1.8,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(A,{...t,color:"var(--accent)"}):"in_progress"===e?(0,n.jsx)(to,{...t,color:"var(--accent)"}):"blocked"===e?(0,n.jsx)(F.A,{...t,color:"var(--text-muted)"}):"abandoned"===e?(0,n.jsx)(z,{...t,color:"var(--text-dim)"}):(0,n.jsx)(L,{...t,color:"var(--text-dim)"})}function tc({phases:e=[],collapsible:t=!1,defaultExpanded:r=!1}){let{t:a}=(0,s.s9)(),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(!!t&&!r);if(0===e.length)return null;let p=e.flatMap(e=>e.tasks),m=p.filter(e=>"completed"===e.status).length,h=5,g=(l?e:e.slice(0,4)).map(e=>{let t=l?e.tasks:e.tasks.slice(0,h);return h-=t.length,{...e,tasks:t}}).filter(e=>e.tasks.length>0),f=g.reduce((e,t)=>e+t.tasks.length,0)<p.length,x=d?"":"border-b border-border",v=a("chatWindow.todoProgress",{done:m,total:p.length});return(0,n.jsxs)("section",{"aria-label":a("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":!d,onClick:()=>u(e=>!e),title:d?a("chatWindow.expandPanel"):a("chatWindow.collapsePanel"),className:`${x} w-full cursor-pointer text-left`,style:{...ts,background:"none"},children:[(0,n.jsx)(ex,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:a("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:v}),(0,n.jsx)(o.A,{size:14,strokeWidth:1.8,"aria-hidden":!0,style:{color:"var(--text-dim)",transform:d?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}):(0,n.jsxs)("div",{className:x,style:ts,children:[(0,n.jsx)(ex,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:a("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:v})]}),!d&&(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:g.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":`${a(`chatWindow.todoStatus.${e.status}`)}: ${e.content}`,children:[(0,n.jsx)("span",{style:{marginTop:"var(--space-1)",flexShrink:0},children:(0,n.jsx)(tl,{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:a("chatWindow.todoBlocker",{blocker:e.blocker})})]})]},e.id??`${e.content}-${t}`))})]},e.id??`${e.name}-${t}`))}),(f||l)&&(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:()=>c(e=>!e),children:l?a("chatWindow.todoShowLess"):a("chatWindow.todoShowAll")})]})]})}var td=r(82749),tu=r(57990);let tp=(0,h.A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),tm=(0,h.A)("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);var th=r(15480),tg=r(12651);let tf=(0,h.A)("circle-dollar-sign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]);var tx=r(44236),tv=r(90710);let ty=(0,h.A)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]),tb=(0,h.A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);var tw=r(14577);function tk(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 tj(e){return"history"===e.source?"history":"live"}function tS(e){return"started"!==e.status}function tC(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=tj(t),i=tj(e);if("history"===i&&"live"===r){if(!tS(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"===i&&"history"===r){n.set(e.id,e);continue}"history"===i&&!tS(e)&&tS(t)||n.set(e.id,{...t,...e,source:i})}return[...n.values()].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id))}let tI={started:"chatWindow.subagentState.started",completed:"chatWindow.subagentState.completed",failed:"chatWindow.subagentState.failed",aborted:"chatWindow.subagentState.aborted"},tM=[{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 tT({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 tR({subagent:e}){let{t}=(0,s.s9)(),r=e.progress,a=!!(r?.retryState??r?.retryFailure),i=[];if(a){let e=r?.retryState?.attempt??r?.retryFailure?.attempt??0,a=r?.retryState?.maxAttempts??0,o=a>0?t("chatWindow.subagentRetrying",{attempt:e,max:a}):t("chatWindow.subagentRetryAttempt",{attempt:e});i.push((0,n.jsx)(tT,{icon:td.A,label:o,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&&i.push((0,n.jsx)(tT,{icon:r?.currentTool?tu.A:tp,label:e,children:e},"activity"))}let o=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),l=e.agentSource&&"bundled"!==e.agentSource?e.agentSource:null,c=B(r?.tokens),d=D(r?.cost??e.result?.cost),u=B(r?.contextTokens),p=u?`${u}/${B(r?.contextWindow)??"?"}`:null,m=_(r?.resolvedModel),h=H(r?.durationMs),g=[l?(0,n.jsx)(tT,{icon:tm,label:l,children:"user"===l?null:l},"source"):null,o>0?(0,n.jsx)(tT,{icon:th.A,label:t("chatWindow.subagentNestedCount",{count:o}),children:o},"nested"):null,c?(0,n.jsx)(tT,{icon:tg.A,label:t("chatWindow.tokensUnit",{count:c}),children:c},"tokens"):null,d?(0,n.jsx)(tT,{icon:tf,label:d,children:d},"cost"):null,p?(0,n.jsx)(tT,{icon:tx.A,label:t("chatWindow.contextGauge",{used:u??"?",total:B(r?.contextWindow)??"?"}),children:p},"context"):null,m?(0,n.jsx)(tT,{icon:tv.A,label:m,children:m},"model"):null,h?(0,n.jsx)(tT,{icon:ty,label:h,children:h},"duration"):null].filter(Boolean);return(g.length>0&&i.push((0,n.jsx)("span",{style:{display:"inline-flex",flexWrap:"wrap",gap:"var(--space-2) var(--space-4)"},children:g},"meta")),0===i.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:i})}function tE({events:e}){let{t}=(0,s.s9)(),r=(e??[]).slice(-2).map(e=>e.label.trim()).filter(Boolean);if(0===r.length)return null;let a=r.join(" \xb7 "),i=`${t("chatWindow.subagentHub.preview")}: ${a}`;return(0,n.jsxs)("span",{title:i,"aria-label":i,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 tW({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 t$({subagent:e,events:t,freshnessNow:r,onSelectSubagent:a}){let{t:i}=(0,s.s9)(),o="history"!==e.source,l=i(tI[e.status]),c="history"!==e.source||"started"!==e.status,d=e.task??e.description??e.assignment??i("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=i(`chatWindow.subagentHub.fresh.${u}`),m="stale"===u&&void 0!==r&&"number"==typeof e.lastUpdate?Math.max(Math.ceil(15),Math.floor(Math.max(0,r-e.lastUpdate)/1e3)):null,h=null===m?null:i("chatWindow.subagentHub.lastUpdated",{value:`${m}s`}),g=h?`${p} \xb7 ${h}`:p,f="live"===u?"var(--status-success)":"stale"===u?"var(--status-warning)":"var(--text-dim)",x=[e.agent,d,c?l:null,g].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:o?"var(--bg)":"var(--bg-panel)",color:o?"var(--text)":"var(--text-dim)",opacity:o?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=o?"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)(N,{status:e.status,live:o}),(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}),c&&(0,n.jsx)("span",{style:{flexShrink:0,color:o?"var(--text-muted)":"var(--text-dim)",fontSize:"var(--text-xs)"},children:l}),(0,n.jsxs)("span",{"data-subagent-freshness":u,"aria-label":g,title:g,style:{display:"inline-flex",flexShrink:0,alignItems:"center",gap:"var(--space-2)",color:f,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:f}}),(0,n.jsx)("span",{children:p}),h&&(0,n.jsx)("span",{children:h})]}),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)(tR,{subagent:e}),(0,n.jsx)(tE,{events:t})]})}function tA({subagents:e,subagentEvents:t={},onSelectSubagent:r,defaultExpanded:a=!1,now:l}){let{t:c}=(0,s.s9)(),[d,u]=(0,i.useState)(!a),[p,m]=(0,i.useState)("all"),[h,g]=(0,i.useState)(null),f=e.filter(e=>"history"!==e.source&&"started"===e.status).length,x=e.some(e=>"history"!==e.source&&"started"===e.status);(0,i.useEffect)(()=>{if(void 0!==l||d||!x)return;let e=()=>g(Date.now());e();let t=window.setInterval(e,5e3);return()=>window.clearInterval(t)},[d,x,l]);let v=l??h??0,y=void 0!==l||null!==h,b=(0,i.useMemo)(()=>({all:e.length,active:tk(e,"active").length,completed:tk(e,"completed").length,failed:tk(e,"failed").length}),[e]),w=(0,i.useMemo)(()=>tk(e,p),[e,p]),k=(0,i.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=[],i=new Map;for(let e of t){let t=e.parentToolCallId;if(!t){a.push(e);continue}let o=n.get(t)??[];if(o.push(e),n.set(t,o),!r.has(t)){let r=i.get(t)??[];r.push(e),i.set(t,r)}}let o=[],s=new Set,l=(e,t)=>{for(let r of e){if(s.has(r.id))continue;s.add(r.id),o.push({kind:"row",key:`row-${r.id}`,subagent:r,depth:t});let e=(n.get(r.id)??[]).filter(e=>!s.has(e.id));0!==e.length&&(o.push({kind:"group",key:`group-nested-${r.id}`,group:"nested",parentLabel:r.agent,depth:t+1}),l(e,t+1))}};if(a.length>0&&(o.push({kind:"group",key:"group-roots",group:"roots",depth:0}),l(a,0)),i.size>0)for(let[e,t]of(o.push({kind:"group",key:"group-orphans",group:"orphans",depth:0}),i))o.push({kind:"group",key:`group-parent-${e}`,group:"nested",parentLabel:e,depth:0}),l(t,0);let c=t.filter(e=>!s.has(e.id));return c.length>0&&l(c,0),o})(w),[w]);return(0,n.jsxs)("section",{"aria-label":c("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":!d,onClick:()=>u(e=>!e),title:d?c("chatWindow.subagentHub.expand"):c("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:d?"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)(tb,{"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:c("chatWindow.subagentsPanel")}),(0,n.jsxs)("span",{"aria-label":c("chatWindow.subagentSummary",{running:f,total:e.length}),title:c("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)(o.A,{"aria-hidden":!0,style:{width:"var(--text-lg)",height:"var(--text-lg)",flexShrink:0,color:"var(--text-dim)",transform:d?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}),!d&&(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:tM.map(({value:e,key:t})=>{let r=p===e,a=c(t);return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","data-subagent-filter":e,"aria-pressed":r,title:`${a} (${b[e]})`,onClick:()=>m(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:b[e]})]},e)})}),0===w.length?(0,n.jsx)("div",{style:{padding:"var(--space-5)",color:"var(--text-dim)",fontSize:"var(--text-sm)",textAlign:"center",wordBreak:"keep-all"},children:c("chatWindow.subagentHub.empty")}):k.map(e=>{if("group"===e.kind){let t="roots"===e.group?c("chatWindow.subagentHub.group.roots"):"orphans"===e.group?c("chatWindow.subagentHub.group.orphans"):c("chatWindow.subagentHub.group.nested",{agent:e.parentLabel??""});return(0,n.jsx)(tW,{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)(t$,{subagent:e.subagent,events:t[e.subagent.id],freshnessNow:y?v: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)(tw.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:c("chatWindow.subagentHub.observeOnly")}),(0,n.jsx)("span",{title:c("chatWindow.subagentHub.observeOnlyHint"),children:c("chatWindow.subagentHub.observeOnlyHint")})]})]})]})]})}function tF({todoPhases:e,subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i=!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)(tc,{phases:e,collapsible:!0,defaultExpanded:i}),t.length>0&&(0,n.jsx)(tA,{subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i})]})}function tz(e){if("assistant"!==e.role)return e;let t=e.content;if(!Array.isArray(t))return e;let r=t.map(e=>("object"!=typeof e||null===e||Array.isArray(e)||"toolCall"!==e.type?null:{type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:"object"!=typeof e.input||null===e.input||Array.isArray(e.input)?"object"!=typeof e.arguments||null===e.arguments||Array.isArray(e.arguments)?{}:e.arguments:e.input})??e);return{...e,content:r}}var tL=r(61937);let tN=[],tB=["read","bash","edit","write","task"],tD=["bash","read","edit","write","grep","find","ls","task"];var tH=r(83444);let t_="omp-web:tool-preset";function tU(){try{return window.localStorage}catch{return null}}function tO(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function tP(e){return"string"==typeof e?e:void 0}function tq(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function tV(e){return"bundled"===e||"user"===e||"project"===e?e:void 0}function tK(e){var t;if(!tO(e))return;let r={},n=tq(e.index);void 0!==n&&(r.index=n);let a=tP(e.id);void 0!==a&&(r.id=a);let i=tP(e.agent);void 0!==i&&(r.agent=i);let o=tV(e.agentSource);void 0!==o&&(r.agentSource=o);let s="pending"===(t=e.status)||"running"===t||"completed"===t||"failed"===t||"aborted"===t?t:void 0;void 0!==s&&(r.status=s);let l=tP(e.task);void 0!==l&&(r.task=l);let c=tP(e.assignment);void 0!==c&&(r.assignment=c);let d=tP(e.description);void 0!==d&&(r.description=d);let u=tP(e.lastIntent);void 0!==u&&(r.lastIntent=u);let p=tP(e.currentTool);void 0!==p&&(r.currentTool=p);let m=tP(e.currentToolArgs);void 0!==m&&(r.currentToolArgs=m);let h=tq(e.currentToolStartMs);void 0!==h&&(r.currentToolStartMs=h),Array.isArray(e.recentTools)&&(r.recentTools=e.recentTools),Array.isArray(e.recentOutput)&&(r.recentOutput=e.recentOutput.filter(e=>"string"==typeof e));let g=tq(e.toolCount);void 0!==g&&(r.toolCount=g);let f=tq(e.requests);void 0!==f&&(r.requests=f);let x=tq(e.tokens);void 0!==x&&(r.tokens=x);let v=tq(e.contextTokens);void 0!==v&&(r.contextTokens=v);let y=tq(e.contextWindow);void 0!==y&&(r.contextWindow=y);let b=tq(e.cost);void 0!==b&&(r.cost=b);let w=tq(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=tP(e.modelRole);void 0!==k&&(r.modelRole=k);let j=tP(e.resolvedModel);if(void 0!==j&&(r.resolvedModel=j),"boolean"==typeof e.resolvedModelIsFallback&&(r.resolvedModelIsFallback=e.resolvedModelIsFallback),tO(e.retryState)){let t=tq(e.retryState.attempt),n=tq(e.retryState.maxAttempts),a=tq(e.retryState.delayMs),i=tP(e.retryState.errorMessage),o=tq(e.retryState.startedAtMs);void 0!==t&&void 0!==n&&void 0!==a&&void 0!==i&&void 0!==o&&(r.retryState={attempt:t,maxAttempts:n,delayMs:a,errorMessage:i,startedAtMs:o})}if(tO(e.retryFailure)){let t=tq(e.retryFailure.attempt),n=tP(e.retryFailure.errorMessage);void 0!==t&&void 0!==n&&(r.retryFailure={attempt:t,errorMessage:n})}return void 0!==e.inflightTaskDetails&&(r.inflightTaskDetails=e.inflightTaskDetails),tO(e.extractedToolData)&&(r.extractedToolData=e.extractedToolData),Object.keys(r).length>0?r:void 0}function tJ(e){let t;if(!tO(e))return;let r=tP(e.id),n=tP(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:tq(e.index)??-1,source:"live"},i=tV(e.agentSource);void 0!==i&&(a.agentSource=i);let o=tP(e.description);void 0!==o&&(a.description=o);let s=tP(e.task);void 0!==s&&(a.task=s);let l=tP(e.assignment);void 0!==l&&(a.assignment=l);let c=tP(e.sessionFile);void 0!==c&&(a.sessionFile=c);let d=tP(e.parentToolCallId);void 0!==d&&(a.parentToolCallId=d);let u=tq(e.lastUpdate);void 0!==u&&(a.lastUpdate=u);let p=tK(e.progress);return void 0!==p&&(a.progress=p),a}function tY(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 tG(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 tZ(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 tQ={steering:[],followUp:[]},tX="omp-queue-";function t0(e){return 0===e.steering.length&&0===e.followUp.length}function t1(e){return e&&"inherit"!==e?e:"auto"}function t2(e){return e?.provider&&e.id?{provider:e.provider,modelId:e.id,name:e.name,reasoning:e.reasoning,thinking:e.thinking}:null}let t4=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class t5 extends Error{constructor(e){super("timeout"===e?(0,s.Tl)("agentSession.eventStreamTimeout"):(0,s.Tl)("agentSession.eventStreamFailed")),this.status=e,this.name="EventStreamConnectionError"}}function t6(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 t3(e){return new Promise(t=>setTimeout(t,e))}function t9(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function t8(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:t9(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:t9(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=t9(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function t7(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 re(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 rt(e){let t=e.content;return"string"==typeof t?JSON.stringify({text:t,images:[]}):Array.isArray(t)?JSON.stringify({text:t7(e),images:t.map(re).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function rr(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 rn(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 ra(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 ri(e){return e.type.startsWith("image/")||"text/plain"===e.type||"text/markdown"===e.type}let ro=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,rs=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,rl=/\x1B\[([0-9;]*)m/g,rc=/\x1B_pi:c\x07/g,rd=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],ru=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function rp(e){return e.replace(rc,"").replace(ro,"")}function rm(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(rs);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 rh(e,t){let r=rm(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function rg(e){return rm(e)[0]?.char}let rf={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:""},rx={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function rv(e,t=50){return e+t}function ry(e){return"user"===e.role||"custom"===e.role&&"compaction"===e.customType}function rb(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function rw(){let{t:e}=(0,s.s9)(),[t,r]=(0,i.useState)(null);return(0,i.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 rk({messageCount:e,toolCallCount:t,children:r}){let{t:a,tn:l}=(0,s.s9)(),[c,d]=(0,i.useState)(!1),u=[a("chatWindow.processDetails"),l("chatWindow.messageCount",e)];return t>0&&u.push(l("chatWindow.toolCallCount",t)),(0,n.jsxs)("div",{style:{marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":c,onClick:()=>d(e=>!e),className:"process-details-toggle",title:a(c?"chatWindow.collapseProcessDetails":"chatWindow.expandProcessDetails"),children:[(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,"aria-hidden":"true",style:{flexShrink:0,transform:c?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("span",{className:"process-details-label",children:u.join(" \xb7 ")})]}),c&&(0,n.jsx)("div",{style:{marginTop:"var(--space-4)"},children:r})]})}let rj=(0,i.memo)(function({messages:e,entryIds:t,conversationMeta:r,messageRefs:a,isStreaming:o,sessionBusy:l,isNew:p,forkingEntryId:m,handleFork:h,handleNavigate:g,handleEditContent:f,modelNames:x,messageCwd:v,onOpenFile:y,sessionId:b,toolCallsDefaultCollapsed:w,visibleCount:k,nearBottom:j,sentinelRef:S,handleLoadMoreClick:C}){let{t:I}=(0,s.s9)(),{toolResultsMap:M,lastAnchorIdx:T,visibleRefIndexByMessage:R}=r,E=(r,i={})=>{let s=i.messageOverride??e[r],c="user"===s.role&&r>0&&"assistant"===e[r-1].role?t[r-1]:void 0,d="user"===s.role||"assistant"===s.role,u=R.get(r),k=i.keyPrefix??"message",j=!1;if("assistant"===s.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&&o&&r===e.length-1&&(j=!1)}void 0!==i.showTimestamp&&(j=i.showTimestamp);let S=(0,n.jsx)(V,{message:s,toolResults:M,modelNames:x,cwd:v,onOpenFile:y,entryId:t[r],onFork:l||p||0===r&&"user"===s.role?void 0:h,forking:m===t[r],onNavigate:l?void 0:g,prevAssistantEntryId:l?void 0:c,onEditContent:f,showTimestamp:j,prevTimestamp:r>0?e[r-1].timestamp:void 0,sessionId:b,toolCallsDefaultCollapsed:w},`${k}-view-${r}`);return d&&!1!==i.attachRef&&void 0!==u?(0,n.jsx)("div",{ref:e=>{a.current[u]=e},children:S},`${k}-${r}`):S},W=[];for(let t=0;t<e.length;){if(!ry(e[t])){W.push(E(t)),t+=1;continue}let r=t,i=r+1;for(;i<e.length&&!ry(e[i]);)i+=1;let s=function(e,t,r){for(let a=r-1;a>t;a--){var n;if("assistant"===(n=e[a]).role&&d(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,i);if(-1===s||(l||o)&&i===e.length&&r===T){for(let e=r;e<i;e++)W.push(E(e));t=i;continue}W.push(E(r));let p=[];for(let e=r+1;e<s;e++)p.push(e);let m=p.filter(t=>{var r;return"assistant"===(r=e[t]).role?c(r).length>0:"custom"===r.role}),h=e[s],g=d(h),f=g.processBlocks.length>0?rb(h,g.processBlocks,{omitUsage:!0}):null,x=g.answerBlocks.length>0?rb(h,g.answerBlocks):null,v=m.length+ +!!f;if(v>0){let t=m.map(e=>R.get(e)).find(e=>"number"==typeof e)??(x?void 0:R.get(s)),i=(0,n.jsxs)(rk,{messageCount:v,toolCallCount:function(e,t){let r=0;for(let n of t){let t=e[n];t?.role==="assistant"&&(r+=u(c(t)))}return r}(e,m)+u(g.processBlocks),children:[m.map(e=>E(e,{attachRef:!1,keyPrefix:"process"})),f&&E(s,{attachRef:!1,keyPrefix:"process-final",messageOverride:f,showTimestamp:!1})]});W.push((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{a.current[t]=e},children:i},`process-group-${r}-${s}`))}x&&W.push(E(s,{messageOverride:x}));for(let e=s+1;e<i;e++)W.push(E(e));t=i}let $=(0,i.useRef)(null),{startIndex:A,hasMore:F}=(0,i.useMemo)(()=>{let e=Math.max(0,W.length-k);if(j||null===$.current)return $.current=e,{startIndex:e,hasMore:e>0};let t=Math.min($.current,e);return $.current=t,{startIndex:t,hasMore:t>0}},[W.length,k,j]);return(0,n.jsxs)(n.Fragment,{children:[F&&(0,n.jsx)("button",{ref:S,type:"button",onClick:C,className:"py-3 w-full text-center text-xs text-text-muted hover:text-text transition-colors cursor-pointer",children:I("chatWindow.scrollUpToLoad",{count:A})}),W.slice(A)]})});function rS({session:e,newSessionCwd:t,advisorEnabled:r,toolCallsDefaultCollapsed:o=!0,onAgentEnd:l,onSessionCreated:c,onSessionForked:d,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:m,onSystemPromptChange:h,onSystemPromptLoaderChange:g,onSessionStatsChange:f,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onContextUsageChange:y,onOpenFile:b}){let{t:w,tn:k}=(0,s.s9)(),{playDoneSound:j,unlockAudio:S}=function(){let[e,t]=(0,i.useState)(()=>{let e=localStorage.getItem("omp-sound-enabled");return null===e||"true"===e}),r=(0,i.useRef)(e);(0,i.useEffect)(()=>{r.current=e},[e]),(0,i.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,i.useRef)(null),a=(0,i.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),o=(0,i.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=a();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[a]);return{soundEnabled:e,onSoundToggle:(0,i.useCallback)(()=>{let e=!r.current;e&&o(!0),r.current=e,localStorage.setItem("omp-sound-enabled",String(e)),t(e)},[o]),playDoneSound:(0,i.useCallback)(()=>{if(!r.current)return;let e=a();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let a=e.createOscillator(),i=e.createGain();a.connect(i),i.connect(e.destination),a.type="sine",a.frequency.value=r;let o=t+.18*n;i.gain.setValueAtTime(0,o),i.gain.linearRampToValueAtTime(.18,o+.02),i.gain.exponentialRampToValueAtTime(.001,o+.45),a.start(o),a.stop(o+.45),a.onended=()=>{a.disconnect(),i.disconnect()}})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[a]),unlockAudio:o,soundEnabledRef:r}}(),C=(0,eA.a)(),I=(0,i.useRef)(j);I.current=j;let M=(0,i.useCallback)(()=>{I.current(),l?.()},[l]),T=(0,i.useCallback)(e=>{p?.current?.insertIfEmpty(e)},[p]),{loading:R,error:E,messages:W,entryIds:$,streamState:A,agentRunning:F,bashRunning:z,pendingBash:L,modelNames:N,modelList:B,modelsLoading:D,modelError:H,modelThinkingLevels:_,modelThinkingLevelMaps:U,thinkingLevel:O,fastModeEnabled:P,fastModeActive:q,liveModelMeta:K,retryInfo:J,contextUsage:Y,forkingEntryId:G,isCompacting:Z,compactResult:Q,displayModel:X,sessionStats:ee,slashCommands:et,slashCommandsLoading:er,queuedMessages:en,notices:ea,extensionDialog:ei,extensionCustomUi:eo,extensionStatuses:es,extensionWidgets:el,respondToExtensionUi:ec,sendExtensionCustomInput:ed,isAutoModelSelection:eu,agentPhase:ep,activeGoal:em,activePlan:eh,subagents:eg,subagentEvents:ef,subagentTranscriptVersions:ex,activeSubagentCount:ev,currentTodoPhase:ey,todoPhases:eb,isNew:ek,sessionIdRef:ej,messagesEndRef:eS,scrollContainerRef:eC,handleSend:eI,handleAbort:eM,handleFork:eT,handleNavigate:eE,handleModelChange:eW,handleSteer:e$,handleFollowUp:eF,handlePromptWithStreamingBehavior:eL,handleAbortCompaction:eN,removeQueuedMessage:eB,promoteQueuedToSteer:eD,handleBuiltinSlashCommand:eH,handleThinkingLevelChange:e_,handleFastModeChange:eU,handleCycleModel:eO,handleCycleThinkingLevel:eP,handleAbortRetry:eq,loadSlashCommands:eV}=function(e){let{session:t,newSessionCwd:r,advisorEnabled:n,onAgentEnd:a,onSessionCreated:o,onSessionForked:l,modelsRefreshKey:c,onBranchDataChange:d,onSystemPromptChange:u,onSystemPromptLoaderChange:p,onSessionStatsPanelOpen:m,onOpenSettingsTab:h,onOpenFile:g}=e,f=(0,tL.j)(),x=null===t&&null!==r,[v,y]=(0,i.useState)(null),[b,w]=(0,i.useState)(!x),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),[I,M]=(0,i.useState)([]),[T,R]=(0,i.useState)([]),[E,W]=(0,i.useReducer)(tY,{isStreaming:!1,streamingMessage:null}),[$,A]=(0,i.useState)(!1),[F,z]=(0,i.useState)(!1),[L,N]=(0,i.useState)(null),B=(0,i.useRef)(!0),[D,H]=(0,i.useState)({}),[_,U]=(0,i.useState)([]),[O,P]=(0,i.useState)(!1),[q,V]=(0,i.useState)(null),[K,J]=(0,i.useState)(null),[Y,G]=(0,i.useState)({}),[Z,Q]=(0,i.useState)({}),[X,ee]=(0,i.useState)(null),[et,er]=(0,i.useState)(null),[en,ea]=(0,i.useState)(()=>(function(e=tU()){if(!e)return"default";try{let t=e.getItem(t_);return"none"===t||"default"===t||"full"===t?t:"default"}catch{return"default"}})()),[ei,eo]=(0,i.useState)("auto"),[es,el]=(0,i.useState)(!1),[ec,ed]=(0,i.useState)(void 0),[eu,ep]=(0,i.useState)("immediate"),[em,eh]=(0,i.useState)(!0),[eg,ef]=(0,i.useState)(!1),[ex,ev]=(0,i.useState)("all"),[ey,eb]=(0,i.useState)("all"),[ek,ej]=(0,i.useState)(null),[eS,eC]=(0,i.useState)(null),eI=(0,i.useRef)(0),eM=(0,i.useCallback)(e=>{e&&e.contextWindow>0&&(eI.current=e.contextWindow),eC(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))},[]),[eT,eE]=(0,i.useState)(null),[eW,e$]=(0,i.useState)(null),[eA,eF]=(0,i.useState)(null),[eL,eN]=(0,i.useState)(null),[eB,eD]=(0,i.useState)(!1),[eH,e_]=(0,i.useState)(null),[eU,eO]=(0,i.useState)(null),[eP,eq]=(0,i.useState)(null),[eV,eK]=(0,i.useState)([]),[eJ,eY]=(0,i.useState)(!1),[eG,eZ]=(0,i.useReducer)(t8,{visible:[],pending:[]}),[eQ,eX]=(0,i.useState)(null),[e0,e1]=(0,i.useState)(null),[e2,e4]=(0,i.useState)(null),[e5,e3]=(0,i.useState)([]),[e9,e8]=(0,i.useState)([]),[e7,te]=(0,i.useState)({steering:[],followUp:[]}),[tt,tr]=(0,i.useState)([]),[tn,ta]=(0,i.useState)({}),[ti,to]=(0,i.useState)({}),[ts,tl]=(0,i.useState)([]),[tc,td]=(0,i.useState)(null),[tu,tp]=(0,i.useState)(null),tm=tt.filter(e=>"history"!==e.source&&"started"===e.status).length,th=(0,i.useRef)(null),tg=(0,i.useRef)(null),tf=(0,i.useRef)(null),tx=(0,i.useRef)(null),tv=(0,i.useRef)(null),ty=(0,i.useRef)(t?.id??null),tb=(0,i.useRef)(0),tw=(0,i.useRef)(!1),tk=(0,i.useRef)(!1),tj=(0,i.useRef)(0),tS=(0,i.useRef)(!1),tI=(0,i.useRef)(!1),tM=(0,i.useRef)(0),tT=(0,i.useRef)(null),tR=(0,i.useRef)(!1),tE=(0,i.useRef)(!1),tW=(0,i.useRef)(!0),t$=(0,i.useRef)(void 0),tA=(0,i.useRef)(0),tF=(0,i.useRef)(0),t9=(0,i.useRef)(null),re=(0,i.useRef)(null),ri=(0,i.useRef)(null),ro=(0,i.useRef)(!1),rs=(0,i.useRef)(null),rl=(0,i.useRef)(null),rc=(0,i.useRef)(null),rd=(0,i.useRef)(null),ru=(0,i.useRef)(0),rp=(0,i.useRef)(0),rm=(0,i.useRef)(null),rh=(0,i.useRef)(!1),rg=(0,i.useRef)(null);null===rg.current&&(rg.current=function(e,t=function(e){if("u">typeof document&&!document.hidden&&"function"==typeof requestAnimationFrame){let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)}let t=setTimeout(e,50);return()=>clearTimeout(t)}){let r=null,n=null,a=()=>{n&&(n(),n=null)},i=()=>{n=null;let t=r;r=null,t&&e(t)};return{push(o){if("message_update"===o.type){r=o,n||(n=t(i));return}if("message_end"===o.type)r=null,a();else if(r){a();let t=r;r=null,e(t)}e(o)},reset(){r=null,a()}}}(e=>{tT.current?.(e)}));let rf=rg.current;null===tg.current&&(tg.current=function({createSource:e,timeoutMs:t,onFatalClose:r}){let n=null,a=e=>n===e&&!e.invalidated,i=e=>{null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.timeout=setTimeout(()=>{a(e)&&s(e,"timeout")},t)},o=e=>{e.promise=new Promise(t=>{e.resolve=t}),e.settled=!1,i(e)},s=(e,t)=>{e.settled||(e.settled=!0,null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.resolve({status:t,source:e.source}))},l=(e,t)=>{!e.invalidated&&(e.invalidated=!0,n===e&&(n=null),s(e,"closed"),t&&2!==e.source.readyState&&e.source.close())},c=e=>{a(e)&&2!==e.source.readyState&&s(e,"connected")},d=e=>{if(a(e)){if(2===e.source.readyState){s(e,"closed"),l(e,!1),r?.(e.sessionId,e.source);return}0===e.source.readyState&&e.settled&&o(e)}};return{ensure(t){let r,a,u,p,m=n;if(m&&m.sessionId===t){if(1===m.source.readyState)return m.settled||s(m,"connected"),Promise.resolve({status:"connected",source:m.source});if(0===m.source.readyState)return m.settled&&o(m),m.promise;l(m,!0)}else m&&l(m,!0);return a=null,u=new Promise(e=>{r=e}),p=e(t,{onOpen:()=>{a&&c(a)},onError:()=>{a&&d(a)}}),n=a={sessionId:t,source:p,promise:u,resolve:r,settled:!1,invalidated:!1,timeout:null},i(a),1===p.readyState?s(a,"connected"):2===p.readyState&&d(a),a.promise},currentSource:e=>n?.sessionId!==e||n.invalidated?null:n.source,isCurrent:(e,t)=>n?.sessionId===e&&n.source===t&&!n.invalidated,markConnected(e,t){let r=n;r&&r.sessionId===e&&r.source===t&&c(r)},invalidate(e,t){let r=n;r&&(void 0===e||r.sessionId===e)&&(void 0===t||r.source===t)&&l(r,!0)}}}({timeoutMs:6e4,createSource:(e,t)=>{rf.reset();let r=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);return r.onopen=t.onOpen,r.onerror=t.onError,th.current=r,r},onFatalClose:(e,t)=>{th.current!==t||(th.current=null,tv.current&&(clearTimeout(tv.current),tv.current=null),tS.current&&(tv.current=setTimeout(()=>{tv.current=null,tS.current&&ty.current===e&&(tf.current?.(e),tx.current?.(e))},1e3)))}}));let rx=tg.current,rv=e.setToolPreset??ea,ry=eA??v?.context.model??eL??null,rb=x?X??et:eA??(K?{provider:K.provider,modelId:K.modelId}:v?.context.model??eL),rw=function(e,t,r){if(ez(r))return r;if(!t)return 0;let n=e.find(e=>e.provider===t.provider&&e.id===t.modelId);return ez(n?.contextWindow)?n.contextWindow:0}(_,rb,eI.current),rk=(0,i.useMemo)(()=>eS??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,i=(a.input??0)+(a.output??0)+(a.cacheRead??0)+(a.cacheWrite??0);if(!(i<=0)&&!(i>1.1*t))return{tokens:i,contextWindow:t,percent:i/t*100}}return null}(I,rw),[eS,I,rw]),rj=(0,i.useMemo)(()=>{if(eQ)return eQ;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,a=0,i=0,o=0;for(let t of I){if("user"===t.role&&(n+=1),"toolResult"===t.role&&(i+=1),"assistant"!==t.role)continue;a+=1;let s=t.usage;o+=t.content.filter(e=>"toolCall"===e.type).length,s&&(e.input+=s.input??0,e.output+=s.output??0,e.cacheRead+=s.cacheRead??0,e.cacheWrite+=s.cacheWrite??0,r+=s.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:ty.current??t?.id??"",sessionName:t?.name,userMessages:n,assistantMessages:a,toolCalls:o,toolResults:i,totalMessages:I.length,tokens:e,cost:r,...rk?{contextUsage:rk}:{}}},[I,eQ,rk,v?.filePath,t?.id,t?.name]);(0,i.useEffect)(()=>{eC(null),eI.current=0},[t?.id]),(0,i.useEffect)(()=>{let e=t?.id;(tp(null),e)?td(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}`))):td(null)},[t?.id]),(0,i.useEffect)(()=>{$||tp(null)},[$]);let rS=(0,i.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]),rC=(0,i.useCallback)((e,t)=>{tr(r=>tC(r,e,t))},[]),rI=(0,i.useCallback)(async e=>{let t=rp.current;try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/subagents`);if(!r.ok)return;let n=await r.json();if(ty.current!==e||rp.current!==t)return;let a=(n.subagents??[]).map(tZ);rC(a)}catch{}},[rC]),rM=(0,i.useCallback)(async e=>{let t=Date.now(),r=ru.current,n=rp.current;try{let a=await (0,e6.$)(e,{type:"get_subagents"});if(ty.current!==e||ru.current!==r||rp.current!==n)return;let i=(a.subagents??[]).map(tJ).filter(e=>void 0!==e);rC(i,{skipNewerThan:t});let o=new Set(i.map(e=>e.id));tr(e=>{let r,n;return r=!1,n=e.filter(e=>{if("history"===e.source)return!0;let n=o.has(e.id)||(e.lastUpdate??0)>=t;return n||(r=!0),n}),r?n:e}),rI(e)}catch{}},[rC,rI]),rT=(0,i.useCallback)(()=>{null!==rc.current&&(cancelAnimationFrame(rc.current),rc.current=null),rs.current=null,rl.current=null,ta({}),to({})},[]),rR=(0,i.useRef)(0),rE=(0,i.useCallback)(()=>(rR.current+=1,rR.current),[]),rW=(0,i.useCallback)((e,t)=>(void 0===t||t===rR.current)&&(rR.current+=1,J(e),!e||(eF(t=>t&&(t.provider!==e.provider||t.modelId!==e.modelId)?null:t),!0)),[]),r$=(0,i.useCallback)(async e=>{let t=rE();try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)return;let n=await r.json();if(ty.current!==e||!rW(t2(n.state?.model),t))return;n.state?.thinkingLevel!==void 0&&eo(t1(n.state.thinkingLevel)),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ed(n.state?.fastModeActive),n.state?.autoRetryEnabled!==void 0&&ef(n.state.autoRetryEnabled),n.state?.interruptMode!==void 0&&ep(n.state.interruptMode),n.state?.autoCompactionEnabled!==void 0&&eh(n.state.autoCompactionEnabled),n.state?.steeringMode!==void 0&&ev(n.state.steeringMode),n.state?.followUpMode!==void 0&&eb(n.state.followUpMode)}catch{}},[rW,rE]),rA=(0,i.useCallback)(async(e,t=!1,r=!1,n)=>{let a=!1;try{t&&w(!0);let i=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),o=await fetch(`/api/sessions/${encodeURIComponent(e)}?${i}`);if(404===o.status)return t&&(y(null),C(null),M([]),j(null)),null;if(!o.ok)throw Error(`HTTP ${o.status}`);let s=await o.json();if(ty.current!==e||void 0!==n&&ru.current!==n)return null;if(y(s),C(s.leafId),M(s.context.messages),R(s.context.entryIds??[]),tl(s.context.todoPhases??[]),rI(e),eF(null),j(null),s.context.thinkingLevel&&"off"!==s.context.thinkingLevel&&eo(s.context.thinkingLevel),a=!0,!r)return t&&w(!1),null;try{let r=rE(),a=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!a.ok)throw Error(`HTTP ${a.status}`);let i=await a.json();if(ty.current!==e||void 0!==n&&ru.current!==n)return t&&w(!1),null;let o=i.state,s=rW(t2(o?.model),r);return o?(void 0!==o.contextUsage&&eM(o.contextUsage??null),void 0!==o.systemPrompt&&eE(o.systemPrompt||null),s&&void 0!==o.thinkingLevel&&eo(t1(o.thinkingLevel)),void 0!==o.fastModeEnabled&&el(o.fastModeEnabled),ed(o.fastModeActive),void 0!==o.autoRetryEnabled&&ef(o.autoRetryEnabled),void 0!==o.interruptMode&&ep(o.interruptMode),void 0!==o.autoCompactionEnabled&&eh(o.autoCompactionEnabled),void 0!==o.steeringMode&&ev(o.steeringMode),void 0!==o.followUpMode&&eb(o.followUpMode),void 0!==o.extensionStatuses&&e3(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&e8(o.extensionWidgets??[]),void 0!==o.todoPhases&&tl(o.todoPhases??[]),0===o.queuedMessageCount&&Date.now()-tj.current>=5e3&&te(tQ)):(eM(null),!i.running&&Date.now()-tj.current>=5e3&&te(tQ)),t&&w(!1),i}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)}},[rI,rW,rE,eM]);(0,i.useEffect)(()=>(0,tH._)(({sessionIds:e})=>{let t=ty.current;if(!t||!e.includes(t))return;let r=tg.current?.currentSource(t);r&&r.readyState!==EventSource.CLOSED||rA(t)}),[rA]);let rF=(0,i.useCallback)(async(e,t)=>{let r=++tb.current;try{let n=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&n.set("leafId",t);let a=`/api/sessions/${encodeURIComponent(e)}/context?${n}`,i=await fetch(a);if(!i.ok)throw Error(`HTTP ${i.status}`);let o=await i.json();if(ty.current!==e||tb.current!==r)return;M(o.context.messages),R(o.context.entryIds??[]),tl(o.context.todoPhases??[])}catch(e){console.error("Failed to load context:",e)}},[]),rz=(0,i.useCallback)((e=0,t)=>{t??=(0,s.Tl)("agentSession.noMessages");let n=ty.current;x&&r&&n&&!ro.current&&(ro.current=!0,o?.({id:n,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[x,r,o]),rL=(0,i.useCallback)(async()=>{if(ty.current||!x||!r)return ty.current;if(ri.current)return ri.current;let e=(async()=>{let e=X??et;e&&eN(e);let t="none"===en?[...tN]:"full"===en?[...tD]:[...tB],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"!==ei?{thinkingLevel:ei}:{},...n?{advisor:!0}:{}})});if(!a.ok)throw Error(`HTTP ${a.status}`);let i=(await a.json()).sessionId;return ty.current=i,i})();ri.current=e;try{return await e}finally{ri.current=null}},[n,x,r,X,et,en,ei]),rN=(0,i.useCallback)(async()=>{let e=ty.current??await rL();if(!e)return;let t=await (0,e6.$)(e,{type:"get_state"});B.current&&ty.current===e&&eE(t.systemPrompt??"")},[rL]),rB=(0,i.useCallback)(async()=>{let e=ty.current??await rL();if(!e)return eK([]),[];eY(!0);try{let t=await (0,e6.$)(e,{type:"get_commands"}),r=(t?.commands??[]).map(ra).filter(e=>null!==e);return eK(r),r}catch(e){return console.error("Failed to load slash commands:",e),eK([]),[]}finally{eY(!1)}},[rL]),rD=(0,i.useCallback)(e=>{let t=rx.ensure(e),r=rx.currentSource(e);return r&&(r.onmessage=t=>{if(rx.isCurrent(e,r))try{let n=JSON.parse(t.data);if("connected"===n.type&&rx.markConnected(e,r),"session_closed"===n.type){rf.push(n),rx.invalidate(e,r),th.current===r&&(th.current=null);return}rf.push(n)}catch{}}),t},[rf,rx]);tf.current=rD;let rH=(0,i.useCallback)(async(e,t)=>{let r=ty.current;if(e1(t=>t?.id===e.id?null:t),r)try{await (0,e6.$)(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),r_=(0,i.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"]}}],[]),rU=(0,i.useCallback)(async e=>{try{await (0,e6.$)(e,{type:"set_host_tools",tools:r_})}catch{}},[r_]),rO=(0,i.useMemo)(()=>[{scheme:"pi-web",description:"Browser-integrated resources: pi-web://clipboard reads/writes the user's clipboard via the web UI.",writable:!0}],[]),rP=(0,i.useCallback)(async e=>{try{await (0,e6.$)(e,{type:"set_host_uri_schemes",schemes:rO})}catch{}},[rO]);tx.current=e=>{rU(e),rP(e),rM(e)};let rq=(0,i.useCallback)(async(e,t,r,n=!1)=>{try{await (0,e6.$)(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,i.useCallback)(async(e,t,r)=>{let n=ty.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=t6(t),i=a?t:"";if(i&&1){let e=window.open(i,"_blank","noopener,noreferrer");e?.focus?.()}let o=a?t?`Opened ${t}`:"No URL provided":"Unsafe or invalid URL not opened";await rq(n,e,o,!a&&!!t);break}case"notify":{let t=a(r.title)??"OMP",i=a(r.message)??"";if("u">typeof Notification)try{if("granted"===Notification.permission)new Notification(t,{body:i});else if("default"===Notification.permission){let e=await Notification.requestPermission();"granted"===e&&new Notification(t,{body:i})}}catch{}await rq(n,e,"Notification shown");break}case"open_file":{let t=a(r.path)??"";if(t&&g)try{let e=t.split(/[\\/]/).pop()||t;g(t,e,n)}catch{}await rq(n,e,t?`Opened ${t}`:"No path provided",!t);break}default:await rq(n,e,`Host tool "${t}" is not available in omp-web`,!0)}},[g,rq]),rK=(0,i.useCallback)(async(e,t,r)=>{try{await (0,e6.$)(e,{type:"host_uri_result",id:t,...r})}catch(e){console.error("Failed to send host URI result:",e)}},[]),rJ=(0,i.useCallback)(async(e,t,r,n)=>{let a=ty.current;if(!a)return;let i=r.replace(/^pi-web:\/\//i,"")||"";if("clipboard"===i){if("read"===t){if("u"<typeof navigator||!navigator.clipboard?.readText)return void await rK(a,e,{isError:!0,error:"Clipboard read is not available in this browser"});try{let t=await navigator.clipboard.readText();await rK(a,e,{content:t||"(clipboard is empty)",contentType:"text/plain"})}catch{await rK(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 rK(a,e,{});return}catch{await rK(a,e,{isError:!0,error:"Clipboard write failed in this browser"});return}return void await rK(a,e,{isError:!0,error:"Clipboard write is not available in this browser"})}await rK(a,e,{isError:!0,error:`Unknown pi-web resource: ${i}`})},[rK]),rY=(0,i.useCallback)(async(e,t)=>{let r=ty.current;if(r)try{await (0,e6.$)(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rG=(0,i.useCallback)(e=>{let t=e.message.trim();t&&eZ({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"}})},[]),rZ=(0,i.useCallback)(async e=>{let t,r=setTimeout(()=>{rG({type:"info",message:(0,s.Tl)("agentSession.startingAgent")})},4e3);try{t=await rD(e)}finally{clearTimeout(r)}if("connected"===t.status||t.source.readyState===EventSource.OPEN)return;let n=rx.isCurrent(e,t.source);throw th.current===t.source&&(th.current=null),n?rx.invalidate(e,t.source):t.source.close(),new t5(t.status)},[rG,rD,rx]),rQ=(0,i.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":e1(t);break;case"cancel":e1(e=>e?.id===t.targetId?null:e);break;case"open_url":{let e=t.launchUrl??t.url,r=t6(e)?e:"";if(r)try{window.open(r,"_blank","noopener,noreferrer")}catch{}rG({id:t.id,type:"info",message:r?t.instructions?`${t.instructions}
|
|
17
|
+
${r}`:(0,s.Tl)("agentSession.openInBrowser",{url:r}):(0,s.Tl)("agentSession.unsafeUrlBlocked")});break}case"notify":rG({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":e3(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":e8(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":e4(e=>t.closed?e?.id===t.id?null:e:t)}},[rG,e.chatInputRef]),rX=(0,i.useCallback)(async(e=ty.current,t)=>{if(void 0===t||ru.current===t)try{e&&await rA(e,!1,!0,t)}finally{if(void 0!==t&&ru.current!==t||(rm.current=null,!tS.current))return;tS.current=!1,A(!1),eq(null),ej(null),tr([]),rp.current+=1,rT(),e&&rI(e),W({type:"end"}),a?.()}},[rA,a,rI,rT]),r0=(0,i.useCallback)(async(e,t)=>{await t3(800);let r=Date.now();for(;B.current&&ty.current===e&&tS.current&&Date.now()-r<2e4;){if(void 0!==t&&ru.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 rX(e,t)}}catch{}await t3(600)}},[rX]),r1=(0,i.useCallback)(async e=>{let t=tM.current+1;for(tM.current=t;tI.current&&tM.current===t&&ty.current===e;){await t3(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 rA(e),tM.current!==t||ty.current!==e)return;tI.current=!1,z(!1),N(null);return}catch{}}},[rA]),r2=(0,i.useCallback)(async e=>{if(!tS.current)return;let t=ru.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let n=await r.json();if(ru.current!==t)return;let a=n.state;if(tw.current=a?.isCompacting??!1,eD(a?.isCompacting??!1),a?.todoPhases!==void 0&&tl(a.todoPhases??[]),rM(e),(!a||0===a.queuedMessageCount)&&Date.now()-tj.current>=5e3&&te(tQ),n.running&&a&&(a.isStreaming||a.isPromptRunning||a.isCompacting)||!tS.current)return;a?(void 0!==a.contextUsage&&eM(a.contextUsage??null),void 0!==a.systemPrompt&&eE(a.systemPrompt??null),void 0!==a.extensionStatuses&&e3(a.extensionStatuses??[]),void 0!==a.extensionWidgets&&e8(a.extensionWidgets??[])):eM(null),await rX(e,t)}catch{}},[rX,rM,eM]);(0,i.useEffect)(()=>{if(!$)return;let e=()=>{let e=ty.current;e&&r2(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)}},[$,r2]),(0,i.useEffect)(()=>{tS.current=$},[$]);let r4=(0,i.useCallback)(e=>{e&&te(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})},[]),r5=(0,i.useCallback)(e=>{e&&te(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)}})},[]),r6=(0,i.useCallback)(e=>{e&&te(t=>{let r=t.followUp.indexOf(e);return -1===r?t:{steering:[...t.steering,e],followUp:t.followUp.filter((e,t)=>t!==r)}})},[]);(0,i.useEffect)(()=>{let e=ty.current;if(!e)return;let t=t0(e7);(!t||rh.current)&&(rh.current=!t,function(e,t){try{let r=tX+e;if(t0(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,e7))},[e7]),tT.current=(0,i.useCallback)(e=>{switch(e.type){case"agent_start":tk.current=!1,tS.current=!0,A(!0),eq({kind:"waiting_model"}),W({type:"start"});break;case"agent_end":if(!1===e.isTerminal)break;if(tk.current){tk.current=!1;break}if(!tS.current)break;let t=ty.current,r=ru.current;if(tS.current=!1,A(!1),eq(null),ej(null),tr([]),rp.current+=1,rT(),W({type:"end"}),t){rA(t,!1,!1,r);let e=rE();fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||ty.current!==t||ru.current!==r||rW(t2(n.state.model),e)&&(n.state?.contextUsage!==void 0&&eM(n.state.contextUsage??null),n.state?.systemPrompt!==void 0&&eE(n.state.systemPrompt||null),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ed(n.state?.fastModeActive),n.state?.extensionStatuses!==void 0&&e3(n.state.extensionStatuses??[]),n.state?.extensionWidgets!==void 0&&e8(n.state.extensionWidgets??[]),n.state?.todoPhases!==void 0&&tl(n.state.todoPhases??[]),(!n.state||0===n.state.queuedMessageCount)&&Date.now()-tj.current>=5e3&&te(tQ))}).catch(()=>{})}a?.();break;case"prompt_result":if(!1!==e.agentInvoked||!tS.current)break;rX(ty.current,ru.current);break;case"prompt_error":rG({type:"error",message:e.errorMessage??(0,s.Tl)("agentSession.commandFailed")}),tS.current&&rX(ty.current,ru.current);break;case"notice":{let t=e.level,r=e.message?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(r)?ew.oR.info("MCP tools updated",r,{clamp:!0}):rG({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)?ew.oR.info("MCP tools updated",t,{clamp:!0}):t&&rG({type:"info",message:t});break}case"thinking_level_changed":eo(t1(e.thinkingLevel));break;case"model_changed":{let e=ty.current;if(!e)break;let t=rE();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||ty.current!==e||rW(t2(r.state.model),t)&&(void 0!==r.state.thinkingLevel&&eo(t1(r.state.thinkingLevel)),void 0!==r.state.fastModeEnabled&&el(r.state.fastModeEnabled),ed(r.state.fastModeActive),void 0!==r.state.autoRetryEnabled&&ef(r.state.autoRetryEnabled),void 0!==r.state.interruptMode&&ep(r.state.interruptMode),void 0!==r.state.autoCompactionEnabled&&eh(r.state.autoCompactionEnabled),void 0!==r.state.steeringMode&&ev(r.state.steeringMode),void 0!==r.state.followUpMode&&eb(r.state.followUpMode))}).catch(()=>{});break}case"config_update":{let t=e.model;t&&rW(t2(t)),void 0!==e.thinkingLevel&&eo(t1(e.thinkingLevel));break}case"available_commands_update":eK((e.commands??[]).map(ra).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!tS.current)break;let t=e.message;if(t?.role==="user")break;t&&W({type:"update",message:tz(t)}),eq(null);break}case"message_end":{if(!tS.current)break;let t=e.message;if(t&&"user"===t.role){let e=tz(t),r=rt(e),n=rm.current;rm.current=null,r4(t7(e)),M(t=>{let a=t[t.length-1];return n&&a?.role==="user"&&rt(a)===n?n===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t?.role==="custom"&&"xdev-mount-notice"===t.customType?ew.oR.info("MCP tools updated",t7(t).trim()||"The MCP tool inventory changed.",{clamp:!0}):t&&M(e=>[...e,tz(t)]);W({type:"reset"}),eq({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;eq(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&&ty.current&&r2(ty.current),eq(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":ty.current&&r2(ty.current);break;case"auto_retry_start":ej({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":ej(null);break;case"auto_compaction_start":eD(!0),e_(null),eO(null);break;case"auto_compaction_end":eD(!1),e.errorMessage?(e_(e.errorMessage),eO(null)):e.aborted||e.skipped||(eO(rr(e.result,"auto")),ty.current&&rA(ty.current));break;case"subagent_lifecycle":{let t=function(e){if(!tO(e))return;let t=tP(e.id),r=tP(e.status);if(!t||!r||"started"!==r&&"completed"!==r&&"failed"!==r&&"aborted"!==r)return;let n={id:t,agent:tP(e.agent)??"subagent",status:r,index:tq(e.index)??-1,lastUpdate:Date.now(),source:"live"},a=tV(e.agentSource);void 0!==a&&(n.agentSource=a);let i=tP(e.description);void 0!==i&&(n.description=i);let o=tP(e.sessionFile);void 0!==o&&(n.sessionFile=o);let s=tP(e.parentToolCallId);return void 0!==s&&(n.parentToolCallId=s),"boolean"==typeof e.detached&&(n.detached=e.detached),n}(e.payload);if(!t)break;rC([t]);break}case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=tO(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&&rJ(t,n,r,a);break}case"subagent_progress":{let t=e.payload,r=tK(t?.progress),n=r?.id,a="number"==typeof t?.index&&Number.isFinite(t.index)?t.index:r?.index??-1,i="string"==typeof t?.parentToolCallId?t.parentToolCallId:null,o="string"==typeof t?.task&&t.task.trim()?t.task:r?.task??null,s="string"==typeof t?.assignment?t.assignment:r?.assignment;if(!n&&!o&&!i&&a<0)break;tr(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,i=t.index,o="number"==typeof a&&Number.isFinite(a)&&a>=0?a:"number"==typeof i&&Number.isFinite(i)&&i>=0?i:0,s="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:o,status:s,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:s,description:"string"==typeof t?.description?t.description:void 0,parentToolCallId:i??void 0,sessionFile:"string"==typeof t?.sessionFile?t.sessionFile:void 0,detached:"boolean"==typeof t?.detached?t.detached:void 0},r);return n?tC(e,[n]):e}}else i&&a>=0&&(l=e.findIndex(e=>e.parentToolCallId===i&&e.index===a)),-1===l&&i&&(l=e.findIndex(e=>e.parentToolCallId===i)),-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}:{},...o?{task:o}:{},...void 0!==s?{assignment:s}:{},...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){(rs.current??(rs.current=new Set)).add(r);let e=function(e){if(!tO(e))return null;let t=tO(e.event)?e.event:null;if(!t)return null;let r=tP(t.type),n=Date.now();if("tool_execution_start"===r){let e=tP(t.toolName)??"tool",r=tP(t.intent)?.trim();if(r)return{kind:"tool",label:`→ ${e} — ${r}`,ts:n};let a=tO(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=tO(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=>tO(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=tP(t.message);if(e)return{kind:"notice",label:e.slice(0,140),ts:n}}return null}(t);if(e){let t=rl.current??(rl.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===rc.current&&(rc.current=requestAnimationFrame(()=>{rc.current=null;let e=rs.current;rs.current=null;let t=rl.current;rl.current=null;let r=null!==e&&e.size>0,n=null!==t&&t.size>0;(r||n)&&(e&&e.size>0&&to(t=>{let r=t;for(let t of e)r={...r,[t]:(r[t]??0)+1};return tG(r)}),t&&t.size>0&&ta(e=>{let r=e;for(let[n,a]of t){let t=e[n]??[],i=0===t.length?a.length<=50?a:a.slice(-50):[...t,...a].slice(-50);r===e&&(r={...e}),delete r[n],r[n]=i}return tG(r)}))}))}break}case"extension_ui_request":rQ(e)}},[rG,r4,rX,rQ,rV,rJ,rA,rC,a,r2,rT,rW,rE,eM]);let r3=(0,i.useCallback)(async(n,a)=>{let i=n.trim();if(!i&&!a?.length||tS.current||tI.current)return!1;let o=!a?.length&&i.startsWith("/");if(!a?.length&&i.startsWith("!")){let e=i.startsWith("!!"),t=(e?i.slice(2):i.slice(1)).trim();return!!t&&(await t$.current?.(t,e),!0)}let l=ru.current+1,{userMsg:c,piImages:d}=rn(n,a);M(e=>[...e,c]),rm.current=rt(c),ru.current=l,tS.current=!0,A(!0),eq(o?{kind:"running_command"}:{kind:"waiting_model"}),W({type:"start"}),tE.current=!0,tW.current=!0,tA.current=0;try{let e=null;if(x&&r){let t=ty.current??await ri.current,r=t??await rL();r&&(e=r,rz(1,n),X&&(eN(X),t&&await (0,e6.$)(r,{type:"set_model",provider:X.provider,modelId:X.modelId})),await rZ(r),rM(r),await (0,e6.$)(r,{type:"prompt",message:n,...d?.length?{images:d}:{}}))}else t&&(e=t.id,await rZ(t.id),rM(t.id),rU(t.id),rP(t.id),await (0,e6.$)(t.id,{type:"prompt",message:n,...d?.length?{images:d}:{}}));return o&&e&&r0(e,l),!0}catch(r){console.error("Failed to send message:",r);let t=rm.current;return t&&M(e=>{let r=e[e.length-1];return r?.role==="user"&&rt(r)===t?e.slice(0,-1):e}),rG({type:"error",message:r instanceof t5?r.message:(0,s.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),rm.current=null,tS.current=!1,A(!1),eq(null),W({type:"end"}),!1}},[x,r,X,t,rL,rZ,rz,r0,rG,e.chatInputRef,rM,rU,rP]),r9=(0,i.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=ty.current;if(!n||!tS.current)return!1;let{userMsg:a,piImages:i}=rn(e,t);M(e=>[...e,a]),rm.current=rt(a),tk.current=!0,tE.current=!0,tW.current=!0,tA.current=0;try{return await rZ(n),rM(n),await (0,e6.$)(n,{type:"abort_and_prompt",message:r,...i?.length?{images:i}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tk.current=!1;let e=rm.current;return e&&M(t=>{let r=t[t.length-1];return r?.role==="user"&&rt(r)===e?t.slice(0,-1):t}),rm.current=null,rG({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rG,rZ,rM]);t$.current=(0,i.useCallback)(async(r,n)=>{if(tS.current||tI.current)return;let a=`${n?"!!":"!"}${r}`;tI.current=!0,N({command:r,excludeFromContext:n}),z(!0);try{let e=ty.current??t?.id??await rL();if(!e)throw Error((0,s.Tl)("agentSession.shellSessionFailed"));await (0,e6.$)(e,{type:"bash",command:r,excludeFromContext:n}),await rA(e),rz(1,a)}catch(t){console.error("Failed to execute shell command:",t),rG({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(a)}finally{tI.current=!1,N(null),z(!1)}},[rG,rL,rA,e.chatInputRef,rz,t]);let r8=(0,i.useCallback)(async()=>{let e=ty.current;if(e){if(tI.current){try{await (0,e6.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,e6.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[]),r7=(0,i.useCallback)(async e=>{if(tI.current)return;let t=ty.current;if(t){e$(e);try{let{cancelled:r,newSessionId:n}=await (0,e6.$)(t,{type:"fork",entryId:e})??{};!r&&n&&l?.(n)}catch(e){console.error("Fork failed:",e)}finally{e$(null)}}},[l]),ne=(0,i.useCallback)(async e=>{if(tI.current||tS.current)return;let t=ty.current;t&&(C(e),await rF(t,e))},[rF]),nt=(0,i.useCallback)(async e=>{if(tI.current||tS.current)return;C(e);let t=ty.current;t&&await rF(t,e)},[rF]),nr=(0,i.useCallback)(async(e,t)=>{if(x){ee({provider:e,modelId:t}),eN({provider:e,modelId:t});let r=ty.current??await ri.current;if(!r)return;try{await (0,e6.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=ty.current;if(r)try{await (0,e6.$)(r,{type:"set_model",provider:e,modelId:t}),eF({provider:e,modelId:t}),r$(r)}catch(e){console.error("Failed to set model:",e)}},[x,ee,r$]),nn=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current??await rL();if(t)try{let r=await (0,e6.$)(t,{type:"set_fast_mode",enabled:e});el(r?.enabled??e),ed(r?.active),r$(t)}catch(e){console.error("Failed to change Fast mode:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}},[rG,rL,r$]),na=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current;if(t){ef(e);try{await (0,e6.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){ef(t=>t===e?!e:t),rG({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rG]),ni=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current;if(t){ep(e);try{await (0,e6.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rG]),no=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current;if(t){eh(e);try{await (0,e6.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rG]),ns=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current;if(t){ev(e);try{await (0,e6.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rG]),nl=(0,i.useCallback)(async e=>{let t=ty.current??await ri.current;if(t){eb(e);try{await (0,e6.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rG]),nc=(0,i.useCallback)(async()=>{let e=ty.current;if(e)try{await (0,e6.$)(e,{type:"cycle_model"}),r$(e)}catch(e){console.error("Failed to cycle model:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}},[rG,r$]),nd=(0,i.useCallback)(async()=>{let e=ty.current;if(e)try{await (0,e6.$)(e,{type:"cycle_thinking_level"}),r$(e)}catch(e){console.error("Failed to cycle thinking level:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}},[rG,r$]),nu=(0,i.useCallback)(async()=>{let e=ty.current;if(e){ej(null);try{await (0,e6.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rG({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rG]),np=(0,i.useCallback)(async()=>{let e=ty.current;if(e&&!tw.current&&!tS.current&&!tI.current)try{await (0,e6.$)(e,{type:"handoff"}),await rA(e,!0),r$(e)}catch(e){rG({type:"error",message:e instanceof Error?e.message:String(e)})}},[rG,rA,r$]),nm=(0,i.useCallback)(async()=>{let e=ty.current;if(e&&!tw.current&&!eB){tw.current=!0,eD(!0),e_(null),eO(null);try{let t=await (0,e6.$)(e,{type:"compact"});eO(rr(t,"manual")),await rA(e,!0),r$(e)}catch(e){e_(e instanceof Error?e.message:String(e)),eO(null)}finally{tw.current=!1,eD(!1)}}},[eB,rA,r$]),nh=(0,i.useCallback)(async e=>{P(!0);try{let n=r??t?.cwd??"",a=n?`/api/models?cwd=${encodeURIComponent(n)}`:"/api/models",i=await fetch(a,e?{signal:e}:void 0);if(!i.ok)throw Error(`HTTP ${i.status}`);let o=await i.json();H(o.models),V(o.modelError??null),G(o.thinkingLevels??{}),Q(o.thinkingLevelMaps??{});let s=o.modelList??[];if(U(s),x){let e=(o.defaultModel?s.find(e=>e.id===o.defaultModel?.modelId&&e.provider===o.defaultModel?.provider):void 0)??s[0];er(e?{provider:e.provider,modelId:e.id}:null)}}catch(t){e?.aborted||V(t instanceof Error?t.message:String(t))}finally{P(!1)}},[x,r,t?.cwd]),ng=(0,i.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(),i=ty.current??await rL(),o=e=>(e.handled&&(e.error?rG({type:"error",message:e.error}):"openSessionStats"!==e.action&&rG({type:"success",message:e.message??(0,s.Tl)("agentSession.commandCompleted")})),e);try{switch(r){case"compact":{if(!i||tw.current||eB)return o({handled:!0,error:(0,s.Tl)("agentSession.noSessionToCompact")});tw.current=!0,eD(!0),e_(null),eO(null);let e=await (0,e6.$)(i,{type:"compact",...a?{customInstructions:a}:{}});return eO(rr(e,"manual")),await rA(i,!0),tw.current=!1,eD(!1),rz(),o({handled:!0,message:(0,s.Tl)("agentSession.compactedContext")})}case"reload":if(!i)return o({handled:!0,error:(0,s.Tl)("agentSession.noSessionToReload")});return await (0,e6.$)(i,{type:"reload"}),await Promise.all([rA(i,!1,!0),rB(),nh()]),o({handled:!0,message:(0,s.Tl)("agentSession.reloadedResources")});case"name":if(!i)return o({handled:!0,error:(0,s.Tl)("agentSession.noSessionToName")});if(!a)return o({handled:!0,error:(0,s.Tl)("agentSession.nameUsage")});return await (0,e6.$)(i,{type:"set_session_name",name:a}),await rA(i),rz(),o({handled:!0,message:(0,s.Tl)("agentSession.sessionRenamed",{name:a})});case"session":{if(!i)return o({handled:!0,error:(0,s.Tl)("agentSession.noActiveSession")});let e=await (0,e6.$)(i,{type:"get_session_stats"});return e&&eX(e),m?.(),o({handled:!0,action:"openSessionStats"})}case"agents":return h?.("agents"),o({handled:!0,action:"openSettings"});case"copy":{if(!i)return o({handled:!0,error:(0,s.Tl)("agentSession.noActiveSession")});let e=await (0,e6.$)(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:(0,s.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),o({handled:!0,message:(0,s.Tl)("agentSession.copiedLastMessage")})}default:{let t=eR(e);if("not-web"===t.kind)return{handled:!1};if("usage-error"===t.kind)return o({handled:!0,error:(0,s.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,s.Tl)(t.argumentHintKey)})});if("plan"===r&&tp({objective:a}),!await r3(t.prompt))return"plan"===r&&tp(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(a);td(e);let t=ty.current;t&&sessionStorage.setItem(`ompgui:goal:${t}`,JSON.stringify(e))}return{handled:!0}}}}catch(e){return o({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&(tw.current=!1,eD(!1))}},[rG,rL,r3,eB,nh,rA,rB,rz,h,m]),nf=e=>e?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),nx=(0,i.useCallback)(async(t,r)=>{let n=ty.current;if(!n)return;let a=nf(r);try{await (0,e6.$)(n,{type:"prompt",message:t,streamingBehavior:"steer",...a?.length?{images:a}:{}}),tj.current=Date.now(),te(e=>({...e,steering:[...e.steering,t]}))}catch(r){console.error("Failed to steer:",r),rG({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rG,e.chatInputRef]),nv=(0,i.useCallback)(async(t,r,n)=>{let a=ty.current;if(!a)return;let i=nf(n);try{await (0,e6.$)(a,{type:"prompt",message:t,streamingBehavior:r,...i?.length?{images:i}:{}}),tj.current=Date.now(),te(e=>"steer"===r?{...e,steering:[...e.steering,t]}:{...e,followUp:[...e.followUp,t]})}catch(r){console.error("Failed to queue prompt:",r),rG({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rG,e.chatInputRef]),ny=(0,i.useCallback)(async(t,r)=>{let n=ty.current;if(!n)return;let a=nf(r);try{await (0,e6.$)(n,{type:"prompt",message:t,streamingBehavior:"followUp",...a?.length?{images:a}:{}}),tj.current=Date.now(),te(e=>({...e,followUp:[...e.followUp,t]}))}catch(r){console.error("Failed to follow up:",r),rG({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rG,e.chatInputRef]),nb=(0,i.useCallback)(async()=>{let e=ty.current;if(e)try{await (0,e6.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nw=(0,i.useCallback)(async e=>{if(eo(e),"auto"===e)return;let t=ty.current??await ri.current;if(t)try{await (0,e6.$)(t,{type:"set_thinking_level",level:e}),r$(t)}catch(e){console.error("Failed to set thinking level:",e)}},[r$]),nk=(0,i.useCallback)(async e=>{rv(e),function(e,t=tU()){if(t)try{t.setItem(t_,e)}catch{}}(e),(ty.current??await ri.current)&&rG({type:"info",message:(0,s.Tl)("agentSession.toolPresetNotice")})},[rv,rG]),nj=(0,i.useCallback)((e="smooth")=>{let t=re.current,r=t9.current;t&&r&&(tF.current=Date.now()+700,r.scrollIntoView({block:"nearest",behavior:f?"instant":e}))},[f]),nS=(0,i.useCallback)(e=>{e instanceof KeyboardEvent&&(!t4.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tA.current=Date.now()+1200)},[]),nC=(0,i.useCallback)(()=>{let e=Date.now()<=tA.current;if(!e&&Date.now()<tF.current||!e)return;let t=re.current,r=t9.current;t&&r&&(tW.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]);(0,i.useEffect)(()=>(t&&(ty.current=t.id,rA(t.id,!0,!0).then(e=>{if(e?.running){if(e.state?.isStreaming||e.state?.isPromptRunning){tS.current=!0,A(!0),eq(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),W({type:"start"}),rD(t.id),rU(t.id),rP(t.id),rd.current&&(clearTimeout(rd.current),rd.current=null);let r=t.id;rd.current=setTimeout(()=>{rd.current=null,ty.current===r&&rM(r)},600),!e.state.isStreaming&&e.state.isPromptRunning&&r0(t.id)}e.state?.isBashRunning&&(tI.current=!0,z(!0),r1(t.id))}if(e?.state){if(void 0!==e.state.isCompacting&&eD(e.state.isCompacting),void 0!==e.state.contextUsage&&eM(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eE(e.state.systemPrompt||null),void 0!==e.state.extensionStatuses&&e3(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&e8(e.state.extensionWidgets??[]),0===e.state.queuedMessageCount&&Date.now()-tj.current>=5e3){te(tQ);var r=t.id;if(r)try{sessionStorage.removeItem(tX+r)}catch{}}else if("number"==typeof e.state.queuedMessageCount){let e=function(e){try{let t=sessionStorage.getItem(tX+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 t0(a)?null:a}catch{return null}}(t.id);e&&te(t=>t0(t)?e:t)}}else eM(null)})),()=>{tM.current+=1,rg.current?.reset();let e=th.current;rx.invalidate(),e&&e.readyState!==EventSource.CLOSED&&e.close(),th.current=null,tv.current&&(clearTimeout(tv.current),tv.current=null),rd.current&&(clearTimeout(rd.current),rd.current=null),null!==rc.current&&(cancelAnimationFrame(rc.current),rc.current=null),rs.current=null,rl.current=null}),[rM,rU,rP]),(0,i.useEffect)(()=>{u?.(eT)},[eT,u]),(0,i.useEffect)(()=>(p?.(rN),()=>p?.(null)),[rN,p]),(0,i.useEffect)(()=>{d&&d(v?.tree??[],S,nt)},[v?.tree,S,nt,d]),(0,i.useEffect)(()=>(window.addEventListener("keydown",nS),window.addEventListener("pointerdown",nS,{passive:!0}),()=>{window.removeEventListener("keydown",nS),window.removeEventListener("pointerdown",nS)}),[nS]),(0,i.useEffect)(()=>{let e=re.current;if(e)return e.addEventListener("wheel",nS,{passive:!0}),e.addEventListener("touchstart",nS,{passive:!0}),e.addEventListener("scroll",nC,{passive:!0}),()=>{e.removeEventListener("wheel",nS),e.removeEventListener("touchstart",nS),e.removeEventListener("scroll",nC)}},[I.length,b,nC,nS]);let nI=(0,i.useRef)(null),nM=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t?.id??null;nM.current!==e&&(nM.current=e,tR.current=!1,tW.current=!0,tE.current=!1,null!==nI.current&&(cancelAnimationFrame(nI.current),nI.current=null))},[t?.id]),(0,i.useEffect)(()=>{if(I.length>0||E.isStreaming)if(tE.current)tE.current=!1,tR.current=!0,nj(E.isStreaming||tS.current?"instant":"smooth");else if(tR.current)tW.current&&null===nI.current&&(nI.current=requestAnimationFrame(()=>{nI.current=null,tW.current&&nj(tS.current||E.isStreaming?"instant":"smooth")}));else{if(b)return;tR.current=!0,nj("instant")}},[I,E,$,eP,e9,eB,ek,tm,ts,nj,b]),(0,i.useEffect)(()=>()=>{B.current=!1,null!==nI.current&&cancelAnimationFrame(nI.current)},[]),(0,i.useEffect)(()=>{let e=new AbortController;return nh(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[nh,c]),(0,i.useEffect)(()=>{if(!eH)return;let e=setTimeout(()=>e_(null),3e3);return()=>clearTimeout(e)},[eH]),(0,i.useEffect)(()=>{if(!eU)return;let e=setTimeout(()=>eO(null),6e3);return()=>clearTimeout(e)},[eU]),(0,i.useEffect)(()=>{if(0===eG.visible.length)return;let e=eG.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{eZ({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!eG.visible[0])return;let t=setTimeout(()=>{eZ({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[eG.visible]),(0,i.useEffect)(()=>{eX(null)},[I.length,rk?.tokens,rk?.percent,rk?.contextWindow]),{data:v,loading:b,error:k,activeLeafId:S,messages:I,entryIds:T,streamState:E,agentRunning:$,modelNames:D,modelList:_,modelsLoading:O,modelError:q,modelThinkingLevels:Y,modelThinkingLevelMaps:Z,newSessionModel:X,toolPreset:en,thinkingLevel:ei,fastModeEnabled:es,fastModeActive:ec,autoRetryEnabled:eg,interruptMode:eu,autoCompactionEnabled:em,steeringMode:ex,followUpMode:ey,liveModelMeta:K,retryInfo:ek,contextUsage:rk,systemPrompt:eT,forkingEntryId:eW,isCompacting:eB,compactError:eH,compactResult:eU,currentModel:ry,displayModel:rb,sessionStats:rj,slashCommands:eV,slashCommandsLoading:eJ,queuedMessages:e7,notices:eG.visible,extensionDialog:e0,extensionCustomUi:e2,extensionStatuses:e5,extensionWidgets:e9,respondToExtensionUi:rH,sendExtensionCustomInput:rY,isAutoModelSelection:x&&null===X,agentPhase:eP,subagents:tt,subagentEvents:tn,subagentTranscriptVersions:ti,activeSubagentCount:tm,currentTodoPhase:rS,todoPhases:ts,activeGoal:tc,activePlan:tu,isNew:x,sessionIdRef:ty,messagesEndRef:t9,scrollContainerRef:re,pendingScrollToUserRef:tE,initialScrollDoneRef:tR,handleSend:r3,handleAbort:r8,handleFork:r7,handleNavigate:ne,handleModelChange:nr,handleFastModeChange:nn,handleAutoRetryChange:na,handleInterruptModeChange:ni,handleAutoCompactionChange:no,handleSteeringModeChange:ns,handleFollowUpModeChange:nl,handleCycleModel:nc,handleCycleThinkingLevel:nd,handleAbortRetry:nu,handleInterruptAndReply:r9,handleCompact:nm,handleHandoff:np,handleSteer:nx,handleFollowUp:ny,handlePromptWithStreamingBehavior:nv,handleAbortCompaction:nb,removeQueuedMessage:r5,promoteQueuedToSteer:r6,handleBuiltinSlashCommand:ng,handleToolPresetChange:nk,handleThinkingLevelChange:nw,loadSlashCommands:rB,setActiveLeafId:C,setData:y,setMessages:M,dispatch:W,setAgentRunning:A,setForkingEntryId:e$,bashRunning:F,pendingBash:L,handleAgentEventRef:tT}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:M,onSessionCreated:c,onSessionForked:d,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:m,onSystemPromptChange:h,onSystemPromptLoaderChange:g,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onOpenFile:b}),eK=F||z;(0,i.useEffect)(()=>((0,a.G)(eK?eM:null),()=>(0,a.G)(null)),[eK,eM]),(0,i.useEffect)(()=>{if(!e)return;let t=e=>{if(!(e.metaKey||e.ctrlKey)||!e.altKey)return;let t=e.key.toLowerCase();"m"===t?(e.preventDefault(),eO()):"t"===t&&(e.preventDefault(),eP())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,eO,eP]);let[eJ,eY]=(0,i.useState)(50),eG=(0,i.useRef)(null),eZ=e?.id??(t?`new:${t}`:"empty");(0,i.useEffect)(()=>{eG.current!==eZ&&(eG.current=eZ,eY(50))},[eZ]);let[eQ,eX]=(0,i.useState)(null),[e0,e1]=(0,i.useState)(!0);(0,i.useEffect)(()=>{let e=eC.current;if(!e)return;let t=null,r=()=>{t=null;let r=e.scrollTop+e.clientHeight>=e.scrollHeight-96;e1(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 e4=(0,i.useRef)(null),e3=(0,i.useRef)(null),e9=(0,i.useRef)("auto");(0,i.useEffect)(()=>{let e=e4.current,t=eC.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{e[0]?.isIntersecting&&t.scrollTop>0&&(e3.current=t.scrollHeight-t.scrollTop,e9.current="auto",eY(e=>rv(e)))},{root:t,rootMargin:"400px 0px 0px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[eJ,W.length,eC]),(0,i.useEffect)(()=>{if(null==e3.current)return;let e=eC.current;if(e){if("click"===e9.current){let t=e4.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-e3.current)}e9.current="auto",e3.current=null}},[eJ,eC]);let e8=(0,i.useCallback)(()=>{let e=eC.current;e&&(e3.current=e.scrollHeight-e.scrollTop),e9.current="click",eY(e=>rv(e))},[eC]),e7=ee?[ee.sessionId,ee.sessionFile??"",ee.sessionName??"",ee.userMessages,ee.assistantMessages,ee.toolCalls,ee.toolResults,ee.totalMessages,ee.tokens.input,ee.tokens.output,ee.tokens.cacheRead,ee.tokens.cacheWrite,ee.tokens.total,ee.cost??0].join("|"):null,te=(0,i.useRef)(ee);te.current=ee,(0,i.useEffect)(()=>{f?.(te.current)},[e7,f]),(0,i.useEffect)(()=>()=>{f?.(null)},[f]);let tt=Y?`${Y.percent??"null"}|${Y.contextWindow}|${Y.tokens??"null"}`:null,tn=(0,i.useRef)(Y);tn.current=Y,(0,i.useEffect)(()=>{y?.(tn.current)},[tt,y]),(0,i.useEffect)(()=>()=>{y?.(null)},[y]);let{isDragOver:ta,handleDragEnter:to,handleDragOver:ts,handleDragLeave:tl,handleDrop:tc}=function(e){let[t,r]=(0,i.useState)(!1),n=(0,i.useRef)(0);(0,i.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 a=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(ri)&&(e.preventDefault(),n.current+=1,r(!0))},[]),o=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(ri)&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:a,handleDragOver:o,handleDragLeave:(0,i.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,i.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files))},[e])}}((0,i.useCallback)(e=>{eK||p?.current?.addFiles(e)},[eK,p])),td=(0,i.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]),tu=(0,i.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return W.forEach((a,i)=>{"toolResult"===a.role&&e.set(a.toolCallId,a),ry(a)&&(t=i),("user"===a.role||"assistant"===a.role)&&r.set(i,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[W]),tp=function(e){let t=(0,i.useRef)([]),r=(0,i.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}(tu.visibleRefIndexByMessage.size),tm=(0,i.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]),th=(0,i.useMemo)(()=>{if(ep?.kind!=="running_tools")return[];let e=new Set(tm),t=A.streamingMessage;if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return ep.tools.filter(t=>!e.has(t.id))},[ep,tm,A.streamingMessage]),tg=ek&&0===W.length&&!A.isStreaming&&!eK,tf=e?.cwd??t??void 0,tx=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}(_[`${X.provider}:${X.modelId}`],X,K):null,tv=X?U[`${X.provider}:${X.modelId}`]??null:null,ty=(0,n.jsx)(e2,{ref:p,onSend:eI,onAbort:eM,onSteer:F?e$:void 0,onFollowUp:F?eF:void 0,onPromptWithStreamingBehavior:F?eL:void 0,isStreaming:eK,model:X,isAutoModelSelection:eu,modelNames:N,modelList:B,modelsLoading:D,modelError:H,onModelChange:eW,onAbortCompaction:eN,isCompacting:Z,compactResult:Q,thinkingLevel:O,onThinkingLevelChange:e||ek?e_:void 0,fastModeEnabled:P,fastModeActive:q,fastModeSupported:!!(X&&B.some(e=>e.provider===X.provider&&e.id===X.modelId&&e.supportsFastMode)),onFastModeChange:e||ek?eU:void 0,onAbortRetry:e?eq:void 0,availableThinkingLevels:tx,thinkingLevelMap:tv,modelNameOverride:K?.name??null,retryInfo:J,activeGoal:em,activePlan:eh,advisorEnabled:r,queuedMessages:en,inputHistory:td,contextUsage:Y,onRemoveQueuedMessage:eB,onPromoteQueuedToSteer:eD,slashCommands:et,slashCommandsLoading:er,onLoadSlashCommands:eV,onBuiltinCommand:eH,onAudioUnlock:S,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tb=el.filter(e=>"belowEditor"!==e.placement),tw=el.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")}):E?(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:E}):(0,n.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:to,onDragOver:ts,onDragLeave:tl,onDrop:tc,children:[ta&&!eK&&(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"})]})]})]}),ei&&(0,n.jsx)(e5,{request:ei,onRespond:ec}),(0,n.jsx)(tr,{subagent:eQ,sessionId:e?.id??ej.current??null,transcriptVersion:eQ?ex[eQ.id]??0:0,events:eQ?ef[eQ.id]??[]:void 0,onClose:()=>eX(null)}),eo&&(0,n.jsx)(rT,{request:eo,onInput:ed}),tg?(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.2"]})]}),(0,n.jsx)(rw,{})]})]}),(0,n.jsx)(rM,{notices:ea,align:"right"}),ty]})})}):(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)(rM,{notices:ea,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:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(rC,{statuses:es}),(0,n.jsx)(rI,{widgets:tb}),(0,n.jsx)(rj,{messages:W,entryIds:$,conversationMeta:tu,messageRefs:tp,isStreaming:A.isStreaming,sessionBusy:eK,isNew:ek,forkingEntryId:G,handleFork:eT,handleNavigate:eE,handleEditContent:T,modelNames:N,messageCwd:tf,onOpenFile:b,sessionId:e?.id??ej.current??void 0,toolCallsDefaultCollapsed:o,visibleCount:eJ,nearBottom:e0,sentinelRef:e4,handleLoadMoreClick:e8}),A.isStreaming&&A.streamingMessage&&(0,n.jsx)(V,{message:A.streamingMessage,isStreaming:!0,modelNames:N,cwd:tf,onOpenFile:b,toolCallsDefaultCollapsed:o}),o&&th.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)),F&&!A.streamingMessage&&0===th.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,s.Tl)("chatWindow.runningTool"):t.length<=3?(0,s.Tl)("chatWindow.runningNamed",{names:t.join(", ")}):(0,s.Tl)("chatWindow.runningNamedMore",{names:t.slice(0,2).join(", "),more:t.length-2})}return e?.kind==="waiting_model"?(0,s.Tl)("chatWindow.waitingModel"):e?.kind==="running_command"?(0,s.Tl)("chatWindow.runningCommand"):(0,s.Tl)("chatWindow.thinking")}(ep),ev>0?k("chatWindow.subagentCount",ev):null,ey?w("chatWindow.todoPhaseStatus",{name:ey.name,done:ey.done,total:ey.total}):null].filter(Boolean).join(" \xb7 ")})]}),z&&!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)(V,{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)(ti,{messages:W,scrollContainer:eC,messageRefs:tp})]}),(0,n.jsxs)("div",{className:"relative",style:{flexShrink:0},children:[(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(tF,{todoPhases:eb,subagents:eg,subagentEvents:ef,onSelectSubagent:eX}),(0,n.jsx)(rI,{widgets:tw})]})}),ty]})]})]})}function rC({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 rI({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 rM({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 i="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:i,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 rT({request:e,onInput:t}){let{t:r}=(0,s.s9)(),a=(0,i.useRef)(null),o=(0,i.useRef)(!1),l=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(rc,""),a=rp(e).trimEnd();if(t.test(a))continue;let i=e,o=rg(i);("│"===o||"┃"===o)&&" "===rg(i=rh(i,0))&&(i=rh(i,0));let s=function(e){let t=rm(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(i),l=s>=0?rm(i)[s]?.char:void 0;("│"===l||"┃"===l)&&(i=rh(i,s)),r.push(function(e){let t=e;for(;;){let e=rm(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(i))}for(;r.length>0&&""===rp(r[0]).trim();)r.shift();for(;r.length>0&&""===rp(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,i.useEffect)(()=>{a.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")||a.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:a,"aria-label":r("chatWindow.extensionTerminalInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:r=>{if(o.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=rx[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":" ":rf[e.key]??null}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},onInput:r=>{if(o.current||r.nativeEvent.isComposing)return;let n=r.currentTarget.value;r.currentTarget.value="",n&&t(e,n)},onCompositionStart:()=>{o.current=!0},onCompositionEnd:r=>{o.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:(l.length?l:[""]).map((e,t,r)=>{var a;return(0,n.jsxs)(i.Fragment,{children:[(a=`line-${t}`,(function(e){let t,r=[],n={},a=0;for(rl.lastIndex=0;null!==(t=rl.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=rd[n-30];else if(n>=90&&n<=97)r.color=ru[n-90];else if(n>=40&&n<=47)r.background=rd[n-40];else if(n>=100&&n<=107)r.background=ru[n-100];else if((38===n||48===n)&&2===t[e+1]){let[a,i,o]=[t[e+2],t[e+3],t[e+4]];[a,i,o].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${a}, ${i}, ${o})`:r.background=`rgb(${a}, ${i}, ${o})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let a=function(e){if(e>=0&&e<8)return rd[e];if(e>=8&&e<16)return ru[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},`${a}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}},57990:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]])},86272:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},90710:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},99314:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])}}]);
|