@shepai/cli 1.194.3-pr586.23e3597 → 1.194.4
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/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +34 -34
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +46 -46
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +46 -46
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +34 -34
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/control-center/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/control-center/page/server-reference-manifest.json +34 -34
- package/web/.next/server/app/(dashboard)/control-center/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/control-center/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +46 -46
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +46 -46
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +17 -17
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/applications/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/applications/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/applications/page.js.nft.json +1 -1
- package/web/.next/server/app/applications/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/features/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/features/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/projects/[slug]/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/pages/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/projects/[slug]/pages/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/projects/[slug]/pages/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/settings/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/projects/[slug]/settings/page/server-reference-manifest.json +17 -17
- package/web/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/projects/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/skills/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/tools/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/version/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__10e976f3._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_99cb41a4.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_99cb41a4.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_3bcbcc2f.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_3bcbcc2f.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_059f6735.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_059f6735.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_control-center_page_actions_86edeb51.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_control-center_page_actions_86edeb51.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__012a0e7d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__012a0e7d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0462fa34._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0462fa34._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1973d644._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a86d5fe._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a86d5fe._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__30326387._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__30326387._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3438c354._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3438c354._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__361129f0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__361129f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4adb4a94._.js +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4adb4a94._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5c25ef9b._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5c25ef9b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5c5f9704._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5c5f9704._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__638955bc._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__78e1366f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__78e1366f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0d04b8e2._.js → [root-of-the-server]__8ccbc357._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0d04b8e2._.js.map → [root-of-the-server]__8ccbc357._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__97b6831c._.js +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9b16348d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9b16348d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1e902e32._.js → [root-of-the-server]__b2926b69._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1e902e32._.js.map → [root-of-the-server]__b2926b69._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3bc9689._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3bc9689._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba8cbee2._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba8cbee2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dbde193f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dbde193f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f6adb460._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f6adb460._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_101de7c3._.js +1 -1
- package/web/.next/server/chunks/ssr/_101de7c3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_12ba4a07._.js +1 -1
- package/web/.next/server/chunks/ssr/_12ba4a07._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_15634d5b._.js +1 -1
- package/web/.next/server/chunks/ssr/_15634d5b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_27c2f774._.js +1 -1
- package/web/.next/server/chunks/ssr/_27c2f774._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_30787024._.js +1 -1
- package/web/.next/server/chunks/ssr/_30787024._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_3bd60fa3._.js +1 -1
- package/web/.next/server/chunks/ssr/_402d53bf._.js +1 -1
- package/web/.next/server/chunks/ssr/_402d53bf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6868b4b1._.js +1 -1
- package/web/.next/server/chunks/ssr/{_3906be1d._.js → _759e7aaa._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3906be1d._.js.map → _759e7aaa._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_12f37a55._.js → _7cd98562._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_12f37a55._.js.map → _7cd98562._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_805ae1aa._.js +1 -1
- package/web/.next/server/chunks/ssr/_805ae1aa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8a700ff4._.js +1 -1
- package/web/.next/server/chunks/ssr/_8a700ff4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8f4f8aa1._.js +1 -1
- package/web/.next/server/chunks/ssr/_8f4f8aa1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_fe68c1e2._.js → _9df39bfe._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_fe68c1e2._.js.map → _9df39bfe._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_1055ec32._.js → _a31c3a42._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_1055ec32._.js.map → _a31c3a42._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_b40a4fc3._.js +1 -1
- package/web/.next/server/chunks/ssr/_b40a4fc3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c44ec376._.js +1 -1
- package/web/.next/server/chunks/ssr/_c44ec376._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cd641c61._.js +1 -1
- package/web/.next/server/chunks/ssr/_cd641c61._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d53224a9._.js +1 -1
- package/web/.next/server/chunks/ssr/_d53224a9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_60246ee2._.js → _de93c45c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_60246ee2._.js.map → _de93c45c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_8ee3123d._.js → _e0e86221._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_8ee3123d._.js.map → _e0e86221._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_e6271303._.js +1 -1
- package/web/.next/server/chunks/ssr/_e6271303._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ed8fd56c._.js +1 -1
- package/web/.next/server/chunks/ssr/_ed8fd56c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f602cc9f._.js +1 -1
- package/web/.next/server/chunks/ssr/_f602cc9f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_05bba4dc._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_05bba4dc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_43451480._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_43451480._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_4b306bb3._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_4b306bb3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_1f525bd4._.js → src_presentation_web_5c844690._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_1f525bd4._.js.map → src_presentation_web_5c844690._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_81dd84ae._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_81dd84ae._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_7ab26c98._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b504e3e2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b504e3e2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b5838705._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b5838705._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b6b4baa1._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b6b4baa1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c3d0de23._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c3d0de23._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_dc5ba3cf._.js → src_presentation_web_e596fda8._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_dc5ba3cf._.js.map → src_presentation_web_e596fda8._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_fc29283f._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_fc29283f._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +98 -98
- package/web/.next/static/chunks/{1d72f699758c6d3a.js → 089bd320dc4b1575.js} +1 -1
- package/web/.next/static/chunks/{913f8613ffba3e5c.js → 0fc17b433aa79b46.js} +1 -1
- package/web/.next/static/chunks/105bb00cb34ccd38.js +1 -0
- package/web/.next/static/chunks/{d5b120471ecd81c3.js → 18be29465f4a1def.js} +1 -1
- package/web/.next/static/chunks/1f42ad4a0931acd3.js +1 -0
- package/web/.next/static/chunks/{dddb3a86ceab0299.js → 298594ed8c886cbf.js} +1 -1
- package/web/.next/static/chunks/{6d5150e080c53d51.js → 33317caa5c5abd6b.js} +1 -1
- package/web/.next/static/chunks/{6ac3de2ae9fd6923.js → 34593f30cd188c4a.js} +1 -1
- package/web/.next/static/chunks/{3be081e466e5c38f.js → 37ea114b14bec27f.js} +1 -1
- package/web/.next/static/chunks/{5d7f74c25dacc25c.js → 3c250fbfb60ee24f.js} +1 -1
- package/web/.next/static/chunks/{79865a986c6f7b78.js → 3c98769f57d9cab5.js} +1 -1
- package/web/.next/static/chunks/{88de900956cc7c59.js → 3d2af4aff402ec27.js} +1 -1
- package/web/.next/static/chunks/{60fd7ec231b71fe6.js → 424eadec8be0f312.js} +1 -1
- package/web/.next/static/chunks/{600304d205fb6d78.js → 4936903aae95a25f.js} +1 -1
- package/web/.next/static/chunks/4d47b81085b62d87.js +1 -0
- package/web/.next/static/chunks/{127b0c5b93da3ad5.js → 4e2de41996b256eb.js} +1 -1
- package/web/.next/static/chunks/{e09a852e65d50ea9.js → 512f87d97c19d83c.js} +1 -1
- package/web/.next/static/chunks/{d8a8d0ea290869a7.js → 51de8a6b0bdc70c9.js} +1 -1
- package/web/.next/static/chunks/57a7139e142ed273.js +1 -0
- package/web/.next/static/chunks/{31eb52265493ef76.js → 61757ff9dcbbd032.js} +1 -1
- package/web/.next/static/chunks/674e4d59f39b85e2.js +1 -0
- package/web/.next/static/chunks/93ea366bd74183ac.js +1 -0
- package/web/.next/static/chunks/{b0658275cec08831.js → ae7430dbb2e98782.js} +1 -1
- package/web/.next/static/chunks/{07361c8c12a5843e.js → b2abfb9855755aa4.js} +1 -1
- package/web/.next/static/chunks/{eb53dfcd51b8c265.js → c3d369f4301955a1.js} +1 -1
- package/web/.next/static/chunks/{07c57742ecdf243e.js → cd057f6e3acdf607.js} +1 -1
- package/web/.next/static/chunks/{afc90b9d319294e0.js → d5563287e193adaa.js} +1 -1
- package/web/.next/static/chunks/{c777b5c3be68f05b.js → d861a3318a70ff49.js} +1 -1
- package/web/.next/static/chunks/{88cebfaa6dd82cc7.js → da7737afc53217ed.js} +3 -3
- package/web/.next/static/chunks/{4cecc66a490b21f7.js → e115c6778a53c0b0.js} +1 -1
- package/web/.next/static/chunks/{39b106ba3f6b82ea.js → ea904b744cea3776.js} +1 -1
- package/web/.next/static/chunks/{6ae0cf4dd1f41683.js → f0c7b0a956112e63.js} +1 -1
- package/web/.next/static/chunks/{a59dfab21ca0ba91.js → f31db8ecfc2d481e.js} +1 -1
- package/web/.next/static/chunks/{a98de0590c6ebab9.js → f8a21f4841d519ff.js} +1 -1
- package/web/.next/static/chunks/00f78bad91244b81.js +0 -1
- package/web/.next/static/chunks/55b11c087456741a.js +0 -1
- package/web/.next/static/chunks/64b32c7716c3cde3.js +0 -1
- package/web/.next/static/chunks/83b6dc76bfe00b00.js +0 -1
- package/web/.next/static/chunks/a29ef3fcc3085a7d.js +0 -1
- package/web/.next/static/chunks/b6f72b83e6cf64bc.js +0 -1
- /package/web/.next/static/{VT3SIc3eQMRpCzfl2igIb → wfZhz3kojQGb8pd6OW9Lk}/_buildManifest.js +0 -0
- /package/web/.next/static/{VT3SIc3eQMRpCzfl2igIb → wfZhz3kojQGb8pd6OW9Lk}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{VT3SIc3eQMRpCzfl2igIb → wfZhz3kojQGb8pd6OW9Lk}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module.exports=[964885,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(385536);a.i(490370);var e=a.i(224640),f=a.i(91109),g=a.i(952313),h=a.i(488064),i=a.i(216605),j=a.i(450490),k=a.i(5698),l=a.i(598410),m=a.i(872016),n=a.i(433511),o=a.i(301585),p=a.i(289111);let q=(0,p.createServerReference)("60a8ee73a9a7cf04fe4d2d93bea86a8c53e47fb6b8",p.callServer,void 0,p.findSourceMapURL,"approveFeature");var r=a.i(458445),s=a.i(237509),t=a.i(265749);let u=(0,p.createServerReference)("70fbeed799246c522f5b0f24615b3b3e9e8e90bf91",p.callServer,void 0,p.findSourceMapURL,"rejectFeature"),v=(0,p.createServerReference)("407707bf9eb4d45aea1f4ae2debd98804fce5d88c3",p.callServer,void 0,p.findSourceMapURL,"getFeatureArtifact"),w=(0,p.createServerReference)("407e79fee06321e9870eeca58fe225546d99571b8d",p.callServer,void 0,p.findSourceMapURL,"getResearchArtifact"),x=(0,p.createServerReference)("4066b112e071eaf48c963636e90885391c37800dd4",p.callServer,void 0,p.findSourceMapURL,"getMergeReviewData");var y=a.i(821333),z=a.i(219884),A=a.i(196213),B=a.i(118662),C=a.i(484871);a.i(478454);var D=a.i(124255);a.i(149235);var E=a.i(985080),F=a.i(182934);a.i(777569);var G=a.i(865310),H=a.i(450488),I=a.i(863698),J=a.i(403195),K=a.i(162147),L=a.i(782697);let M="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40";function N({loading:a,error:c,icon:d}){return a?(0,b.jsx)(h.Loader2,{className:"size-3.5 animate-spin"}):c?(0,b.jsx)(L.CircleAlert,{className:"text-destructive size-3.5"}):(0,b.jsx)(d,{className:"size-4"})}function O({actions:a,repositoryPath:d,worktreePath:e,showSpecs:f}){let[g,h]=(0,c.useState)(!1);return(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openInIde,disabled:a.ideLoading,"aria-label":"Open in IDE",children:(0,b.jsx)(N,{loading:a.ideLoading,error:a.ideError,icon:H.Code2})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openInShell,disabled:a.shellLoading,"aria-label":"Open terminal",children:(0,b.jsx)(N,{loading:a.shellLoading,error:a.shellError,icon:I.Terminal})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openFolder,disabled:a.folderLoading,"aria-label":"Open folder",children:(0,b.jsx)(N,{loading:a.folderLoading,error:a.folderError,icon:J.FolderOpen})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),f?(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openSpecsFolder,disabled:a.specsLoading,"aria-label":"Open specs",children:(0,b.jsx)(N,{loading:a.specsLoading,error:a.specsError,icon:K.FileText})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open specs"})]}):null,(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:()=>{navigator.clipboard.writeText(e??d),h(!0),setTimeout(()=>h(!1),2e3)},"aria-label":"Copy path",children:g?(0,b.jsx)(m.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(l.Copy,{className:"size-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:g?"Copied!":"Copy path"})]})]})})}var P=a.i(272980),Q=a.i(256957),R=a.i(144981),S=a.i(574951),T=a.i(225700);let U=(0,T.default)("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),V=(0,T.default)("file-check",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]);var W=a.i(665355),X=a.i(221084);let Y=(0,T.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var Z=a.i(612882),$=a.i(218615),_=a.i(103942),aa=a.i(865758),ab=a.i(441305);let ac=(0,p.createServerReference)("406adf33f23adc54cdf9676a2251abdd772d3e9894",p.callServer,void 0,p.findSourceMapURL,"getFeaturePhaseTimings"),ad=(0,p.createServerReference)("40127085397b7ef6f8f201736e02eee2c77ea7cd0a",p.callServer,void 0,p.findSourceMapURL,"getFeaturePlan");a.i(54250);var ae=a.i(327039);let af=(0,a.i(142261).cva)("inline-block shrink-0",{variants:{size:{sm:"size-5",md:"size-8",lg:"size-12"}},defaultVariants:{size:"md"}}),ag=[{r:9,spline:"0.12 0 0.04 1",opacity:1},{r:8.2,spline:"0.16 0 0.08 1",opacity:.95},{r:7.4,spline:"0.20 0 0.12 1",opacity:.9},{r:6.6,spline:"0.25 0 0.16 1",opacity:.84},{r:5.8,spline:"0.30 0 0.20 1",opacity:.76},{r:5,spline:"0.36 0 0.25 1",opacity:.67},{r:4.2,spline:"0.42 0 0.31 1",opacity:.56},{r:3.4,spline:"0.48 0 0.37 1",opacity:.44},{r:2.6,spline:"0.55 0 0.44 1",opacity:.32},{r:1.8,spline:"0.62 0 0.52 1",opacity:.2},{r:1,spline:"0.70 0 0.60 1",opacity:.1}];function ah({className:a,size:c="md",duration:e=5,...f}){return(0,b.jsxs)("svg",{"data-slot":"comet-spinner",role:"status","aria-label":"Loading",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",className:(0,d.cn)(af({size:c}),a),...f,children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("filter",{id:"comet-gooey",x:"-100%",y:"-100%",width:"300%",height:"300%",colorInterpolationFilters:"sRGB",children:[(0,b.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"2.5"}),(0,b.jsx)("feColorMatrix",{mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -30",result:"goo"})]})}),(0,b.jsxs)("g",{filter:"url(#comet-gooey)",children:[(0,b.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:`${e}s`,repeatCount:"indefinite"}),ag.map(a=>(0,b.jsxs)("g",{children:[(0,b.jsx)("animateTransform",{attributeName:"transform",type:"rotate",calcMode:"spline",values:"0 50 50;360 50 50",keyTimes:"0;1",keySplines:a.spline,dur:"1s",repeatCount:"indefinite"}),(0,b.jsx)("circle",{cx:"50",cy:"18",r:a.r,fill:"currentColor",opacity:a.opacity})]},a.r)),(0,b.jsxs)("circle",{cx:"50",cy:"50",r:"4",fill:"currentColor",opacity:"0.15",children:[(0,b.jsx)("animate",{attributeName:"r",values:"3;5;3",dur:"2s",repeatCount:"indefinite"}),(0,b.jsx)("animate",{attributeName:"opacity",values:"0.1;0.25;0.1",dur:"2s",repeatCount:"indefinite"})]})]})]})}var ai=a.i(394132),aj=a.i(503410),ak=a.i(118948),al=a.i(658339),am=a.i(945242);let an=(0,T.default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var ao=a.i(591498),ap=a.i(679620);a.i(200307);var aq=a.i(730931),ar=a.i(39116);let as=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]);function at({onReject:a,onApprove:f,approveLabel:g,approveVariant:h="default",revisionPlaceholder:i,isProcessing:j=!1,isRejecting:k=!1,children:l,chatInput:n,onChatInputChange:o}){let{t:p}=(0,e.useTranslation)("web"),q="warning"===h,r=q?ao.AlertTriangle:m.Check,s=q?"bg-orange-500/85":"bg-blue-500/85",[t,u]=(0,c.useState)(""),v=n??t,w=o??u,x=(0,z.useSoundAction)("approve"),y=j||k,[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(!1),[E,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(!1),[L,M]=(0,c.useState)(!1),N=v.trim().length>0,O=N?H||J&&L:!H,P=(0,c.useRef)(0),Q=(0,c.useRef)(crypto.randomUUID()),R=(0,c.useRef)(null);(0,c.useEffect)(()=>{function a(a){("Control"===a.key||"Meta"===a.key)&&K(!0),"Shift"===a.key&&M(!0)}function b(a){("Control"===a.key||"Meta"===a.key)&&K(!1),"Shift"===a.key&&M(!1)}function c(){K(!1),M(!1)}return window.addEventListener("keydown",a),window.addEventListener("keyup",b),window.addEventListener("blur",c),()=>{window.removeEventListener("keydown",a),window.removeEventListener("keyup",b),window.removeEventListener("blur",c)}},[]);let S=(0,c.useCallback)(async a=>{for(let b of(G(null),a)){if(b.size>0xa00000)return void G(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!as.has(a))return void G(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();B(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",Q.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));B(b=>b.filter(b=>b.id!==a)),G(b.error??"Upload failed");return}let e=await d.json();B(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{B(b=>b.filter(b=>b.id!==a)),G("Upload failed")}}},[]),T=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current+=1,1===P.current&&D(!0)},[]),U=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current-=1,0===P.current&&D(!1)},[]),V=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),W=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current=0,D(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&S(b)},[S]),X=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),S(c))},[S]),Y=(0,c.useCallback)(async()=>{try{let a=await (0,ar.pickFiles)();a&&B(b=>{let c=new Set(b.map(a=>a.path)),d=a.filter(a=>!c.has(a.path)).map(a=>({id:crypto.randomUUID(),name:a.name,size:a.size,mimeType:"application/octet-stream",path:a.path}));return d.length>0?[...b,...d]:b})}catch{}},[]),Z=(0,c.useCallback)(a=>{B(b=>b.filter(b=>b.id!==a))},[]),$=(0,c.useCallback)((a,b)=>{B(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),_=(0,c.useCallback)(()=>{w(""),B([]),G(null)},[w]),aa=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),R.current?.requestSubmit())},[]),ab="u">typeof navigator&&/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl";return(0,b.jsxs)("div",{className:"border-border shrink-0 border-t",children:[l,a?(0,b.jsx)(F.TooltipProvider,{delayDuration:400,children:(0,b.jsx)("form",{ref:R,onSubmit:function(b){b.preventDefault();let c=v.trim();if(O)x.play(),f(),_();else{if(!c||!a)return;a(c,A.filter(a=>!a.loading)),_()}},className:"p-3",children:(0,b.jsx)("div",{role:"region","aria-label":p("createDrawer.fileDropZone"),"data-drag-over":C?"true":"false",onDragEnter:T,onDragLeave:U,onDragOver:V,onDrop:W,className:(0,d.cn)("rounded-md border-2 border-transparent transition-colors",C&&"border-primary/50 bg-primary/5"),children:(0,b.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring flex flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,b.jsx)(ap.Textarea,{placeholder:i??"Ask AI to revise...","aria-label":i??"Ask AI to revise...",disabled:y,value:v,onChange:a=>w(a.target.value),onKeyDown:aa,onPaste:X,rows:1,className:"max-h-[35dvh] min-h-9 flex-1 resize-none overflow-y-auto rounded-none border-0 py-2 shadow-none focus-visible:ring-0","data-testid":"drawer-chat-input"}),A.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:A.map(a=>(0,b.jsx)(aq.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>Z(a.id),disabled:y,loading:a.loading,notes:a.notes,onNotesChange:b=>$(a.id,b)},a.id))}),E?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:E}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-2 border-t px-3 py-1.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex-1 truncate text-[11px]",children:[(0,b.jsxs)("kbd",{className:"bg-muted rounded px-1 py-0.5 font-mono text-[10px]",children:[ab,"+Enter"]})," ",N?"reject":"approve"]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:Y,disabled:y,"aria-label":p("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(am.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"top",children:p("chat.attachFiles")})]}),(0,b.jsx)("div",{onMouseLeave:()=>I(!1),children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"submit",disabled:y,"data-testid":"drawer-action-submit",className:(0,d.cn)("relative flex h-9 min-w-[12rem] cursor-pointer items-center overflow-hidden rounded-md border ps-4 pe-10 text-sm font-medium whitespace-nowrap transition-colors","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",O?`${q?"border-orange-400/60":"border-blue-400/60"} text-white`:N&&J&&!L?"border-primary bg-muted ring-primary/30 shadow-sm ring-1":"border-border bg-muted/50 hover:bg-muted shadow-sm"),children:[(0,b.jsx)("div",{className:(0,d.cn)("pointer-events-none absolute inset-0 transition-transform duration-300 ease-in-out",s),style:{transform:O?"translateX(0)":"translateX(100%)"}}),(0,b.jsxs)("span",{className:(0,d.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 pe-8 transition-opacity duration-300",O?"opacity-0":"opacity-100"),children:[(0,b.jsx)(an,{className:"h-4 w-4 shrink-0"}),"Reject"]}),(0,b.jsxs)("span",{className:(0,d.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 text-white transition-opacity duration-300",O?"opacity-100":"opacity-0"),children:[(0,b.jsx)(r,{className:"h-4 w-4 shrink-0"}),g]}),(0,b.jsx)("span",{className:(0,d.cn)(`border-input/60 absolute inset-y-0 right-0 z-20 flex w-8 cursor-pointer items-center justify-center rounded-e-[5px] border-s ${s} transition-opacity duration-300`,!N&&!H&&"pointer-events-none opacity-0"),onMouseEnter:()=>I(!0),children:(0,b.jsx)(ai.ChevronLeft,{className:"h-4 w-4 text-white"})})]})}),q?null:(0,b.jsx)(F.TooltipContent,{side:"top",children:O?g:p("drawerActionBar.sendRevisionFeedback")})]})})]})]})})})}):(0,b.jsx)("div",{className:"flex items-center gap-2 px-4 pb-4",children:(0,b.jsx)(ak.Button,{type:"button",className:"flex-1",disabled:y,onClick:()=>{x.play(),f()},children:g})})]})}function au({data:a,selections:e,onSelect:f,onApprove:g,onReject:h,isProcessing:i=!1,isRejecting:j=!1,showHeader:k=!1,chatInput:l,onChatInputChange:m}){let{question:n,context:o,questions:p,finalAction:q}=a,[r,s]=(0,c.useState)(0),t=(0,z.useSoundAction)("select"),u=(0,z.useSoundAction)("navigate"),v=p.length,w=r===v-1,x=p[r],y=(0,c.useMemo)(()=>Object.keys(e).length,[e]),A=(0,c.useCallback)((a,b)=>{t.play(),f(a,b),w||setTimeout(()=>s(a=>a+1),250)},[f,w,t]);return 0===v?null:(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[k?(0,b.jsxs)("div",{className:"border-border flex items-start gap-3 border-b pb-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-amber-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h3",{className:"text-foreground mb-1.5 text-sm font-bold",children:n}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:o})]})]}):null,(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsxs)("label",{className:"text-foreground min-w-0 flex-1 text-sm font-semibold",children:[r+1,". ",x.question]}),(0,b.jsx)("div",{className:"mt-1.5 flex shrink-0 gap-1",children:p.map((a,c)=>(0,b.jsx)("button",{type:"button","aria-label":`Go to question ${c+1}`,className:(0,d.cn)("h-1.5 rounded-full transition-all duration-200",c===r?"bg-primary w-4":"w-1.5",c!==r&&e[a.id]?"bg-primary/50":"",c===r||e[a.id]?"":"bg-muted-foreground/25"),onClick:()=>{u.play(),s(c)}},a.id))})]}),(0,b.jsx)("div",{className:"space-y-2",children:x.options.map((a,c)=>{let f=e[x.id]===a.id,g=String.fromCharCode(65+c);return(0,b.jsx)("button",{type:"button",className:(0,d.cn)("border-border w-full overflow-hidden rounded-md border px-3 py-3 text-start text-xs transition-all","hover:border-primary/70 hover:bg-primary/5 group",f&&"border-primary bg-primary/5",a.isNew&&"animate-option-highlight"),disabled:i,onClick:()=>A(x.id,a.id),children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground mt-0.5 font-mono text-xs",children:[g,"."]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-foreground mb-0.5 text-xs font-semibold wrap-break-word",children:a.label}),(0,b.jsx)("div",{className:"text-muted-foreground text-xs leading-snug",children:a.rationale})]}),a.recommended||a.isNew?(0,b.jsx)("div",{className:"shrink-0 pt-0.5",children:a.recommended?(0,b.jsx)(al.Badge,{className:"px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):(0,b.jsx)(al.Badge,{className:"border-transparent bg-emerald-600 px-1.5 py-0 text-[10px] whitespace-nowrap text-white hover:bg-emerald-600/80",children:"New"})}):null]})},a.id)})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-2",children:[(0,b.jsxs)(ak.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===r||i,onClick:()=>{u.play(),s(a=>a-1)},children:[(0,b.jsx)(ai.ChevronLeft,{className:"me-1 h-4 w-4"}),"Previous"]}),w?null:(0,b.jsxs)(ak.Button,{type:"button",variant:"ghost",size:"sm",disabled:i,onClick:()=>{u.play(),s(a=>a+1)},children:[e[x.id]?"Next":"Skip",(0,b.jsx)(aj.ChevronRight,{className:"ms-1 h-4 w-4"})]})]})]}),(0,b.jsx)(at,{onReject:h,onApprove:()=>g(q.id),approveLabel:q.label,revisionPlaceholder:"Ask AI to refine requirements...",isProcessing:i,isRejecting:j,chatInput:l,onChatInputChange:m,children:(0,b.jsx)("div",{className:(0,d.cn)("bg-muted h-1.5 overflow-hidden",y>0&&y<v||i?"opacity-100":"opacity-0","transition-opacity duration-200"),"data-testid":"progress-bar-container",children:i?(0,b.jsx)("div",{className:"bg-primary animate-indeterminate-progress h-full w-1/3"}):(0,b.jsx)("div",{className:"bg-primary h-full transition-all duration-300",style:{width:`${v>0?y/v*100:0}%`},"data-testid":"progress-bar"})})})]})}var av=a.i(577610);let aw=(0,T.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),ax={p:({children:a})=>(0,b.jsx)("p",{className:"text-muted-foreground mb-2 text-xs leading-relaxed last:mb-0",children:a}),strong:({children:a})=>(0,b.jsx)("strong",{className:"text-foreground font-semibold",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a}),code:({children:a,className:c})=>c?(0,b.jsx)("code",{className:`${c} text-[11px]`,children:a}):(0,b.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:a}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted my-2 overflow-x-auto rounded-lg border p-3",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"text-muted-foreground mb-2 list-disc space-y-1 ps-4 text-xs",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"text-muted-foreground mb-2 list-decimal space-y-1 ps-4 text-xs",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-relaxed",children:a}),a:({children:a,href:c})=>(0,b.jsx)("a",{href:c,className:"text-primary underline underline-offset-2",target:"_blank",rel:"noopener noreferrer",children:a})};function ay({decision:a,index:d}){let[e,f]=(0,c.useState)(!1),g=(0,z.useSoundAction)("expand"),h=(0,z.useSoundAction)("collapse");return(0,b.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,b.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:d+1}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:a.title}),(0,b.jsx)("p",{className:"text-muted-foreground mt-0.5 text-xs",children:a.chosen})]})]}),"decisionName"in a&&a.decisionName?(0,b.jsx)(al.Badge,{variant:"secondary",className:"bg-primary/10 text-primary shrink-0",children:a.decisionName}):null]}),a.rationale?(0,b.jsx)(av.default,{components:ax,children:a.rationale}):null]}),a.rejected.length>0?(0,b.jsxs)("div",{className:"border-border border-t",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{e?h.play():g.play(),f(a=>!a)},className:"text-muted-foreground hover:bg-muted/50 flex w-full items-center gap-1.5 px-4 py-3 text-xs font-medium transition-colors",children:[(0,b.jsx)(aj.ChevronRight,{className:`h-3.5 w-3.5 transition-transform ${e?"rotate-90":""}`}),(0,b.jsx)(aa.Layers,{className:"h-3.5 w-3.5"}),"Other Options Considered (",a.rejected.length,")"]}),e?(0,b.jsx)("div",{className:"space-y-1.5 px-4 pb-3",children:a.rejected.map(a=>(0,b.jsx)("div",{className:"bg-primary/5 rounded-md px-3 py-2",children:(0,b.jsx)("span",{className:"text-foreground text-xs",children:a})},a))}):null]}):null]})}function az({data:a}){let{summary:c,decisions:d}=a;return 0===d.length?null:(0,b.jsxs)("div",{className:"space-y-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h2",{className:"text-foreground text-sm font-bold",children:"Technical Implementation Plan Review"}),c?(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:c}):null]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,b.jsx)(aw,{className:"text-primary h-4 w-4"}),(0,b.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Technical Decisions"})]}),d.map((a,c)=>(0,b.jsx)(ay,{decision:a,index:c},a.title))]})}var aA=a.i(69428);function aB({item:a,index:c}){return(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsx)("div",{className:"space-y-2 px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:a.question}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("p",{className:"text-muted-foreground min-w-0 truncate text-xs",children:a.selectedOption}),a.wasRecommended?(0,b.jsx)(al.Badge,{className:"shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):null]})]})]})})})}function aC({data:a}){let{questions:c}=a;return 0===c.length?null:(0,b.jsxs)("div",{className:"space-y-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aA.ClipboardList,{className:"text-primary h-4 w-4"}),(0,b.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Product Decisions"})]}),c.map((a,c)=>(0,b.jsx)(aB,{item:a,index:c},a.question))]})}var aD=a.i(771238);let aE=(0,T.default)("file-diff",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]);var aF=a.i(492548),aG=a.i(953170),aH=a.i(241994);let aI=(0,T.default)("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),aJ=(0,T.default)("monitor-play",[["path",{d:"M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",key:"vbtd3f"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]);var aK=a.i(809955),aL=a.i(771716),aM=a.i(867075),aN=a.i(658881),aO=a.i(746847);function aP({status:a}){switch(a){case aO.CiStatus.Success:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,b.jsx)(aM.CheckCircle2,{className:"me-1 h-3.5 w-3.5"}),"Passing"]});case aO.CiStatus.Pending:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-yellow-50 text-yellow-700 hover:bg-yellow-50",children:[(0,b.jsx)(h.Loader2,{className:"me-1 h-3.5 w-3.5 animate-spin"}),"Pending"]});case aO.CiStatus.Failure:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-red-50 text-red-700 hover:bg-red-50",children:[(0,b.jsx)(aN.XCircle,{className:"me-1 h-3.5 w-3.5"}),"Failing"]})}}var aQ=a.i(638019);let aR=(0,T.default)("file-minus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}]]);var aS=a.i(65298);let aT={added:{icon:aQ.FilePlus,label:"A",className:"text-green-600"},modified:{icon:aS.FileEdit,label:"M",className:"text-amber-600"},deleted:{icon:aR,label:"D",className:"text-red-600"},renamed:{icon:aS.FileEdit,label:"R",className:"text-blue-600"}};function aU({status:a}){let c=aT[a],e=c.icon;return(0,b.jsx)(e,{className:(0,d.cn)("h-3.5 w-3.5 shrink-0",c.className)})}function aV({hunk:a}){return(0,b.jsxs)("div",{className:"border-border border-t first:border-t-0",children:[(0,b.jsx)("div",{className:"bg-muted/50 text-muted-foreground px-3 py-1 font-mono text-[10px]",children:a.header}),(0,b.jsx)("div",{className:"font-mono text-[11px] leading-[18px]",children:a.lines.map(a=>(0,b.jsxs)("div",{className:(0,d.cn)("flex","added"===a.type&&"bg-green-50 dark:bg-green-950/30","removed"===a.type&&"bg-red-50 dark:bg-red-950/30"),children:[(0,b.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:a.oldNumber??""}),(0,b.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:a.newNumber??""}),(0,b.jsx)("span",{className:(0,d.cn)("w-4 shrink-0 text-center select-none","added"===a.type&&"text-green-700 dark:text-green-400","removed"===a.type&&"text-red-700 dark:text-red-400"),children:"added"===a.type?"+":"removed"===a.type?"-":" "}),(0,b.jsx)("span",{className:"min-w-0 flex-1 pe-2 break-all whitespace-pre-wrap",children:a.content})]},`${a.type}-${a.oldNumber??""}-${a.newNumber??""}`))})]})}function aW({file:a}){let[e,f]=(0,c.useState)(!1),g=a.path.split("/").pop()??a.path,h=a.path.includes("/")?a.path.slice(0,a.path.lastIndexOf("/")):"";return(0,b.jsxs)("div",{className:"border-border border-b last:border-b-0",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f(!e),className:"hover:bg-muted/50 flex w-full items-center gap-2 px-3 py-2 text-start",children:[(0,b.jsx)(aj.ChevronRight,{className:(0,d.cn)("text-muted-foreground h-3 w-3 shrink-0 transition-transform duration-150",e&&"rotate-90")}),(0,b.jsx)(aU,{status:a.status}),(0,b.jsx)("span",{className:"text-foreground min-w-0 flex-1 truncate text-xs",children:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[h,"/"]}),g]}):g}),a.oldPath?(0,b.jsxs)("span",{className:"text-muted-foreground truncate text-[10px]",children:["← ",a.oldPath.split("/").pop()]}):null,(0,b.jsxs)("span",{className:"shrink-0 text-[10px]",children:[a.additions>0?(0,b.jsxs)("span",{className:"text-green-600",children:["+",a.additions]}):null,a.additions>0&&a.deletions>0?" ":null,a.deletions>0?(0,b.jsxs)("span",{className:"text-red-600",children:["-",a.deletions]}):null]})]}),e&&a.hunks.length>0?(0,b.jsx)("div",{className:"border-border overflow-x-auto border-t",children:a.hunks.map(a=>(0,b.jsx)(aV,{hunk:a},a.header))}):null]})}function aX({fileDiffs:a}){return 0===a.length?null:(0,b.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,b.jsx)("div",{className:"px-4 py-3",children:(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,b.jsx)(K.FileText,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changed Files"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:["(",a.length,")"]})]})}),(0,b.jsx)("div",{className:"border-border border-t",children:a.map(a=>(0,b.jsx)(aW,{file:a},`${a.status}-${a.path}`))})]})}let aY={Screenshot:aI,Video:aJ,TestOutput:K.FileText,TerminalRecording:I.Terminal},aZ=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]),a$=new Set([".mp4",".webm",".mov"]);function a_({evidence:a}){var d,e;let f,[g,h]=(0,c.useState)(!0),i=aY[a.type]??aI,j=(f=(d=a.relativePath).lastIndexOf("."))>=0?d.slice(f).toLowerCase():"",k=(e=a.relativePath,`/api/evidence?path=${encodeURIComponent(e)}`),l="Screenshot"===a.type||aZ.has(j),m="Video"===a.type||a$.has(j),n="TestOutput"===a.type||"TerminalRecording"===a.type;return(0,b.jsxs)("li",{className:"border-border rounded-md border",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>h(!g),className:"flex w-full cursor-pointer items-center gap-2.5 px-3 py-2.5 text-start",children:[g?(0,b.jsx)(aL.ChevronDown,{className:"text-muted-foreground h-3 w-3 shrink-0"}):(0,b.jsx)(aj.ChevronRight,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,b.jsx)(i,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"text-foreground text-xs font-medium",children:a.description}),a.taskRef?(0,b.jsxs)("span",{className:"text-muted-foreground ms-1.5 text-[10px]",children:["(",a.taskRef,")"]}):null]}),(0,b.jsx)("a",{href:k,download:!0,onClick:a=>a.stopPropagation(),className:"text-muted-foreground hover:text-foreground shrink-0 rounded p-1 transition-colors","aria-label":"Download",children:(0,b.jsx)(aK.Download,{className:"h-3 w-3"})})]}),g&&k?(0,b.jsx)("div",{className:"border-border border-t px-3 py-2.5",children:l?(0,b.jsx)("img",{src:k,alt:a.description,className:"max-h-80 w-full rounded-md border object-contain",loading:"lazy"}):m?(0,b.jsx)("video",{src:k,controls:!0,className:"max-h-80 w-full rounded-md border",preload:"metadata",children:(0,b.jsx)("track",{kind:"captions"})}):n?(0,b.jsx)(a0,{url:k}):(0,b.jsx)("p",{className:"text-muted-foreground truncate font-mono text-[10px]",children:a.relativePath})}):null,null]})}function a0({url:a}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1);return f?d?(0,b.jsx)("pre",{className:"bg-muted/50 max-h-60 overflow-auto rounded-md p-3 font-mono text-[11px] leading-relaxed",children:d}):(0,b.jsx)("p",{className:"text-muted-foreground text-[10px]",children:"Unable to load preview"}):(fetch(a).then(a=>a.ok?a.text():Promise.reject(Error("Failed"))).then(a=>{let b=a.split("\n");e(b.length>100?`${b.slice(0,100).join("\n")}
|
|
2
|
-
...`:a)}).catch(()=>e(null)).finally(()=>g(!0)),(0,b.jsx)("div",{className:"bg-muted/50 h-16 animate-pulse rounded-md"}))}function a1({evidence:a}){return(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(aI,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Evidence"}),(0,b.jsx)(al.Badge,{variant:"secondary",className:"text-[10px]",children:a.length})]}),(0,b.jsx)("ul",{className:"space-y-2",children:a.map(a=>(0,b.jsx)(a_,{evidence:a},`${a.type}-${a.relativePath}`))})]})})}function a2({data:a,readOnly:c=!1,onApprove:d,onReject:e,isProcessing:f=!1,isRejecting:g=!1,chatInput:h,onChatInputChange:i}){let{pr:j,diffSummary:k,fileDiffs:l,branch:m,warning:n,evidence:o,hideCiStatus:p}=a,q=j?.mergeable===!1,r=q&&e?()=>e("Resolve merge conflicts",[]):d;return(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-emerald-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h2",{className:"text-foreground text-sm font-bold",children:c?"Merge History":"Merge Review"}),(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:c?"This feature was merged. Review the pull request details and evidence below.":j?"Review the pull request details and approve to merge.":"Review the changes and approve to merge."})]})]}),m?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,b.jsx)(aG.GitBranch,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)(al.Badge,{variant:"secondary",className:"font-mono text-[11px]",children:m.source}),(0,b.jsx)(aH.ArrowRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsx)(al.Badge,{variant:"outline",className:"font-mono text-[11px]",children:m.target})]})}):null,j?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("a",{href:j.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2",children:["PR #",j.number,(0,b.jsx)(aD.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,b.jsx)(al.Badge,{variant:"outline",className:"text-xs",children:j.status})]}),!1===j.mergeable?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Merge Status"}),(0,b.jsxs)(al.Badge,{className:"border-transparent bg-orange-50 text-orange-700 hover:bg-orange-50",children:[(0,b.jsx)(ao.AlertTriangle,{className:"me-1 h-3.5 w-3.5"}),"Conflicts"]})]}):null,j.ciStatus&&!0!==p?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"CI Status"}),(0,b.jsx)(aP,{status:j.ciStatus})]}):null,j.commitHash?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Commit"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(aF.GitCommitHorizontal,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,b.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:j.commitHash.slice(0,7)})]})]}):null]})}):null,k?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(aE,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changes"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-4 gap-3",children:[(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"text-foreground text-sm font-bold",children:k.filesChanged}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"files"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsxs)("div",{className:"text-sm font-bold text-green-600",children:["+",k.additions]}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"additions"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsxs)("div",{className:"text-sm font-bold text-red-600",children:["-",k.deletions]}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"deletions"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"text-foreground text-sm font-bold",children:k.commitCount}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"commits"})]})]})]})}):n?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,b.jsx)(ao.AlertTriangle,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:n})]})}):null,o&&o.length>0?(0,b.jsx)(a1,{evidence:o}):null,l&&l.length>0?(0,b.jsx)(aX,{fileDiffs:l}):null]}),!c&&(0,b.jsx)(at,{onReject:e,onApprove:r,approveLabel:q?"Resolve Conflicts":"Approve Merge",approveVariant:q?"warning":"default",revisionPlaceholder:"Ask AI to revise before merging...",isProcessing:f,isRejecting:g,chatInput:h,onChatInputChange:i})]})}var a3=a.i(346168);let a4=(0,T.default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var a5=a.i(839385),a6=a.i(167424),a7=a.i(428002),a8=a.i(531378),a9=a.i(832703);let ba=(0,T.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var bb=a.i(302807),bc=a.i(645670),bd=a.i(26633),be=a.i(273998);let bf=(0,T.default)("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]),bg=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function bh(a){let b=a.lastIndexOf(".");return b>=0&&bg.has(a.slice(b).toLowerCase())}function bi(a){let b=a.lastIndexOf(".")>=0?a.slice(a.lastIndexOf(".")):"",c=bh(a)?`image/${b.slice(1).replace("jpg","jpeg")}`:"",d=new URLSearchParams({path:a,...c&&{mimeType:c}});return`/api/attachments/preview?${d.toString()}`}let bj=/(?:^|\s)@(\/[^\s]+)/g;function bk({text:a,attachmentPaths:c}){let d=function(a){let b=[],c=0;for(let d of a.matchAll(bj)){let e=d.index,f=e+(d[0].length-d[0].trimStart().length);f>c&&b.push({type:"text",value:a.slice(c,f)}),b.push({type:"attachment",path:d[1]}),c=e+d[0].length}return c<a.length&&b.push({type:"text",value:a.slice(c)}),b}(a),e=d.some(a=>"attachment"===a.type),f=c?.filter(Boolean)??[];return e||0!==f.length?(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[d.map(a=>{if("text"===a.type){let c=a.value.trim();return c?(0,b.jsx)("span",{className:"text-sm leading-relaxed",children:c},`text-${c.slice(0,40)}`):null}return(0,b.jsx)(bl,{path:a.path},`att-${a.path}`)}),f.map(a=>(0,b.jsx)(bl,{path:a},`extra-${a}`))]}):(0,b.jsx)("span",{className:"text-sm leading-relaxed",children:a})}function bl({path:a}){let d=a.split("/").pop()??a,[e,f]=(0,c.useState)(!1);return bh(a)?e?(0,b.jsxs)("div",{"data-testid":"inline-attachment-image-error",className:"text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)(bf,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:d})]}):(0,b.jsxs)(bc.Dialog,{children:[(0,b.jsx)(bc.DialogTrigger,{asChild:!0,children:(0,b.jsx)("img",{src:bi(a),alt:d,"data-testid":"inline-attachment-image",onError:()=>f(!0),className:"max-h-48 max-w-full cursor-pointer rounded-md border object-contain transition-opacity hover:opacity-80"})}),(0,b.jsxs)(bc.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,b.jsx)(bd.VisuallyHidden.Root,{children:(0,b.jsxs)(bc.DialogTitle,{children:["Preview: ",d]})}),(0,b.jsx)("div",{className:"relative bg-black/90",children:(0,b.jsx)("img",{src:bi(a),alt:d,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,b.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col",children:(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:d})}),(0,b.jsx)("a",{href:bi(a),download:d,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${d}`,children:(0,b.jsx)(be.DownloadIcon,{className:"h-4 w-4"})})]})]})]}):(0,b.jsx)("a",{href:bi(a),download:d,"data-testid":"inline-attachment-file",className:"text-primary text-sm underline underline-offset-2",children:d})}a.i(569029);var bm=a.i(705623);let bn=(0,p.createServerReference)("4030b2e45fa4c74a75413e12a57f297f0bd20f307f",p.callServer,void 0,p.findSourceMapURL,"triggerReview"),bo=(0,T.default)("file-code-corner",[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]]),bp={[aO.CodeReviewStatus.Pending]:{label:"Pending",className:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800/50 dark:text-zinc-400"},[aO.CodeReviewStatus.InProgress]:{label:"In Progress",className:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",pulse:!0},[aO.CodeReviewStatus.Completed]:{label:"Completed",className:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400"},[aO.CodeReviewStatus.Posted]:{label:"Posted",className:"bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400"},[aO.CodeReviewStatus.Failed]:{label:"Failed",className:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"}};function bq({status:a,className:c}){let e=bp[a];return(0,b.jsx)("span",{className:(0,d.cn)("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium",e.className,e.pulse&&"animate-pulse",c),children:e.label})}function br({comment:a,className:c}){let e=void 0!==a.startLine?`L${a.startLine}-${a.line}`:`L${a.line}`;return(0,b.jsxs)("div",{className:(0,d.cn)("bg-card text-card-foreground rounded-lg border",!a.inDiffRange&&"border-amber-300 dark:border-amber-700",c),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 py-2 text-xs",children:[(0,b.jsx)(bo,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono",children:a.path}),(0,b.jsx)("span",{className:"bg-muted text-muted-foreground shrink-0 rounded px-1.5 py-0.5 font-mono",children:e}),!a.inDiffRange&&(0,b.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-1 text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(ao.AlertTriangle,{className:"h-3 w-3"}),"Outside diff"]})]}),(0,b.jsx)("div",{className:"px-3 py-2 text-sm",children:a.body}),a.suggestion?(0,b.jsxs)("div",{className:"border-t px-3 py-2",children:[(0,b.jsx)("p",{className:"text-muted-foreground mb-1 text-xs font-medium",children:"Suggestion:"}),(0,b.jsx)("pre",{className:"overflow-x-auto rounded-md bg-emerald-50 p-2 font-mono text-xs text-emerald-900 dark:bg-emerald-950/30 dark:text-emerald-300",children:a.suggestion})]}):null]})}function bs({review:a,loading:e,error:f,onPostToGitHub:g,postingInProgress:h,className:i}){let j=(0,c.useMemo)(()=>{if(!a?.comments?.length)return new Map;var b=a.comments;let c=new Map;for(let a of b){let b=c.get(a.path);b?b.push(a):c.set(a.path,[a])}return c},[a?.comments]),k=a?.comments?.length??0;if(e)return(0,b.jsxs)("div",{className:(0,d.cn)("space-y-4 p-4",i),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"bg-muted h-5 w-20 animate-pulse rounded-full"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-32 animate-pulse rounded"})]}),(0,b.jsx)("div",{className:"bg-muted h-16 animate-pulse rounded-lg"}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"bg-muted h-24 animate-pulse rounded-lg"}),(0,b.jsx)("div",{className:"bg-muted h-24 animate-pulse rounded-lg"})]})]});if(f)return(0,b.jsxs)("div",{className:(0,d.cn)("flex items-center gap-2 rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-400",i),children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),f]});if(!a)return null;let l=a.status===aO.CodeReviewStatus.Completed&&0===k,m=a.status===aO.CodeReviewStatus.Completed&&g;return(0,b.jsxs)("div",{className:(0,d.cn)("space-y-4",i),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(bq,{status:a.status}),(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(Z.MessageSquare,{className:"h-3.5 w-3.5"}),k," ",1===k?"finding":"findings"]}),a.reviewUrl?(0,b.jsxs)("a",{href:a.reviewUrl,target:"_blank",rel:"noopener noreferrer",className:"ml-auto flex items-center gap-1 text-xs text-blue-600 hover:underline dark:text-blue-400",children:[(0,b.jsx)(aD.ExternalLink,{className:"h-3 w-3"}),"View on GitHub"]}):null,m?(0,b.jsx)(ak.Button,{size:"sm",variant:"outline",className:"ml-auto",onClick:()=>g(a.id),disabled:h,children:h?"Posting...":"Post to GitHub"}):null]}),a.summary?(0,b.jsx)("div",{className:"bg-muted/50 rounded-lg border p-3 text-sm",children:a.summary}):null,a.status===aO.CodeReviewStatus.Failed&&a.errorMessage?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-red-200 bg-red-50 p-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-400",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),a.errorMessage]}):null,l?(0,b.jsxs)("div",{className:"text-muted-foreground flex flex-col items-center gap-2 py-8 text-center",children:[(0,b.jsx)(bo,{className:"h-8 w-8"}),(0,b.jsx)("p",{className:"text-sm",children:"No findings — the code looks good!"})]}):null,j.size>0?(0,b.jsx)("div",{className:"space-y-4",children:Array.from(j.entries()).map(([a,c])=>(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("h4",{className:"text-muted-foreground flex items-center gap-1.5 text-xs font-medium",children:[(0,b.jsx)(bo,{className:"h-3.5 w-3.5"}),a,(0,b.jsx)("span",{className:"bg-muted rounded px-1 py-0.5",children:c.length})]}),(0,b.jsx)("div",{className:"space-y-2",children:c.map(a=>(0,b.jsx)(br,{comment:a},`${a.path}:${a.line}:${a.side}`))})]},a))}):null]})}var bt=a.i(961781),bu=a.i(817606),bv=a.i(783852);function bw(a){if(0===a)return"0s";let b=Math.floor(a/1e3);if(0===b)return"<1s";let c=Math.floor(b/3600),d=Math.floor(b%3600/60),e=b%60;return c>0?`${c}h ${d}m`:d>0?`${d}m ${e}s`:`${e}s`}let bx=new Set(["pending","action-required","error"]);function by(a){return a?.agentType?{agentType:a.agentType,modelId:a.modelId??""}:null}function bz({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function bA({children:a,className:c}){return(0,b.jsx)("div",{className:(0,d.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function bB({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function bC({on:a,label:c}){return(0,b.jsxs)("span",{className:(0,d.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-xs font-medium",a?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-foreground/[0.04] text-foreground/25"),children:[a?(0,b.jsx)(m.Check,{className:"size-3"}):(0,b.jsx)(bb.X,{className:"size-3"}),c]})}let bD={[aO.PrStatus.Open]:"text-blue-600 dark:text-blue-400",[aO.PrStatus.Merged]:"text-purple-600 dark:text-purple-400",[aO.PrStatus.Closed]:"text-red-600 dark:text-red-400"};function bE({data:a,pinnedConfig:e,syncStatus:f,syncLoading:g,syncError:i,onRefreshSync:j,onRebaseOnMain:k,rebaseLoading:l,rebaseError:m}){var n;let o,p,q,r,s,t,u=(0,y.useFeatureFlags)(),v="maintain"===a.lifecycle,w=function(a){let[b,d]=(0,c.useState)(null),e=(0,c.useRef)(null);return(0,c.useEffect)(()=>a?(d(bw(Math.max(0,Date.now()-a))),e.current=setInterval(()=>{d(bw(Math.max(0,Date.now()-a)))},1e3),()=>{e.current&&clearInterval(e.current)}):void d(null),[a]),b}("running"===a.state||"action-required"===a.state?a.startedAt:void 0),x=ae.featureNodeStateConfig[a.state],z=!!a.summary&&!(a.userQuery&&a.summary?.trim()===a.userQuery.trim()),[A,B]=(0,c.useState)(null),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useTransition)(),[G,H]=(0,c.useTransition)(),I=u.codeReview&&a.pr;return(0,b.jsxs)("div",{"data-testid":"feature-drawer-status",className:"pb-4",children:[!v&&a.progress>0?(0,b.jsx)("div",{"data-testid":"feature-drawer-progress",className:"px-3 pb-2",children:(0,b.jsx)("div",{className:"bg-foreground/[0.06] h-1.5 w-full overflow-hidden rounded-full",children:(0,b.jsx)("div",{className:(0,d.cn)("h-full rounded-full transition-all",x.progressClass),style:{width:`${a.progress}%`}})})}):null,a.oneLiner||a.userQuery||z?(0,b.jsx)(bz,{icon:a5.Info,title:"Description",children:(0,b.jsxs)(bA,{className:"flex flex-col gap-2",children:[a.oneLiner?(0,b.jsx)(bB,{label:"One-Liner",children:a.oneLiner}):null,a.userQuery?(0,b.jsx)(bB,{label:"Query",children:(0,b.jsx)(bk,{text:a.userQuery})}):null,z?(0,b.jsx)(bB,{label:"Summary",children:(0,b.jsx)("span",{className:"leading-snug",children:a.summary})}):null]})}):null,a.pr?(0,b.jsxs)(bz,{icon:aF.GitCommitHorizontal,title:"Pull Request",children:[(0,b.jsx)(bA,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("a",{href:a.pr.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary inline-flex items-center gap-1 text-sm font-semibold hover:underline",children:["#",a.pr.number," ",(0,b.jsx)(aD.ExternalLink,{className:"size-3"})]}),(0,b.jsx)("span",{className:(0,d.cn)("text-xs font-semibold",bD[a.pr.status]),children:a.pr.status}),!1===a.pr.mergeable?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-orange-600 dark:text-orange-400",children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3 shrink-0"})," Conflicts"]}):null,a.pr.ciStatus&&!0!==a.hideCiStatus?(0,b.jsx)(aP,{status:a.pr.ciStatus}):null,I?(0,b.jsxs)(ak.Button,{size:"xs",variant:"outline",className:"ml-auto",onClick:()=>{a.pr&&(D(null),B(null),F(async()=>{let b=await bn({target:a.pr.url,repositoryPath:a.repositoryPath,featureId:a.featureId});b.error&&D(b.error),b.review&&B(b.review)}))},disabled:E,children:[E?(0,b.jsx)(h.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,b.jsx)(a8.Search,{className:"mr-1 h-3 w-3"}),E?"Reviewing...":"Review PR"]}):null,!I&&a.pr.commitHash?(0,b.jsx)("code",{className:"text-foreground/40 ml-auto font-mono text-[11px]",children:a.pr.commitHash.slice(0,7)}):null]})}),A||C||E?(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(bs,{review:A??void 0,loading:E,error:C??void 0,onPostToGitHub:a=>{H(async()=>{try{let b=await fetch(`/api/code-reviews/${a}/post`,{method:"POST"});if(!b.ok){let a=await b.json().catch(()=>({error:"Failed to post review"}));D(a.error??"Failed to post review to GitHub");return}let c=await b.json();B(c)}catch(a){D(a instanceof Error?a.message:"Failed to post review")}})},postingInProgress:G})}):null]}):null,(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pb-1",children:[a.branch?(0,b.jsx)(bA,{children:(0,b.jsxs)(bB,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(aG.GitBranch,{className:"text-foreground/30 size-3 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-[11px]",children:a.branch})]}),a.baseBranch?(0,b.jsxs)("span",{className:"text-foreground/30 block text-[10px]",children:["from ",a.baseBranch]}):null]})}):null,a.agentType||a.modelId?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Agent",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[a.agentType?(o=(0,bu.getAgentTypeIcon)(a.agentType),(0,b.jsx)(o,{className:"size-3.5 shrink-0 opacity-50"})):null,a.agentType?(0,b.jsx)("span",{children:bu.agentTypeLabels[a.agentType]??a.agentType}):null,a.agentType&&a.modelId?(0,b.jsx)("span",{className:"text-foreground/20",children:"/"}):null,a.modelId?(0,b.jsx)("span",{className:"text-foreground/50 text-[12px]",children:(0,bv.getModelMeta)(a.modelId).displayName||a.modelId}):null]})})}):null,a.createdAt?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Created",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(a3.Clock,{className:"text-foreground/30 size-3 shrink-0"}),(n=a.createdAt,p=Date.now(),(t=Math.floor((s=Math.floor((r=Math.floor((p-(q="string"==typeof n?new Date(n).getTime():n))/6e4))/60))/24))>30?new Date(q).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):t>0?`${t}d ago`:s>0?`${s}h ago`:r>0?`${r}m ago`:"just now")]})})}):null,a.fastMode?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Mode",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(_.Zap,{className:"size-3.5"})," Fast"]})})}):null,a.runtime||w?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:a.runtime?"Runtime":"Elapsed",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(a3.Clock,{className:"text-foreground/30 size-3 shrink-0"}),a.runtime??w]})})}):null]}),a.blockedBy||a.errorMessage?(0,b.jsx)(bz,{icon:ao.AlertTriangle,title:"Issues",children:(0,b.jsxs)(bA,{className:"border-destructive/20 bg-destructive/5",children:[a.blockedBy?(0,b.jsx)(bB,{label:"Blocked By",children:a.blockedBy}):null,a.errorMessage?(0,b.jsx)(bB,{label:"Error",children:(0,b.jsx)("span",{className:"text-destructive",children:a.errorMessage})}):null]})}):null,k&&a.branch&&j?(0,b.jsx)(bz,{icon:a7.RefreshCw,title:"Branch Sync",children:(0,b.jsx)(bF,{syncStatus:f??null,syncLoading:g??!1,syncError:i??null,onRefreshSync:j,onRebaseOnMain:k,rebaseLoading:l??!1,rebaseError:m??null})}):null,(0,b.jsx)(bH,{data:a,pinnedConfig:e}),a.injectedSkills?.length?(0,b.jsx)(bI,{skills:a.injectedSkills}):null]})}function bF({syncStatus:a,syncLoading:c,syncError:f,onRefreshSync:g,onRebaseOnMain:h,rebaseLoading:i,rebaseError:j}){let{t:k}=(0,e.useTranslation)("web"),l=null!=a&&a.behind>0,m=a?.behind===0,n=a?.baseBranch??"main";return(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{"data-testid":"branch-sync-status",className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-1.5 text-[13px]",children:c&&!a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ah,{size:"sm"}),(0,b.jsx)("span",{className:"text-foreground/40",children:"Checking..."})]}):f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3.5 text-red-500"}),(0,b.jsx)("span",{className:"text-destructive text-xs",children:f})]}):i?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ah,{size:"sm"}),(0,b.jsxs)("span",{children:["Rebasing on ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),"..."]})]}):l?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3.5 text-orange-500"}),(0,b.jsxs)("span",{children:[a.behind," behind ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),a.ahead>0?(0,b.jsxs)("span",{className:"text-foreground/30 ml-1 text-[11px]",children:["· ",a.ahead," ahead"]}):null]})]}):m?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aM.CheckCircle2,{className:"size-3.5 text-green-500"}),(0,b.jsxs)("span",{children:["Up to date · ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),a.ahead>0?(0,b.jsxs)("span",{className:"text-foreground/30 ml-1 text-[11px]",children:["· ",a.ahead," ahead"]}):null]})]}):null}),(a||f)&&!i?(0,b.jsx)("button",{onClick:g,disabled:c,className:"text-foreground/30 hover:text-foreground/60 hover:bg-foreground/5 inline-flex size-6 items-center justify-center rounded-sm disabled:opacity-50","aria-label":k("branchSyncStatus.refreshSyncStatus"),children:(0,b.jsx)(a7.RefreshCw,{className:(0,d.cn)("size-3",c&&"animate-spin")})}):null]}),l&&!i?(0,b.jsx)("div",{className:"pt-2",children:(0,b.jsx)(bm.ActionButton,{label:k("branchSyncStatus.rebaseOnMain"),onClick:h,loading:!1,error:!!j,icon:Y,variant:"outline",size:"sm"})}):null,j?(0,b.jsx)("p",{className:"text-destructive pt-1 text-[11px]",children:j}):null]})}function bG({pinnedConfig:a}){let c=(0,bu.getAgentTypeIcon)(a.agentType),d=a.modelId?(0,bv.getModelMeta)(a.modelId).displayName||a.modelId:"No model selected";return(0,b.jsxs)(bA,{"data-testid":"feature-pinned-config-card",className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a9.Settings,{className:"size-3"})," Pinned Execution"]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(c,{className:"size-4 shrink-0 opacity-60"}),(0,b.jsx)("span",{className:"font-medium",children:bu.agentTypeLabels[a.agentType]??a.agentType}),(0,b.jsx)("span",{className:"text-foreground/20",children:"/"}),(0,b.jsx)("span",{className:"text-foreground/60",children:d})]}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs",children:"Change the pinned agent and model before the next start, approval, or retry."})]}),(0,b.jsx)(bt.AgentModelPicker,{initialAgentType:a.agentType,initialModel:a.modelId,agentType:a.agentType,model:a.modelId,onSave:a.onSave,saveError:a.error,saving:a.saving,disabled:a.saving,mode:"settings"})]})}function bH({data:a,pinnedConfig:c}){var d;let e=null!=a.approvalGates||null!=a.push||null!=a.openPr||null!=a.ciWatchEnabled||null!=a.enableEvidence||null!=a.forkAndPr||null!=a.commitSpecs||null!=a.injectSkills,f=null!=c&&(d=a.state,bx.has(d));return e||f?(0,b.jsx)(bz,{icon:a9.Settings,title:"Settings",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[f?(0,b.jsx)(bG,{pinnedConfig:c}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[a.approvalGates?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(ba,{className:"size-3"})," Approve"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)(bC,{on:a.approvalGates.allowPrd,label:"PRD"}),(0,b.jsx)(bC,{on:a.approvalGates.allowPlan,label:"Plan"}),(0,b.jsx)(bC,{on:a.approvalGates.allowMerge,label:"Merge"})]})]}):null,null!=a.enableEvidence?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a4,{className:"size-3"})," Evidence"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)(bC,{on:a.enableEvidence,label:"Collect"}),null!=a.commitEvidence?(0,b.jsx)(bC,{on:a.commitEvidence,label:"Add to PR"}):null]})]}):null,null!=a.injectSkills?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a6.Puzzle,{className:"size-3"})," Skills"]}),(0,b.jsx)("div",{className:"flex flex-col gap-0.5",children:(0,b.jsx)(bC,{on:a.injectSkills,label:"Inject"})})]}):null,null!=a.push||null!=a.openPr||null!=a.ciWatchEnabled||null!=a.commitSpecs||null!=a.forkAndPr?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(aG.GitBranch,{className:"size-3"})," Git"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[null!=a.push?(0,b.jsx)(bC,{on:a.push,label:"Push"}):null,null!=a.openPr?(0,b.jsx)(bC,{on:a.openPr,label:"PR"}):null,null!=a.ciWatchEnabled?(0,b.jsx)(bC,{on:a.ciWatchEnabled,label:"Watch"}):null,null!=a.commitSpecs?(0,b.jsx)(bC,{on:a.commitSpecs,label:"Specs"}):null,null!=a.forkAndPr?(0,b.jsx)(bC,{on:a.forkAndPr,label:"Fork"}):null]})]}):null]}):null]})}):null}function bI({skills:a}){return(0,b.jsx)(bz,{icon:a6.Puzzle,title:"Feature Skills",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map(a=>(0,b.jsx)(al.Badge,{variant:"secondary",children:a},a))})})}let bJ=(0,T.default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var bK=a.i(193866),bL=a.i(407421);let bM=(0,T.default)("arrow-down-to-line",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),bN=(0,T.default)("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]);function bO(a,b){if(null!=a.durationMs&&a.durationMs>0)return a.durationMs;if(!a.completedAt&&a.startedAt){let c=new Date(a.startedAt).getTime();if(!Number.isNaN(c))return Math.max(0,b-c)}return 0}function bP(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a)}function bQ(a){let b=a instanceof Date?a:new Date(String(a));return Number.isNaN(b.getTime())?"":b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function bR(a){return a>=1?`$${a.toFixed(2)}`:a>=.01?`$${a.toFixed(3)}`:`$${a.toFixed(4)}`}let bS={analyze:"Analyzing",requirements:"Requirements",research:"Researching",plan:"Planning",implement:"Implementing",rebase:"Rebasing","fast-implement":"Fast Implement",evidence:"Evidence",validate:"Validating",repair:"Repairing",merge:"Merging"},bT={"run:started":{label:"started",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:j.Play},"run:resumed":{label:"resumed",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:$.RotateCcw},"run:completed":{label:"completed",colorClass:"text-emerald-600",bgClass:"bg-emerald-50 dark:bg-emerald-950/30",icon:aM.CheckCircle2},"run:failed":{label:"failed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:aN.XCircle},"run:stopped":{label:"stopped",colorClass:"text-amber-600",bgClass:"bg-amber-50 dark:bg-amber-950/30",icon:k.Square},"run:crashed":{label:"crashed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:aN.XCircle},"run:rejected":{label:"rejected",colorClass:"text-orange-600",bgClass:"bg-orange-50 dark:bg-orange-950/30",icon:bK.Ban}};function bU(a){return a.startsWith("run:")}function bV({timings:a,loading:d,error:f,rejectionFeedback:g}){let{t:i}=(0,e.useTranslation)("web"),j=function(a){let[b,d]=(0,c.useState)(Date.now),e=(0,c.useRef)(null);return(0,c.useEffect)(()=>(a&&a.some(a=>!a.phase.startsWith("run:")&&!a.completedAt&&a.startedAt)&&(e.current=setInterval(()=>d(Date.now()),1e3)),()=>{e.current&&(clearInterval(e.current),e.current=null)}),[a]),b}(a);if(d)return(0,b.jsx)("div",{"data-testid":"activity-tab-loading",className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})});if(f)return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-base text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:f})]});if(!a||0===a.length)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(a3.Clock,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-base",children:i("activityTab.noActivityRecorded")})]});let k=a.filter(a=>!bU(a.phase)),l=Math.max(...k.map(a=>bO(a,j)),...k.map(a=>a.approvalWaitMs??0),0),m=function(a,b){if(!a.length)return[];let c=a.filter(a=>"run:rejected"===a.phase).length,d=b?.length??0,e=a;if(d>c){e=[...a];let f=a[a.length-1].agentRunId;for(let a=c;a<d;a++){let d=b[a];a>c&&e.push({agentRunId:f,phase:"run:resumed",startedAt:d.timestamp??`synthetic-resumed-${a}`}),e.push({agentRunId:f,phase:"run:rejected",startedAt:d.timestamp??`synthetic-${a}`})}}let f=[],g=[],h=0;for(let a of e)if(g.push(a),"run:rejected"===a.phase){let a=b?.[h];f.push({number:f.length+1,timings:g,rejectionMessage:a?.message,rejectionAttachments:a?.attachments}),g=[],h++}return g.length>0&&f.push({number:f.length+1,timings:g}),f}(a,g),n=m.length>1,o=k.reduce((a,b)=>a+bO(b,j),0),p=k.reduce((a,b)=>a+(b.approvalWaitMs??0),0),q=k.reduce((a,b)=>a+(b.inputTokens??0),0),r=k.reduce((a,b)=>a+(b.outputTokens??0),0),s=k.reduce((a,b)=>a+(b.costUsd??0),0);return(0,b.jsxs)("div",{className:"flex flex-col gap-3 p-4",children:[(0,b.jsx)("div",{"data-testid":"activity-timings",className:"flex flex-col gap-3",children:m.map(a=>(0,b.jsx)(bW,{iteration:a,showHeader:n,maxDurationMs:l,now:j},a.number))}),o>0?(0,b.jsx)(b$,{totalExecMs:o,totalWaitMs:p,totalInputTokens:q,totalOutputTokens:r,totalCostUsd:s}):null]})}function bW({iteration:a,showHeader:c,maxDurationMs:d,now:e}){let f=function(a){let b=[...a.timings].reverse().find(a=>bU(a.phase));if(!b)return null;switch(b.phase){case"run:rejected":return{label:"Rejected",colorClass:"text-orange-600",dotClass:"bg-orange-500"};case"run:completed":return{label:"Completed",colorClass:"text-emerald-600",dotClass:"bg-emerald-500"};case"run:failed":return{label:"Failed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:crashed":return{label:"Crashed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:stopped":return{label:"Stopped",colorClass:"text-amber-600",dotClass:"bg-amber-500"};default:return null}}(a);return(0,b.jsxs)("div",{"data-testid":`iteration-${a.number}`,className:"border-border/50 bg-card/50 flex flex-col overflow-hidden rounded-lg border",children:[c?(0,b.jsxs)("div",{className:"bg-muted/30 border-border/50 flex items-center justify-between border-b px-3 py-1.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground text-sm font-semibold tracking-wide",children:["Iteration ",a.number]}),f?(0,b.jsxs)("span",{className:`flex items-center gap-1 text-xs font-medium ${f.colorClass}`,children:[(0,b.jsx)("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${f.dotClass}`}),f.label]}):null]}):null,(0,b.jsxs)("div",{className:"relative flex flex-col",children:[(0,b.jsx)("div",{className:"bg-border/60 absolute top-4 bottom-4 left-[21.5px] w-px"}),a.timings.map((c,f)=>{if(bU(c.phase)){let d,e="run:rejected"===c.phase,g="run:failed"===c.phase||"run:crashed"===c.phase||"run:stopped"===c.phase;if(e)d=a.rejectionMessage;else if(g){let b=[...a.timings].reverse().find(a=>!bU(a.phase)&&a.errorMessage);d=b?.errorMessage??c.errorMessage}return(0,b.jsx)(bX,{timing:c,message:d,attachments:e?a.rejectionAttachments:void 0,isFirst:0===f,isLast:f===a.timings.length-1},`${c.agentRunId}-${c.phase}-${c.startedAt}`)}return(0,b.jsx)(bY,{timing:c,maxDurationMs:d,now:e},`${c.agentRunId}-${c.phase}-${c.startedAt}`)})]})]})}function bX({timing:a,message:c,attachments:d,isFirst:e,isLast:f}){let g,h=bT[a.phase];if(!h)return null;let i=d&&d.length>0,j=h.icon;return(0,b.jsxs)("div",{className:`relative flex flex-col gap-1 px-3 ${e?"pt-2":"pt-1"} ${f?"pb-2":"pb-1"}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`relative z-10 flex h-5 w-5 shrink-0 items-center justify-center rounded-full ${h.bgClass}`,children:(0,b.jsx)(j,{className:`h-3 w-3 ${h.colorClass}`})}),(0,b.jsx)("span",{className:`text-sm font-medium ${h.colorClass}`,children:h.label}),a.startedAt&&!("string"==typeof a.startedAt&&a.startedAt.startsWith("synthetic"))?(0,b.jsx)("span",{className:"text-muted-foreground/60 ml-auto text-xs tabular-nums",children:bQ(String(a.startedAt))}):null]}),c?(g="run:failed"===a.phase||"run:crashed"===a.phase||"run:stopped"===a.phase,(0,b.jsxs)("div",{className:`ml-[26px] flex items-start gap-1.5 rounded-md px-2 py-1.5 ${g?"bg-red-50/50 dark:bg-red-950/20":"bg-orange-50/50 dark:bg-orange-950/20"}`,children:[g?(0,b.jsx)(P.AlertCircle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-400"}):(0,b.jsx)(Z.MessageSquare,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-orange-400"}),(0,b.jsxs)("span",{"data-testid":g?"error-message-text":"rejection-feedback-text",className:"text-muted-foreground text-xs leading-relaxed italic",children:["— ",c]})]})):null,i?(0,b.jsx)("div",{"data-testid":"rejection-feedback-attachments",className:"ml-[26px]",children:(0,b.jsx)(bk,{text:"",attachmentPaths:d})}):null]})}function bY({timing:a,maxDurationMs:d,now:f}){let{t:g}=(0,e.useTranslation)("web"),h=a.phase.includes(":")?a.phase.split(":")[0]:a.phase,i=a.phase.includes(":")?a.phase.split(":")[1]:null,j=null!==i,k=i?.startsWith("phase-")??!1,n=bS[h]??h,o=k?`Phase ${i.replace("phase-","")}`:null!==i?`${n} #${i}`:n,p=bO(a,f),q=!a.completedAt&&!!a.startedAt,r=q?15:2,s=d>0?Math.max(r,p/d*100):r,t=a.completedAt?k?"bg-emerald-400":j?"bg-amber-500":"bg-emerald-500":"bg-blue-500",u=null!=a.inputTokens||null!=a.outputTokens?(a.inputTokens??0)+(a.outputTokens??0):null,[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(()=>{a.prompt&&navigator.clipboard.writeText(a.prompt).then(()=>{w(!0),setTimeout(()=>w(!1),1500)})},[a.prompt]);return(0,b.jsxs)("div",{className:`group/phase relative flex flex-col gap-0.5 px-3 py-1.5 ${j?"ms-4":""}`,children:[(0,b.jsxs)("div",{"data-testid":`timing-bar-${a.phase}`,className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"relative z-10 flex h-5 w-5 shrink-0 items-center justify-center",children:(0,b.jsx)("div",{className:`rounded-full ${q?"h-3 w-3 animate-pulse":"h-2.5 w-2.5"} ${q?"bg-blue-500":a.completedAt?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,b.jsx)("span",{className:`w-28 shrink-0 truncate text-sm font-medium ${j?"text-muted-foreground":"text-foreground/80"}`,children:o}),a.prompt?(0,b.jsx)("button",{type:"button",onClick:x,className:"text-muted-foreground/50 hover:text-foreground/70 -ms-1 shrink-0 opacity-0 transition-opacity group-hover/phase:opacity-100",title:g("activityTab.copyPromptToClipboard"),children:v?(0,b.jsx)(m.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,b.jsx)(l.Copy,{className:"h-3.5 w-3.5"})}):null,(0,b.jsx)("div",{className:`bg-muted relative min-w-0 flex-1 overflow-hidden rounded-full ${j?"h-1.5":"h-2"}`,children:q?(0,b.jsx)("div",{className:"absolute inset-0 rounded-full bg-blue-500/30",style:{backgroundImage:"linear-gradient(90deg, transparent 0%, rgb(59 130 246) 50%, transparent 100%)",backgroundSize:"200% 100%",animation:"shimmer 1.5s ease-in-out infinite"}}):(0,b.jsx)("div",{className:`h-full rounded-full transition-all duration-300 ${t}`,style:{width:`${Math.min(s,100)}%`}})}),(0,b.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-sm font-medium tabular-nums",children:bw(p)})]}),(0,b.jsxs)("div",{className:"ml-[28px] flex items-center gap-3 text-xs",children:[a.startedAt?(0,b.jsx)("span",{className:"text-muted-foreground/60 tabular-nums",children:bQ(a.startedAt)}):null,null!=u&&u>0?(0,b.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,b.jsx)(_.Zap,{className:"h-3 w-3 opacity-50"}),bP(u)]}):null,null!=a.costUsd&&a.costUsd>0?(0,b.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,b.jsx)(bJ,{className:"h-3 w-3 opacity-50"}),bR(a.costUsd)]}):null]}),null!=a.approvalWaitMs&&a.approvalWaitMs>0?(0,b.jsx)(bZ,{timing:a,maxDurationMs:d}):null]})}function bZ({timing:a,maxDurationMs:c}){let d=a.approvalWaitMs??0,e=c>0?Math.max(2,d/c*100):2;return(0,b.jsxs)("div",{"data-testid":`approval-wait-${a.phase}`,className:"ml-[26px] flex items-center gap-2 rounded-md bg-amber-50/50 px-1.5 py-1 dark:bg-amber-950/20",children:[(0,b.jsx)(bL.Timer,{className:"h-3.5 w-3.5 shrink-0 text-amber-500"}),(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs",children:"approval"}),(0,b.jsx)("div",{className:"bg-muted h-1.5 min-w-0 flex-1 overflow-hidden rounded-full",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-amber-500",style:{width:`${Math.min(e,100)}%`}})}),(0,b.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-xs tabular-nums",children:bw(d)})]})}function b$({totalExecMs:a,totalWaitMs:c,totalInputTokens:d,totalOutputTokens:f,totalCostUsd:g}){let{t:h}=(0,e.useTranslation)("web"),i=d+f;return(0,b.jsxs)("div",{"data-testid":"activity-summary",className:"border-border bg-card/30 flex flex-col gap-2 rounded-lg border p-3",children:[(0,b.jsx)("div",{className:"text-muted-foreground mb-1 text-xs font-semibold tracking-wider uppercase",children:"Summary"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[(0,b.jsx)(b_,{icon:a3.Clock,label:h("activityTab.execution"),value:bw(a)}),(0,b.jsx)(b_,{icon:bL.Timer,label:h("activityTab.wait"),value:c>0?bw(c):"n/a"}),(0,b.jsx)(b_,{icon:a3.Clock,label:"Wall-clock",value:c>0?bw(a+c):bw(a)}),(0,b.jsx)(b_,{icon:bJ,label:h("activityTab.cost"),value:g>0?bR(g):"n/a"}),(0,b.jsxs)("div",{className:"col-span-2 flex flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(_.Zap,{className:"h-3 w-3 opacity-40"}),"Tokens"]}),i>0?(0,b.jsxs)("span",{className:"flex items-center gap-2.5 text-sm tabular-nums",children:[(0,b.jsx)("span",{children:bP(i)}),(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-3 text-xs",title:"Input tokens / Output tokens",children:[(0,b.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,b.jsx)(bM,{className:"h-3 w-3 text-blue-500 opacity-60"}),bP(d)]}),(0,b.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,b.jsx)(bN,{className:"h-3 w-3 text-emerald-500 opacity-60"}),bP(f)]})]})]}):(0,b.jsx)("span",{className:"text-muted-foreground/40 text-sm italic tabular-nums",children:"n/a"})]})]})]})}function b_({icon:a,label:c,value:d,className:e=""}){let f="n/a"===d;return(0,b.jsxs)("div",{className:`flex flex-col gap-0.5 ${e}`,children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(a,{className:"h-3 w-3 opacity-40"}),c]}),(0,b.jsx)("span",{className:`text-sm tabular-nums ${f?"text-muted-foreground/40 italic":""}`,children:d})]})}var b0=a.i(745449),b1=a.i(944447);let b2=(0,T.default)("coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]),b3=(0,T.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var b4=a.i(366766);let b5=/^\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z?)\]\s+(?:\[([^\]]+)\]\s+)?(?:\[([^\]|]+)(?:\|([^\]]+))?\]\s+)?(.*)$/,b6=/^\[(tool-result|tool|text|delta|result|tokens|cmd|file|turn|thread|error|event|raw|WORKER)\]\s*(.*)/;function b7(a){let b=a.match(b5);if(!b)return{timestamp:null,phase:null,agent:null,model:null,tag:"raw",message:a,raw:a};let[,c,d,e,f,g]=b,h=null,i=null,j=null,k=g??"";if(null!=e&&null!=d)if(d.includes("|")){let[a,b]=d.split("|");i=a,j=b??null,k=`[${e}] ${g??""}`}else h=d,i=e,j=f??null;else if(null!=d)if(d.includes("|")){let[a,b]=d.split("|");i=a,j=b??null}else h=d;let l=k.match(b6),m="info";return l&&(m=l[1].toLowerCase(),k=l[2]),{timestamp:c??null,phase:h,agent:i,model:j,tag:m,message:k.trim(),raw:a}}function b8({content:a}){let d=(0,c.useMemo)(()=>a?a.split("\n").filter(a=>a.trim().length>0).map(b7):[],[a]);return 0===d.length?null:(0,b.jsx)("div",{className:"flex flex-col",children:d.map((a,c)=>(0,b.jsx)(b9,{line:a},c))})}function b9({line:a}){switch(a.tag){case"tool":return(0,b.jsx)(cc,{line:a});case"tool-result":return(0,b.jsx)(ci,{line:a});case"text":case"delta":return(0,b.jsx)(ce,{line:a});case"result":return(0,b.jsx)(cf,{line:a});case"tokens":case"turn":return(0,b.jsx)(cg,{line:a});case"cmd":return(0,b.jsx)(cj,{line:a});case"file":return(0,b.jsx)(ck,{line:a});case"thread":case"event":case"info":return(0,b.jsx)(cm,{line:a});case"error":return(0,b.jsx)(cl,{line:a});case"worker":return(0,b.jsx)(ch,{line:a});default:return(0,b.jsx)(cn,{line:a})}}function ca({value:a}){if(!a)return null;let c=a.replace(/^.*T/,"").replace("Z",""),d=c.split(":"),e=d.length>=3?`${d[1]}:${d[2].split(".")[0]}`:c;return(0,b.jsx)("span",{className:"text-muted-foreground/60 w-11 shrink-0 font-mono text-[10px]",children:e})}function cb({phase:a}){return a?(0,b.jsx)("span",{className:"bg-muted text-muted-foreground w-20 shrink-0 truncate rounded px-1.5 py-0.5 font-mono text-[10px] font-medium",title:a,children:a}):(0,b.jsx)("span",{className:"w-20 shrink-0"})}function cc({line:a}){var c;let d,{toolName:e,args:f}=-1===(d=(c=a.message).indexOf(" "))?{toolName:c,args:""}:{toolName:c.slice(0,d),args:c.slice(d+1)},g=function(a,b){try{let c=JSON.parse(b);if("Read"===a&&c.file_path||"Write"===a&&c.file_path||"Edit"===a&&c.file_path)return c.file_path;if("Glob"===a&&c.pattern||"Grep"===a&&c.pattern)return c.pattern;if("Bash"===a&&c.command)return c.command;if("Task"===a&&c.description)return c.description}catch{if(b.length>0)return b}return null}(e,f);return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 border-b border-transparent px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(cd,{toolName:e}),(0,b.jsx)("span",{className:"text-xs font-semibold text-violet-600 dark:text-violet-400",children:e}),g?(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-xs break-all",children:g}):null]})]})}function cd({toolName:a}){let c=a.toLowerCase();return"bash"===c?(0,b.jsx)(I.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"read"===c||"glob"===c||"grep"===c?(0,b.jsx)(K.FileText,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"write"===c||"edit"===c?(0,b.jsx)(b4.FileCode,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):(0,b.jsx)(I.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"})}function ce({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(Z.MessageSquare,{className:"mt-0.5 h-3 w-3 shrink-0 text-blue-500"}),(0,b.jsx)("span",{className:"text-foreground/80 min-w-0 text-xs leading-relaxed",children:a.message})]})]})}function cf({line:a}){var c;let d,e,{chars:f}=(d=(c=a.message).match(/^(\d+)\s+chars/),e=c.match(/session=(\S+)/),{chars:d?parseInt(d[1],10):0,sessionId:e?e[1]:null});return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(aM.CheckCircle2,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-500"}),(0,b.jsxs)("span",{className:"text-xs font-medium text-emerald-600 dark:text-emerald-400",children:["Result: ",f.toLocaleString()," chars"]})]})]})}function cg({line:a}){let c,{inputTokens:d,outputTokens:e}=(c=a.message.match(/^(\d+)\s+in\s*\/\s*(\d+)\s+out/))?{inputTokens:parseInt(c[1],10),outputTokens:parseInt(c[2],10)}:{inputTokens:0,outputTokens:0};return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b2,{className:"mt-0.5 h-3 w-3 shrink-0 text-amber-500"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-xs",children:[(0,b.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:d.toLocaleString()})," in / ",(0,b.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:e.toLocaleString()})," out"]})]})]})}function ch({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-zinc-50 px-3 py-1.5 transition-colors dark:bg-zinc-900/50",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b3,{className:"mt-0.5 h-3 w-3 shrink-0 text-zinc-500"}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium break-all",children:a.message})]})]})}function ci({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(aH.ArrowRight,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-400"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-[11px] break-all",children:a.message})]})]})}function cj({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(j.Play,{className:"mt-0.5 h-3 w-3 shrink-0 text-cyan-500"}),(0,b.jsx)("span",{className:"min-w-0 font-mono text-xs break-all text-cyan-700 dark:text-cyan-400",children:a.message})]})]})}function ck({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b4.FileCode,{className:"mt-0.5 h-3 w-3 shrink-0 text-orange-500"}),(0,b.jsx)("span",{className:"min-w-0 text-xs break-all text-orange-700 dark:text-orange-400",children:a.message})]})]})}function cl({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-red-50 px-3 py-1.5 transition-colors dark:bg-red-950/30",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(P.AlertCircle,{className:"mt-0.5 h-3 w-3 shrink-0 text-red-500"}),(0,b.jsx)("span",{className:"min-w-0 text-xs font-medium break-all text-red-700 dark:text-red-400",children:a.message})]})]})}function cm({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 text-xs break-all",children:a.message})]})}function cn({line:a}){return(0,b.jsx)("div",{className:"px-3 py-0.5",children:(0,b.jsx)("span",{className:"text-muted-foreground/70 font-mono text-[11px] break-all whitespace-pre-wrap",children:a.raw})})}function co({content:a,isConnected:d,error:f}){let{t:g}=(0,e.useTranslation)("web"),h=(0,c.useRef)(null),[i,j]=(0,c.useState)(!0),[k,l]=(0,c.useState)("structured"),m=(0,c.useCallback)(()=>{let a=h.current;a&&j(a.scrollHeight-a.scrollTop-a.clientHeight<40)},[]),n=(0,c.useCallback)(()=>{let a=h.current;a&&(a.scrollTop=a.scrollHeight,j(!0))},[]);return((0,c.useEffect)(()=>{i&&h.current&&(h.current.scrollTop=h.current.scrollHeight)},[a,i]),f)?(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:f})]}):a?(0,b.jsxs)("div",{className:"flex h-full flex-col","data-testid":"log-tab",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 py-1.5",children:[(0,b.jsx)("span",{className:`h-2 w-2 rounded-full ${d?"bg-emerald-500":"bg-zinc-400"}`}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:d?"Live":"Disconnected"}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>l("structured"),className:`rounded p-1 transition-colors ${"structured"===k?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:g("logTab.structuredView"),children:(0,b.jsx)(K.FileText,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{type:"button",onClick:()=>l("raw"),className:`rounded p-1 transition-colors ${"raw"===k?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:g("logTab.rawView"),children:(0,b.jsx)(b1.Code,{className:"h-3.5 w-3.5"})}),i?null:(0,b.jsxs)("button",{type:"button",onClick:n,className:"text-muted-foreground hover:text-foreground ms-1 flex items-center gap-1 text-xs",children:[(0,b.jsx)(b0.ArrowDown,{className:"h-3 w-3"}),"Jump to bottom"]})]})]}),(0,b.jsx)("div",{ref:h,onScroll:m,className:`flex-1 overflow-y-auto ${"raw"===k?"bg-zinc-950 p-3 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap text-zinc-300":"bg-background"}`,children:"structured"===k?(0,b.jsx)(b8,{content:a}):a})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(I.Terminal,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:g("logTab.noLogOutput")}),d?(0,b.jsx)("p",{className:"text-muted-foreground text-xs",children:"Waiting for log data..."}):null]})}let cp=(0,T.default)("list-todo",[["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"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]);var cq=a.i(804019),cr=a.i(483886);let cs=(0,T.default)("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),ct={Todo:{icon:cq.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Todo"},"Work in Progress":{icon:h.Loader2,colorClass:"text-blue-600",borderClass:"border-blue-200",spinning:!0,label:"In Progress"},Done:{icon:m.Check,colorClass:"text-emerald-600",borderClass:"border-emerald-200",label:"Done"},Review:{icon:cr.Eye,colorClass:"text-amber-600",borderClass:"border-amber-200",label:"Review"}},cu={icon:cq.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Unknown"};function cv({tasks:a}){let{t:c}=(0,e.useTranslation)("web");return 0===a.length?(0,b.jsx)("div",{className:"flex flex-col items-center justify-center gap-2 py-4",children:(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:c("taskProgress.noTasksDefined")})}):(0,b.jsxs)("div",{"data-testid":"task-progress-view",className:"flex flex-col gap-3",children:[(0,b.jsx)(cw,{tasks:a}),(0,b.jsx)("div",{"data-testid":"task-progress-list",className:"flex flex-col gap-2",children:a.map((a,c)=>(0,b.jsx)(cy,{task:a,index:c},a.title||`task-${c}`))})]})}function cw({tasks:a}){let{t:d}=(0,e.useTranslation)("web"),f=(0,c.useMemo)(()=>{let b=a.filter(a=>"Done"===a.state).length,c=a.filter(a=>"Work in Progress"===a.state).length,d=a.filter(a=>"Review"===a.state).length,e=a.filter(a=>"Done"!==a.state&&"Work in Progress"!==a.state&&"Review"!==a.state).length,f=a.length,g=f>0?Math.round(b/f*100):0;return{done:b,wip:c,review:d,todo:e,total:f,percent:g}},[a]);return(0,b.jsxs)("div",{"data-testid":"task-progress-summary",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Task Progress"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-xs",children:[f.done," of ",f.total," done"]})]}),(0,b.jsx)("div",{className:"bg-muted h-2 w-full overflow-hidden rounded-full",children:(0,b.jsx)("div",{"data-testid":"task-progress-bar",className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${f.percent}%`}})}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3",children:[f.done>0?(0,b.jsx)(cx,{icon:m.Check,label:d("taskProgress.done"),count:f.done,className:"text-emerald-600"}):null,f.wip>0?(0,b.jsx)(cx,{icon:h.Loader2,label:d("taskProgress.inProgress"),count:f.wip,className:"text-blue-600"}):null,f.review>0?(0,b.jsx)(cx,{icon:cr.Eye,label:d("taskProgress.review"),count:f.review,className:"text-amber-600"}):null,f.todo>0?(0,b.jsx)(cx,{icon:cq.Circle,label:d("taskProgress.todo"),count:f.todo,className:"text-muted-foreground"}):null]})]})}function cx({icon:a,label:c,count:e,className:f}){return(0,b.jsxs)("span",{className:(0,d.cn)("flex items-center gap-1 text-xs",f),children:[(0,b.jsx)(a,{className:"h-3 w-3"}),e," ",c]})}function cy({task:a,index:e}){let[f,g]=(0,c.useState)(!1),h=ct[a.state]??cu,i=h.icon,j=a.actionItems.length>0,k=(0,c.useCallback)(()=>{j&&g(a=>!a)},[j]);return(0,b.jsxs)("div",{"data-testid":`task-card-${e}`,className:(0,d.cn)("rounded-lg border",h.borderClass),children:[(0,b.jsxs)("button",{type:"button",onClick:k,disabled:!j,className:(0,d.cn)("flex w-full items-start gap-2 px-3 py-2.5 text-start",j&&"hover:bg-muted/50 cursor-pointer transition-colors"),children:[(0,b.jsx)(i,{className:(0,d.cn)("mt-0.5 h-4 w-4 shrink-0",h.colorClass,h.spinning&&"animate-spin")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:(0,d.cn)("text-sm font-medium",h.colorClass),children:a.title}),a.description?(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description}):null]}),j?(0,b.jsx)(aj.ChevronRight,{className:(0,d.cn)("text-muted-foreground mt-0.5 h-4 w-4 shrink-0 transition-transform",f&&"rotate-90")}):null]}),f&&j?(0,b.jsx)("div",{className:"border-t px-3 py-2.5",children:(0,b.jsx)("div",{className:"flex flex-col gap-2",children:a.actionItems.map((a,c)=>(0,b.jsx)(cz,{item:a},a.name||`ai-${c}`))})}):null]})}function cz({item:a}){let c=a.acceptanceCriteria.length,d=a.acceptanceCriteria.filter(a=>a.verified).length,e=c>0&&d===c;return(0,b.jsxs)("div",{"data-testid":"action-item",className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[e?(0,b.jsx)(aM.CheckCircle2,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-emerald-600"}):(0,b.jsx)(cs,{className:"text-muted-foreground mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.name}),a.description?(0,b.jsx)("span",{className:"text-muted-foreground text-[11px]",children:a.description}):null]}),c>0?(0,b.jsxs)("span",{className:"text-muted-foreground ml-auto shrink-0 text-[11px]",children:[d,"/",c]}):null]}),c>0?(0,b.jsx)("div",{className:"ms-5.5 flex flex-col gap-1",children:a.acceptanceCriteria.map((a,c)=>(0,b.jsx)(cA,{criterion:a},a.description||`ac-${c}`))}):null]})}function cA({criterion:a}){return(0,b.jsxs)("div",{"data-testid":"acceptance-criterion",className:"flex items-start gap-1.5",children:[a.verified?(0,b.jsx)(m.Check,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-600"}):(0,b.jsx)(cq.Circle,{className:"text-muted-foreground mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:(0,d.cn)("text-[11px]",a.verified?"text-muted-foreground line-through":"text-foreground"),children:a.description})]})}let cB={Requirements:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",ClarificationRequired:"border-transparent bg-amber-50 text-amber-700 hover:bg-amber-50",Ready:"border-transparent bg-green-50 text-green-700 hover:bg-green-50"};function cC({plan:a,loading:c,error:d}){return c?(0,b.jsx)("div",{"data-testid":"plan-tab-loading",className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):d?(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:d})]}):a?(0,b.jsxs)("div",{className:"flex flex-col gap-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Plan State"}),(0,b.jsx)(al.Badge,{className:cB[a.state]??"border-transparent bg-gray-50 text-gray-700",children:a.state})]}),a.overview?(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Overview"}),(0,b.jsx)("p",{className:"text-sm leading-relaxed",children:a.overview})]}):null,(0,b.jsx)(cv,{tasks:a.tasks})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(cp,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:"No plan created yet"})]})}var cD=a.i(661544);function cE(){return{data:null,loading:!1,error:null}}let cF=[{key:"overview",label:"Overview",icon:Q.LayoutDashboard},{key:"activity",label:"Activity",icon:R.Activity},{key:"log",label:"Log",icon:S.ScrollText},{key:"plan",label:"Plan",icon:U},{key:"prd-review",label:"PRD Review",icon:V},{key:"tech-decisions",label:"Tech Decisions",icon:W.Cpu},{key:"product-decisions",label:"Product",icon:X.Package},{key:"merge-review",label:"Merge Review",icon:Y},{key:"chat",label:"Chat",icon:Z.MessageSquare}],cG={activity:async function(a){let b=await ac(a);if("error"in b)throw Error(b.error);return{timings:b.timings,rejectionFeedback:b.rejectionFeedback}},plan:async function(a){let b=await ad(a);if("error"in b)throw Error(b.error);return b.plan}};function cH({featureName:a,headerContent:e,featureNode:g,featureId:i,initialTab:l,urlTab:m,prdData:n,prdSelections:o,onPrdSelect:p,onPrdApprove:q,onPrdReject:r,isPrdLoading:s,techData:t,onTechApprove:u,onTechReject:v,isTechLoading:w,productData:x,mergeData:y,onMergeApprove:z,onMergeReject:A,isMergeLoading:B,syncStatus:C,syncLoading:D,syncError:E,onRefreshSync:G,onRebaseOnMain:H,rebaseLoading:I,rebaseError:J,isRejecting:K,chatInput:L,onChatInputChange:M,pinnedConfig:N,continuationActionsDisabled:O=!1,sseEvents:Q,interactiveAgentEnabled:R=!0,onRetry:S,onStop:T,onStart:U}){let V,W=(0,f.usePathname)(),X=(0,c.useMemo)(()=>(function(a,b=!0){let c=["overview","activity"];return a.hasAgentRun&&c.push("log"),a.hasPlan&&c.push("plan"),"requirements"===a.lifecycle&&"action-required"===a.state&&c.push("prd-review"),"implementation"===a.lifecycle&&"action-required"===a.state&&c.push("tech-decisions","product-decisions"),"review"===a.lifecycle&&("action-required"===a.state||"error"===a.state)&&c.push("merge-review"),"maintain"===a.lifecycle&&a.pr&&c.push("merge-review"),b&&c.push("chat"),c})(g,R),[g,R]),Y=(0,c.useMemo)(()=>cF.filter(a=>X.includes(a.key)).map(a=>"merge-review"===a.key&&"maintain"===g.lifecycle?{...a,label:"Merge History"}:a),[X,g.lifecycle]),Z=(0,c.useMemo)(()=>{let a=W.match(/^(\/feature\/[^/]+)/);return a?a[1]:W},[W]),ac=(0,c.useMemo)(()=>m&&X.includes(m)?m:l&&X.includes(l)?l:"overview",[]),[ad,af]=(0,c.useState)(ac),ag=function(a){let[b,d]=(0,c.useState)(""),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(null),j=(0,c.useCallback)(()=>{i.current&&(i.current.close(),i.current=null),f(!1)},[]);return(0,c.useEffect)(()=>{if(!a){d(""),f(!1),h(null);return}d(""),h(null);let b=new EventSource(`/api/feature-logs?featureId=${a}`);return i.current=b,b.onopen=()=>{f(!0)},b.addEventListener("initial",a=>{d(JSON.parse(a.data).content)}),b.addEventListener("log",a=>{let b=JSON.parse(a.data);d(a=>a+b.content)}),b.addEventListener("error",a=>{try{let b=JSON.parse(a.data);h(b.error)}catch{h(a.data?String(a.data):"Log stream unavailable")}}),b.onerror=()=>{f(!1)},()=>{b.close(),i.current=null}},[a,j]),{content:b,isConnected:e,error:g}}("log"===ad?i:null),{tabs:ai,fetchTab:aj,refreshTab:ak}=function(a,b){let d=Object.keys(b),[e,f]=(0,c.useState)(()=>{let a={};for(let b of d)a[b]=cE();return a}),g=(0,c.useRef)(b);g.current=b;let h=(0,c.useRef)(a);h.current=a;let i=(0,c.useRef)(!0);(0,c.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let j=(0,c.useRef)(a);(0,c.useEffect)(()=>{j.current!==a&&(j.current=a,f(a=>{let b={};for(let c of Object.keys(a))b[c]=cE();return b}))},[a]);let k=(0,c.useCallback)(async a=>{let b=g.current[a],c=h.current;if(b){i.current&&f(b=>b[a]?.data!==null?b:{...b,[a]:{...b[a],loading:!0,error:null}});try{let d=await b(c);i.current&&f(b=>({...b,[a]:{data:d,loading:!1,error:null}}))}catch(b){i.current&&f(c=>{let d=b instanceof Error?b.message:"Failed to fetch tab data",e=c[a]?.data??null;return{...c,[a]:{data:e,loading:!1,error:e?null:d}}})}}},[]),l=(0,c.useCallback)(async a=>{let b=e[a];b&&null!==b.data||b&&b.loading||await k(a)},[e,k]);return{tabs:e,fetchTab:l,refreshTab:(0,c.useCallback)(async a=>{await k(a)},[k])}}(i,cG),al=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!al.current)return;al.current=!1;let a="overview"===ad?Z:`${Z}/${ad}`;a!==W&&window.history.pushState(null,"",a)},[ad,Z,W]);let am=(0,c.useRef)(W);(0,c.useEffect)(()=>{if(am.current===W||(am.current=W,al.current))return;let a=W.split("/"),b=a.length>=4?a[3]:void 0,c=b&&X.includes(b)?b:"overview";c!==ad&&(af(c),("activity"===c||"plan"===c)&&aj(c))},[W]);let an=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!an.current&&(an.current=!0,!m&&"overview"!==ac)){let a=`${Z}/${ac}`;a!==W&&window.history.replaceState(null,"",a)}},[]);let ao=(0,c.useRef)(!1);(0,c.useEffect)(()=>{ao.current||(ao.current=!0,("activity"===ad||"plan"===ad)&&aj(ad))},[ad,aj]);let ap=(0,c.useRef)(i);(0,c.useEffect)(()=>{ap.current!==i&&(ap.current=i,af("overview"))},[i]);let aq=(0,c.useRef)(l);(0,c.useEffect)(()=>{if(aq.current!==l&&l&&X.includes(l)){aq.current=l,af(l),("activity"===l||"plan"===l)&&aj(l);let a="overview"===l?Z:`${Z}/${l}`;a!==window.location.pathname&&window.history.replaceState(null,"",a)}},[l,X,Z,aj]),(0,c.useEffect)(()=>{X.includes(ad)||(af("overview"),window.location.pathname!==Z&&window.history.replaceState(null,"",Z))},[X,ad,Z]);let ar=(0,c.useRef)(ad);ar.current=ad;let as=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(!Q||0===Q.length||(as.current>Q.length&&(as.current=0),Q.length<=as.current))return;let a=Q.slice(as.current);if(as.current=Q.length,!a.some(a=>a.featureId===i))return;ak("activity");let b=ar.current;"plan"===b&&ak(b)},[Q,i,ak]);let at="running"===g.state||"creating"===g.state;(0,c.useEffect)(()=>{if(!at)return;let a=setInterval(()=>{ak("activity")},5e3);return()=>clearInterval(a)},[at,ak]);let av=(0,c.useCallback)(a=>{al.current=!0,af(a),("activity"===a||"plan"===a)&&aj(a)},[aj]);return(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,b.jsxs)(ab.Tabs,{value:ad,onValueChange:av,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsx)(ab.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:Y.map(a=>{let c=a.icon;return(0,b.jsxs)(ab.TabsTrigger,{value:a.key,className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(c,{className:"mr-1.5 size-4"}),a.label]},a.key)})}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[a?(0,b.jsxs)("div",{className:"flex h-12 items-stretch gap-2 pr-0 pl-4","data-testid":"feature-drawer-header",children:[(0,b.jsx)("div",{className:"flex items-center",children:g.fastMode?(0,b.jsx)(_.Zap,{className:"size-4 shrink-0 text-amber-500"}):(0,b.jsx)(aa.Layers,{className:"text-muted-foreground/50 size-4 shrink-0"})}),(0,b.jsx)("h2",{className:"text-foreground flex min-w-0 items-center truncate text-base font-semibold tracking-tight",children:a}),g.repositoryName?(0,b.jsxs)("span",{className:"animate-in fade-in flex shrink-0 items-center gap-1.5 self-center duration-200",children:[(0,b.jsx)("span",{className:"text-muted-foreground/30 text-sm",children:"/"}),g.remoteUrl?(0,b.jsx)("a",{href:g.remoteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground text-sm",children:g.repositoryName}):(0,b.jsx)("span",{className:"text-muted-foreground text-sm",children:g.repositoryName})]}):(0,b.jsxs)("span",{className:"flex items-center gap-1.5 self-center",children:[(0,b.jsx)("span",{className:"text-muted-foreground/30 text-sm",children:"/"}),(0,b.jsx)("span",{className:"bg-muted h-4 w-16 animate-pulse rounded"})]}),(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex shrink-0 cursor-default items-center self-stretch text-xs font-medium",children:[(0,b.jsxs)("div",{className:(0,d.cn)("flex items-center gap-1.5 self-stretch px-3",ae.featureNodeStateConfig[g.state].labelClass),children:["running"===g.state?(0,b.jsx)(ah,{size:"sm",className:"shrink-0"}):(V=ae.featureNodeStateConfig[g.state].icon,(0,b.jsx)(V,{className:"size-3.5 shrink-0"})),ae.featureNodeStateConfig[g.state].label]}),"pending"===g.state&&U?(0,b.jsxs)("button",{type:"button",onClick:()=>U(g.featureId),disabled:O,className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-green-500/10 hover:text-green-600 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-green-400","data-testid":"feature-drawer-start-button",children:[(0,b.jsx)(j.Play,{className:"size-3.5"})," Start"]}):"error"===g.state&&S?(0,b.jsxs)("button",{type:"button",onClick:()=>S(g.featureId),disabled:O,className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-red-400","data-testid":"feature-drawer-retry-button",children:[(0,b.jsx)($.RotateCcw,{className:"size-3.5"})," Retry"]}):"running"===g.state&&T?(0,b.jsxs)("button",{type:"button",onClick:()=>T(g.featureId),className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 dark:hover:text-red-400","data-testid":"feature-drawer-stop-button",children:[(0,b.jsx)(k.Square,{className:"size-3.5"})," Stop"]}):null]})}),g.errorMessage?(0,b.jsxs)(F.TooltipContent,{side:"bottom",align:"end",sideOffset:4,className:"z-[100] max-w-xs cursor-pointer text-xs leading-relaxed select-text",onClick:()=>{navigator.clipboard.writeText(g.errorMessage)},children:[g.errorMessage,(0,b.jsx)("span",{className:"text-muted-foreground ml-1 text-[10px] italic",children:"(click to copy)"})]}):null]})})]}):null,e]}),(0,b.jsx)(ab.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(bE,{data:g,pinnedConfig:N,syncStatus:C,syncLoading:D,syncError:E,onRefreshSync:G,onRebaseOnMain:H,rebaseLoading:I,rebaseError:J})}),(0,b.jsx)(ab.TabsContent,{value:"activity",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(bV,{timings:ai.activity.data?.timings??null,loading:ai.activity.loading,error:ai.activity.error,rejectionFeedback:ai.activity.data?.rejectionFeedback})}),(0,b.jsx)(ab.TabsContent,{value:"log",className:"mt-0 flex-1 overflow-hidden",children:(0,b.jsx)(co,{content:ag.content,isConnected:ag.isConnected,error:ag.error})}),(0,b.jsx)(ab.TabsContent,{value:"plan",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(cC,{plan:ai.plan.data,loading:ai.plan.loading,error:ai.plan.error})}),X.includes("prd-review")?(0,b.jsx)(ab.TabsContent,{value:"prd-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:n?(0,b.jsx)(au,{data:n,selections:o??{},onSelect:p??(()=>void 0),onApprove:q??(()=>void 0),onReject:r,isProcessing:!!(s||O),isRejecting:K,chatInput:L,onChatInputChange:M}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,X.includes("tech-decisions")?(0,b.jsx)(ab.TabsContent,{value:"tech-decisions",className:"mt-0 flex min-h-0 flex-1 flex-col",children:t?(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,b.jsx)(az,{data:t})}),(0,b.jsx)(cI,{onApprove:u??(()=>void 0),onReject:v,isProcessing:!!(w||O),isRejecting:K,chatInput:L,onChatInputChange:M})]}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,X.includes("product-decisions")?(0,b.jsx)(ab.TabsContent,{value:"product-decisions",className:"mt-0 flex-1 overflow-y-auto",children:null===x?(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):x?(0,b.jsx)(aC,{data:x}):(0,b.jsx)("p",{className:"text-muted-foreground p-4 text-center text-sm",children:"No product decisions available."})}):null,X.includes("merge-review")?(0,b.jsx)(ab.TabsContent,{value:"merge-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:y?(0,b.jsx)(a2,{data:y,readOnly:"maintain"===g.lifecycle,onApprove:z??(()=>void 0),onReject:A,isProcessing:!!(B||O),isRejecting:K,chatInput:L,onChatInputChange:M}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:B?(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"}):(0,b.jsxs)("div",{className:"text-muted-foreground flex flex-col items-center gap-2 text-sm",children:[(0,b.jsx)(P.AlertCircle,{className:"h-6 w-6"}),(0,b.jsx)("span",{children:"Merge review data unavailable"})]})})}):null,X.includes("chat")?(0,b.jsx)(ab.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(cD.ChatTab,{featureId:i,worktreePath:g.worktreePath})}):null]})})}function cI({onApprove:a,onReject:c,isProcessing:d,isRejecting:f,chatInput:g,onChatInputChange:h}){let{t:i}=(0,e.useTranslation)("web");return(0,b.jsx)(at,{onReject:c,onApprove:a,approveLabel:i("featureDrawer.approvePlan"),revisionPlaceholder:"Ask AI to revise the plan...",isProcessing:d,isRejecting:f,chatInput:g,onChatInputChange:h})}var cJ=a.i(428317),cK=a.i(890179),cL=a.i(622032);let cM=(0,p.createServerReference)("408f2bee8092e551339a9af79fa7868ebac39bb18f",p.callServer,void 0,p.findSourceMapURL,"rebaseFeature");var cN=a.i(574146);function cO(a){return"requirements"===a.lifecycle&&"action-required"===a.state?"prd-review":"implementation"===a.lifecycle&&"action-required"===a.state?"tech-decisions":"review"===a.lifecycle&&("action-required"===a.state||"error"===a.state)?"merge-review":"overview"}function cP(a,b,d,e,f,h){let[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(d),l=(0,c.useRef)(e);return k.current=d,l.current=e,(0,c.useEffect)(()=>{if(l.current(),!a)return;let c=!1;return j(!0),b(a).then(a=>{c||k.current(a)}).catch(()=>{!c&&f&&g.toast.error(f)}).finally(()=>{c||j(!1)}),()=>{c=!0}},[a,b,f,h]),i}let cQ=(0,p.createServerReference)("404ba083b9da6fae34c28588bd7a7fc6d7947974a7",p.callServer,void 0,p.findSourceMapURL,"getFeatureDrawerData"),cR=(0,p.createServerReference)("40d04c85150227ba6c2101c82b107923a448968740",p.callServer,void 0,p.findSourceMapURL,"getBranchSyncStatus"),cS=new Map,cT=(0,p.createServerReference)("70326d4458546ad4647a6e4c3a9d88fc1050220d60",p.callServer,void 0,p.findSourceMapURL,"updateFeaturePinnedConfig");function cU({view:a,urlTab:p,interactiveAgentEnabled:H=!0}){var I,J;let K,L,M,N,P,Q,R=(0,y.useFeatureFlags)(),{t:S}=(0,e.useTranslation)("web"),T=(0,f.useRouter)(),U=(0,z.useSoundAction)("reject"),[V,W]=(0,c.useState)(a),[X,Y]=(0,c.useState)(()=>"feature"===a.type?by(a.node):null),[Z,$]=(0,c.useState)(()=>"feature"===a.type?by(a.node):null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(null),ad=(0,c.useRef)(null);(0,c.useEffect)(()=>{W(b=>"feature"===b.type&&"feature"===a.type&&b.node.featureId===a.node.featureId?{...a,node:{...b.node,...a.node}}:a)},[a]);let ae="feature"===V.type?V.node:null,af=!!ae&&(I=ae.state,bx.has(I));(0,c.useEffect)(()=>{if("feature"!==V.type||_)return;let a=by(V.node),b=a?`${V.node.featureId}:${a.agentType}:${a.modelId}`:`${V.node.featureId}:none`,c=ad.current!==b;ad.current=b,Y(a),$(a),c&&ac(null)},[V,_]);let{events:ag}=(0,C.useAgentEventsContext)(),ah=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(ah.current>ag.length&&(ah.current=0),!ae||ag.length<=ah.current)return;let a=ag.slice(ah.current);for(let b of(ah.current=ag.length,(0,cN.resolveSseEventUpdates)(a)))b.featureId===ae.featureId&&"deleting"!==ae.state&&(void 0!==b.state||void 0!==b.lifecycle)&&W(a=>{if("feature"!==a.type)return a;let c={...a.node,...void 0!==b.state&&{state:b.state},...void 0!==b.lifecycle&&{lifecycle:b.lifecycle}};return{...a,node:c,initialTab:cO(c)}})},[ag,ae]);let ai=(0,f.usePathname)().startsWith("/feature/");J=ae?.featureId??null,K=(0,c.useRef)(ai),L=(0,c.useRef)(!1),M=(0,c.useRef)(0),N=(0,c.useCallback)(async()=>{if(!J||L.current)return;L.current=!0;let a=M.current;try{let b=await cQ(J);if(!b||a!==M.current)return;W(a=>(function(a,b){if("feature"!==a.type)return a;let c={...a.node,...b},d=c.state!==a.node.state||c.lifecycle!==a.node.lifecycle;return{...a,node:c,initialTab:d?cO(c):a.initialTab}})(a,b))}catch{}finally{L.current=!1}},[J,W]),P=(0,c.useRef)(!1),(0,c.useEffect)(()=>{!ai||K.current&&P.current||(P.current=!0,M.current+=1,L.current=!1,N()),K.current=ai},[ai,N]),(0,c.useEffect)(()=>{if(!ai||!J)return;let a=setInterval(()=>{N()},15e3);return()=>clearInterval(a)},[ai,J,N]);let aj=(0,c.useCallback)(()=>{T.push("/control-center")},[T]),[ak,al]=(0,c.useState)(""),[am,an]=(0,c.useState)(null),[ao,ap]=(0,c.useState)({}),[aq,ar]=(0,c.useState)({}),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(!1),aE=`${ae?.featureId}:${ae?.state}`,aF=(0,c.useRef)(aE);(0,c.useEffect)(()=>{aE!==aF.current&&(aF.current=aE,aD(!1))},[aE]);let[aG,aH]=(0,c.useState)(!1),aI=(0,c.useRef)(!1),aJ="feature"===V.type?V.initialTab:void 0;(0,c.useEffect)(()=>{al("")},[aJ]);let aK=(0,c.useRef)(0),aL=(0,c.useRef)(ae?.state),aM=(0,c.useRef)(ae?.lifecycle);(ae?.state!==aL.current||ae?.lifecycle!==aM.current)&&(aL.current=ae?.state,aM.current=ae?.lifecycle,aK.current+=1);let aN=aK.current,aO=cP(ae?.lifecycle==="requirements"&&ae?.state==="action-required"?ae.featureId:null,v,a=>{if(a.error)return void g.toast.error(a.error);if(a.questionnaire){an(a.questionnaire);let b={};for(let c of a.questionnaire.questions){let a=c.options.find(a=>a.recommended);a&&(b[c.id]=a.id)}ap(b),ar(b)}},()=>{ap({}),ar({}),an(null)},"Failed to load questionnaire",aN),aP=ae?.lifecycle==="implementation"&&ae?.state==="action-required"?ae.featureId:null,aQ=cP(aP,w,a=>{a.error?g.toast.error(a.error):a.techDecisions&&at(a.techDecisions)},()=>at(null),"Failed to load tech decisions",aN),aR=cP(aP,v,a=>{a.productDecisions&&av(a.productDecisions)},()=>av(void 0),void 0,aN),aS=cP(ae?.lifecycle==="review"&&(ae?.state==="action-required"||ae?.state==="error")||ae?.lifecycle==="maintain"&&ae?.pr?ae.featureId:null,x,a=>{"error"in a?g.toast.error(a.error):ax(a)},()=>ax(null),"Failed to load merge review data",aN),aT=ak.trim().length>0,aU=ae?.lifecycle==="requirements"&&ae?.state==="action-required"&&Object.keys(aq).some(a=>aq[a]!==ao[a]),aV=(0,c.useCallback)(()=>{al(""),ap({...aq})},[aq]),{attemptClose:aW}=(0,A.useGuardedDrawerClose)({open:ai,isDirty:aT||aU,onClose:aj,onReset:aV}),aX=(0,c.useCallback)(async(a,b,c=[],d)=>{if(!_&&ae?.featureId){aI.current=!0,aH(!0);try{let e=c.map(a=>a.path).filter(Boolean),f=c.filter(a=>a.notes?.trim()),h=f.length>0?`${a}
|
|
1
|
+
module.exports=[964885,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(385536);a.i(490370);var e=a.i(224640),f=a.i(91109),g=a.i(952313),h=a.i(488064),i=a.i(216605),j=a.i(450490),k=a.i(5698),l=a.i(598410),m=a.i(872016),n=a.i(433511),o=a.i(301585),p=a.i(289111);let q=(0,p.createServerReference)("6026ed96099ef7fdbe4b7acb63a6b3d442a6b9e818",p.callServer,void 0,p.findSourceMapURL,"approveFeature");var r=a.i(932301),s=a.i(534950),t=a.i(361505);let u=(0,p.createServerReference)("70b0e2a04e5b6633daa29593394388c600c99bc7bb",p.callServer,void 0,p.findSourceMapURL,"rejectFeature"),v=(0,p.createServerReference)("40636f4a0895a4fdbd9b729bb3dbc9b6895c47268d",p.callServer,void 0,p.findSourceMapURL,"getFeatureArtifact"),w=(0,p.createServerReference)("40afad777298e066df621bab6aad1dc9db68ca0b8a",p.callServer,void 0,p.findSourceMapURL,"getResearchArtifact"),x=(0,p.createServerReference)("40e9c0b468a6910fc0075fe2316c7d2553fe1bb0fb",p.callServer,void 0,p.findSourceMapURL,"getMergeReviewData");var y=a.i(821333),z=a.i(219884),A=a.i(196213),B=a.i(118662),C=a.i(484871);a.i(478454);var D=a.i(124255);a.i(149235);var E=a.i(985080),F=a.i(182934);a.i(777569);var G=a.i(865310),H=a.i(450488),I=a.i(863698),J=a.i(403195),K=a.i(162147),L=a.i(782697);let M="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40";function N({loading:a,error:c,icon:d}){return a?(0,b.jsx)(h.Loader2,{className:"size-3.5 animate-spin"}):c?(0,b.jsx)(L.CircleAlert,{className:"text-destructive size-3.5"}):(0,b.jsx)(d,{className:"size-4"})}function O({actions:a,repositoryPath:d,worktreePath:e,showSpecs:f}){let[g,h]=(0,c.useState)(!1);return(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openInIde,disabled:a.ideLoading,"aria-label":"Open in IDE",children:(0,b.jsx)(N,{loading:a.ideLoading,error:a.ideError,icon:H.Code2})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openInShell,disabled:a.shellLoading,"aria-label":"Open terminal",children:(0,b.jsx)(N,{loading:a.shellLoading,error:a.shellError,icon:I.Terminal})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openFolder,disabled:a.folderLoading,"aria-label":"Open folder",children:(0,b.jsx)(N,{loading:a.folderLoading,error:a.folderError,icon:J.FolderOpen})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),f?(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:a.openSpecsFolder,disabled:a.specsLoading,"aria-label":"Open specs",children:(0,b.jsx)(N,{loading:a.specsLoading,error:a.specsError,icon:K.FileText})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:"Open specs"})]}):null,(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:M,onClick:()=>{navigator.clipboard.writeText(e??d),h(!0),setTimeout(()=>h(!1),2e3)},"aria-label":"Copy path",children:g?(0,b.jsx)(m.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(l.Copy,{className:"size-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:g?"Copied!":"Copy path"})]})]})})}var P=a.i(272980),Q=a.i(256957),R=a.i(144981),S=a.i(574951),T=a.i(225700);let U=(0,T.default)("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]),V=(0,T.default)("file-check",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]);var W=a.i(665355),X=a.i(221084);let Y=(0,T.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var Z=a.i(612882),$=a.i(218615),_=a.i(103942),aa=a.i(865758),ab=a.i(441305);let ac=(0,p.createServerReference)("405387367bc43a6f646195ace4aa8f8df492017b8c",p.callServer,void 0,p.findSourceMapURL,"getFeaturePhaseTimings"),ad=(0,p.createServerReference)("404ebd66f38cf276965a41f21dce25fb8cce309d4c",p.callServer,void 0,p.findSourceMapURL,"getFeaturePlan");a.i(54250);var ae=a.i(327039);let af=(0,a.i(142261).cva)("inline-block shrink-0",{variants:{size:{sm:"size-5",md:"size-8",lg:"size-12"}},defaultVariants:{size:"md"}}),ag=[{r:9,spline:"0.12 0 0.04 1",opacity:1},{r:8.2,spline:"0.16 0 0.08 1",opacity:.95},{r:7.4,spline:"0.20 0 0.12 1",opacity:.9},{r:6.6,spline:"0.25 0 0.16 1",opacity:.84},{r:5.8,spline:"0.30 0 0.20 1",opacity:.76},{r:5,spline:"0.36 0 0.25 1",opacity:.67},{r:4.2,spline:"0.42 0 0.31 1",opacity:.56},{r:3.4,spline:"0.48 0 0.37 1",opacity:.44},{r:2.6,spline:"0.55 0 0.44 1",opacity:.32},{r:1.8,spline:"0.62 0 0.52 1",opacity:.2},{r:1,spline:"0.70 0 0.60 1",opacity:.1}];function ah({className:a,size:c="md",duration:e=5,...f}){return(0,b.jsxs)("svg",{"data-slot":"comet-spinner",role:"status","aria-label":"Loading",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",className:(0,d.cn)(af({size:c}),a),...f,children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("filter",{id:"comet-gooey",x:"-100%",y:"-100%",width:"300%",height:"300%",colorInterpolationFilters:"sRGB",children:[(0,b.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"2.5"}),(0,b.jsx)("feColorMatrix",{mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -30",result:"goo"})]})}),(0,b.jsxs)("g",{filter:"url(#comet-gooey)",children:[(0,b.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:`${e}s`,repeatCount:"indefinite"}),ag.map(a=>(0,b.jsxs)("g",{children:[(0,b.jsx)("animateTransform",{attributeName:"transform",type:"rotate",calcMode:"spline",values:"0 50 50;360 50 50",keyTimes:"0;1",keySplines:a.spline,dur:"1s",repeatCount:"indefinite"}),(0,b.jsx)("circle",{cx:"50",cy:"18",r:a.r,fill:"currentColor",opacity:a.opacity})]},a.r)),(0,b.jsxs)("circle",{cx:"50",cy:"50",r:"4",fill:"currentColor",opacity:"0.15",children:[(0,b.jsx)("animate",{attributeName:"r",values:"3;5;3",dur:"2s",repeatCount:"indefinite"}),(0,b.jsx)("animate",{attributeName:"opacity",values:"0.1;0.25;0.1",dur:"2s",repeatCount:"indefinite"})]})]})]})}var ai=a.i(394132),aj=a.i(503410),ak=a.i(118948),al=a.i(658339),am=a.i(945242);let an=(0,T.default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var ao=a.i(591498),ap=a.i(679620);a.i(200307);var aq=a.i(730931),ar=a.i(39116);let as=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]);function at({onReject:a,onApprove:f,approveLabel:g,approveVariant:h="default",revisionPlaceholder:i,isProcessing:j=!1,isRejecting:k=!1,children:l,chatInput:n,onChatInputChange:o}){let{t:p}=(0,e.useTranslation)("web"),q="warning"===h,r=q?ao.AlertTriangle:m.Check,s=q?"bg-orange-500/85":"bg-blue-500/85",[t,u]=(0,c.useState)(""),v=n??t,w=o??u,x=(0,z.useSoundAction)("approve"),y=j||k,[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(!1),[E,G]=(0,c.useState)(null),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(!1),[L,M]=(0,c.useState)(!1),N=v.trim().length>0,O=N?H||J&&L:!H,P=(0,c.useRef)(0),Q=(0,c.useRef)(crypto.randomUUID()),R=(0,c.useRef)(null);(0,c.useEffect)(()=>{function a(a){("Control"===a.key||"Meta"===a.key)&&K(!0),"Shift"===a.key&&M(!0)}function b(a){("Control"===a.key||"Meta"===a.key)&&K(!1),"Shift"===a.key&&M(!1)}function c(){K(!1),M(!1)}return window.addEventListener("keydown",a),window.addEventListener("keyup",b),window.addEventListener("blur",c),()=>{window.removeEventListener("keydown",a),window.removeEventListener("keyup",b),window.removeEventListener("blur",c)}},[]);let S=(0,c.useCallback)(async a=>{for(let b of(G(null),a)){if(b.size>0xa00000)return void G(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!as.has(a))return void G(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();B(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",Q.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));B(b=>b.filter(b=>b.id!==a)),G(b.error??"Upload failed");return}let e=await d.json();B(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{B(b=>b.filter(b=>b.id!==a)),G("Upload failed")}}},[]),T=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current+=1,1===P.current&&D(!0)},[]),U=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current-=1,0===P.current&&D(!1)},[]),V=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),W=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),P.current=0,D(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&S(b)},[S]),X=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),S(c))},[S]),Y=(0,c.useCallback)(async()=>{try{let a=await (0,ar.pickFiles)();a&&B(b=>{let c=new Set(b.map(a=>a.path)),d=a.filter(a=>!c.has(a.path)).map(a=>({id:crypto.randomUUID(),name:a.name,size:a.size,mimeType:"application/octet-stream",path:a.path}));return d.length>0?[...b,...d]:b})}catch{}},[]),Z=(0,c.useCallback)(a=>{B(b=>b.filter(b=>b.id!==a))},[]),$=(0,c.useCallback)((a,b)=>{B(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),_=(0,c.useCallback)(()=>{w(""),B([]),G(null)},[w]),aa=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),R.current?.requestSubmit())},[]),ab="u">typeof navigator&&/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl";return(0,b.jsxs)("div",{className:"border-border shrink-0 border-t",children:[l,a?(0,b.jsx)(F.TooltipProvider,{delayDuration:400,children:(0,b.jsx)("form",{ref:R,onSubmit:function(b){b.preventDefault();let c=v.trim();if(O)x.play(),f(),_();else{if(!c||!a)return;a(c,A.filter(a=>!a.loading)),_()}},className:"p-3",children:(0,b.jsx)("div",{role:"region","aria-label":p("createDrawer.fileDropZone"),"data-drag-over":C?"true":"false",onDragEnter:T,onDragLeave:U,onDragOver:V,onDrop:W,className:(0,d.cn)("rounded-md border-2 border-transparent transition-colors",C&&"border-primary/50 bg-primary/5"),children:(0,b.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring flex flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,b.jsx)(ap.Textarea,{placeholder:i??"Ask AI to revise...","aria-label":i??"Ask AI to revise...",disabled:y,value:v,onChange:a=>w(a.target.value),onKeyDown:aa,onPaste:X,rows:1,className:"max-h-[35dvh] min-h-9 flex-1 resize-none overflow-y-auto rounded-none border-0 py-2 shadow-none focus-visible:ring-0","data-testid":"drawer-chat-input"}),A.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:A.map(a=>(0,b.jsx)(aq.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>Z(a.id),disabled:y,loading:a.loading,notes:a.notes,onNotesChange:b=>$(a.id,b)},a.id))}),E?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:E}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-2 border-t px-3 py-1.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex-1 truncate text-[11px]",children:[(0,b.jsxs)("kbd",{className:"bg-muted rounded px-1 py-0.5 font-mono text-[10px]",children:[ab,"+Enter"]})," ",N?"reject":"approve"]}),(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:Y,disabled:y,"aria-label":p("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(am.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"top",children:p("chat.attachFiles")})]}),(0,b.jsx)("div",{onMouseLeave:()=>I(!1),children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"submit",disabled:y,"data-testid":"drawer-action-submit",className:(0,d.cn)("relative flex h-9 min-w-[12rem] cursor-pointer items-center overflow-hidden rounded-md border ps-4 pe-10 text-sm font-medium whitespace-nowrap transition-colors","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",O?`${q?"border-orange-400/60":"border-blue-400/60"} text-white`:N&&J&&!L?"border-primary bg-muted ring-primary/30 shadow-sm ring-1":"border-border bg-muted/50 hover:bg-muted shadow-sm"),children:[(0,b.jsx)("div",{className:(0,d.cn)("pointer-events-none absolute inset-0 transition-transform duration-300 ease-in-out",s),style:{transform:O?"translateX(0)":"translateX(100%)"}}),(0,b.jsxs)("span",{className:(0,d.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 pe-8 transition-opacity duration-300",O?"opacity-0":"opacity-100"),children:[(0,b.jsx)(an,{className:"h-4 w-4 shrink-0"}),"Reject"]}),(0,b.jsxs)("span",{className:(0,d.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 text-white transition-opacity duration-300",O?"opacity-100":"opacity-0"),children:[(0,b.jsx)(r,{className:"h-4 w-4 shrink-0"}),g]}),(0,b.jsx)("span",{className:(0,d.cn)(`border-input/60 absolute inset-y-0 right-0 z-20 flex w-8 cursor-pointer items-center justify-center rounded-e-[5px] border-s ${s} transition-opacity duration-300`,!N&&!H&&"pointer-events-none opacity-0"),onMouseEnter:()=>I(!0),children:(0,b.jsx)(ai.ChevronLeft,{className:"h-4 w-4 text-white"})})]})}),q?null:(0,b.jsx)(F.TooltipContent,{side:"top",children:O?g:p("drawerActionBar.sendRevisionFeedback")})]})})]})]})})})}):(0,b.jsx)("div",{className:"flex items-center gap-2 px-4 pb-4",children:(0,b.jsx)(ak.Button,{type:"button",className:"flex-1",disabled:y,onClick:()=>{x.play(),f()},children:g})})]})}function au({data:a,selections:e,onSelect:f,onApprove:g,onReject:h,isProcessing:i=!1,isRejecting:j=!1,showHeader:k=!1,chatInput:l,onChatInputChange:m}){let{question:n,context:o,questions:p,finalAction:q}=a,[r,s]=(0,c.useState)(0),t=(0,z.useSoundAction)("select"),u=(0,z.useSoundAction)("navigate"),v=p.length,w=r===v-1,x=p[r],y=(0,c.useMemo)(()=>Object.keys(e).length,[e]),A=(0,c.useCallback)((a,b)=>{t.play(),f(a,b),w||setTimeout(()=>s(a=>a+1),250)},[f,w,t]);return 0===v?null:(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[k?(0,b.jsxs)("div",{className:"border-border flex items-start gap-3 border-b pb-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-amber-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h3",{className:"text-foreground mb-1.5 text-sm font-bold",children:n}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:o})]})]}):null,(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsxs)("label",{className:"text-foreground min-w-0 flex-1 text-sm font-semibold",children:[r+1,". ",x.question]}),(0,b.jsx)("div",{className:"mt-1.5 flex shrink-0 gap-1",children:p.map((a,c)=>(0,b.jsx)("button",{type:"button","aria-label":`Go to question ${c+1}`,className:(0,d.cn)("h-1.5 rounded-full transition-all duration-200",c===r?"bg-primary w-4":"w-1.5",c!==r&&e[a.id]?"bg-primary/50":"",c===r||e[a.id]?"":"bg-muted-foreground/25"),onClick:()=>{u.play(),s(c)}},a.id))})]}),(0,b.jsx)("div",{className:"space-y-2",children:x.options.map((a,c)=>{let f=e[x.id]===a.id,g=String.fromCharCode(65+c);return(0,b.jsx)("button",{type:"button",className:(0,d.cn)("border-border w-full overflow-hidden rounded-md border px-3 py-3 text-start text-xs transition-all","hover:border-primary/70 hover:bg-primary/5 group",f&&"border-primary bg-primary/5",a.isNew&&"animate-option-highlight"),disabled:i,onClick:()=>A(x.id,a.id),children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground mt-0.5 font-mono text-xs",children:[g,"."]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-foreground mb-0.5 text-xs font-semibold wrap-break-word",children:a.label}),(0,b.jsx)("div",{className:"text-muted-foreground text-xs leading-snug",children:a.rationale})]}),a.recommended||a.isNew?(0,b.jsx)("div",{className:"shrink-0 pt-0.5",children:a.recommended?(0,b.jsx)(al.Badge,{className:"px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):(0,b.jsx)(al.Badge,{className:"border-transparent bg-emerald-600 px-1.5 py-0 text-[10px] whitespace-nowrap text-white hover:bg-emerald-600/80",children:"New"})}):null]})},a.id)})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-2",children:[(0,b.jsxs)(ak.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===r||i,onClick:()=>{u.play(),s(a=>a-1)},children:[(0,b.jsx)(ai.ChevronLeft,{className:"me-1 h-4 w-4"}),"Previous"]}),w?null:(0,b.jsxs)(ak.Button,{type:"button",variant:"ghost",size:"sm",disabled:i,onClick:()=>{u.play(),s(a=>a+1)},children:[e[x.id]?"Next":"Skip",(0,b.jsx)(aj.ChevronRight,{className:"ms-1 h-4 w-4"})]})]})]}),(0,b.jsx)(at,{onReject:h,onApprove:()=>g(q.id),approveLabel:q.label,revisionPlaceholder:"Ask AI to refine requirements...",isProcessing:i,isRejecting:j,chatInput:l,onChatInputChange:m,children:(0,b.jsx)("div",{className:(0,d.cn)("bg-muted h-1.5 overflow-hidden",y>0&&y<v||i?"opacity-100":"opacity-0","transition-opacity duration-200"),"data-testid":"progress-bar-container",children:i?(0,b.jsx)("div",{className:"bg-primary animate-indeterminate-progress h-full w-1/3"}):(0,b.jsx)("div",{className:"bg-primary h-full transition-all duration-300",style:{width:`${v>0?y/v*100:0}%`},"data-testid":"progress-bar"})})})]})}var av=a.i(577610);let aw=(0,T.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),ax={p:({children:a})=>(0,b.jsx)("p",{className:"text-muted-foreground mb-2 text-xs leading-relaxed last:mb-0",children:a}),strong:({children:a})=>(0,b.jsx)("strong",{className:"text-foreground font-semibold",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a}),code:({children:a,className:c})=>c?(0,b.jsx)("code",{className:`${c} text-[11px]`,children:a}):(0,b.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:a}),pre:({children:a})=>(0,b.jsx)("pre",{className:"bg-muted my-2 overflow-x-auto rounded-lg border p-3",children:a}),ul:({children:a})=>(0,b.jsx)("ul",{className:"text-muted-foreground mb-2 list-disc space-y-1 ps-4 text-xs",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"text-muted-foreground mb-2 list-decimal space-y-1 ps-4 text-xs",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"leading-relaxed",children:a}),a:({children:a,href:c})=>(0,b.jsx)("a",{href:c,className:"text-primary underline underline-offset-2",target:"_blank",rel:"noopener noreferrer",children:a})};function ay({decision:a,index:d}){let[e,f]=(0,c.useState)(!1),g=(0,z.useSoundAction)("expand"),h=(0,z.useSoundAction)("collapse");return(0,b.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,b.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:d+1}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:a.title}),(0,b.jsx)("p",{className:"text-muted-foreground mt-0.5 text-xs",children:a.chosen})]})]}),"decisionName"in a&&a.decisionName?(0,b.jsx)(al.Badge,{variant:"secondary",className:"bg-primary/10 text-primary shrink-0",children:a.decisionName}):null]}),a.rationale?(0,b.jsx)(av.default,{components:ax,children:a.rationale}):null]}),a.rejected.length>0?(0,b.jsxs)("div",{className:"border-border border-t",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{e?h.play():g.play(),f(a=>!a)},className:"text-muted-foreground hover:bg-muted/50 flex w-full items-center gap-1.5 px-4 py-3 text-xs font-medium transition-colors",children:[(0,b.jsx)(aj.ChevronRight,{className:`h-3.5 w-3.5 transition-transform ${e?"rotate-90":""}`}),(0,b.jsx)(aa.Layers,{className:"h-3.5 w-3.5"}),"Other Options Considered (",a.rejected.length,")"]}),e?(0,b.jsx)("div",{className:"space-y-1.5 px-4 pb-3",children:a.rejected.map(a=>(0,b.jsx)("div",{className:"bg-primary/5 rounded-md px-3 py-2",children:(0,b.jsx)("span",{className:"text-foreground text-xs",children:a})},a))}):null]}):null]})}function az({data:a}){let{summary:c,decisions:d}=a;return 0===d.length?null:(0,b.jsxs)("div",{className:"space-y-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h2",{className:"text-foreground text-sm font-bold",children:"Technical Implementation Plan Review"}),c?(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:c}):null]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,b.jsx)(aw,{className:"text-primary h-4 w-4"}),(0,b.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Technical Decisions"})]}),d.map((a,c)=>(0,b.jsx)(ay,{decision:a,index:c},a.title))]})}var aA=a.i(69428);function aB({item:a,index:c}){return(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsx)("div",{className:"space-y-2 px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:c+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:a.question}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("p",{className:"text-muted-foreground min-w-0 truncate text-xs",children:a.selectedOption}),a.wasRecommended?(0,b.jsx)(al.Badge,{className:"shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):null]})]})]})})})}function aC({data:a}){let{questions:c}=a;return 0===c.length?null:(0,b.jsxs)("div",{className:"space-y-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aA.ClipboardList,{className:"text-primary h-4 w-4"}),(0,b.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Product Decisions"})]}),c.map((a,c)=>(0,b.jsx)(aB,{item:a,index:c},a.question))]})}var aD=a.i(771238);let aE=(0,T.default)("file-diff",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]);var aF=a.i(492548),aG=a.i(953170),aH=a.i(241994);let aI=(0,T.default)("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),aJ=(0,T.default)("monitor-play",[["path",{d:"M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",key:"vbtd3f"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]);var aK=a.i(809955),aL=a.i(771716),aM=a.i(867075),aN=a.i(658881),aO=a.i(746847);function aP({status:a}){switch(a){case aO.CiStatus.Success:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,b.jsx)(aM.CheckCircle2,{className:"me-1 h-3.5 w-3.5"}),"Passing"]});case aO.CiStatus.Pending:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-yellow-50 text-yellow-700 hover:bg-yellow-50",children:[(0,b.jsx)(h.Loader2,{className:"me-1 h-3.5 w-3.5 animate-spin"}),"Pending"]});case aO.CiStatus.Failure:return(0,b.jsxs)(al.Badge,{className:"border-transparent bg-red-50 text-red-700 hover:bg-red-50",children:[(0,b.jsx)(aN.XCircle,{className:"me-1 h-3.5 w-3.5"}),"Failing"]})}}var aQ=a.i(638019);let aR=(0,T.default)("file-minus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}]]);var aS=a.i(65298);let aT={added:{icon:aQ.FilePlus,label:"A",className:"text-green-600"},modified:{icon:aS.FileEdit,label:"M",className:"text-amber-600"},deleted:{icon:aR,label:"D",className:"text-red-600"},renamed:{icon:aS.FileEdit,label:"R",className:"text-blue-600"}};function aU({status:a}){let c=aT[a],e=c.icon;return(0,b.jsx)(e,{className:(0,d.cn)("h-3.5 w-3.5 shrink-0",c.className)})}function aV({hunk:a}){return(0,b.jsxs)("div",{className:"border-border border-t first:border-t-0",children:[(0,b.jsx)("div",{className:"bg-muted/50 text-muted-foreground px-3 py-1 font-mono text-[10px]",children:a.header}),(0,b.jsx)("div",{className:"font-mono text-[11px] leading-[18px]",children:a.lines.map(a=>(0,b.jsxs)("div",{className:(0,d.cn)("flex","added"===a.type&&"bg-green-50 dark:bg-green-950/30","removed"===a.type&&"bg-red-50 dark:bg-red-950/30"),children:[(0,b.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:a.oldNumber??""}),(0,b.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:a.newNumber??""}),(0,b.jsx)("span",{className:(0,d.cn)("w-4 shrink-0 text-center select-none","added"===a.type&&"text-green-700 dark:text-green-400","removed"===a.type&&"text-red-700 dark:text-red-400"),children:"added"===a.type?"+":"removed"===a.type?"-":" "}),(0,b.jsx)("span",{className:"min-w-0 flex-1 pe-2 break-all whitespace-pre-wrap",children:a.content})]},`${a.type}-${a.oldNumber??""}-${a.newNumber??""}`))})]})}function aW({file:a}){let[e,f]=(0,c.useState)(!1),g=a.path.split("/").pop()??a.path,h=a.path.includes("/")?a.path.slice(0,a.path.lastIndexOf("/")):"";return(0,b.jsxs)("div",{className:"border-border border-b last:border-b-0",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f(!e),className:"hover:bg-muted/50 flex w-full items-center gap-2 px-3 py-2 text-start",children:[(0,b.jsx)(aj.ChevronRight,{className:(0,d.cn)("text-muted-foreground h-3 w-3 shrink-0 transition-transform duration-150",e&&"rotate-90")}),(0,b.jsx)(aU,{status:a.status}),(0,b.jsx)("span",{className:"text-foreground min-w-0 flex-1 truncate text-xs",children:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[h,"/"]}),g]}):g}),a.oldPath?(0,b.jsxs)("span",{className:"text-muted-foreground truncate text-[10px]",children:["← ",a.oldPath.split("/").pop()]}):null,(0,b.jsxs)("span",{className:"shrink-0 text-[10px]",children:[a.additions>0?(0,b.jsxs)("span",{className:"text-green-600",children:["+",a.additions]}):null,a.additions>0&&a.deletions>0?" ":null,a.deletions>0?(0,b.jsxs)("span",{className:"text-red-600",children:["-",a.deletions]}):null]})]}),e&&a.hunks.length>0?(0,b.jsx)("div",{className:"border-border overflow-x-auto border-t",children:a.hunks.map(a=>(0,b.jsx)(aV,{hunk:a},a.header))}):null]})}function aX({fileDiffs:a}){return 0===a.length?null:(0,b.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,b.jsx)("div",{className:"px-4 py-3",children:(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,b.jsx)(K.FileText,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changed Files"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:["(",a.length,")"]})]})}),(0,b.jsx)("div",{className:"border-border border-t",children:a.map(a=>(0,b.jsx)(aW,{file:a},`${a.status}-${a.path}`))})]})}let aY={Screenshot:aI,Video:aJ,TestOutput:K.FileText,TerminalRecording:I.Terminal},aZ=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]),a$=new Set([".mp4",".webm",".mov"]);function a_({evidence:a}){var d,e;let f,[g,h]=(0,c.useState)(!0),i=aY[a.type]??aI,j=(f=(d=a.relativePath).lastIndexOf("."))>=0?d.slice(f).toLowerCase():"",k=(e=a.relativePath,`/api/evidence?path=${encodeURIComponent(e)}`),l="Screenshot"===a.type||aZ.has(j),m="Video"===a.type||a$.has(j),n="TestOutput"===a.type||"TerminalRecording"===a.type;return(0,b.jsxs)("li",{className:"border-border rounded-md border",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>h(!g),className:"flex w-full cursor-pointer items-center gap-2.5 px-3 py-2.5 text-start",children:[g?(0,b.jsx)(aL.ChevronDown,{className:"text-muted-foreground h-3 w-3 shrink-0"}):(0,b.jsx)(aj.ChevronRight,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,b.jsx)(i,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"text-foreground text-xs font-medium",children:a.description}),a.taskRef?(0,b.jsxs)("span",{className:"text-muted-foreground ms-1.5 text-[10px]",children:["(",a.taskRef,")"]}):null]}),(0,b.jsx)("a",{href:k,download:!0,onClick:a=>a.stopPropagation(),className:"text-muted-foreground hover:text-foreground shrink-0 rounded p-1 transition-colors","aria-label":"Download",children:(0,b.jsx)(aK.Download,{className:"h-3 w-3"})})]}),g&&k?(0,b.jsx)("div",{className:"border-border border-t px-3 py-2.5",children:l?(0,b.jsx)("img",{src:k,alt:a.description,className:"max-h-80 w-full rounded-md border object-contain",loading:"lazy"}):m?(0,b.jsx)("video",{src:k,controls:!0,className:"max-h-80 w-full rounded-md border",preload:"metadata",children:(0,b.jsx)("track",{kind:"captions"})}):n?(0,b.jsx)(a0,{url:k}):(0,b.jsx)("p",{className:"text-muted-foreground truncate font-mono text-[10px]",children:a.relativePath})}):null,null]})}function a0({url:a}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1);return f?d?(0,b.jsx)("pre",{className:"bg-muted/50 max-h-60 overflow-auto rounded-md p-3 font-mono text-[11px] leading-relaxed",children:d}):(0,b.jsx)("p",{className:"text-muted-foreground text-[10px]",children:"Unable to load preview"}):(fetch(a).then(a=>a.ok?a.text():Promise.reject(Error("Failed"))).then(a=>{let b=a.split("\n");e(b.length>100?`${b.slice(0,100).join("\n")}
|
|
2
|
+
...`:a)}).catch(()=>e(null)).finally(()=>g(!0)),(0,b.jsx)("div",{className:"bg-muted/50 h-16 animate-pulse rounded-md"}))}function a1({evidence:a}){return(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(aI,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Evidence"}),(0,b.jsx)(al.Badge,{variant:"secondary",className:"text-[10px]",children:a.length})]}),(0,b.jsx)("ul",{className:"space-y-2",children:a.map(a=>(0,b.jsx)(a_,{evidence:a},`${a.type}-${a.relativePath}`))})]})})}function a2({data:a,readOnly:c=!1,onApprove:d,onReject:e,isProcessing:f=!1,isRejecting:g=!1,chatInput:h,onChatInputChange:i}){let{pr:j,diffSummary:k,fileDiffs:l,branch:m,warning:n,evidence:o,hideCiStatus:p}=a,q=j?.mergeable===!1,r=q&&e?()=>e("Resolve merge conflicts",[]):d;return(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-emerald-500"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h2",{className:"text-foreground text-sm font-bold",children:c?"Merge History":"Merge Review"}),(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:c?"This feature was merged. Review the pull request details and evidence below.":j?"Review the pull request details and approve to merge.":"Review the changes and approve to merge."})]})]}),m?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,b.jsx)(aG.GitBranch,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)(al.Badge,{variant:"secondary",className:"font-mono text-[11px]",children:m.source}),(0,b.jsx)(aH.ArrowRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsx)(al.Badge,{variant:"outline",className:"font-mono text-[11px]",children:m.target})]})}):null,j?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("a",{href:j.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2",children:["PR #",j.number,(0,b.jsx)(aD.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,b.jsx)(al.Badge,{variant:"outline",className:"text-xs",children:j.status})]}),!1===j.mergeable?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Merge Status"}),(0,b.jsxs)(al.Badge,{className:"border-transparent bg-orange-50 text-orange-700 hover:bg-orange-50",children:[(0,b.jsx)(ao.AlertTriangle,{className:"me-1 h-3.5 w-3.5"}),"Conflicts"]})]}):null,j.ciStatus&&!0!==p?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"CI Status"}),(0,b.jsx)(aP,{status:j.ciStatus})]}):null,j.commitHash?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Commit"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(aF.GitCommitHorizontal,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,b.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:j.commitHash.slice(0,7)})]})]}):null]})}):null,k?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(aE,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changes"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-4 gap-3",children:[(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"text-foreground text-sm font-bold",children:k.filesChanged}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"files"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsxs)("div",{className:"text-sm font-bold text-green-600",children:["+",k.additions]}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"additions"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsxs)("div",{className:"text-sm font-bold text-red-600",children:["-",k.deletions]}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"deletions"})]}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"text-foreground text-sm font-bold",children:k.commitCount}),(0,b.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"commits"})]})]})]})}):n?(0,b.jsx)("div",{className:"border-border rounded-lg border",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,b.jsx)(ao.AlertTriangle,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:n})]})}):null,o&&o.length>0?(0,b.jsx)(a1,{evidence:o}):null,l&&l.length>0?(0,b.jsx)(aX,{fileDiffs:l}):null]}),!c&&(0,b.jsx)(at,{onReject:e,onApprove:r,approveLabel:q?"Resolve Conflicts":"Approve Merge",approveVariant:q?"warning":"default",revisionPlaceholder:"Ask AI to revise before merging...",isProcessing:f,isRejecting:g,chatInput:h,onChatInputChange:i})]})}var a3=a.i(346168);let a4=(0,T.default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var a5=a.i(839385),a6=a.i(167424),a7=a.i(428002),a8=a.i(531378),a9=a.i(832703);let ba=(0,T.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var bb=a.i(302807),bc=a.i(645670),bd=a.i(26633),be=a.i(273998);let bf=(0,T.default)("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]),bg=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function bh(a){let b=a.lastIndexOf(".");return b>=0&&bg.has(a.slice(b).toLowerCase())}function bi(a){let b=a.lastIndexOf(".")>=0?a.slice(a.lastIndexOf(".")):"",c=bh(a)?`image/${b.slice(1).replace("jpg","jpeg")}`:"",d=new URLSearchParams({path:a,...c&&{mimeType:c}});return`/api/attachments/preview?${d.toString()}`}let bj=/(?:^|\s)@(\/[^\s]+)/g;function bk({text:a,attachmentPaths:c}){let d=function(a){let b=[],c=0;for(let d of a.matchAll(bj)){let e=d.index,f=e+(d[0].length-d[0].trimStart().length);f>c&&b.push({type:"text",value:a.slice(c,f)}),b.push({type:"attachment",path:d[1]}),c=e+d[0].length}return c<a.length&&b.push({type:"text",value:a.slice(c)}),b}(a),e=d.some(a=>"attachment"===a.type),f=c?.filter(Boolean)??[];return e||0!==f.length?(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[d.map(a=>{if("text"===a.type){let c=a.value.trim();return c?(0,b.jsx)("span",{className:"text-sm leading-relaxed",children:c},`text-${c.slice(0,40)}`):null}return(0,b.jsx)(bl,{path:a.path},`att-${a.path}`)}),f.map(a=>(0,b.jsx)(bl,{path:a},`extra-${a}`))]}):(0,b.jsx)("span",{className:"text-sm leading-relaxed",children:a})}function bl({path:a}){let d=a.split("/").pop()??a,[e,f]=(0,c.useState)(!1);return bh(a)?e?(0,b.jsxs)("div",{"data-testid":"inline-attachment-image-error",className:"text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)(bf,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:d})]}):(0,b.jsxs)(bc.Dialog,{children:[(0,b.jsx)(bc.DialogTrigger,{asChild:!0,children:(0,b.jsx)("img",{src:bi(a),alt:d,"data-testid":"inline-attachment-image",onError:()=>f(!0),className:"max-h-48 max-w-full cursor-pointer rounded-md border object-contain transition-opacity hover:opacity-80"})}),(0,b.jsxs)(bc.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,b.jsx)(bd.VisuallyHidden.Root,{children:(0,b.jsxs)(bc.DialogTitle,{children:["Preview: ",d]})}),(0,b.jsx)("div",{className:"relative bg-black/90",children:(0,b.jsx)("img",{src:bi(a),alt:d,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,b.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col",children:(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:d})}),(0,b.jsx)("a",{href:bi(a),download:d,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${d}`,children:(0,b.jsx)(be.DownloadIcon,{className:"h-4 w-4"})})]})]})]}):(0,b.jsx)("a",{href:bi(a),download:d,"data-testid":"inline-attachment-file",className:"text-primary text-sm underline underline-offset-2",children:d})}a.i(569029);var bm=a.i(705623);let bn=(0,p.createServerReference)("4040fcd770e9d1c8448a602c534ff5508c9a478975",p.callServer,void 0,p.findSourceMapURL,"triggerReview"),bo=(0,T.default)("file-code-corner",[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]]),bp={[aO.CodeReviewStatus.Pending]:{label:"Pending",className:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800/50 dark:text-zinc-400"},[aO.CodeReviewStatus.InProgress]:{label:"In Progress",className:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",pulse:!0},[aO.CodeReviewStatus.Completed]:{label:"Completed",className:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400"},[aO.CodeReviewStatus.Posted]:{label:"Posted",className:"bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400"},[aO.CodeReviewStatus.Failed]:{label:"Failed",className:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"}};function bq({status:a,className:c}){let e=bp[a];return(0,b.jsx)("span",{className:(0,d.cn)("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium",e.className,e.pulse&&"animate-pulse",c),children:e.label})}function br({comment:a,className:c}){let e=void 0!==a.startLine?`L${a.startLine}-${a.line}`:`L${a.line}`;return(0,b.jsxs)("div",{className:(0,d.cn)("bg-card text-card-foreground rounded-lg border",!a.inDiffRange&&"border-amber-300 dark:border-amber-700",c),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 py-2 text-xs",children:[(0,b.jsx)(bo,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono",children:a.path}),(0,b.jsx)("span",{className:"bg-muted text-muted-foreground shrink-0 rounded px-1.5 py-0.5 font-mono",children:e}),!a.inDiffRange&&(0,b.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-1 text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(ao.AlertTriangle,{className:"h-3 w-3"}),"Outside diff"]})]}),(0,b.jsx)("div",{className:"px-3 py-2 text-sm",children:a.body}),a.suggestion?(0,b.jsxs)("div",{className:"border-t px-3 py-2",children:[(0,b.jsx)("p",{className:"text-muted-foreground mb-1 text-xs font-medium",children:"Suggestion:"}),(0,b.jsx)("pre",{className:"overflow-x-auto rounded-md bg-emerald-50 p-2 font-mono text-xs text-emerald-900 dark:bg-emerald-950/30 dark:text-emerald-300",children:a.suggestion})]}):null]})}function bs({review:a,loading:e,error:f,onPostToGitHub:g,postingInProgress:h,className:i}){let j=(0,c.useMemo)(()=>{if(!a?.comments?.length)return new Map;var b=a.comments;let c=new Map;for(let a of b){let b=c.get(a.path);b?b.push(a):c.set(a.path,[a])}return c},[a?.comments]),k=a?.comments?.length??0;if(e)return(0,b.jsxs)("div",{className:(0,d.cn)("space-y-4 p-4",i),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"bg-muted h-5 w-20 animate-pulse rounded-full"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-32 animate-pulse rounded"})]}),(0,b.jsx)("div",{className:"bg-muted h-16 animate-pulse rounded-lg"}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"bg-muted h-24 animate-pulse rounded-lg"}),(0,b.jsx)("div",{className:"bg-muted h-24 animate-pulse rounded-lg"})]})]});if(f)return(0,b.jsxs)("div",{className:(0,d.cn)("flex items-center gap-2 rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-400",i),children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),f]});if(!a)return null;let l=a.status===aO.CodeReviewStatus.Completed&&0===k,m=a.status===aO.CodeReviewStatus.Completed&&g;return(0,b.jsxs)("div",{className:(0,d.cn)("space-y-4",i),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(bq,{status:a.status}),(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(Z.MessageSquare,{className:"h-3.5 w-3.5"}),k," ",1===k?"finding":"findings"]}),a.reviewUrl?(0,b.jsxs)("a",{href:a.reviewUrl,target:"_blank",rel:"noopener noreferrer",className:"ml-auto flex items-center gap-1 text-xs text-blue-600 hover:underline dark:text-blue-400",children:[(0,b.jsx)(aD.ExternalLink,{className:"h-3 w-3"}),"View on GitHub"]}):null,m?(0,b.jsx)(ak.Button,{size:"sm",variant:"outline",className:"ml-auto",onClick:()=>g(a.id),disabled:h,children:h?"Posting...":"Post to GitHub"}):null]}),a.summary?(0,b.jsx)("div",{className:"bg-muted/50 rounded-lg border p-3 text-sm",children:a.summary}):null,a.status===aO.CodeReviewStatus.Failed&&a.errorMessage?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-red-200 bg-red-50 p-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-400",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),a.errorMessage]}):null,l?(0,b.jsxs)("div",{className:"text-muted-foreground flex flex-col items-center gap-2 py-8 text-center",children:[(0,b.jsx)(bo,{className:"h-8 w-8"}),(0,b.jsx)("p",{className:"text-sm",children:"No findings — the code looks good!"})]}):null,j.size>0?(0,b.jsx)("div",{className:"space-y-4",children:Array.from(j.entries()).map(([a,c])=>(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("h4",{className:"text-muted-foreground flex items-center gap-1.5 text-xs font-medium",children:[(0,b.jsx)(bo,{className:"h-3.5 w-3.5"}),a,(0,b.jsx)("span",{className:"bg-muted rounded px-1 py-0.5",children:c.length})]}),(0,b.jsx)("div",{className:"space-y-2",children:c.map(a=>(0,b.jsx)(br,{comment:a},`${a.path}:${a.line}:${a.side}`))})]},a))}):null]})}var bt=a.i(961781),bu=a.i(817606),bv=a.i(783852);function bw(a){if(0===a)return"0s";let b=Math.floor(a/1e3);if(0===b)return"<1s";let c=Math.floor(b/3600),d=Math.floor(b%3600/60),e=b%60;return c>0?`${c}h ${d}m`:d>0?`${d}m ${e}s`:`${e}s`}let bx=new Set(["pending","action-required","error"]);function by(a){return a?.agentType?{agentType:a.agentType,modelId:a.modelId??""}:null}function bz({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function bA({children:a,className:c}){return(0,b.jsx)("div",{className:(0,d.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function bB({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function bC({on:a,label:c}){return(0,b.jsxs)("span",{className:(0,d.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-xs font-medium",a?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-foreground/[0.04] text-foreground/25"),children:[a?(0,b.jsx)(m.Check,{className:"size-3"}):(0,b.jsx)(bb.X,{className:"size-3"}),c]})}let bD={[aO.PrStatus.Open]:"text-blue-600 dark:text-blue-400",[aO.PrStatus.Merged]:"text-purple-600 dark:text-purple-400",[aO.PrStatus.Closed]:"text-red-600 dark:text-red-400"};function bE({data:a,pinnedConfig:e,syncStatus:f,syncLoading:g,syncError:i,onRefreshSync:j,onRebaseOnMain:k,rebaseLoading:l,rebaseError:m}){var n;let o,p,q,r,s,t,u=(0,y.useFeatureFlags)(),v="maintain"===a.lifecycle,w=function(a){let[b,d]=(0,c.useState)(null),e=(0,c.useRef)(null);return(0,c.useEffect)(()=>a?(d(bw(Math.max(0,Date.now()-a))),e.current=setInterval(()=>{d(bw(Math.max(0,Date.now()-a)))},1e3),()=>{e.current&&clearInterval(e.current)}):void d(null),[a]),b}("running"===a.state||"action-required"===a.state?a.startedAt:void 0),x=ae.featureNodeStateConfig[a.state],z=!!a.summary&&!(a.userQuery&&a.summary?.trim()===a.userQuery.trim()),[A,B]=(0,c.useState)(null),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useTransition)(),[G,H]=(0,c.useTransition)(),I=u.codeReview&&a.pr;return(0,b.jsxs)("div",{"data-testid":"feature-drawer-status",className:"pb-4",children:[!v&&a.progress>0?(0,b.jsx)("div",{"data-testid":"feature-drawer-progress",className:"px-3 pb-2",children:(0,b.jsx)("div",{className:"bg-foreground/[0.06] h-1.5 w-full overflow-hidden rounded-full",children:(0,b.jsx)("div",{className:(0,d.cn)("h-full rounded-full transition-all",x.progressClass),style:{width:`${a.progress}%`}})})}):null,a.oneLiner||a.userQuery||z?(0,b.jsx)(bz,{icon:a5.Info,title:"Description",children:(0,b.jsxs)(bA,{className:"flex flex-col gap-2",children:[a.oneLiner?(0,b.jsx)(bB,{label:"One-Liner",children:a.oneLiner}):null,a.userQuery?(0,b.jsx)(bB,{label:"Query",children:(0,b.jsx)(bk,{text:a.userQuery})}):null,z?(0,b.jsx)(bB,{label:"Summary",children:(0,b.jsx)("span",{className:"leading-snug",children:a.summary})}):null]})}):null,a.pr?(0,b.jsxs)(bz,{icon:aF.GitCommitHorizontal,title:"Pull Request",children:[(0,b.jsx)(bA,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("a",{href:a.pr.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary inline-flex items-center gap-1 text-sm font-semibold hover:underline",children:["#",a.pr.number," ",(0,b.jsx)(aD.ExternalLink,{className:"size-3"})]}),(0,b.jsx)("span",{className:(0,d.cn)("text-xs font-semibold",bD[a.pr.status]),children:a.pr.status}),!1===a.pr.mergeable?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-orange-600 dark:text-orange-400",children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3 shrink-0"})," Conflicts"]}):null,a.pr.ciStatus&&!0!==a.hideCiStatus?(0,b.jsx)(aP,{status:a.pr.ciStatus}):null,I?(0,b.jsxs)(ak.Button,{size:"xs",variant:"outline",className:"ml-auto",onClick:()=>{a.pr&&(D(null),B(null),F(async()=>{let b=await bn({target:a.pr.url,repositoryPath:a.repositoryPath,featureId:a.featureId});b.error&&D(b.error),b.review&&B(b.review)}))},disabled:E,children:[E?(0,b.jsx)(h.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,b.jsx)(a8.Search,{className:"mr-1 h-3 w-3"}),E?"Reviewing...":"Review PR"]}):null,!I&&a.pr.commitHash?(0,b.jsx)("code",{className:"text-foreground/40 ml-auto font-mono text-[11px]",children:a.pr.commitHash.slice(0,7)}):null]})}),A||C||E?(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(bs,{review:A??void 0,loading:E,error:C??void 0,onPostToGitHub:a=>{H(async()=>{try{let b=await fetch(`/api/code-reviews/${a}/post`,{method:"POST"});if(!b.ok){let a=await b.json().catch(()=>({error:"Failed to post review"}));D(a.error??"Failed to post review to GitHub");return}let c=await b.json();B(c)}catch(a){D(a instanceof Error?a.message:"Failed to post review")}})},postingInProgress:G})}):null]}):null,(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pb-1",children:[a.branch?(0,b.jsx)(bA,{children:(0,b.jsxs)(bB,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(aG.GitBranch,{className:"text-foreground/30 size-3 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-[11px]",children:a.branch})]}),a.baseBranch?(0,b.jsxs)("span",{className:"text-foreground/30 block text-[10px]",children:["from ",a.baseBranch]}):null]})}):null,a.agentType||a.modelId?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Agent",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[a.agentType?(o=(0,bu.getAgentTypeIcon)(a.agentType),(0,b.jsx)(o,{className:"size-3.5 shrink-0 opacity-50"})):null,a.agentType?(0,b.jsx)("span",{children:bu.agentTypeLabels[a.agentType]??a.agentType}):null,a.agentType&&a.modelId?(0,b.jsx)("span",{className:"text-foreground/20",children:"/"}):null,a.modelId?(0,b.jsx)("span",{className:"text-foreground/50 text-[12px]",children:(0,bv.getModelMeta)(a.modelId).displayName||a.modelId}):null]})})}):null,a.createdAt?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Created",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(a3.Clock,{className:"text-foreground/30 size-3 shrink-0"}),(n=a.createdAt,p=Date.now(),(t=Math.floor((s=Math.floor((r=Math.floor((p-(q="string"==typeof n?new Date(n).getTime():n))/6e4))/60))/24))>30?new Date(q).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):t>0?`${t}d ago`:s>0?`${s}h ago`:r>0?`${r}m ago`:"just now")]})})}):null,a.fastMode?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:"Mode",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(_.Zap,{className:"size-3.5"})," Fast"]})})}):null,a.runtime||w?(0,b.jsx)(bA,{children:(0,b.jsx)(bB,{label:a.runtime?"Runtime":"Elapsed",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(a3.Clock,{className:"text-foreground/30 size-3 shrink-0"}),a.runtime??w]})})}):null]}),a.blockedBy||a.errorMessage?(0,b.jsx)(bz,{icon:ao.AlertTriangle,title:"Issues",children:(0,b.jsxs)(bA,{className:"border-destructive/20 bg-destructive/5",children:[a.blockedBy?(0,b.jsx)(bB,{label:"Blocked By",children:a.blockedBy}):null,a.errorMessage?(0,b.jsx)(bB,{label:"Error",children:(0,b.jsx)("span",{className:"text-destructive",children:a.errorMessage})}):null]})}):null,k&&a.branch&&j?(0,b.jsx)(bz,{icon:a7.RefreshCw,title:"Branch Sync",children:(0,b.jsx)(bF,{syncStatus:f??null,syncLoading:g??!1,syncError:i??null,onRefreshSync:j,onRebaseOnMain:k,rebaseLoading:l??!1,rebaseError:m??null})}):null,(0,b.jsx)(bH,{data:a,pinnedConfig:e}),a.injectedSkills?.length?(0,b.jsx)(bI,{skills:a.injectedSkills}):null]})}function bF({syncStatus:a,syncLoading:c,syncError:f,onRefreshSync:g,onRebaseOnMain:h,rebaseLoading:i,rebaseError:j}){let{t:k}=(0,e.useTranslation)("web"),l=null!=a&&a.behind>0,m=a?.behind===0,n=a?.baseBranch??"main";return(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{"data-testid":"branch-sync-status",className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-1.5 text-[13px]",children:c&&!a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ah,{size:"sm"}),(0,b.jsx)("span",{className:"text-foreground/40",children:"Checking..."})]}):f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3.5 text-red-500"}),(0,b.jsx)("span",{className:"text-destructive text-xs",children:f})]}):i?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ah,{size:"sm"}),(0,b.jsxs)("span",{children:["Rebasing on ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),"..."]})]}):l?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ao.AlertTriangle,{className:"size-3.5 text-orange-500"}),(0,b.jsxs)("span",{children:[a.behind," behind ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),a.ahead>0?(0,b.jsxs)("span",{className:"text-foreground/30 ml-1 text-[11px]",children:["· ",a.ahead," ahead"]}):null]})]}):m?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aM.CheckCircle2,{className:"size-3.5 text-green-500"}),(0,b.jsxs)("span",{children:["Up to date · ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:n}),a.ahead>0?(0,b.jsxs)("span",{className:"text-foreground/30 ml-1 text-[11px]",children:["· ",a.ahead," ahead"]}):null]})]}):null}),(a||f)&&!i?(0,b.jsx)("button",{onClick:g,disabled:c,className:"text-foreground/30 hover:text-foreground/60 hover:bg-foreground/5 inline-flex size-6 items-center justify-center rounded-sm disabled:opacity-50","aria-label":k("branchSyncStatus.refreshSyncStatus"),children:(0,b.jsx)(a7.RefreshCw,{className:(0,d.cn)("size-3",c&&"animate-spin")})}):null]}),l&&!i?(0,b.jsx)("div",{className:"pt-2",children:(0,b.jsx)(bm.ActionButton,{label:k("branchSyncStatus.rebaseOnMain"),onClick:h,loading:!1,error:!!j,icon:Y,variant:"outline",size:"sm"})}):null,j?(0,b.jsx)("p",{className:"text-destructive pt-1 text-[11px]",children:j}):null]})}function bG({pinnedConfig:a}){let c=(0,bu.getAgentTypeIcon)(a.agentType),d=a.modelId?(0,bv.getModelMeta)(a.modelId).displayName||a.modelId:"No model selected";return(0,b.jsxs)(bA,{"data-testid":"feature-pinned-config-card",className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a9.Settings,{className:"size-3"})," Pinned Execution"]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(c,{className:"size-4 shrink-0 opacity-60"}),(0,b.jsx)("span",{className:"font-medium",children:bu.agentTypeLabels[a.agentType]??a.agentType}),(0,b.jsx)("span",{className:"text-foreground/20",children:"/"}),(0,b.jsx)("span",{className:"text-foreground/60",children:d})]}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs",children:"Change the pinned agent and model before the next start, approval, or retry."})]}),(0,b.jsx)(bt.AgentModelPicker,{initialAgentType:a.agentType,initialModel:a.modelId,agentType:a.agentType,model:a.modelId,onSave:a.onSave,saveError:a.error,saving:a.saving,disabled:a.saving,mode:"settings"})]})}function bH({data:a,pinnedConfig:c}){var d;let e=null!=a.approvalGates||null!=a.push||null!=a.openPr||null!=a.ciWatchEnabled||null!=a.enableEvidence||null!=a.forkAndPr||null!=a.commitSpecs||null!=a.injectSkills,f=null!=c&&(d=a.state,bx.has(d));return e||f?(0,b.jsx)(bz,{icon:a9.Settings,title:"Settings",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[f?(0,b.jsx)(bG,{pinnedConfig:c}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[a.approvalGates?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(ba,{className:"size-3"})," Approve"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)(bC,{on:a.approvalGates.allowPrd,label:"PRD"}),(0,b.jsx)(bC,{on:a.approvalGates.allowPlan,label:"Plan"}),(0,b.jsx)(bC,{on:a.approvalGates.allowMerge,label:"Merge"})]})]}):null,null!=a.enableEvidence?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a4,{className:"size-3"})," Evidence"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)(bC,{on:a.enableEvidence,label:"Collect"}),null!=a.commitEvidence?(0,b.jsx)(bC,{on:a.commitEvidence,label:"Add to PR"}):null]})]}):null,null!=a.injectSkills?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(a6.Puzzle,{className:"size-3"})," Skills"]}),(0,b.jsx)("div",{className:"flex flex-col gap-0.5",children:(0,b.jsx)(bC,{on:a.injectSkills,label:"Inject"})})]}):null,null!=a.push||null!=a.openPr||null!=a.ciWatchEnabled||null!=a.commitSpecs||null!=a.forkAndPr?(0,b.jsxs)(bA,{children:[(0,b.jsxs)("div",{className:"text-foreground/40 mb-1.5 flex items-center gap-1 text-[10px] font-medium tracking-wider uppercase",children:[(0,b.jsx)(aG.GitBranch,{className:"size-3"})," Git"]}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[null!=a.push?(0,b.jsx)(bC,{on:a.push,label:"Push"}):null,null!=a.openPr?(0,b.jsx)(bC,{on:a.openPr,label:"PR"}):null,null!=a.ciWatchEnabled?(0,b.jsx)(bC,{on:a.ciWatchEnabled,label:"Watch"}):null,null!=a.commitSpecs?(0,b.jsx)(bC,{on:a.commitSpecs,label:"Specs"}):null,null!=a.forkAndPr?(0,b.jsx)(bC,{on:a.forkAndPr,label:"Fork"}):null]})]}):null]}):null]})}):null}function bI({skills:a}){return(0,b.jsx)(bz,{icon:a6.Puzzle,title:"Feature Skills",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map(a=>(0,b.jsx)(al.Badge,{variant:"secondary",children:a},a))})})}let bJ=(0,T.default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var bK=a.i(193866),bL=a.i(407421);let bM=(0,T.default)("arrow-down-to-line",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),bN=(0,T.default)("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]);function bO(a,b){if(null!=a.durationMs&&a.durationMs>0)return a.durationMs;if(!a.completedAt&&a.startedAt){let c=new Date(a.startedAt).getTime();if(!Number.isNaN(c))return Math.max(0,b-c)}return 0}function bP(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:String(a)}function bQ(a){let b=a instanceof Date?a:new Date(String(a));return Number.isNaN(b.getTime())?"":b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function bR(a){return a>=1?`$${a.toFixed(2)}`:a>=.01?`$${a.toFixed(3)}`:`$${a.toFixed(4)}`}let bS={analyze:"Analyzing",requirements:"Requirements",research:"Researching",plan:"Planning",implement:"Implementing",rebase:"Rebasing","fast-implement":"Fast Implement",evidence:"Evidence",validate:"Validating",repair:"Repairing",merge:"Merging"},bT={"run:started":{label:"started",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:j.Play},"run:resumed":{label:"resumed",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:$.RotateCcw},"run:completed":{label:"completed",colorClass:"text-emerald-600",bgClass:"bg-emerald-50 dark:bg-emerald-950/30",icon:aM.CheckCircle2},"run:failed":{label:"failed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:aN.XCircle},"run:stopped":{label:"stopped",colorClass:"text-amber-600",bgClass:"bg-amber-50 dark:bg-amber-950/30",icon:k.Square},"run:crashed":{label:"crashed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:aN.XCircle},"run:rejected":{label:"rejected",colorClass:"text-orange-600",bgClass:"bg-orange-50 dark:bg-orange-950/30",icon:bK.Ban}};function bU(a){return a.startsWith("run:")}function bV({timings:a,loading:d,error:f,rejectionFeedback:g}){let{t:i}=(0,e.useTranslation)("web"),j=function(a){let[b,d]=(0,c.useState)(Date.now),e=(0,c.useRef)(null);return(0,c.useEffect)(()=>(a&&a.some(a=>!a.phase.startsWith("run:")&&!a.completedAt&&a.startedAt)&&(e.current=setInterval(()=>d(Date.now()),1e3)),()=>{e.current&&(clearInterval(e.current),e.current=null)}),[a]),b}(a);if(d)return(0,b.jsx)("div",{"data-testid":"activity-tab-loading",className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})});if(f)return(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-base text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:f})]});if(!a||0===a.length)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(a3.Clock,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-base",children:i("activityTab.noActivityRecorded")})]});let k=a.filter(a=>!bU(a.phase)),l=Math.max(...k.map(a=>bO(a,j)),...k.map(a=>a.approvalWaitMs??0),0),m=function(a,b){if(!a.length)return[];let c=a.filter(a=>"run:rejected"===a.phase).length,d=b?.length??0,e=a;if(d>c){e=[...a];let f=a[a.length-1].agentRunId;for(let a=c;a<d;a++){let d=b[a];a>c&&e.push({agentRunId:f,phase:"run:resumed",startedAt:d.timestamp??`synthetic-resumed-${a}`}),e.push({agentRunId:f,phase:"run:rejected",startedAt:d.timestamp??`synthetic-${a}`})}}let f=[],g=[],h=0;for(let a of e)if(g.push(a),"run:rejected"===a.phase){let a=b?.[h];f.push({number:f.length+1,timings:g,rejectionMessage:a?.message,rejectionAttachments:a?.attachments}),g=[],h++}return g.length>0&&f.push({number:f.length+1,timings:g}),f}(a,g),n=m.length>1,o=k.reduce((a,b)=>a+bO(b,j),0),p=k.reduce((a,b)=>a+(b.approvalWaitMs??0),0),q=k.reduce((a,b)=>a+(b.inputTokens??0),0),r=k.reduce((a,b)=>a+(b.outputTokens??0),0),s=k.reduce((a,b)=>a+(b.costUsd??0),0);return(0,b.jsxs)("div",{className:"flex flex-col gap-3 p-4",children:[(0,b.jsx)("div",{"data-testid":"activity-timings",className:"flex flex-col gap-3",children:m.map(a=>(0,b.jsx)(bW,{iteration:a,showHeader:n,maxDurationMs:l,now:j},a.number))}),o>0?(0,b.jsx)(b$,{totalExecMs:o,totalWaitMs:p,totalInputTokens:q,totalOutputTokens:r,totalCostUsd:s}):null]})}function bW({iteration:a,showHeader:c,maxDurationMs:d,now:e}){let f=function(a){let b=[...a.timings].reverse().find(a=>bU(a.phase));if(!b)return null;switch(b.phase){case"run:rejected":return{label:"Rejected",colorClass:"text-orange-600",dotClass:"bg-orange-500"};case"run:completed":return{label:"Completed",colorClass:"text-emerald-600",dotClass:"bg-emerald-500"};case"run:failed":return{label:"Failed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:crashed":return{label:"Crashed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:stopped":return{label:"Stopped",colorClass:"text-amber-600",dotClass:"bg-amber-500"};default:return null}}(a);return(0,b.jsxs)("div",{"data-testid":`iteration-${a.number}`,className:"border-border/50 bg-card/50 flex flex-col overflow-hidden rounded-lg border",children:[c?(0,b.jsxs)("div",{className:"bg-muted/30 border-border/50 flex items-center justify-between border-b px-3 py-1.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground text-sm font-semibold tracking-wide",children:["Iteration ",a.number]}),f?(0,b.jsxs)("span",{className:`flex items-center gap-1 text-xs font-medium ${f.colorClass}`,children:[(0,b.jsx)("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${f.dotClass}`}),f.label]}):null]}):null,(0,b.jsxs)("div",{className:"relative flex flex-col",children:[(0,b.jsx)("div",{className:"bg-border/60 absolute top-4 bottom-4 left-[21.5px] w-px"}),a.timings.map((c,f)=>{if(bU(c.phase)){let d,e="run:rejected"===c.phase,g="run:failed"===c.phase||"run:crashed"===c.phase||"run:stopped"===c.phase;if(e)d=a.rejectionMessage;else if(g){let b=[...a.timings].reverse().find(a=>!bU(a.phase)&&a.errorMessage);d=b?.errorMessage??c.errorMessage}return(0,b.jsx)(bX,{timing:c,message:d,attachments:e?a.rejectionAttachments:void 0,isFirst:0===f,isLast:f===a.timings.length-1},`${c.agentRunId}-${c.phase}-${c.startedAt}`)}return(0,b.jsx)(bY,{timing:c,maxDurationMs:d,now:e},`${c.agentRunId}-${c.phase}-${c.startedAt}`)})]})]})}function bX({timing:a,message:c,attachments:d,isFirst:e,isLast:f}){let g,h=bT[a.phase];if(!h)return null;let i=d&&d.length>0,j=h.icon;return(0,b.jsxs)("div",{className:`relative flex flex-col gap-1 px-3 ${e?"pt-2":"pt-1"} ${f?"pb-2":"pb-1"}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`relative z-10 flex h-5 w-5 shrink-0 items-center justify-center rounded-full ${h.bgClass}`,children:(0,b.jsx)(j,{className:`h-3 w-3 ${h.colorClass}`})}),(0,b.jsx)("span",{className:`text-sm font-medium ${h.colorClass}`,children:h.label}),a.startedAt&&!("string"==typeof a.startedAt&&a.startedAt.startsWith("synthetic"))?(0,b.jsx)("span",{className:"text-muted-foreground/60 ml-auto text-xs tabular-nums",children:bQ(String(a.startedAt))}):null]}),c?(g="run:failed"===a.phase||"run:crashed"===a.phase||"run:stopped"===a.phase,(0,b.jsxs)("div",{className:`ml-[26px] flex items-start gap-1.5 rounded-md px-2 py-1.5 ${g?"bg-red-50/50 dark:bg-red-950/20":"bg-orange-50/50 dark:bg-orange-950/20"}`,children:[g?(0,b.jsx)(P.AlertCircle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-400"}):(0,b.jsx)(Z.MessageSquare,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-orange-400"}),(0,b.jsxs)("span",{"data-testid":g?"error-message-text":"rejection-feedback-text",className:"text-muted-foreground text-xs leading-relaxed italic",children:["— ",c]})]})):null,i?(0,b.jsx)("div",{"data-testid":"rejection-feedback-attachments",className:"ml-[26px]",children:(0,b.jsx)(bk,{text:"",attachmentPaths:d})}):null]})}function bY({timing:a,maxDurationMs:d,now:f}){let{t:g}=(0,e.useTranslation)("web"),h=a.phase.includes(":")?a.phase.split(":")[0]:a.phase,i=a.phase.includes(":")?a.phase.split(":")[1]:null,j=null!==i,k=i?.startsWith("phase-")??!1,n=bS[h]??h,o=k?`Phase ${i.replace("phase-","")}`:null!==i?`${n} #${i}`:n,p=bO(a,f),q=!a.completedAt&&!!a.startedAt,r=q?15:2,s=d>0?Math.max(r,p/d*100):r,t=a.completedAt?k?"bg-emerald-400":j?"bg-amber-500":"bg-emerald-500":"bg-blue-500",u=null!=a.inputTokens||null!=a.outputTokens?(a.inputTokens??0)+(a.outputTokens??0):null,[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(()=>{a.prompt&&navigator.clipboard.writeText(a.prompt).then(()=>{w(!0),setTimeout(()=>w(!1),1500)})},[a.prompt]);return(0,b.jsxs)("div",{className:`group/phase relative flex flex-col gap-0.5 px-3 py-1.5 ${j?"ms-4":""}`,children:[(0,b.jsxs)("div",{"data-testid":`timing-bar-${a.phase}`,className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"relative z-10 flex h-5 w-5 shrink-0 items-center justify-center",children:(0,b.jsx)("div",{className:`rounded-full ${q?"h-3 w-3 animate-pulse":"h-2.5 w-2.5"} ${q?"bg-blue-500":a.completedAt?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,b.jsx)("span",{className:`w-28 shrink-0 truncate text-sm font-medium ${j?"text-muted-foreground":"text-foreground/80"}`,children:o}),a.prompt?(0,b.jsx)("button",{type:"button",onClick:x,className:"text-muted-foreground/50 hover:text-foreground/70 -ms-1 shrink-0 opacity-0 transition-opacity group-hover/phase:opacity-100",title:g("activityTab.copyPromptToClipboard"),children:v?(0,b.jsx)(m.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,b.jsx)(l.Copy,{className:"h-3.5 w-3.5"})}):null,(0,b.jsx)("div",{className:`bg-muted relative min-w-0 flex-1 overflow-hidden rounded-full ${j?"h-1.5":"h-2"}`,children:q?(0,b.jsx)("div",{className:"absolute inset-0 rounded-full bg-blue-500/30",style:{backgroundImage:"linear-gradient(90deg, transparent 0%, rgb(59 130 246) 50%, transparent 100%)",backgroundSize:"200% 100%",animation:"shimmer 1.5s ease-in-out infinite"}}):(0,b.jsx)("div",{className:`h-full rounded-full transition-all duration-300 ${t}`,style:{width:`${Math.min(s,100)}%`}})}),(0,b.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-sm font-medium tabular-nums",children:bw(p)})]}),(0,b.jsxs)("div",{className:"ml-[28px] flex items-center gap-3 text-xs",children:[a.startedAt?(0,b.jsx)("span",{className:"text-muted-foreground/60 tabular-nums",children:bQ(a.startedAt)}):null,null!=u&&u>0?(0,b.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,b.jsx)(_.Zap,{className:"h-3 w-3 opacity-50"}),bP(u)]}):null,null!=a.costUsd&&a.costUsd>0?(0,b.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,b.jsx)(bJ,{className:"h-3 w-3 opacity-50"}),bR(a.costUsd)]}):null]}),null!=a.approvalWaitMs&&a.approvalWaitMs>0?(0,b.jsx)(bZ,{timing:a,maxDurationMs:d}):null]})}function bZ({timing:a,maxDurationMs:c}){let d=a.approvalWaitMs??0,e=c>0?Math.max(2,d/c*100):2;return(0,b.jsxs)("div",{"data-testid":`approval-wait-${a.phase}`,className:"ml-[26px] flex items-center gap-2 rounded-md bg-amber-50/50 px-1.5 py-1 dark:bg-amber-950/20",children:[(0,b.jsx)(bL.Timer,{className:"h-3.5 w-3.5 shrink-0 text-amber-500"}),(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs",children:"approval"}),(0,b.jsx)("div",{className:"bg-muted h-1.5 min-w-0 flex-1 overflow-hidden rounded-full",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-amber-500",style:{width:`${Math.min(e,100)}%`}})}),(0,b.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-xs tabular-nums",children:bw(d)})]})}function b$({totalExecMs:a,totalWaitMs:c,totalInputTokens:d,totalOutputTokens:f,totalCostUsd:g}){let{t:h}=(0,e.useTranslation)("web"),i=d+f;return(0,b.jsxs)("div",{"data-testid":"activity-summary",className:"border-border bg-card/30 flex flex-col gap-2 rounded-lg border p-3",children:[(0,b.jsx)("div",{className:"text-muted-foreground mb-1 text-xs font-semibold tracking-wider uppercase",children:"Summary"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[(0,b.jsx)(b_,{icon:a3.Clock,label:h("activityTab.execution"),value:bw(a)}),(0,b.jsx)(b_,{icon:bL.Timer,label:h("activityTab.wait"),value:c>0?bw(c):"n/a"}),(0,b.jsx)(b_,{icon:a3.Clock,label:"Wall-clock",value:c>0?bw(a+c):bw(a)}),(0,b.jsx)(b_,{icon:bJ,label:h("activityTab.cost"),value:g>0?bR(g):"n/a"}),(0,b.jsxs)("div",{className:"col-span-2 flex flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(_.Zap,{className:"h-3 w-3 opacity-40"}),"Tokens"]}),i>0?(0,b.jsxs)("span",{className:"flex items-center gap-2.5 text-sm tabular-nums",children:[(0,b.jsx)("span",{children:bP(i)}),(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-3 text-xs",title:"Input tokens / Output tokens",children:[(0,b.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,b.jsx)(bM,{className:"h-3 w-3 text-blue-500 opacity-60"}),bP(d)]}),(0,b.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,b.jsx)(bN,{className:"h-3 w-3 text-emerald-500 opacity-60"}),bP(f)]})]})]}):(0,b.jsx)("span",{className:"text-muted-foreground/40 text-sm italic tabular-nums",children:"n/a"})]})]})]})}function b_({icon:a,label:c,value:d,className:e=""}){let f="n/a"===d;return(0,b.jsxs)("div",{className:`flex flex-col gap-0.5 ${e}`,children:[(0,b.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,b.jsx)(a,{className:"h-3 w-3 opacity-40"}),c]}),(0,b.jsx)("span",{className:`text-sm tabular-nums ${f?"text-muted-foreground/40 italic":""}`,children:d})]})}var b0=a.i(745449),b1=a.i(944447);let b2=(0,T.default)("coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]),b3=(0,T.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var b4=a.i(366766);let b5=/^\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z?)\]\s+(?:\[([^\]]+)\]\s+)?(?:\[([^\]|]+)(?:\|([^\]]+))?\]\s+)?(.*)$/,b6=/^\[(tool-result|tool|text|delta|result|tokens|cmd|file|turn|thread|error|event|raw|WORKER)\]\s*(.*)/;function b7(a){let b=a.match(b5);if(!b)return{timestamp:null,phase:null,agent:null,model:null,tag:"raw",message:a,raw:a};let[,c,d,e,f,g]=b,h=null,i=null,j=null,k=g??"";if(null!=e&&null!=d)if(d.includes("|")){let[a,b]=d.split("|");i=a,j=b??null,k=`[${e}] ${g??""}`}else h=d,i=e,j=f??null;else if(null!=d)if(d.includes("|")){let[a,b]=d.split("|");i=a,j=b??null}else h=d;let l=k.match(b6),m="info";return l&&(m=l[1].toLowerCase(),k=l[2]),{timestamp:c??null,phase:h,agent:i,model:j,tag:m,message:k.trim(),raw:a}}function b8({content:a}){let d=(0,c.useMemo)(()=>a?a.split("\n").filter(a=>a.trim().length>0).map(b7):[],[a]);return 0===d.length?null:(0,b.jsx)("div",{className:"flex flex-col",children:d.map((a,c)=>(0,b.jsx)(b9,{line:a},c))})}function b9({line:a}){switch(a.tag){case"tool":return(0,b.jsx)(cc,{line:a});case"tool-result":return(0,b.jsx)(ci,{line:a});case"text":case"delta":return(0,b.jsx)(ce,{line:a});case"result":return(0,b.jsx)(cf,{line:a});case"tokens":case"turn":return(0,b.jsx)(cg,{line:a});case"cmd":return(0,b.jsx)(cj,{line:a});case"file":return(0,b.jsx)(ck,{line:a});case"thread":case"event":case"info":return(0,b.jsx)(cm,{line:a});case"error":return(0,b.jsx)(cl,{line:a});case"worker":return(0,b.jsx)(ch,{line:a});default:return(0,b.jsx)(cn,{line:a})}}function ca({value:a}){if(!a)return null;let c=a.replace(/^.*T/,"").replace("Z",""),d=c.split(":"),e=d.length>=3?`${d[1]}:${d[2].split(".")[0]}`:c;return(0,b.jsx)("span",{className:"text-muted-foreground/60 w-11 shrink-0 font-mono text-[10px]",children:e})}function cb({phase:a}){return a?(0,b.jsx)("span",{className:"bg-muted text-muted-foreground w-20 shrink-0 truncate rounded px-1.5 py-0.5 font-mono text-[10px] font-medium",title:a,children:a}):(0,b.jsx)("span",{className:"w-20 shrink-0"})}function cc({line:a}){var c;let d,{toolName:e,args:f}=-1===(d=(c=a.message).indexOf(" "))?{toolName:c,args:""}:{toolName:c.slice(0,d),args:c.slice(d+1)},g=function(a,b){try{let c=JSON.parse(b);if("Read"===a&&c.file_path||"Write"===a&&c.file_path||"Edit"===a&&c.file_path)return c.file_path;if("Glob"===a&&c.pattern||"Grep"===a&&c.pattern)return c.pattern;if("Bash"===a&&c.command)return c.command;if("Task"===a&&c.description)return c.description}catch{if(b.length>0)return b}return null}(e,f);return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 border-b border-transparent px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(cd,{toolName:e}),(0,b.jsx)("span",{className:"text-xs font-semibold text-violet-600 dark:text-violet-400",children:e}),g?(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-xs break-all",children:g}):null]})]})}function cd({toolName:a}){let c=a.toLowerCase();return"bash"===c?(0,b.jsx)(I.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"read"===c||"glob"===c||"grep"===c?(0,b.jsx)(K.FileText,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"write"===c||"edit"===c?(0,b.jsx)(b4.FileCode,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):(0,b.jsx)(I.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"})}function ce({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(Z.MessageSquare,{className:"mt-0.5 h-3 w-3 shrink-0 text-blue-500"}),(0,b.jsx)("span",{className:"text-foreground/80 min-w-0 text-xs leading-relaxed",children:a.message})]})]})}function cf({line:a}){var c;let d,e,{chars:f}=(d=(c=a.message).match(/^(\d+)\s+chars/),e=c.match(/session=(\S+)/),{chars:d?parseInt(d[1],10):0,sessionId:e?e[1]:null});return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(aM.CheckCircle2,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-500"}),(0,b.jsxs)("span",{className:"text-xs font-medium text-emerald-600 dark:text-emerald-400",children:["Result: ",f.toLocaleString()," chars"]})]})]})}function cg({line:a}){let c,{inputTokens:d,outputTokens:e}=(c=a.message.match(/^(\d+)\s+in\s*\/\s*(\d+)\s+out/))?{inputTokens:parseInt(c[1],10),outputTokens:parseInt(c[2],10)}:{inputTokens:0,outputTokens:0};return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b2,{className:"mt-0.5 h-3 w-3 shrink-0 text-amber-500"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-xs",children:[(0,b.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:d.toLocaleString()})," in / ",(0,b.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:e.toLocaleString()})," out"]})]})]})}function ch({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-zinc-50 px-3 py-1.5 transition-colors dark:bg-zinc-900/50",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b3,{className:"mt-0.5 h-3 w-3 shrink-0 text-zinc-500"}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium break-all",children:a.message})]})]})}function ci({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(aH.ArrowRight,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-400"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-[11px] break-all",children:a.message})]})]})}function cj({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(j.Play,{className:"mt-0.5 h-3 w-3 shrink-0 text-cyan-500"}),(0,b.jsx)("span",{className:"min-w-0 font-mono text-xs break-all text-cyan-700 dark:text-cyan-400",children:a.message})]})]})}function ck({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(b4.FileCode,{className:"mt-0.5 h-3 w-3 shrink-0 text-orange-500"}),(0,b.jsx)("span",{className:"min-w-0 text-xs break-all text-orange-700 dark:text-orange-400",children:a.message})]})]})}function cl({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-red-50 px-3 py-1.5 transition-colors dark:bg-red-950/30",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,b.jsx)(P.AlertCircle,{className:"mt-0.5 h-3 w-3 shrink-0 text-red-500"}),(0,b.jsx)("span",{className:"min-w-0 text-xs font-medium break-all text-red-700 dark:text-red-400",children:a.message})]})]})}function cm({line:a}){return(0,b.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,b.jsx)(ca,{value:a.timestamp}),(0,b.jsx)(cb,{phase:a.phase}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 text-xs break-all",children:a.message})]})}function cn({line:a}){return(0,b.jsx)("div",{className:"px-3 py-0.5",children:(0,b.jsx)("span",{className:"text-muted-foreground/70 font-mono text-[11px] break-all whitespace-pre-wrap",children:a.raw})})}function co({content:a,isConnected:d,error:f}){let{t:g}=(0,e.useTranslation)("web"),h=(0,c.useRef)(null),[i,j]=(0,c.useState)(!0),[k,l]=(0,c.useState)("structured"),m=(0,c.useCallback)(()=>{let a=h.current;a&&j(a.scrollHeight-a.scrollTop-a.clientHeight<40)},[]),n=(0,c.useCallback)(()=>{let a=h.current;a&&(a.scrollTop=a.scrollHeight,j(!0))},[]);return((0,c.useEffect)(()=>{i&&h.current&&(h.current.scrollTop=h.current.scrollHeight)},[a,i]),f)?(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:f})]}):a?(0,b.jsxs)("div",{className:"flex h-full flex-col","data-testid":"log-tab",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 py-1.5",children:[(0,b.jsx)("span",{className:`h-2 w-2 rounded-full ${d?"bg-emerald-500":"bg-zinc-400"}`}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:d?"Live":"Disconnected"}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>l("structured"),className:`rounded p-1 transition-colors ${"structured"===k?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:g("logTab.structuredView"),children:(0,b.jsx)(K.FileText,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{type:"button",onClick:()=>l("raw"),className:`rounded p-1 transition-colors ${"raw"===k?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:g("logTab.rawView"),children:(0,b.jsx)(b1.Code,{className:"h-3.5 w-3.5"})}),i?null:(0,b.jsxs)("button",{type:"button",onClick:n,className:"text-muted-foreground hover:text-foreground ms-1 flex items-center gap-1 text-xs",children:[(0,b.jsx)(b0.ArrowDown,{className:"h-3 w-3"}),"Jump to bottom"]})]})]}),(0,b.jsx)("div",{ref:h,onScroll:m,className:`flex-1 overflow-y-auto ${"raw"===k?"bg-zinc-950 p-3 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap text-zinc-300":"bg-background"}`,children:"structured"===k?(0,b.jsx)(b8,{content:a}):a})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(I.Terminal,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:g("logTab.noLogOutput")}),d?(0,b.jsx)("p",{className:"text-muted-foreground text-xs",children:"Waiting for log data..."}):null]})}let cp=(0,T.default)("list-todo",[["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"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]);var cq=a.i(804019),cr=a.i(483886);let cs=(0,T.default)("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),ct={Todo:{icon:cq.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Todo"},"Work in Progress":{icon:h.Loader2,colorClass:"text-blue-600",borderClass:"border-blue-200",spinning:!0,label:"In Progress"},Done:{icon:m.Check,colorClass:"text-emerald-600",borderClass:"border-emerald-200",label:"Done"},Review:{icon:cr.Eye,colorClass:"text-amber-600",borderClass:"border-amber-200",label:"Review"}},cu={icon:cq.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Unknown"};function cv({tasks:a}){let{t:c}=(0,e.useTranslation)("web");return 0===a.length?(0,b.jsx)("div",{className:"flex flex-col items-center justify-center gap-2 py-4",children:(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:c("taskProgress.noTasksDefined")})}):(0,b.jsxs)("div",{"data-testid":"task-progress-view",className:"flex flex-col gap-3",children:[(0,b.jsx)(cw,{tasks:a}),(0,b.jsx)("div",{"data-testid":"task-progress-list",className:"flex flex-col gap-2",children:a.map((a,c)=>(0,b.jsx)(cy,{task:a,index:c},a.title||`task-${c}`))})]})}function cw({tasks:a}){let{t:d}=(0,e.useTranslation)("web"),f=(0,c.useMemo)(()=>{let b=a.filter(a=>"Done"===a.state).length,c=a.filter(a=>"Work in Progress"===a.state).length,d=a.filter(a=>"Review"===a.state).length,e=a.filter(a=>"Done"!==a.state&&"Work in Progress"!==a.state&&"Review"!==a.state).length,f=a.length,g=f>0?Math.round(b/f*100):0;return{done:b,wip:c,review:d,todo:e,total:f,percent:g}},[a]);return(0,b.jsxs)("div",{"data-testid":"task-progress-summary",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Task Progress"}),(0,b.jsxs)("span",{className:"text-muted-foreground text-xs",children:[f.done," of ",f.total," done"]})]}),(0,b.jsx)("div",{className:"bg-muted h-2 w-full overflow-hidden rounded-full",children:(0,b.jsx)("div",{"data-testid":"task-progress-bar",className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${f.percent}%`}})}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3",children:[f.done>0?(0,b.jsx)(cx,{icon:m.Check,label:d("taskProgress.done"),count:f.done,className:"text-emerald-600"}):null,f.wip>0?(0,b.jsx)(cx,{icon:h.Loader2,label:d("taskProgress.inProgress"),count:f.wip,className:"text-blue-600"}):null,f.review>0?(0,b.jsx)(cx,{icon:cr.Eye,label:d("taskProgress.review"),count:f.review,className:"text-amber-600"}):null,f.todo>0?(0,b.jsx)(cx,{icon:cq.Circle,label:d("taskProgress.todo"),count:f.todo,className:"text-muted-foreground"}):null]})]})}function cx({icon:a,label:c,count:e,className:f}){return(0,b.jsxs)("span",{className:(0,d.cn)("flex items-center gap-1 text-xs",f),children:[(0,b.jsx)(a,{className:"h-3 w-3"}),e," ",c]})}function cy({task:a,index:e}){let[f,g]=(0,c.useState)(!1),h=ct[a.state]??cu,i=h.icon,j=a.actionItems.length>0,k=(0,c.useCallback)(()=>{j&&g(a=>!a)},[j]);return(0,b.jsxs)("div",{"data-testid":`task-card-${e}`,className:(0,d.cn)("rounded-lg border",h.borderClass),children:[(0,b.jsxs)("button",{type:"button",onClick:k,disabled:!j,className:(0,d.cn)("flex w-full items-start gap-2 px-3 py-2.5 text-start",j&&"hover:bg-muted/50 cursor-pointer transition-colors"),children:[(0,b.jsx)(i,{className:(0,d.cn)("mt-0.5 h-4 w-4 shrink-0",h.colorClass,h.spinning&&"animate-spin")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:(0,d.cn)("text-sm font-medium",h.colorClass),children:a.title}),a.description?(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description}):null]}),j?(0,b.jsx)(aj.ChevronRight,{className:(0,d.cn)("text-muted-foreground mt-0.5 h-4 w-4 shrink-0 transition-transform",f&&"rotate-90")}):null]}),f&&j?(0,b.jsx)("div",{className:"border-t px-3 py-2.5",children:(0,b.jsx)("div",{className:"flex flex-col gap-2",children:a.actionItems.map((a,c)=>(0,b.jsx)(cz,{item:a},a.name||`ai-${c}`))})}):null]})}function cz({item:a}){let c=a.acceptanceCriteria.length,d=a.acceptanceCriteria.filter(a=>a.verified).length,e=c>0&&d===c;return(0,b.jsxs)("div",{"data-testid":"action-item",className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[e?(0,b.jsx)(aM.CheckCircle2,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-emerald-600"}):(0,b.jsx)(cs,{className:"text-muted-foreground mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.name}),a.description?(0,b.jsx)("span",{className:"text-muted-foreground text-[11px]",children:a.description}):null]}),c>0?(0,b.jsxs)("span",{className:"text-muted-foreground ml-auto shrink-0 text-[11px]",children:[d,"/",c]}):null]}),c>0?(0,b.jsx)("div",{className:"ms-5.5 flex flex-col gap-1",children:a.acceptanceCriteria.map((a,c)=>(0,b.jsx)(cA,{criterion:a},a.description||`ac-${c}`))}):null]})}function cA({criterion:a}){return(0,b.jsxs)("div",{"data-testid":"acceptance-criterion",className:"flex items-start gap-1.5",children:[a.verified?(0,b.jsx)(m.Check,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-600"}):(0,b.jsx)(cq.Circle,{className:"text-muted-foreground mt-0.5 h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:(0,d.cn)("text-[11px]",a.verified?"text-muted-foreground line-through":"text-foreground"),children:a.description})]})}let cB={Requirements:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",ClarificationRequired:"border-transparent bg-amber-50 text-amber-700 hover:bg-amber-50",Ready:"border-transparent bg-green-50 text-green-700 hover:bg-green-50"};function cC({plan:a,loading:c,error:d}){return c?(0,b.jsx)("div",{"data-testid":"plan-tab-loading",className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):d?(0,b.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,b.jsx)(P.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:d})]}):a?(0,b.jsxs)("div",{className:"flex flex-col gap-4 p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Plan State"}),(0,b.jsx)(al.Badge,{className:cB[a.state]??"border-transparent bg-gray-50 text-gray-700",children:a.state})]}),a.overview?(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Overview"}),(0,b.jsx)("p",{className:"text-sm leading-relaxed",children:a.overview})]}):null,(0,b.jsx)(cv,{tasks:a.tasks})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,b.jsx)(cp,{className:"text-muted-foreground h-8 w-8"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:"No plan created yet"})]})}var cD=a.i(661544);function cE(){return{data:null,loading:!1,error:null}}let cF=[{key:"overview",label:"Overview",icon:Q.LayoutDashboard},{key:"activity",label:"Activity",icon:R.Activity},{key:"log",label:"Log",icon:S.ScrollText},{key:"plan",label:"Plan",icon:U},{key:"prd-review",label:"PRD Review",icon:V},{key:"tech-decisions",label:"Tech Decisions",icon:W.Cpu},{key:"product-decisions",label:"Product",icon:X.Package},{key:"merge-review",label:"Merge Review",icon:Y},{key:"chat",label:"Chat",icon:Z.MessageSquare}],cG={activity:async function(a){let b=await ac(a);if("error"in b)throw Error(b.error);return{timings:b.timings,rejectionFeedback:b.rejectionFeedback}},plan:async function(a){let b=await ad(a);if("error"in b)throw Error(b.error);return b.plan}};function cH({featureName:a,headerContent:e,featureNode:g,featureId:i,initialTab:l,urlTab:m,prdData:n,prdSelections:o,onPrdSelect:p,onPrdApprove:q,onPrdReject:r,isPrdLoading:s,techData:t,onTechApprove:u,onTechReject:v,isTechLoading:w,productData:x,mergeData:y,onMergeApprove:z,onMergeReject:A,isMergeLoading:B,syncStatus:C,syncLoading:D,syncError:E,onRefreshSync:G,onRebaseOnMain:H,rebaseLoading:I,rebaseError:J,isRejecting:K,chatInput:L,onChatInputChange:M,pinnedConfig:N,continuationActionsDisabled:O=!1,sseEvents:Q,interactiveAgentEnabled:R=!0,onRetry:S,onStop:T,onStart:U}){let V,W=(0,f.usePathname)(),X=(0,c.useMemo)(()=>(function(a,b=!0){let c=["overview","activity"];return a.hasAgentRun&&c.push("log"),a.hasPlan&&c.push("plan"),"requirements"===a.lifecycle&&"action-required"===a.state&&c.push("prd-review"),"implementation"===a.lifecycle&&"action-required"===a.state&&c.push("tech-decisions","product-decisions"),"review"===a.lifecycle&&("action-required"===a.state||"error"===a.state)&&c.push("merge-review"),"maintain"===a.lifecycle&&a.pr&&c.push("merge-review"),b&&c.push("chat"),c})(g,R),[g,R]),Y=(0,c.useMemo)(()=>cF.filter(a=>X.includes(a.key)).map(a=>"merge-review"===a.key&&"maintain"===g.lifecycle?{...a,label:"Merge History"}:a),[X,g.lifecycle]),Z=(0,c.useMemo)(()=>{let a=W.match(/^(\/feature\/[^/]+)/);return a?a[1]:W},[W]),ac=(0,c.useMemo)(()=>m&&X.includes(m)?m:l&&X.includes(l)?l:"overview",[]),[ad,af]=(0,c.useState)(ac),ag=function(a){let[b,d]=(0,c.useState)(""),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(null),j=(0,c.useCallback)(()=>{i.current&&(i.current.close(),i.current=null),f(!1)},[]);return(0,c.useEffect)(()=>{if(!a){d(""),f(!1),h(null);return}d(""),h(null);let b=new EventSource(`/api/feature-logs?featureId=${a}`);return i.current=b,b.onopen=()=>{f(!0)},b.addEventListener("initial",a=>{d(JSON.parse(a.data).content)}),b.addEventListener("log",a=>{let b=JSON.parse(a.data);d(a=>a+b.content)}),b.addEventListener("error",a=>{try{let b=JSON.parse(a.data);h(b.error)}catch{h(a.data?String(a.data):"Log stream unavailable")}}),b.onerror=()=>{f(!1)},()=>{b.close(),i.current=null}},[a,j]),{content:b,isConnected:e,error:g}}("log"===ad?i:null),{tabs:ai,fetchTab:aj,refreshTab:ak}=function(a,b){let d=Object.keys(b),[e,f]=(0,c.useState)(()=>{let a={};for(let b of d)a[b]=cE();return a}),g=(0,c.useRef)(b);g.current=b;let h=(0,c.useRef)(a);h.current=a;let i=(0,c.useRef)(!0);(0,c.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let j=(0,c.useRef)(a);(0,c.useEffect)(()=>{j.current!==a&&(j.current=a,f(a=>{let b={};for(let c of Object.keys(a))b[c]=cE();return b}))},[a]);let k=(0,c.useCallback)(async a=>{let b=g.current[a],c=h.current;if(b){i.current&&f(b=>b[a]?.data!==null?b:{...b,[a]:{...b[a],loading:!0,error:null}});try{let d=await b(c);i.current&&f(b=>({...b,[a]:{data:d,loading:!1,error:null}}))}catch(b){i.current&&f(c=>{let d=b instanceof Error?b.message:"Failed to fetch tab data",e=c[a]?.data??null;return{...c,[a]:{data:e,loading:!1,error:e?null:d}}})}}},[]),l=(0,c.useCallback)(async a=>{let b=e[a];b&&null!==b.data||b&&b.loading||await k(a)},[e,k]);return{tabs:e,fetchTab:l,refreshTab:(0,c.useCallback)(async a=>{await k(a)},[k])}}(i,cG),al=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!al.current)return;al.current=!1;let a="overview"===ad?Z:`${Z}/${ad}`;a!==W&&window.history.pushState(null,"",a)},[ad,Z,W]);let am=(0,c.useRef)(W);(0,c.useEffect)(()=>{if(am.current===W||(am.current=W,al.current))return;let a=W.split("/"),b=a.length>=4?a[3]:void 0,c=b&&X.includes(b)?b:"overview";c!==ad&&(af(c),("activity"===c||"plan"===c)&&aj(c))},[W]);let an=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!an.current&&(an.current=!0,!m&&"overview"!==ac)){let a=`${Z}/${ac}`;a!==W&&window.history.replaceState(null,"",a)}},[]);let ao=(0,c.useRef)(!1);(0,c.useEffect)(()=>{ao.current||(ao.current=!0,("activity"===ad||"plan"===ad)&&aj(ad))},[ad,aj]);let ap=(0,c.useRef)(i);(0,c.useEffect)(()=>{ap.current!==i&&(ap.current=i,af("overview"))},[i]);let aq=(0,c.useRef)(l);(0,c.useEffect)(()=>{if(aq.current!==l&&l&&X.includes(l)){aq.current=l,af(l),("activity"===l||"plan"===l)&&aj(l);let a="overview"===l?Z:`${Z}/${l}`;a!==window.location.pathname&&window.history.replaceState(null,"",a)}},[l,X,Z,aj]),(0,c.useEffect)(()=>{X.includes(ad)||(af("overview"),window.location.pathname!==Z&&window.history.replaceState(null,"",Z))},[X,ad,Z]);let ar=(0,c.useRef)(ad);ar.current=ad;let as=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(!Q||0===Q.length||(as.current>Q.length&&(as.current=0),Q.length<=as.current))return;let a=Q.slice(as.current);if(as.current=Q.length,!a.some(a=>a.featureId===i))return;ak("activity");let b=ar.current;"plan"===b&&ak(b)},[Q,i,ak]);let at="running"===g.state||"creating"===g.state;(0,c.useEffect)(()=>{if(!at)return;let a=setInterval(()=>{ak("activity")},5e3);return()=>clearInterval(a)},[at,ak]);let av=(0,c.useCallback)(a=>{al.current=!0,af(a),("activity"===a||"plan"===a)&&aj(a)},[aj]);return(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,b.jsxs)(ab.Tabs,{value:ad,onValueChange:av,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsx)(ab.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:Y.map(a=>{let c=a.icon;return(0,b.jsxs)(ab.TabsTrigger,{value:a.key,className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(c,{className:"mr-1.5 size-4"}),a.label]},a.key)})}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[a?(0,b.jsxs)("div",{className:"flex h-12 items-stretch gap-2 pr-0 pl-4","data-testid":"feature-drawer-header",children:[(0,b.jsx)("div",{className:"flex items-center",children:g.fastMode?(0,b.jsx)(_.Zap,{className:"size-4 shrink-0 text-amber-500"}):(0,b.jsx)(aa.Layers,{className:"text-muted-foreground/50 size-4 shrink-0"})}),(0,b.jsx)("h2",{className:"text-foreground flex min-w-0 items-center truncate text-base font-semibold tracking-tight",children:a}),g.repositoryName?(0,b.jsxs)("span",{className:"animate-in fade-in flex shrink-0 items-center gap-1.5 self-center duration-200",children:[(0,b.jsx)("span",{className:"text-muted-foreground/30 text-sm",children:"/"}),g.remoteUrl?(0,b.jsx)("a",{href:g.remoteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground text-sm",children:g.repositoryName}):(0,b.jsx)("span",{className:"text-muted-foreground text-sm",children:g.repositoryName})]}):(0,b.jsxs)("span",{className:"flex items-center gap-1.5 self-center",children:[(0,b.jsx)("span",{className:"text-muted-foreground/30 text-sm",children:"/"}),(0,b.jsx)("span",{className:"bg-muted h-4 w-16 animate-pulse rounded"})]}),(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex shrink-0 cursor-default items-center self-stretch text-xs font-medium",children:[(0,b.jsxs)("div",{className:(0,d.cn)("flex items-center gap-1.5 self-stretch px-3",ae.featureNodeStateConfig[g.state].labelClass),children:["running"===g.state?(0,b.jsx)(ah,{size:"sm",className:"shrink-0"}):(V=ae.featureNodeStateConfig[g.state].icon,(0,b.jsx)(V,{className:"size-3.5 shrink-0"})),ae.featureNodeStateConfig[g.state].label]}),"pending"===g.state&&U?(0,b.jsxs)("button",{type:"button",onClick:()=>U(g.featureId),disabled:O,className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-green-500/10 hover:text-green-600 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-green-400","data-testid":"feature-drawer-start-button",children:[(0,b.jsx)(j.Play,{className:"size-3.5"})," Start"]}):"error"===g.state&&S?(0,b.jsxs)("button",{type:"button",onClick:()=>S(g.featureId),disabled:O,className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-red-400","data-testid":"feature-drawer-retry-button",children:[(0,b.jsx)($.RotateCcw,{className:"size-3.5"})," Retry"]}):"running"===g.state&&T?(0,b.jsxs)("button",{type:"button",onClick:()=>T(g.featureId),className:"text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 dark:hover:text-red-400","data-testid":"feature-drawer-stop-button",children:[(0,b.jsx)(k.Square,{className:"size-3.5"})," Stop"]}):null]})}),g.errorMessage?(0,b.jsxs)(F.TooltipContent,{side:"bottom",align:"end",sideOffset:4,className:"z-[100] max-w-xs cursor-pointer text-xs leading-relaxed select-text",onClick:()=>{navigator.clipboard.writeText(g.errorMessage)},children:[g.errorMessage,(0,b.jsx)("span",{className:"text-muted-foreground ml-1 text-[10px] italic",children:"(click to copy)"})]}):null]})})]}):null,e]}),(0,b.jsx)(ab.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(bE,{data:g,pinnedConfig:N,syncStatus:C,syncLoading:D,syncError:E,onRefreshSync:G,onRebaseOnMain:H,rebaseLoading:I,rebaseError:J})}),(0,b.jsx)(ab.TabsContent,{value:"activity",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(bV,{timings:ai.activity.data?.timings??null,loading:ai.activity.loading,error:ai.activity.error,rejectionFeedback:ai.activity.data?.rejectionFeedback})}),(0,b.jsx)(ab.TabsContent,{value:"log",className:"mt-0 flex-1 overflow-hidden",children:(0,b.jsx)(co,{content:ag.content,isConnected:ag.isConnected,error:ag.error})}),(0,b.jsx)(ab.TabsContent,{value:"plan",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(cC,{plan:ai.plan.data,loading:ai.plan.loading,error:ai.plan.error})}),X.includes("prd-review")?(0,b.jsx)(ab.TabsContent,{value:"prd-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:n?(0,b.jsx)(au,{data:n,selections:o??{},onSelect:p??(()=>void 0),onApprove:q??(()=>void 0),onReject:r,isProcessing:!!(s||O),isRejecting:K,chatInput:L,onChatInputChange:M}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,X.includes("tech-decisions")?(0,b.jsx)(ab.TabsContent,{value:"tech-decisions",className:"mt-0 flex min-h-0 flex-1 flex-col",children:t?(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,b.jsx)(az,{data:t})}),(0,b.jsx)(cI,{onApprove:u??(()=>void 0),onReject:v,isProcessing:!!(w||O),isRejecting:K,chatInput:L,onChatInputChange:M})]}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,X.includes("product-decisions")?(0,b.jsx)(ab.TabsContent,{value:"product-decisions",className:"mt-0 flex-1 overflow-y-auto",children:null===x?(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):x?(0,b.jsx)(aC,{data:x}):(0,b.jsx)("p",{className:"text-muted-foreground p-4 text-center text-sm",children:"No product decisions available."})}):null,X.includes("merge-review")?(0,b.jsx)(ab.TabsContent,{value:"merge-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:y?(0,b.jsx)(a2,{data:y,readOnly:"maintain"===g.lifecycle,onApprove:z??(()=>void 0),onReject:A,isProcessing:!!(B||O),isRejecting:K,chatInput:L,onChatInputChange:M}):(0,b.jsx)("div",{className:"flex items-center justify-center p-8",children:B?(0,b.jsx)(h.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"}):(0,b.jsxs)("div",{className:"text-muted-foreground flex flex-col items-center gap-2 text-sm",children:[(0,b.jsx)(P.AlertCircle,{className:"h-6 w-6"}),(0,b.jsx)("span",{children:"Merge review data unavailable"})]})})}):null,X.includes("chat")?(0,b.jsx)(ab.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(cD.ChatTab,{featureId:i,worktreePath:g.worktreePath})}):null]})})}function cI({onApprove:a,onReject:c,isProcessing:d,isRejecting:f,chatInput:g,onChatInputChange:h}){let{t:i}=(0,e.useTranslation)("web");return(0,b.jsx)(at,{onReject:c,onApprove:a,approveLabel:i("featureDrawer.approvePlan"),revisionPlaceholder:"Ask AI to revise the plan...",isProcessing:d,isRejecting:f,chatInput:g,onChatInputChange:h})}var cJ=a.i(880069),cK=a.i(230830),cL=a.i(214745);let cM=(0,p.createServerReference)("40f17a1e18aec30bc2be3d1743054fe32d7085ece7",p.callServer,void 0,p.findSourceMapURL,"rebaseFeature");var cN=a.i(574146);function cO(a){return"requirements"===a.lifecycle&&"action-required"===a.state?"prd-review":"implementation"===a.lifecycle&&"action-required"===a.state?"tech-decisions":"review"===a.lifecycle&&("action-required"===a.state||"error"===a.state)?"merge-review":"overview"}function cP(a,b,d,e,f,h){let[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(d),l=(0,c.useRef)(e);return k.current=d,l.current=e,(0,c.useEffect)(()=>{if(l.current(),!a)return;let c=!1;return j(!0),b(a).then(a=>{c||k.current(a)}).catch(()=>{!c&&f&&g.toast.error(f)}).finally(()=>{c||j(!1)}),()=>{c=!0}},[a,b,f,h]),i}let cQ=(0,p.createServerReference)("40fdf520a26a935efa67e04c6e67b32a9833826757",p.callServer,void 0,p.findSourceMapURL,"getFeatureDrawerData"),cR=(0,p.createServerReference)("40f1f5660c5ada96c164433b103335708dab100c74",p.callServer,void 0,p.findSourceMapURL,"getBranchSyncStatus"),cS=new Map,cT=(0,p.createServerReference)("701007d16a101f36cd78483d65d946ba68573e71ac",p.callServer,void 0,p.findSourceMapURL,"updateFeaturePinnedConfig");function cU({view:a,urlTab:p,interactiveAgentEnabled:H=!0}){var I,J;let K,L,M,N,P,Q,R=(0,y.useFeatureFlags)(),{t:S}=(0,e.useTranslation)("web"),T=(0,f.useRouter)(),U=(0,z.useSoundAction)("reject"),[V,W]=(0,c.useState)(a),[X,Y]=(0,c.useState)(()=>"feature"===a.type?by(a.node):null),[Z,$]=(0,c.useState)(()=>"feature"===a.type?by(a.node):null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(null),ad=(0,c.useRef)(null);(0,c.useEffect)(()=>{W(b=>"feature"===b.type&&"feature"===a.type&&b.node.featureId===a.node.featureId?{...a,node:{...b.node,...a.node}}:a)},[a]);let ae="feature"===V.type?V.node:null,af=!!ae&&(I=ae.state,bx.has(I));(0,c.useEffect)(()=>{if("feature"!==V.type||_)return;let a=by(V.node),b=a?`${V.node.featureId}:${a.agentType}:${a.modelId}`:`${V.node.featureId}:none`,c=ad.current!==b;ad.current=b,Y(a),$(a),c&&ac(null)},[V,_]);let{events:ag}=(0,C.useAgentEventsContext)(),ah=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(ah.current>ag.length&&(ah.current=0),!ae||ag.length<=ah.current)return;let a=ag.slice(ah.current);for(let b of(ah.current=ag.length,(0,cN.resolveSseEventUpdates)(a)))b.featureId===ae.featureId&&"deleting"!==ae.state&&(void 0!==b.state||void 0!==b.lifecycle)&&W(a=>{if("feature"!==a.type)return a;let c={...a.node,...void 0!==b.state&&{state:b.state},...void 0!==b.lifecycle&&{lifecycle:b.lifecycle}};return{...a,node:c,initialTab:cO(c)}})},[ag,ae]);let ai=(0,f.usePathname)().startsWith("/feature/");J=ae?.featureId??null,K=(0,c.useRef)(ai),L=(0,c.useRef)(!1),M=(0,c.useRef)(0),N=(0,c.useCallback)(async()=>{if(!J||L.current)return;L.current=!0;let a=M.current;try{let b=await cQ(J);if(!b||a!==M.current)return;W(a=>(function(a,b){if("feature"!==a.type)return a;let c={...a.node,...b},d=c.state!==a.node.state||c.lifecycle!==a.node.lifecycle;return{...a,node:c,initialTab:d?cO(c):a.initialTab}})(a,b))}catch{}finally{L.current=!1}},[J,W]),P=(0,c.useRef)(!1),(0,c.useEffect)(()=>{!ai||K.current&&P.current||(P.current=!0,M.current+=1,L.current=!1,N()),K.current=ai},[ai,N]),(0,c.useEffect)(()=>{if(!ai||!J)return;let a=setInterval(()=>{N()},15e3);return()=>clearInterval(a)},[ai,J,N]);let aj=(0,c.useCallback)(()=>{T.push("/control-center")},[T]),[ak,al]=(0,c.useState)(""),[am,an]=(0,c.useState)(null),[ao,ap]=(0,c.useState)({}),[aq,ar]=(0,c.useState)({}),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(!1),aE=`${ae?.featureId}:${ae?.state}`,aF=(0,c.useRef)(aE);(0,c.useEffect)(()=>{aE!==aF.current&&(aF.current=aE,aD(!1))},[aE]);let[aG,aH]=(0,c.useState)(!1),aI=(0,c.useRef)(!1),aJ="feature"===V.type?V.initialTab:void 0;(0,c.useEffect)(()=>{al("")},[aJ]);let aK=(0,c.useRef)(0),aL=(0,c.useRef)(ae?.state),aM=(0,c.useRef)(ae?.lifecycle);(ae?.state!==aL.current||ae?.lifecycle!==aM.current)&&(aL.current=ae?.state,aM.current=ae?.lifecycle,aK.current+=1);let aN=aK.current,aO=cP(ae?.lifecycle==="requirements"&&ae?.state==="action-required"?ae.featureId:null,v,a=>{if(a.error)return void g.toast.error(a.error);if(a.questionnaire){an(a.questionnaire);let b={};for(let c of a.questionnaire.questions){let a=c.options.find(a=>a.recommended);a&&(b[c.id]=a.id)}ap(b),ar(b)}},()=>{ap({}),ar({}),an(null)},"Failed to load questionnaire",aN),aP=ae?.lifecycle==="implementation"&&ae?.state==="action-required"?ae.featureId:null,aQ=cP(aP,w,a=>{a.error?g.toast.error(a.error):a.techDecisions&&at(a.techDecisions)},()=>at(null),"Failed to load tech decisions",aN),aR=cP(aP,v,a=>{a.productDecisions&&av(a.productDecisions)},()=>av(void 0),void 0,aN),aS=cP(ae?.lifecycle==="review"&&(ae?.state==="action-required"||ae?.state==="error")||ae?.lifecycle==="maintain"&&ae?.pr?ae.featureId:null,x,a=>{"error"in a?g.toast.error(a.error):ax(a)},()=>ax(null),"Failed to load merge review data",aN),aT=ak.trim().length>0,aU=ae?.lifecycle==="requirements"&&ae?.state==="action-required"&&Object.keys(aq).some(a=>aq[a]!==ao[a]),aV=(0,c.useCallback)(()=>{al(""),ap({...aq})},[aq]),{attemptClose:aW}=(0,A.useGuardedDrawerClose)({open:ai,isDirty:aT||aU,onClose:aj,onReset:aV}),aX=(0,c.useCallback)(async(a,b,c=[],d)=>{if(!_&&ae?.featureId){aI.current=!0,aH(!0);try{let e=c.map(a=>a.path).filter(Boolean),f=c.filter(a=>a.notes?.trim()),h=f.length>0?`${a}
|
|
3
3
|
|
|
4
4
|
Image notes:
|
|
5
5
|
${f.map(a=>`- @${a.path}: ${a.notes.trim()}`).join("\n")}`:a,i=await u(ae.featureId,h,e);if(!i.rejected)return void g.toast.error(i.error??`Failed to reject ${b.toLowerCase()}`);U.play(),al(""),g.toast.success(`${b} rejected — agent re-iterating (iteration ${i.iteration})`),i.iterationWarning&&g.toast.warning(`Iteration ${i.iteration} — consider approving or adjusting feedback to avoid excessive iterations`),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:ae.featureId}})),aj(),d?.()}finally{aI.current=!1,aH(!1)}}},[ae,aj,_,U]),aY=(0,c.useCallback)((a,b)=>aX(a,"Requirements",b,()=>ap({})),[aX]),aZ=(0,c.useCallback)((a,b)=>aX(a,"Plan",b),[aX]),a$=(0,c.useCallback)((a,b)=>aX(a,"Merge",b),[aX]),a_=(0,c.useCallback)(async a=>{if(_||!ae?.featureId)return;let b=await q(ae.featureId);b.approved?(al(""),g.toast.success(`${a} approved — agent resuming`),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:ae.featureId}})),aj()):g.toast.error(b.error??`Failed to approve ${a.toLowerCase()}`)},[ae,aj,_]),a0=(0,c.useCallback)(async a=>{let b;if(_||"feature"!==V.type||!ae)return;if(am){let a=[];for(let[b,c]of Object.entries(ao)){let d=am.questions.find(a=>a.id===b),e=d?.options.find(a=>a.id===c);d&&e&&a.push({questionId:d.question,selectedOption:e.label})}b={approved:!0,changedSelections:a}}let c=await q(ae.featureId,b);c.approved?(al(""),g.toast.success("Requirements approved — agent resuming"),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:ae.featureId}})),ap({}),aj()):g.toast.error(c.error??"Failed to approve requirements")},[V,ae,_,am,ao,aj]),a1=(0,c.useCallback)(()=>a_("Plan"),[a_]),a2=(0,c.useCallback)(()=>a_("Merge"),[a_]),a3=(0,c.useCallback)(async(a,b,c,d)=>{az(!0),aB(!1),window.dispatchEvent(new CustomEvent("shep:feature-delete-requested",{detail:{featureId:a,cleanup:b,cascadeDelete:c,closePr:d}})),T.push("/control-center")},[T]),a4=(0,c.useCallback)(a=>{aD(!0),window.dispatchEvent(new CustomEvent("shep:feature-archive-requested",{detail:{featureId:a}})),T.push("/control-center")},[T]),a5=(0,c.useCallback)(a=>{aD(!0),window.dispatchEvent(new CustomEvent("shep:feature-unarchive-requested",{detail:{featureId:a}})),T.push("/control-center")},[T]),a6=(0,c.useCallback)(async a=>{if(_)return;let b=await (0,r.resumeFeature)(a);b.error?g.toast.error(b.error):(g.toast.success("Feature resumed — agent restarting"),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:a}})),W(a=>"feature"!==a.type?a:{...a,node:{...a.node,state:"running"}}))},[_]),a7=(0,c.useCallback)(async a=>{let b=await (0,t.stopFeature)(a);b.stopped?(g.toast.success("Agent stopped"),W(a=>"feature"!==a.type?a:{...a,node:{...a.node,state:"error"}})):g.toast.error(b.error??"Failed to stop")},[]),a8=(0,c.useCallback)(async a=>{if(_)return;let b=await (0,s.startFeature)(a);b.error?g.toast.error(b.error):(g.toast.success("Feature started"),W(a=>"feature"!==a.type?a:{...a,node:{...a.node,state:"running"}}))},[_]),a9=(0,c.useCallback)(async(a,b)=>{var c;if(!ae)return{ok:!1,error:"Feature is not loaded"};if(c=ae.state,!bx.has(c))return{ok:!1,error:"Pinned execution can only be changed before start, approval, or retry"};let d=Z??by(ae),e={agentType:a,modelId:b};Y(e),ac(null),aa(!0);try{let c=await cT(ae.featureId,a,b);if(!c.ok){let a=c.error??"Failed to save pinned config";return Y(d),ac(a),g.toast.error(a),{ok:!1,error:a}}return $(e),W(a=>"feature"!==a.type||a.node.featureId!==ae.featureId?a:{...a,node:{...a.node,agentType:e.agentType,modelId:b}}),{ok:!0}}catch(b){let a=b instanceof Error?b.message:"Failed to save pinned config";return Y(d),ac(a),g.toast.error(a),{ok:!1,error:a}}finally{aa(!1)}},[ae,Z]),ba=ae?.repositoryPath&&ae?.branch?{featureId:ae.featureId,repositoryPath:ae.repositoryPath,branch:ae.branch,worktreePath:ae.worktreePath,specPath:ae.specPath}:null,bb=function(a){let[b,d]=(0,c.useState)(!1),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(null),y=(0,c.useRef)(null),z=(0,c.useRef)(null),A=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=[w,x,y,z,A];return()=>{for(let b of a)b.current&&clearTimeout(b.current)}},[]);let B=(0,c.useCallback)(async(b,c,d,e,f)=>{if(a&&!f){e.current&&clearTimeout(e.current),c(!0),d(null);try{let c=await b({repositoryPath:a.repositoryPath,branch:a.branch});if(!c.success){let a=c.error??"An unexpected error occurred";d(a),e.current=setTimeout(()=>d(null),5e3)}}catch(a){d(a instanceof Error?a.message:"An unexpected error occurred"),e.current=setTimeout(()=>d(null),5e3)}finally{c(!1)}}},[a]);return{openInIde:(0,c.useCallback)(()=>B(cJ.openIde,d,n,w,b),[B,b]),openInShell:(0,c.useCallback)(()=>B(cK.openShell,f,p,x,e),[B,e]),openFolder:(0,c.useCallback)(async()=>{if(a&&!g){y.current&&clearTimeout(y.current),h(!0),r(null);try{let b=a.worktreePath??a.repositoryPath,c=await (0,cL.openFolder)(b);if(!c.success){let a=c.error??"An unexpected error occurred";r(a),y.current=setTimeout(()=>r(null),5e3)}}catch(a){r(a instanceof Error?a.message:"An unexpected error occurred"),y.current=setTimeout(()=>r(null),5e3)}finally{h(!1)}}},[a,g]),openSpecsFolder:(0,c.useCallback)(async()=>{if(a?.specPath&&!i){z.current&&clearTimeout(z.current),j(!0),t(null);try{let b=await (0,cL.openFolder)(a.specPath);if(!b.success){let a=b.error??"An unexpected error occurred";t(a),z.current=setTimeout(()=>t(null),5e3)}}catch(a){t(a instanceof Error?a.message:"An unexpected error occurred"),z.current=setTimeout(()=>t(null),5e3)}finally{j(!1)}}},[a,i]),rebaseOnMain:(0,c.useCallback)(async()=>{if(a?.featureId&&!k){A.current&&clearTimeout(A.current),l(!0),v(null);try{let b=await cM(a.featureId);if(!b.success){let a=b.error??"An unexpected error occurred";v(a),A.current=setTimeout(()=>v(null),5e3)}}catch(a){v(a instanceof Error?a.message:"An unexpected error occurred"),A.current=setTimeout(()=>v(null),5e3)}finally{l(!1)}}},[a,k]),ideLoading:b,shellLoading:e,folderLoading:g,specsLoading:i,rebaseLoading:k,ideError:m,shellError:o,folderError:q,specsError:s,rebaseError:u}}(ba),bc=R.gitRebaseSync&&ae?.branch&&ae?.remoteUrl?ae.featureId:null,{data:bd,loading:be,error:bf,refresh:bg}=function(a){let[b,d]=(0,c.useState)(()=>{if(!a)return null;let b=cS.get(a);return b?b.data:null}),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(a);i.current=a;let j=(0,c.useCallback)(async a=>{f(!0),h(null);try{let b=await cR(a);if(i.current!==a)return;if(b.success&&b.data){let c=b.data;cS.set(a,{data:c,timestamp:Date.now()}),d(c)}else h(b.error??"Failed to check sync status")}catch{if(i.current!==a)return;h("Failed to check sync status")}finally{i.current===a&&f(!1)}},[]);return(0,c.useEffect)(()=>{if(!a){d(null),h(null);return}let b=cS.get(a);b&&(d(b.data),Date.now()-b.timestamp<3e4)||j(a)},[a,j]),{data:b,loading:e,error:g,refresh:(0,c.useCallback)(()=>{a&&j(a)},[a,j])}}(bc),bh=(0,c.useRef)(bb.rebaseLoading);(0,c.useEffect)(()=>{!bh.current||bb.rebaseLoading||bb.rebaseError||bg(),bh.current=bb.rebaseLoading},[bb.rebaseLoading,bb.rebaseError,bg]);let bi=ae?.repositoryPath&&ae.branch?{targetId:ae.featureId,targetType:"feature",repositoryPath:ae.repositoryPath,branch:ae.branch}:null,bj=(0,B.useDeployAction)(bi),bk="Booting"===bj.status||"Ready"===bj.status,[bl,bm]=(0,c.useState)(!1),bn=(0,c.useCallback)(()=>{ae?.featureId&&(navigator.clipboard.writeText(ae.featureId),bm(!0),setTimeout(()=>bm(!1),2e3))},[ae?.featureId]);if(ae){let a=ae.featureId.slice(0,8),c="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",e="bg-border/60 mx-1.5 h-5 w-px shrink-0";Q=(0,b.jsx)("div",{"data-testid":"feature-drawer-toolbar",children:(0,b.jsxs)("div",{className:"flex h-10 items-center px-2","data-testid":"feature-drawer-actions",children:[ba&&ae?.state!=="done"?(0,b.jsx)(O,{actions:bb,repositoryPath:ba.repositoryPath,worktreePath:ba.worktreePath,showSpecs:!!ba.specPath}):null,ba&&ae?.state!=="done"&&R.envDeploy&&bi?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:e}),(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:bj.deployLoading||bj.stopLoading,onClick:bk?bj.stop:bj.deploy,className:(0,d.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",bk?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-600 hover:bg-green-500/10 dark:text-green-500"),"aria-label":S(bk?"featureDrawer.stopDevServer":"featureDrawer.startDevServer"),children:bj.deployLoading||bj.stopLoading?(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}):bk?(0,b.jsx)(k.Square,{className:"size-4"}):(0,b.jsx)(j.Play,{className:"size-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:S(bk?"featureDrawer.stopDevServer":"featureDrawer.startDevServer")})]})}),bk?(0,b.jsx)(E.DeploymentStatusBadge,{status:bj.status,url:bj.url,targetId:bi?.targetId}):null]}):null,(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsx)("code",{className:"text-muted-foreground/70 font-mono text-[10px] tracking-wide select-none",children:a}),(0,b.jsx)(F.TooltipProvider,{delayDuration:300,children:(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:bn,className:c,"aria-label":S("featureDrawer.copyFeatureId"),"data-testid":"feature-drawer-copy-id",children:bl?(0,b.jsx)(m.Check,{className:"size-4 text-green-500"}):(0,b.jsx)(l.Copy,{className:"size-4"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:S("featureDrawer.copyFeatureId")})]})}),ae.featureId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:e}),(0,b.jsxs)(F.TooltipProvider,{delayDuration:300,children:["archived"===ae.state?(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:aC,className:c,"data-testid":"feature-drawer-unarchive",onClick:()=>a5(ae.featureId),children:aC?(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}):(0,b.jsx)(o.ArchiveRestore,{className:"size-3"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:S("featureDrawer.unarchiveFeature")})]}):"deleting"!==ae.state?(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:aC,className:c,"data-testid":"feature-drawer-archive",onClick:()=>a4(ae.featureId),children:aC?(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}):(0,b.jsx)(n.Archive,{className:"size-3"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:S("featureDrawer.archiveFeature")})]}):null,(0,b.jsxs)(F.Tooltip,{children:[(0,b.jsx)(F.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:ay,className:(0,d.cn)(c,"hover:bg-destructive/10 hover:text-destructive"),"data-testid":"feature-drawer-delete",onClick:()=>aB(!0),children:ay?(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}):(0,b.jsx)(i.Trash2,{className:"size-3"})})}),(0,b.jsx)(F.TooltipContent,{side:"bottom",className:"text-xs",children:S("featureDrawer.deleteFeature")})]})]}),(0,b.jsx)(G.DeleteFeatureDialog,{open:aA,onOpenChange:aB,onConfirm:(a,b,c)=>a3(ae.featureId,a,b,c),isDeleting:ay,featureName:ae.name,featureId:ae.featureId,hasChildren:ae.hasChildren,hasOpenPr:!!ae.pr&&"Open"===ae.pr.status})]}):null]})]})})}let bo=null;if("feature"===V.type&&ae){let a={...ae,..."error"===ae.state&&{onRetry:a6},..."pending"===ae.state&&{onStart:a8}};bo=(0,b.jsx)(cH,{featureName:ae.name,headerContent:Q,featureNode:a,featureId:ae.featureId,initialTab:V.initialTab,urlTab:p,sseEvents:ag,prdData:am,prdSelections:ao,onPrdSelect:(a,b)=>ap(c=>({...c,[a]:b})),onPrdApprove:a0,onPrdReject:aY,isPrdLoading:aO,techData:as,onTechApprove:a1,onTechReject:aZ,isTechLoading:aQ,productData:aR?null:au,mergeData:aw,onMergeApprove:a2,onMergeReject:a$,isMergeLoading:aS,syncStatus:bc?bd:void 0,syncLoading:be,syncError:bf,onRefreshSync:bc?bg:void 0,onRebaseOnMain:bc?bb.rebaseOnMain:void 0,rebaseLoading:bb.rebaseLoading,rebaseError:bb.rebaseError,isRejecting:aG,chatInput:ak,onChatInputChange:al,pinnedConfig:af&&X?{...X,saving:_,error:ab,onSave:a9}:void 0,continuationActionsDisabled:_,interactiveAgentEnabled:H,onRetry:a6,onStop:a7,onStart:a8})}return(0,b.jsx)(D.BaseDrawer,{open:ai,onClose:aW,size:"lg",modal:!1,"data-testid":"feature"===V.type?"feature-drawer":"repository-drawer",children:bo})}a.s(["FeatureDrawerClient",()=>cU],964885)}];
|