@mndrk/agx 2.0.22 → 2.0.24
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/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +6 -6
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
- package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/_global-error/page.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/_not-found/page.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +11 -11
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +7 -7
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +11 -11
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +11 -11
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +5 -5
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/board/page.js +6 -6
- package/cloud-runtime/standalone/.next/server/app/board/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +8 -8
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +8 -8
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +13 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/settings/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +9 -9
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +9 -9
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/status/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +14 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +10 -10
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__621dcb4a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__babd2675._.js → [root-of-the-server]__82d76712._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d36da34d._.js → [root-of-the-server]__c2767ca5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_filesystem_browse_route_actions_8e268170.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +6 -6
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__fb05a385._.js → [root-of-the-server]__056cdf7d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__8d1af2c9._.js → [root-of-the-server]__11e33b9b._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__296a25b5._.js → [root-of-the-server]__19cd257e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__226f8a19._.js +13 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__51980630._.js → [root-of-the-server]__26d669c2._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a103abc._.js → [root-of-the-server]__4ebf5947._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c45c7360._.js → [root-of-the-server]__a667191a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1cfbd715._.js → [root-of-the-server]__aa28d46f._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bd4d5430._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ab36b420._.js → [root-of-the-server]__bde5bc78._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__cde88183._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__2503b467._.js → [root-of-the-server]__d36dd8bc._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__b77ae83d._.js → [root-of-the-server]__dac5ab29._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__3405b8e4._.js → [root-of-the-server]__e87ba2b0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__b9356576._.js → [root-of-the-server]__f62d412e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__756711b8._.js → [root-of-the-server]__f63d6594._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__46de03a9._.js → [root-of-the-server]__febbd0b8._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__89c70d6f._.js → [root-of-the-server]__ff22a10e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a19a362a._.js → _02c78cac._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_dist_08570d7f._.js → _0b36c9d6._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ff7c687._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ffd2660._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_37435df3._.js → _173da79d._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4fe611fe._.js → _1c58ab2d._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a88b4884._.js → _222af282._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_27cb3359._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_8ebf36f6._.js → _3aa32c11._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4b5d7c9b._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c52176ad._.js → _4d4ba84b._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_194cda6c._.js → _50d04b8f._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a8eaf6bc._.js → _629dc55c._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6a367524._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_93914ecd._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a696e9b3._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ae20456d._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_c838f593._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d021529a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fc18d7b5._.js → _e04b4053._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1769638._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_b9d3574c._.js → _f1465cc8._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d4878ef1._.js → _f2a7beb1._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_8d8836a8._.js → _fc1aaf9e._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_[id]_page_tsx_9c49d8c8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_page_tsx_f5f08ed8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_automations_page_tsx_3d732184._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_global-error_tsx_9170b7a0._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_03ec2107._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_d92e159d.js → node_modules_next_dist_esm_build_templates_app-page_61c49327.js} +3 -3
- package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +4 -4
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/pages/404.html +13 -1
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{785cb91c31bb3303.js → 09f9eeea393db0fd.js} +3 -3
- package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2acd153dc5252e88.js +30 -0
- package/cloud-runtime/standalone/.next/static/chunks/2deeba875ec50761.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/45b4d0ee5c92d45b.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/616d66dbec9e4b8b.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/64f812259cf8c243.js +18 -0
- package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/7d4c1d97169c8522.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{47ef8bb2118ea917.js → 86ace6febb11ad71.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{90c7dbc004f59a42.js → 88e24940a5d5d386.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/9d50c2514f72d926.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +5 -0
- package/cloud-runtime/standalone/.next/static/chunks/b4e298542d366e31.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +6 -0
- package/cloud-runtime/standalone/.next/static/chunks/bd6c5b5b4fbd6413.css +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{7ca3e4f9ed7425a8.js → d95cd010361834be.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/da434b1ad885d636.js +30 -0
- package/cloud-runtime/standalone/.next/static/chunks/e44264686aa5ecbf.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/eab1c7d0246592f8.js +8 -0
- package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{turbopack-92401168917c21f2.js → turbopack-5b5918f610666d2d.js} +1 -1
- package/cloud-runtime/standalone/README.md +15 -3
- package/cloud-runtime/standalone/app/agents/[id]/page.tsx +147 -147
- package/cloud-runtime/standalone/app/agents/page.tsx +115 -310
- package/cloud-runtime/standalone/app/api/filesystem/browse/route.ts +39 -0
- package/cloud-runtime/standalone/app/api/status/route.ts +1 -1
- package/cloud-runtime/standalone/app/api/threads/route.ts +4 -5
- package/cloud-runtime/standalone/app/automations/page.tsx +1 -1
- package/cloud-runtime/standalone/app/execution-graph/page.tsx +86 -86
- package/cloud-runtime/standalone/app/global-error.tsx +54 -0
- package/cloud-runtime/standalone/app/globals.css +165 -59
- package/cloud-runtime/standalone/app/layout.tsx +17 -0
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +1 -1
- package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +58 -58
- package/cloud-runtime/standalone/app/status/page.tsx +20 -20
- package/cloud-runtime/standalone/app/welcome/page.tsx +20 -15
- package/cloud-runtime/standalone/components/AutomationsBoard.tsx +1 -1
- package/cloud-runtime/standalone/components/ClientOnly.tsx +17 -0
- package/cloud-runtime/standalone/components/ConsentToggle/index.tsx +3 -3
- package/cloud-runtime/standalone/components/ContextMenu.tsx +123 -0
- package/cloud-runtime/standalone/components/DaemonBar.tsx +9 -9
- package/cloud-runtime/standalone/components/DirectoryBrowser.tsx +140 -0
- package/cloud-runtime/standalone/components/FirstRunModal/index.tsx +10 -10
- package/cloud-runtime/standalone/components/KanbanBoard.tsx +9 -9
- package/cloud-runtime/standalone/components/OfflineIndicator.tsx +149 -0
- package/cloud-runtime/standalone/components/ProjectModal.tsx +32 -8
- package/cloud-runtime/standalone/components/TaskCard.tsx +3 -3
- package/cloud-runtime/standalone/components/WorkspaceRootsList/index.tsx +57 -35
- package/cloud-runtime/standalone/components/chat-ui/AttachmentTray.tsx +7 -7
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +218 -121
- package/cloud-runtime/standalone/components/chat-ui/ChatPreview.tsx +4 -4
- package/cloud-runtime/standalone/components/chat-ui/CommandPopover.tsx +4 -4
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +65 -29
- package/cloud-runtime/standalone/components/chat-ui/FileMentionPopover.tsx +4 -4
- package/cloud-runtime/standalone/components/chat-ui/FileMentionPopoverItem.tsx +9 -9
- package/cloud-runtime/standalone/components/chat-ui/LogPanel.tsx +5 -5
- package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +11 -11
- package/cloud-runtime/standalone/components/chat-ui/MentionPopover.tsx +11 -11
- package/cloud-runtime/standalone/components/chat-ui/MessageAttachments.tsx +5 -5
- package/cloud-runtime/standalone/components/chat-ui/MessageBubble.tsx +6 -6
- package/cloud-runtime/standalone/components/chat-ui/MessageList.tsx +60 -135
- package/cloud-runtime/standalone/components/chat-ui/ParticipantBar.tsx +507 -263
- package/cloud-runtime/standalone/components/chat-ui/ProjectPicker.tsx +17 -17
- package/cloud-runtime/standalone/components/chat-ui/ReactionChip.tsx +1 -1
- package/cloud-runtime/standalone/components/chat-ui/SearchResults.tsx +14 -14
- package/cloud-runtime/standalone/components/chat-ui/StatusIndicator.tsx +7 -7
- package/cloud-runtime/standalone/components/chat-ui/TaskDraftCard.tsx +14 -14
- package/cloud-runtime/standalone/components/chat-ui/TaskStatusCard.tsx +10 -10
- package/cloud-runtime/standalone/components/chat-ui/ThreadMentionPopover.tsx +8 -8
- package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +36 -33
- package/cloud-runtime/standalone/components/chat-ui/TypingIndicator.tsx +7 -7
- package/cloud-runtime/standalone/components/errors/StartupGuardWrapper.tsx +96 -0
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +173 -193
- package/cloud-runtime/standalone/fix-primary.js +30 -0
- package/cloud-runtime/standalone/fix-theme.js +78 -0
- package/cloud-runtime/standalone/hooks/useKeyboardShortcuts.ts +131 -0
- package/cloud-runtime/standalone/lib/history-store.ts +6 -1
- package/cloud-runtime/standalone/lib/storage/thread-adapter.ts +3 -3
- package/cloud-runtime/standalone/state/windowState.ts +179 -0
- package/cloud-runtime/standalone/styles/workspaceSidebar.css +89 -94
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__3fe0b1a1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ea3dff5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__931817d6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__e68a6e30._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fad8b80a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_181427d4._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_2da02644._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_60f7e403._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_7dbc349d._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a17cabe8._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d743f11d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e05b04a5._.js +0 -4
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_f2970e5f._.js +0 -4
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_001a8448._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/047593c886feba72.css +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/0c589ec8063c3a1f.js +0 -30
- package/cloud-runtime/standalone/.next/static/chunks/1826707bd2f73ca6.js +0 -8
- package/cloud-runtime/standalone/.next/static/chunks/1f1b912fe2e3d5bd.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/32f13ace6661115d.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/3b0a3b913dd15028.js +0 -30
- package/cloud-runtime/standalone/.next/static/chunks/4b3358c52d01a3f9.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/4ee6151684568990.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/5488a71a8515e8b2.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5aad4adabb65cd20.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5ce01dbd17ce3bb2.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5f5ae2ea4fa2b8f0.js +0 -12
- package/cloud-runtime/standalone/.next/static/chunks/6bb1ecbc3b80922c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7657d70cc0c40c81.js +0 -6
- package/cloud-runtime/standalone/.next/static/chunks/7f2513325b592f25.js +0 -18
- package/cloud-runtime/standalone/.next/static/chunks/8b658ccf17b771b9.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b39122b85655e5b0.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b649593a57df218f.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b8ca4cb386211980.js +0 -5
- package/cloud-runtime/standalone/.next/static/chunks/e103488c85a7b445.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/e355ac901e70f43d.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/ebebe08434070698.js +0 -93
- /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_ssgManifest.js +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,37452,e=>{e.v({fileMentionFadeIn:"FileMentionPopover-module__1CTxzW__fileMentionFadeIn",popover:"FileMentionPopover-module__1CTxzW__popover"})},30426,e=>{"use strict";var t=e.i(18050),a=e.i(71645);function s(e){return`threadId=${encodeURIComponent(e)}`}function r(e){return`workspaceId=${encodeURIComponent(e)}`}var l=e.i(50030),n=e.i(16625),i=e.i(68542),o=e.i(22016),d=e.i(14065),c=e.i(25459);let u={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function p({type:e,count:a,participantIds:s}){let r=u[e],l=s.join(", "),n=l?`${r.label}: ${l}`:r.label;return(0,t.jsxs)("span",{title:n,className:"inline-flex items-center gap-1 rounded-full border border-zinc-300 bg-zinc-50 px-2 py-0.5 text-xs text-zinc-700",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:r.symbol}),(0,t.jsx)("span",{className:"tabular-nums",children:a})]})}function m({reactions:e}){if(!e||0===e.length)return null;let a=[...e].sort((e,t)=>t.count!==e.count?t.count-e.count:e.type.localeCompare(t.type));return(0,t.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:a.map(e=>(0,t.jsx)(p,{type:e.type,count:e.count,participantIds:e.participantIds},e.type))})}var h=e.i(75254);let x=(0,h.default)("file-text",[["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:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var f=e.i(40160);function g({attachments:e,compact:a=!1}){if(0===e.length)return null;let s=e.filter(e=>e.mimeType.startsWith("image/")),r=e.filter(e=>!e.mimeType.startsWith("image/")),l=a?"max-w-[120px]":"max-w-[240px]",n=a?"max-h-[90px]":"max-h-[180px]";return(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-slate-200 hover:border-slate-300 transition-colors",children:(0,t.jsx)("img",{src:e.url,alt:e.filename,className:`${l} ${n} object-cover`,loading:"lazy"})},e.id))}),r.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(e=>{var s;return(0,t.jsxs)("a",{href:e.url,download:e.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-slate-200 bg-slate-50 text-slate-600 hover:bg-slate-100 hover:border-slate-300 transition-colors ${a?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,t.jsx)(x,{className:`text-slate-400 shrink-0 ${a?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,t.jsx)("span",{className:`truncate ${a?"max-w-[100px]":"max-w-[150px]"}`,children:e.filename}),(0,t.jsx)("span",{className:"text-slate-400 shrink-0",children:(s=e.size)<1024?`${s}B`:s<1048576?`${(s/1024).toFixed(0)}KB`:`${(s/1048576).toFixed(1)}MB`}),(0,t.jsx)(f.Download,{className:`text-slate-400 shrink-0 ${a?"w-2.5 h-2.5":"w-3 h-3"}`})]},e.id)})})]})}var b=e.i(86311),v=e.i(84614);let j=(0,h.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);var w=e.i(29415);function y({message:e,participantName:a,participantColor:s,participantId:r,onReply:l,onOpenThread:n,onSummarize:i,summarizing:u,isRoot:p=!1,highlighted:h=!1,hideUserAvatarAndName:f=!1}){let y,k="user"===e.role,N=(0,w.stripMarkers)(e.content);return N||e.attachments?.length?(0,t.jsxs)("div",{className:`flex gap-4 group transition-colors ${!p?"py-4":""} ${h?"rounded-lg bg-amber-50/90 px-2 -mx-2 ring-1 ring-amber-200":""}`,children:[!(k&&f)&&(r&&!k?(0,t.jsx)(o.default,{href:`/agents/${r}`,className:"w-9 h-9 rounded-full flex items-center justify-center shrink-0 bg-slate-100 overflow-hidden hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(r,36,s),alt:"",className:"w-full h-full object-cover"})}):(0,t.jsx)("div",{className:`w-9 h-9 rounded-full flex items-center justify-center shrink-0 ${k?"bg-slate-200 text-slate-600":"bg-slate-100 overflow-hidden"}`,children:(0,t.jsx)(v.User,{className:"w-5 h-5"})})),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[!(k&&f)&&(!k&&r?(0,t.jsx)(o.default,{href:`/agents/${r}`,className:"font-bold text-[15px] hover:underline",style:s?{color:s}:{},children:a||"Unknown"}):(0,t.jsx)("span",{className:"font-bold text-[15px]",children:k?"You":a||"Unknown"})),(0,t.jsx)("span",{className:"text-xs text-slate-400 font-medium",children:(y=e.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(y))})]}),(0,t.jsxs)("div",{className:`text-[15px] text-slate-800 leading-relaxed ${k?"cursor-pointer hover:bg-slate-50/50 transition-colors rounded p-1 -mx-1":""}`,onClick:()=>{k&&n&&n(e.id)},children:[(0,t.jsx)(d.Markdown,{content:N,isUser:k}),e.attachments&&e.attachments.length>0&&(0,t.jsx)(g,{attachments:e.attachments})]}),p&&(0,t.jsxs)("div",{className:"mt-4 flex gap-2",children:[(0,t.jsx)(m,{reactions:e.reactions}),l&&!k&&(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),className:"flex items-center gap-1.5 px-2.5 py-1 text-slate-500 hover:text-slate-800 rounded-full hover:bg-slate-50 transition-colors text-xs font-semibold",children:[(0,t.jsx)(b.MessageSquare,{className:"w-3 h-3"}),"Reply"]}),i&&(0,t.jsxs)("button",{type:"button",onClick:()=>i(e.id),disabled:u,className:"flex items-center gap-1.5 px-2.5 py-1 text-slate-500 hover:text-slate-800 rounded-full hover:bg-slate-50 transition-colors text-xs font-semibold disabled:opacity-50 disabled:cursor-not-allowed",children:[u?(0,t.jsx)(j,{className:"w-3 h-3 animate-spin"}):(0,t.jsx)(x,{className:"w-3 h-3"}),u?"Summarizing…":"Summarize"]})]})]})]}):null}function k(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-zinc-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-zinc-400 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-zinc-400 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function N({participantId:e,participantName:a,participantColor:s,content:r}){let l=(0,w.stripMarkers)(r),n=l.length>0;return(0,t.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)(o.default,{href:`/agents/${e}`,className:"w-9 h-9 rounded-full bg-slate-100 overflow-hidden shrink-0 shadow-sm border border-slate-100 hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(e,36,s),alt:"",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,t.jsx)(o.default,{href:`/agents/${e}`,className:"font-bold text-[15px] hover:underline",style:{color:s},children:a}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-slate-400 font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,t.jsx)("div",{className:"text-[15px] text-slate-800 leading-relaxed min-h-[1.5rem] flex items-center",children:n?(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(d.Markdown,{content:l}),(0,t.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 text-slate-400 italic",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,t.jsx)(k,{})]})})]})]})}var C=e.i(39312);let I=(0,h.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var S=e.i(64659),$=e.i(63059),M=e.i(7233),T=e.i(37727);let z=(0,h.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var P=e.i(74886),A=e.i(43531),D=e.i(47167);let E=D.default.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741";async function R(){let e=await fetch(`${E}/api/projects`);if(!e.ok){if(503===e.status)throw Error("SCHEMA_NOT_READY");throw Error(`Failed to list projects: ${e.status}`)}let t=await e.json();return t.projects??t}async function O(e,t){let a=await fetch(`${E}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,description:t})});if(!a.ok)throw Error(`Failed to create project: ${a.status}`);return a.json()}async function U(e,t){let a=await fetch(`${E}/api/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,...t})});if(!a.ok)throw Error(`Failed to create task: ${a.status}`);let s=await a.json(),r=s.task??s;return s.id&&!r.id&&(r.id=s.id),r}async function L(e){let t=await fetch(`${E}/api/tasks/${e}`);if(!t.ok)return null;let a=await t.json();return a.task??a}async function F(e,t,a,s){let r=[],l={...s},n=new Map((function(e){let t=new Set(e.map(e=>e.id)),a=new Map;for(let s of e)a.set(s.id,(s.dependsOn||[]).filter(e=>t.has(e)));let s=[],r=new Set,l=new Set;for(let t of e)!function t(n){if(!r.has(n)&&!l.has(n)){for(let e of(l.add(n),a.get(n)||[]))t(e);l.delete(n),r.add(n),s.push(e.find(e=>e.id===n))}}(t.id);return s})(e).map(e=>[e.id,e]));for(;n.size>0;){let e=[];for(let t of n.values())(t.dependsOn||[]).every(e=>!n.has(e)||l[e])&&e.push(t);0===e.length&&e.push(...n.values());let a=await Promise.allSettled(e.map(async e=>{let a=l[e.id];if(a&&await L(a))return{task:e,remoteId:a};let s=(e.dependsOn||[]).map(e=>l[e]).filter(Boolean),r=await U(e.description,{title:e.title,project_id:t,depends_on:s.length>0?s:void 0});return{task:e,remoteId:r.id}}));for(let t of a)if("fulfilled"===t.status){let{task:e,remoteId:a}=t.value;l[e.id]=a,r.push({clientTaskId:e.id,remoteTaskId:a,status:"created"}),n.delete(e.id)}else{let s=e[a.indexOf(t)];r.push({clientTaskId:s.id,status:"failed",error:t.reason instanceof Error?t.reason.message:"Unknown error"}),n.delete(s.id)}}return{buildId:a,projectId:t,results:r}}var _=e.i(75505),W=e.i(78894);function q({onSelect:e,onClose:s}){let[r,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(!0),[o,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!1),[p,m]=(0,a.useState)(""),[h,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{try{let e=await R();l(e)}catch(e){e instanceof Error&&"SCHEMA_NOT_READY"===e.message?d("agx-cloud database not ready. Run migrations first."):d("Failed to load projects. Is agx-cloud running?")}finally{i(!1)}})()},[]);let f=(0,a.useCallback)(async()=>{let t=p.trim();if(t){u(!0);try{let a=await O(t);e(a.id,a.name)}catch(e){d("Failed to create project")}finally{u(!1)}}},[p,e]);return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"bg-white rounded-2xl shadow-xl border border-slate-200 w-full max-w-sm mx-4 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-slate-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(_.FolderOpen,{className:"w-4 h-4 text-slate-500"}),(0,t.jsx)("h3",{className:"text-sm font-bold text-slate-900",children:"Select Project"})]}),(0,t.jsx)("button",{type:"button",onClick:s,className:"p-1 text-slate-400 hover:text-slate-600 rounded-md hover:bg-slate-100",children:(0,t.jsx)(T.X,{className:"w-4 h-4"})})]}),(0,t.jsxs)("div",{className:"p-4 max-h-64 overflow-y-auto",children:[n&&(0,t.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,t.jsx)(j,{className:"w-5 h-5 text-slate-400 animate-spin"})}),o&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-amber-50 rounded-lg text-amber-700 text-xs font-medium",children:[(0,t.jsx)(W.AlertTriangle,{className:"w-4 h-4 shrink-0"}),o]}),!n&&!o&&0===r.length&&(0,t.jsx)("p",{className:"text-xs text-slate-500 text-center py-4",children:"No projects found. Create one below."}),!n&&r.map(a=>(0,t.jsxs)("button",{type:"button",onClick:()=>e(a.id,a.name),className:"w-full text-left px-3 py-2.5 rounded-lg hover:bg-slate-50 transition-colors flex items-center gap-3 group",children:[(0,t.jsx)("div",{className:"w-8 h-8 rounded-lg bg-slate-100 flex items-center justify-center shrink-0",children:(0,t.jsx)(_.FolderOpen,{className:"w-4 h-4 text-slate-400 group-hover:text-slate-600"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-slate-800 truncate",children:a.name}),a.description&&(0,t.jsx)("div",{className:"text-[11px] text-slate-500 truncate",children:a.description})]})]},a.id))]}),(0,t.jsx)("div",{className:"px-4 pb-4 pt-2 border-t border-slate-100",children:h?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"text",value:p,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&f(),placeholder:"Project name",autoFocus:!0,className:"flex-1 h-8 px-3 text-sm border border-slate-200 rounded-lg outline-none focus:ring-1 focus:ring-slate-300"}),(0,t.jsx)("button",{type:"button",onClick:f,disabled:c||!p.trim(),className:"h-8 px-3 text-xs font-bold text-white bg-slate-900 hover:bg-slate-800 rounded-lg disabled:opacity-40",children:c?"…":"Create"}),(0,t.jsx)("button",{type:"button",onClick:()=>x(!1),className:"h-8 px-2 text-slate-400 hover:text-slate-600",children:(0,t.jsx)(T.X,{className:"w-3.5 h-3.5"})})]}):(0,t.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"flex items-center gap-1.5 text-xs font-bold text-slate-500 hover:text-slate-700",children:[(0,t.jsx)(M.Plus,{className:"w-3.5 h-3.5"}),"Create new project"]})})]})})}function B({draft:e,onUpdate:s,onBuild:r,building:l}){let[n,i]=(0,a.useState)(null),[o,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(!1),p=(0,a.useCallback)(()=>{let t=e.tasks.map((e,t)=>{let a=`${t+1}. **${e.title}**`;return e.description&&"Add description..."!==e.description&&(a+=`
|
|
2
|
-
${e.description.replace(/\n/g,"\n ")}`),a}).join("\n");navigator.clipboard.writeText(t).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},[e.tasks]),m=(0,a.useCallback)((t,a)=>{let r=e.tasks.map(e=>e.id===t?{...e,...a}:e);s({...e,tasks:r,revision:e.revision+1})},[e,s]),h=(0,a.useCallback)(t=>{let a=e.tasks.filter(e=>e.id!==t);s({...e,tasks:a,revision:e.revision+1})},[e,s]),x=(0,a.useCallback)(()=>{let t={id:crypto.randomUUID(),title:"New task",description:"Add description..."};s({...e,tasks:[...e.tasks,t],revision:e.revision+1})},[e,s]),f=(0,a.useCallback)(()=>{d(!0)},[]),g=(0,a.useCallback)((t,a)=>{d(!1),r(e,t,a)},[e,r]),b="idle"===e.buildStatus||!e.buildStatus;return(0,t.jsxs)("div",{className:"mt-6 p-4 bg-slate-50/80 rounded-2xl border border-slate-100 shadow-sm",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(C.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,t.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-slate-400",children:"Tasks"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-bold text-slate-500",children:[e.tasks.length," task",1!==e.tasks.length?"s":""]}),e.tasks.length>0&&(0,t.jsx)("button",{type:"button",onClick:p,className:"text-slate-400 hover:text-slate-600 transition-colors",title:"Copy as markdown",children:c?(0,t.jsx)(A.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,t.jsx)(P.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsx)("div",{className:"space-y-1 mb-4",children:e.tasks.map(e=>{let a=n===e.id;return(0,t.jsxs)("div",{className:"group",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-white/60 transition-colors",children:[b&&(0,t.jsx)(I,{className:"w-3.5 h-3.5 text-slate-300 opacity-0 group-hover:opacity-100 cursor-grab shrink-0"}),(0,t.jsx)("button",{type:"button",onClick:()=>i(a?null:e.id),className:"shrink-0 text-slate-400 hover:text-slate-600",children:a?(0,t.jsx)(S.ChevronDown,{className:"w-3.5 h-3.5"}):(0,t.jsx)($.ChevronRight,{className:"w-3.5 h-3.5"})}),b?(0,t.jsx)("input",{type:"text",value:e.title,onChange:t=>m(e.id,{title:t.target.value}),className:"flex-1 text-xs font-semibold text-slate-700 bg-transparent border-none outline-none focus:ring-0 p-0"}):(0,t.jsx)("span",{className:"flex-1 text-xs font-semibold text-slate-700",children:e.title}),b&&(0,t.jsx)("button",{type:"button",onClick:()=>h(e.id),className:"shrink-0 text-slate-300 hover:text-rose-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,t.jsx)(T.X,{className:"w-3.5 h-3.5"})})]}),a&&(0,t.jsx)("div",{className:"ml-9 mr-2 mb-2",children:b?(0,t.jsx)("textarea",{value:e.description,onChange:t=>m(e.id,{description:t.target.value}),rows:4,className:"w-full text-xs text-slate-500 bg-white/80 border border-slate-200 rounded-lg p-2 outline-none focus:ring-1 focus:ring-slate-300 resize-y"}):(0,t.jsx)("p",{className:"text-xs text-slate-500 whitespace-pre-wrap",children:e.description})})]},e.id)})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[b&&(0,t.jsxs)("button",{type:"button",onClick:x,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-bold text-slate-500 hover:text-slate-700 rounded-full border border-dashed border-slate-300 hover:border-slate-400 transition-all",children:[(0,t.jsx)(M.Plus,{className:"w-3 h-3"}),"Add task"]}),(0,t.jsx)("div",{className:"flex-1"}),b&&(0,t.jsxs)("button",{type:"button",onClick:f,disabled:l||0===e.tasks.length,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-white bg-slate-900 hover:bg-slate-800 rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,t.jsx)(z,{className:"w-3 h-3"}),l?"Pushing…":"Push to agx"]})]}),o&&(0,t.jsx)(q,{onSelect:g,onClose:()=>d(!1)})]})}let H=new Set(["completed","done","failed","blocked"]);var V=e.i(95468),J=e.i(14683);let K=(0,h.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);var X=e.i(73884);let Y={queued:(0,t.jsx)(J.Circle,{className:"w-4 h-4 text-slate-300"}),pending:(0,t.jsx)(J.Circle,{className:"w-4 h-4 text-slate-300"}),in_progress:(0,t.jsx)(j,{className:"w-4 h-4 text-blue-500 animate-spin"}),running:(0,t.jsx)(j,{className:"w-4 h-4 text-blue-500 animate-spin"}),blocked:(0,t.jsx)(K,{className:"w-4 h-4 text-amber-500"}),completed:(0,t.jsx)(V.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),done:(0,t.jsx)(V.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),failed:(0,t.jsx)(X.XCircle,{className:"w-4 h-4 text-rose-500"})};function G({draft:e,onPush:s,pushing:r}){let[l,n]=(0,a.useState)(!1),[i,o]=(0,a.useState)(!1),d=(0,a.useCallback)(()=>{let t=e.tasks.map((e,t)=>`${t+1}. **${e.title}**${e.description?`
|
|
3
|
-
${e.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(t).then(()=>{o(!0),setTimeout(()=>o(!1),1500)})},[e.tasks]),{tasks:c,error:u}=function({projectId:e,enabled:t,interval:s=3e4}){let[r,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(null),o=(0,a.useRef)(0),d=(0,a.useRef)([]),c=(0,a.useCallback)(async()=>{if(e&&"undefined"!==e)try{let t=D.default.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",a=await fetch(`${t}/api/tasks?project=${e}`);if(!a.ok)throw Error(`Poll failed: ${a.status}`);let s=await a.json(),r=s.tasks??s;d.current=r,l(r),i(null)}catch(e){i(e instanceof Error?e.message:"Poll failed")}},[e]);return(0,a.useEffect)(()=>{if(!t||!e)return;o.current=Date.now(),c();let a=setInterval(()=>{Date.now()-o.current>18e5||d.current.length>0&&d.current.every(e=>H.has(e.status))?clearInterval(a):c()},s);return()=>clearInterval(a)},[t,e,s,c]),{tasks:r,error:n,refetch:c}}({projectId:e.projectId??null,enabled:!!e.projectId&&"done"===e.buildStatus}),p=new Map;if(e.builtTaskIds)for(let[t,a]of Object.entries(e.builtTaskIds)){let e=c.find(e=>e.id===a);e&&p.set(t,e)}let m=e.tasks.filter(e=>{let t=p.get(e.id);return t&&("completed"===t.status||"done"===t.status)}).length,h=e.tasks.length>0?m/e.tasks.length:0,x=(0,a.useCallback)(()=>{e.projectId&&e.projectName?s?.(e,e.projectId,e.projectName):n(!0)},[e,s]),f=(0,a.useCallback)((t,a)=>{n(!1),s?.(e,t,a)},[e,s]);e.tasks.some(t=>!e.builtTaskIds?.[t.id]);let g=e.tasks.some(e=>{let t=p.get(e.id);return t&&"queued"!==t.status&&"pending"!==t.status});return(0,t.jsxs)("div",{className:"mt-6 p-4 bg-slate-50/80 rounded-2xl border border-slate-100 shadow-sm",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(C.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,t.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-slate-400",children:"Tasks"}),e.projectName&&(0,t.jsxs)("span",{className:"text-[10px] font-semibold text-slate-400",children:["· ",e.projectName]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-bold text-slate-600",children:[m,"/",e.tasks.length," Complete"]}),e.tasks.length>0&&(0,t.jsx)("button",{type:"button",onClick:d,className:"text-slate-400 hover:text-slate-600 transition-colors",title:"Copy as markdown",children:i?(0,t.jsx)(A.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,t.jsx)(P.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsx)("div",{className:"space-y-3 mb-4",children:e.tasks.map(e=>{let a=p.get(e.id),s=a?.status||"queued",r=Y[s]||Y.queued;return(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[r,(0,t.jsx)("span",{className:`text-xs font-semibold ${"completed"===s||"done"===s?"text-slate-600":"text-slate-500"}`,children:e.title})]},e.id)})}),(0,t.jsx)("div",{className:"h-1.5 w-full bg-slate-200 rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*h)}%`}})}),s&&!g&&(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===e.buildStatus&&(0,t.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)("button",{type:"button",onClick:x,disabled:r,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-white bg-slate-900 hover:bg-slate-800 rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,t.jsx)(z,{className:"w-3 h-3"}),r?"Pushing…":"Push to agx"]})]}),u&&(0,t.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",u]}),l&&(0,t.jsx)(q,{onSelect:f,onClose:()=>n(!1)})]})}var Z=e.i(88081),Q=e.i(27612),ee=e.i(3116);let et=(0,h.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"}]]),ea=(0,h.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),es=(0,h.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),er=(0,h.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),el=[{value:"thinking",label:"Thinking",color:"#f59e0b"},{value:"converged",label:"Converged",color:"#10b981"},{value:"resolved",label:"Resolved",color:"#3b82f6"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"archived",label:"Archived",color:"#9ca3af"},{value:"paused",label:"Paused",color:"#f97316"}],en=new Set(["resolved","in-review","archived"]),ei="<!-- thread-summary -->";function eo({messages:e,streaming:s,participants:r,onOpenThread:l,onCopyThread:n,onAddToChat:i,onDeleteThreadRoot:u,onSummarize:p,onCreateTasks:m,onUpdateTaskDraft:h,onBuildTasks:x,summarizingThreads:f,extractingTasks:k,buildingDrafts:C,taskDrafts:I,deletingThreadRootId:S,highlightedMessageId:$,onUpdateMessageThreadStatus:M,onUpdateMessageOutcomeNote:T,shipModeThreads:z}){let A=(0,a.useRef)(new Map),[D,E]=(0,a.useState)(null),[R,O]=(0,a.useState)("active"),U=Object.fromEntries(r.map(e=>[e.id,e])),L=(0,a.useMemo)(()=>[...e.filter(e=>!e.rootMessageId)].reverse(),[e]),F={active:new Set(["thinking","converged"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),resolved:new Set(["resolved"]),archived:new Set(["archived"])},_=(0,a.useMemo)(()=>L.filter(e=>F[R].has(e.threadStatus??"thinking")),[L,R]),W=(0,a.useMemo)(()=>({active:L.filter(e=>F.active.has(e.threadStatus??"thinking")).length,paused:L.filter(e=>F.paused.has(e.threadStatus??"thinking")).length,"in-review":L.filter(e=>F["in-review"].has(e.threadStatus??"thinking")).length,resolved:L.filter(e=>F.resolved.has(e.threadStatus??"thinking")).length,archived:L.filter(e=>F.archived.has(e.threadStatus??"thinking")).length}),[L]),q=(0,a.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=a.rootMessageId;if(!e)continue;let s=t.get(e);s||(s={rootMessageId:e,replyCount:0,participants:[],lastActivityAt:0,previewReplies:[],allReplies:[]},t.set(e,s)),s.replyCount++,s.lastActivityAt=Math.max(s.lastActivityAt,a.timestamp),s.lastReply=a,s.allReplies.push(a),a.participantId&&!s.participants.includes(a.participantId)?s.participants.push(a.participantId):a.participantId||s.participants.includes("user")||s.participants.push("user")}for(let e of t.values())e.allReplies.sort((e,t)=>e.timestamp-t.timestamp),e.previewReplies=[...e.allReplies],e.previewReplies.length>2&&(e.previewReplies=e.previewReplies.slice(-2));return t})(e),[e]),H=(0,a.useCallback)((e,t)=>{t?A.current.set(e,t):A.current.delete(e)},[]),V=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!$){V.current=null;return}if($===V.current)return;V.current=$;let e=A.current.get($);e&&e.scrollIntoView({behavior:"smooth",block:"center"})},[$,e]),(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[L.length>0&&(0,t.jsx)("div",{className:"max-w-2xl mx-auto flex items-center gap-1 mb-4 border-b border-slate-100 pb-2",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"resolved",label:"Resolved"},{key:"archived",label:"Archived"}].map(e=>{let a=W[e.key],s=R===e.key;return(0,t.jsxs)("button",{type:"button",onClick:()=>O(e.key),className:`px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${s?"bg-slate-900 text-white":"text-slate-400 hover:text-slate-600 hover:bg-slate-50"}`,children:[e.label,a>0&&(0,t.jsx)("span",{className:"ml-1.5 text-[10px] text-slate-300",children:a})]},e.key)})}),0===L.length&&0===Object.keys(s).length&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-slate-400 mt-32 space-y-3",children:[(0,t.jsx)(b.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),L.length>0&&0===_.length&&(0,t.jsx)("div",{className:"flex flex-col items-center justify-center text-slate-400 mt-16 space-y-2",children:(0,t.jsxs)("span",{className:"text-sm font-medium",children:["No ",R," threads"]})}),_.map(e=>{let a,r=e.participantId?U[e.participantId]:null,A=q.get(e.id),R=S===e.id,O=A?.allReplies.find(e=>e.content.startsWith(ei)),L=O?O.content.slice(ei.length).trim():null,F=(A?.previewReplies||[]).filter(e=>!e.content.startsWith(ei)),_=e.threadStatus??"thinking",W=en.has(_),V=el.find(e=>e.value===_)??el[0],J=Object.values(s).some(t=>t.rootMessageId===e.id);if(W){let a;return(0,t.jsx)("div",{ref:t=>H(e.id,t),"data-message-id":e.id,className:"max-w-2xl mx-auto bg-slate-50 rounded-xl border border-slate-200 mb-3 group transition-all hover:border-slate-300 relative cursor-pointer",onClick:()=>l?.(e.id),children:(0,t.jsxs)("div",{className:"px-4 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(Z.Hash,{className:"w-3.5 h-3.5 text-slate-400 shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-slate-500 truncate flex-1",children:(0,w.stripMarkers)(e.content.split("\n")[0])}),z?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,t.jsx)(er,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),J&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),e.outcomeNote&&(0,t.jsx)("span",{className:"text-[11px] text-slate-400 truncate max-w-[200px]",children:e.outcomeNote}),(0,t.jsx)("span",{className:"text-[10px] text-slate-400 shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e.timestamp)}),M&&(a=D===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),E(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-white",style:{borderColor:V.color+"40",color:V.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:V.color}}),V.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-white border border-slate-200 rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:el.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-indigo-50 text-indigo-700":"text-slate-600 hover:bg-slate-50"}`,onClick:t=>{t.stopPropagation(),M(e.id,a.value),E(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),A&&A.replyCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-slate-400 shrink-0",children:[A.replyCount," replies"]})]}),(L||I?.[e.id])&&(0,t.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[L&&(0,t.jsx)("div",{className:"text-sm text-slate-600 leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,t.jsx)(d.Markdown,{content:L,isUser:!1})}),I?.[e.id]&&I[e.id].tasks.length>0&&(0,t.jsxs)("span",{className:"text-[10px] text-slate-400 flex items-center gap-1",children:[(0,t.jsx)(et,{className:"w-3 h-3"}),I[e.id].tasks.length," ",1===I[e.id].tasks.length?"task":"tasks"]})]})]})},e.id)}return(0,t.jsxs)("div",{className:"max-w-2xl mx-auto bg-white rounded-2xl border border-slate-200 shadow-sm overflow-hidden mb-6 group transition-all hover:border-slate-300 relative",children:[(n||i||u)&&(0,t.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[i&&(0,t.jsx)("button",{type:"button",onClick:()=>i(e.id),className:"p-1.5 text-slate-400 hover:bg-indigo-50 hover:text-indigo-600 rounded-md transition-colors",title:"Mention in chat",children:(0,t.jsx)(es,{className:"w-3.5 h-3.5"})}),(0,t.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(e.id)},className:"p-1.5 text-slate-400 hover:bg-slate-100 rounded-md transition-colors",title:"Copy message ID",children:(0,t.jsx)(ea,{className:"w-3.5 h-3.5"})}),n&&(0,t.jsx)("button",{type:"button",onClick:()=>n(e.id),className:"p-1.5 text-slate-400 hover:bg-slate-100 rounded-md transition-colors",title:"Copy thread as markdown",children:(0,t.jsx)(P.Copy,{className:"w-3.5 h-3.5"})}),u&&(0,t.jsx)("button",{type:"button",onClick:()=>u(e.id),disabled:R,className:"p-1.5 text-slate-400 hover:bg-rose-50 hover:text-rose-600 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Delete this thread",children:R?(0,t.jsx)(j,{className:"w-3.5 h-3.5 animate-spin"}):(0,t.jsx)(Q.Trash2,{className:"w-3.5 h-3.5"})})]}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"p-5",children:(0,t.jsxs)("div",{ref:t=>H(e.id,t),"data-message-id":e.id,className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==e.role&&(0,t.jsx)(o.default,{href:`/agents/${r?.id||e.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-slate-100 overflow-hidden border border-slate-100 shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-blue-300 transition-shadow",children:r?(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(r.id,40,r.color),alt:r.name,className:"w-full h-full object-cover"}):(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(e.participantId||"assistant",40),alt:e.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==e.role&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,t.jsx)(o.default,{href:`/agents/${r?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-slate-900 hover:underline",children:r?.name||e.participantId||"Assistant"})}),(0,t.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>l?.(e.id),children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-slate-900 leading-tight group-hover/msg-title:text-indigo-600 transition-colors line-clamp-1",children:(0,w.stripMarkers)(e.content.split("\n")[0])}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium text-slate-400",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(e.timestamp)}),M&&(a=D===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),E(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-slate-50",style:{borderColor:V.color+"40",color:V.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:V.color}}),V.label]}),a&&(0,t.jsxs)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-white border border-slate-200 rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:[el.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-indigo-50 text-indigo-700":"text-slate-600 hover:bg-slate-50"}`,onClick:t=>{t.stopPropagation(),M(e.id,a.value),E(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value)),"converged"===_&&T&&(0,t.jsx)("div",{className:"px-2 py-1.5 border-t border-slate-100 mt-1",children:(0,t.jsx)("input",{type:"text",className:"w-full border border-slate-200 rounded px-2 py-1 text-[11px] text-slate-700 outline-none focus:border-indigo-400",placeholder:"Outcome note…",defaultValue:e.outcomeNote??"",onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Enter"===t.key&&(T(e.id,t.target.value),E(null))},onBlur:t=>{t.target.value!==(e.outcomeNote??"")&&T(e.id,t.target.value)}})})]})]})),z?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,t.jsx)(er,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),J&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(e.content.length>80||e.content.includes("\n"))&&(0,t.jsx)("div",{className:"mt-2 text-[15px] text-slate-600 leading-relaxed line-clamp-3",children:(0,t.jsx)(d.Markdown,{content:(0,w.stripMarkers)(e.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===e.role})})]})]})]}),e.attachments&&e.attachments.length>0&&(0,t.jsx)("div",{className:`mb-4 ${"user"!==e.role?"ml-[52px]":""}`,children:(0,t.jsx)(g,{attachments:e.attachments,compact:!0})}),L&&(0,t.jsx)("div",{className:"mb-4 text-sm text-slate-600 leading-relaxed",children:(0,t.jsx)(d.Markdown,{content:L,isUser:!1})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-2",children:[p&&A&&A.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>p(e.id),disabled:f?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-white border border-slate-200 rounded-full text-xs font-bold text-slate-600 hover:bg-slate-50 transition-colors shadow-sm disabled:opacity-50",children:[f?.has(e.id)?(0,t.jsx)(j,{className:"w-3.5 h-3.5 animate-spin text-slate-400"}):(0,t.jsx)(ee.Clock,{className:"w-3.5 h-3.5 text-slate-400"}),f?.has(e.id)?"Summarizing…":"Summarize"]}),m&&A&&A.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>m(e.id),disabled:k?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-white border border-slate-200 rounded-full text-xs font-bold text-slate-600 hover:bg-slate-50 transition-colors shadow-sm disabled:opacity-50",children:[k?.has(e.id)?(0,t.jsx)(j,{className:"w-3.5 h-3.5 animate-spin text-slate-400"}):(0,t.jsx)(et,{className:"w-3.5 h-3.5 text-slate-400"}),k?.has(e.id)?"Extracting…":I?.[e.id]?"Re-extract tasks":"Create tasks"]}),A&&A.replyCount>0&&l&&(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),className:"flex items-center gap-2 px-3 py-1.5 bg-slate-50 border border-slate-100 rounded-full text-xs font-bold text-slate-500 hover:bg-slate-100 transition-colors",children:[(0,t.jsx)("div",{className:"flex -space-x-1.5",children:A.participants.slice(0,3).map(e=>{if("user"===e)return(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-slate-200 flex items-center justify-center ring-1 ring-white",children:(0,t.jsx)(v.User,{className:"w-2.5 h-2.5 text-slate-400"})},"user");let a=U[e];return a?(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(e,16,a.color),alt:a.name,className:"w-4 h-4 rounded-full ring-1 ring-white"},e):(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-slate-200 ring-1 ring-white"},e)})}),(0,t.jsxs)("span",{children:[A.replyCount," replies"]})]})]}),I?.[e.id]&&(I[e.id].builtTaskIds&&Object.keys(I[e.id].builtTaskIds).length>0?(0,t.jsx)(G,{draft:I[e.id],onPush:(t,a,s)=>x?.(e.id,t,a,s),pushing:C?.has(I[e.id].draftId)}):(0,t.jsx)(B,{draft:I[e.id],onUpdate:t=>h?.(e.id,t),onBuild:(t,a,s)=>x?.(e.id,t,a,s),building:C?.has(I[e.id].draftId)})),k?.has(e.id)&&(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-slate-400",children:[(0,t.jsx)(j,{className:"w-3.5 h-3.5 animate-spin"}),(0,t.jsx)("span",{children:"Extracting tasks…"})]})]})}),!L&&A&&A.replyCount>0&&(0,t.jsx)("div",{className:"p-6 pt-0 border-t border-slate-100 bg-slate-50/10",children:(0,t.jsxs)("div",{className:"pt-4 max-h-[320px] overflow-hidden relative",children:[A.replyCount>F.length&&(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-4",children:[(0,t.jsx)("div",{className:"flex-1 h-px bg-slate-100"}),(0,t.jsxs)("button",{onClick:()=>l?.(e.id),className:"flex items-center gap-2 text-[11px] font-bold uppercase tracking-wider text-slate-400 hover:text-indigo-600 transition-colors shrink-0",children:[(0,t.jsx)(b.MessageSquare,{className:"w-3.5 h-3.5"}),(0,t.jsxs)("span",{children:["Show ",A.replyCount-F.length," more ",A.replyCount-F.length==1?"reply":"replies"]})]}),(0,t.jsx)("div",{className:"flex-1 h-px bg-slate-100"})]}),(0,t.jsx)("div",{className:"space-y-1",children:F.map(e=>{let a=e.participantId?U[e.participantId]:null;return(0,t.jsx)("div",{ref:t=>H(e.id,t),"data-message-id":e.id,children:(0,t.jsx)(y,{isRoot:!1,message:e,participantName:a?.name||e.participantId||"Assistant",participantColor:a?.color,participantId:a?.id||e.participantId||void 0,onOpenThread:l,highlighted:e.id===$})},e.id)})}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-16 bg-gradient-to-t from-slate-50 via-slate-50/80 to-transparent pointer-events-none z-10"})]})}),Object.entries(s).filter(([,t])=>t.rootMessageId===e.id).map(([e,a])=>{let s=U[e];return(0,t.jsx)("div",{className:"px-6 pb-4",children:(0,t.jsx)(N,{participantId:e,participantName:s?.name||e,participantColor:s?.color||"#888",content:a.content})},`streaming-${e}`)})]})]},e.id)})]})})}let ed=(0,h.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);function ec({messages:e,streaming:s,participants:r,rootMessageId:l,onClose:n,onCopyThread:i,onAddToChat:u,onDeleteThreadRoot:p,highlightedMessageId:h,renderReplyComposer:x,activeProcesses:f=[]}){let b=(0,a.useRef)(null),j=(0,a.useRef)(new Map),y=Object.fromEntries(r.map(e=>[e.id,e])),k=(0,a.useMemo)(()=>{let t=e.find(e=>e.id===l),a=e.filter(e=>e.rootMessageId===l).sort((e,t)=>e.timestamp-t.timestamp);return t?[t,...a]:a},[e,l]),N=(0,a.useRef)(null),C=(0,a.useRef)(!1),I=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=N.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:s}=e;C.current=a-t-s>80};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]),(0,a.useEffect)(()=>{if(h&&h!==I.current){I.current=h;let e=j.current.get(h);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}else h||C.current||(I.current=null,b.current?.scrollIntoView({behavior:"smooth"}))},[h,k,s]),(0,t.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-slate-50",children:[f.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 px-4 py-2 border-b border-slate-200 bg-white/80 backdrop-blur-sm",children:[(0,t.jsx)("span",{className:"text-[11px] text-slate-400 uppercase tracking-wide font-medium",children:"Working"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:f.map(e=>{let a=y[e.agentId];return(0,t.jsxs)("div",{className:"relative",title:`${a?.name||e.agentId} — ${e.state}`,children:[(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(e.agentId,24,a?.color),alt:a?.name||e.agentId,className:"w-6 h-6 rounded-full border-2 border-white shadow-sm"}),(0,t.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-white animate-pulse"})]},e.agentId)})})]}),(0,t.jsx)("div",{ref:N,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,t.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[k.map(e=>{let a,s="user"===e.role,r=e.participantId?y[e.participantId]:null;return(0,t.jsxs)("div",{ref:t=>{var a;return a=e.id,void(t?j.current.set(a,t):j.current.delete(a))},"data-message-id":e.id,className:"group relative flex gap-4 ",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:s?(0,t.jsx)("div",{className:"w-10 h-10 bg-slate-200 rounded-full flex items-center justify-center text-slate-600 shadow-sm",children:(0,t.jsx)(v.User,{size:20})}):(0,t.jsx)(o.default,{href:`/agents/${r?.id||e.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:r?(0,c.agentAvatarUrl)(r.id,40,r.color):(0,c.agentAvatarUrl)(e.participantId||"assistant",40),alt:r?.name||e.participantId||"Assistant",className:"w-10 h-10 rounded-full shadow-sm border border-slate-100 object-cover bg-slate-100"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[s?(0,t.jsx)("span",{className:"font-bold text-sm text-slate-900",children:"You"}):(0,t.jsx)(o.default,{href:`/agents/${r?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-slate-900 hover:underline",style:r?.color?{color:r.color}:void 0,children:r?.name||e.participantId||"Assistant"}),void 0===e.rootMessageId&&e.id===l&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-slate-100 text-slate-500 rounded font-mono uppercase",children:"ROOT"}),(0,t.jsx)("span",{className:"text-[11px] text-slate-400",children:(a=e.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a))})]}),(0,t.jsxs)("div",{className:`rounded-2xl p-4 text-[15px] leading-relaxed shadow-sm border ${s?"bg-slate-100 text-slate-700 border-slate-200":"bg-white text-slate-700 border-slate-200"} ${e.id===h?"ring-2 ring-indigo-400":""}`,children:[(0,t.jsx)(d.Markdown,{content:(0,w.stripMarkers)(e.content),isUser:s}),e.attachments&&e.attachments.length>0&&(0,t.jsx)(g,{attachments:e.attachments}),e.reactions&&e.reactions.length>0&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(m,{reactions:e.reactions})})]}),(0,t.jsxs)("div",{className:"absolute top-8 -right-2 opacity-0 group-hover:opacity-100 transition-opacity flex items-center gap-1 bg-white border border-slate-200 rounded-lg shadow-sm p-1 z-10 translate-x-full",children:[e.id===l&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(e.id)},className:"p-1.5 text-slate-400 hover:text-indigo-600 hover:bg-indigo-50 rounded",title:"Copy message ID",children:(0,t.jsx)(ea,{size:14})}),e.id===l&&i&&(0,t.jsx)("button",{onClick:()=>i(e.id),className:"p-1.5 text-slate-400 hover:text-slate-600 hover:bg-slate-50 rounded",title:"Copy Thread",children:(0,t.jsx)(ed,{size:14})}),(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(e.content)},className:"p-1.5 text-slate-400 hover:text-slate-600 hover:bg-slate-50 rounded",title:"Copy as Markdown",children:(0,t.jsx)(P.Copy,{size:14})}),e.id===l&&p&&(0,t.jsx)("button",{onClick:()=>p(e.id),className:"p-1.5 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded",title:"Delete Thread",children:(0,t.jsx)(Q.Trash2,{size:14})})]})]})]},e.id)}),Object.entries(s).filter(([,e])=>e.rootMessageId===l).map(([e,a])=>{let s=y[e],r=a.content.trim().length>0;return(0,t.jsxs)("div",{className:"flex gap-4 group relative",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,t.jsx)(o.default,{href:`/agents/${s?.id||e}`,className:"hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:s?(0,c.agentAvatarUrl)(s.id,40,s.color):(0,c.agentAvatarUrl)(e,40),alt:s?.name||e,className:"w-10 h-10 rounded-full shadow-sm border border-slate-100 object-cover bg-slate-100"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.default,{href:`/agents/${s?.id||e}`,className:"font-bold text-sm text-slate-900 hover:underline",style:s?.color?{color:s.color}:void 0,children:s?.name||e}),!r&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-slate-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-slate-400 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-slate-400 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),r&&(0,t.jsx)("div",{className:"rounded-2xl p-4 text-[15px] leading-relaxed shadow-sm border bg-white text-slate-700 border-slate-200",children:(0,t.jsx)(d.Markdown,{content:(0,w.stripMarkers)(a.content),isUser:!1})})]})]},`streaming-${e}`)}),(0,t.jsx)("div",{ref:b,className:"h-4"})]})}),(0,t.jsx)("div",{className:"z-20",children:x(l)})]})}var eu=e.i(31245);let ep=(0,h.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function em({query:e,results:a,total:s,participants:r,threadTitleById:l,isLoading:n,error:i,onSelectResult:d,headerSlot:u}){let p=Object.fromEntries(r.map(e=>[e.id,e]));return(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[u?(0,t.jsx)("div",{className:"sticky top-0 z-20 bg-slate-50/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,t.jsx)("div",{className:"max-w-2xl mx-auto",children:u})}):null,(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-slate-200 bg-white px-4 py-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-slate-700",children:"Search results"}),(0,t.jsx)("div",{className:"mt-1 text-sm text-slate-500",children:n?"Searching…":`${s} result${1===s?"":"s"} for "${e}"`}),i?(0,t.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:i}):null]}),n||i||0!==a.length?null:(0,t.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-slate-400",children:[(0,t.jsx)(ep,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,t.jsx)("div",{className:"space-y-3 pb-6",children:a.map(e=>{var a;let s=e.participantId?p[e.participantId]:null,r=l[e.threadId]||"Untitled thread",n="user"===e.role?"You":s?.name||e.participantId||"Assistant";return(0,t.jsxs)("button",{type:"button",onClick:()=>d(e),className:"w-full rounded-xl border border-slate-200 bg-white p-4 text-left transition hover:border-slate-300 hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-slate-100",children:"user"===e.role?(0,t.jsx)(v.User,{className:"h-4 w-4 text-slate-700"}):s?(0,t.jsx)(o.default,{href:`/agents/${s.id}`,onClick:e=>e.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:(0,c.agentAvatarUrl)(s.id,32,s.color),alt:"",className:"h-full w-full object-cover"})}):(0,t.jsx)(eu.Bot,{className:"h-4 w-4 text-slate-700"})}),(0,t.jsxs)("div",{className:"min-w-0",children:["user"!==e.role&&s?(0,t.jsx)(o.default,{href:`/agents/${s.id}`,onClick:e=>e.stopPropagation(),className:"truncate text-sm font-semibold text-slate-800 hover:underline block",children:n}):(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-slate-800",children:n}),(0,t.jsx)("p",{className:"truncate text-xs text-slate-500",children:r})]})]}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-slate-400",children:(a=e.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(a))})]}),(0,t.jsx)("p",{className:"text-sm leading-relaxed text-slate-700",children:function(e){let a=e.split(/(<\/?mark>)/g),s=!1,r=[];for(let[e,l]of a.entries()){if("<mark>"===l){s=!0;continue}if("</mark>"===l){s=!1;continue}l&&r.push(s?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:l},`${e}-mark`):(0,t.jsx)("span",{children:l},`${e}-text`))}return r}(e.snippet)})]},`${e.threadId}-${e.messageId}`)})})]})})}var eh=e.i(94499),ex=e.i(56378),ef=e.i(55841);let eg=/^[A-Za-z0-9_\-:]*$/,eb={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function ev(e,t,a){return a?e.startsWith(a)?3:t.startsWith(a)?2:e.includes(a)?1:null:0}let ej=/^[a-zA-Z0-9_-]*$/,ew=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),ey=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),ek=[{path:`${D.default.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${D.default.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${D.default.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${D.default.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${D.default.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function eN(e,t){let a=function(e,t){let a=e.trim().replace(/\/+$/,"");if("~"===a)return"~";if(a.startsWith("~/")||a.startsWith("/"))return a;let s=a.replace(/^\/+/,"");return"@~"===t?`~/${s}`:`/${s}`}(e,t.trigger);if(a.startsWith("~/")||a.startsWith("/")){let s=e.trim().startsWith("~/")||e.trim().startsWith("/")||"~"===e.trim()?null:function(e){if(!e.query.endsWith("/"))return null;let t=e.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===e.trigger?t?`~/${t}`:"~":t?`/${t}`:"/"}(t);if(s){let e=a.replace(/^~\/|^\//,"");return"~"===s?`~/${e}`:"/"===s?`/${e}`:`${s}/${e}`}}return a}async function eC(e){let t;if(0===e.length)return[];let a=e.map(e=>e.path);try{let s=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:a})});if(!s.ok){let t=(await s.json().catch(()=>({}))).error??`HTTP ${s.status}`;return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}t=(await s.json()).results}catch(a){let t=a instanceof Error?a.message:"Failed to fetch file contents";return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}let s=new Map(t.map(e=>[e.path,e]));return e.map(e=>{let t=s.get(e.path);return{type:"file",path:e.path,label:e.label,content:t?.content??null,error:t?.error}})}async function eI(e){let t=await eC(e),a=0===t.length?"":t.map(e=>e.error||null===e.content?`<file path="${e.path}" error="${e.error??"unreadable"}" />`:`<file path="${e.path}">
|
|
4
|
-
${e.content}
|
|
5
|
-
</file>`).join("\n\n")+"\n\n";return{fileContextBlocks:t,contextPrefix:a}}var eS=e.i(10552);let e$=eS.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a="parallel"===e.attrs.mode;return["span",(0,eS.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:a?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${a?"@@":"@"}${e.attrs.name}`]}}),eM=eS.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eS.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),eT=eS.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a=e.attrs.relativePath||e.attrs.path;return["span",(0,eS.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${a}`]}}),ez=eS.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eS.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]});function eP(e){let{state:t}=e,{$from:a}=t.selection,s=a.depth,r=-1;for(let e=s;e>=0;e--)if("paragraph"===a.node(e).type.name){r=e;break}if(-1===r)return null;let l=a.node(r),n=a.start(r),i=a.pos-n,o="",d=0,c=!1;return l.forEach((e,t)=>{let a=t+e.nodeSize;if(e.isText){let s=e.text??"";!c&&i>=t&&i<=a&&(d=o.length+(i-t),c=!0),o+=s}else if(e.isAtom){let s=eA(e);!c&&i>=t&&i<=a&&(d=o.length+s.length,c=!0),o+=s}}),c||(d=o.length),{text:o,cursorPos:d,blockStart:n}}function eA(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}default:return""}}function eD(e,t,a,s){let{state:r}=e,l=r.doc.resolve(t),n=l.depth,i=null,o=t;for(let e=n;e>=0;e--){let t=l.node(e);if("paragraph"===t.type.name){i=t,o=l.start(e);break}}i||(i=r.doc.resolve(t).parent,o=t);let d=0,c=null,u=null;return(i.forEach((e,t)=>{let r=o+t,l=e.nodeSize;if(e.isText){let t=e.text??"",l=d+t.length;null===c&&a>=d&&a<=l&&(c=r+(a-d)),null===u&&s>=d&&s<=l&&(u=r+(s-d)),d=l}else if(e.isAtom){let t=eA(e),n=d+t.length;null===c&&a>=d&&a<=n&&(c=r),null===u&&s>=d&&s<=n&&(u=r+l),d=n}}),null===c&&a>=d&&(c=o+i.content.size),null===u&&s>=d&&(u=o+i.content.size),null===c||null===u)?null:{from:c,to:u}}let eE=(0,h.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var eR=e.i(61911);function eO({isOpen:e,suggestions:s,activeIndex:r,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);if((0,a.useEffect)(()=>{e&&o.current[r]?.scrollIntoView({block:"nearest"})},[r,e]),!e||0===s.length)return null;let d=new Set;return(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-zinc-200 bg-white shadow-lg",children:s.map((e,a)=>{let s=a===r,l="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:e.participant.id,c=e.group,u=null;if(c&&!d.has(c)&&(d.add(c),u=(0,t.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-zinc-400 bg-zinc-50 border-t border-zinc-100 first:border-t-0",children:c})),"project-group"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":s,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${s?"bg-blue-50 text-zinc-900":"text-zinc-700 hover:bg-zinc-50"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eR.Users,{className:"h-3.5 w-3.5 text-zinc-500","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsxs)("span",{className:"text-xs text-zinc-400",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},l);if("project"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":s,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${s?"bg-blue-50 text-zinc-900":"text-zinc-700 hover:bg-zinc-50"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eE,{className:"h-3.5 w-3.5 text-zinc-500","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:e.project.slug})]})})]},l);let p=e.participant;return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${p.id}`,"aria-selected":s,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${s?"bg-blue-50 text-zinc-900":"text-zinc-700 hover:bg-zinc-50"}${c?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:p.color},"aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:p.name}),"all"===p.id?(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:"All participants"}):p.model&&(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:p.model})]})})]},l)})})})}function eU({isOpen:e,commands:s,activeIndex:r,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);return((0,a.useEffect)(()=>{e&&o.current[r]?.scrollIntoView({block:"nearest"})},[r,e]),e&&0!==s.length)?(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-zinc-200 bg-white shadow-lg",children:s.map((e,a)=>{let s=a===r;return(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${e.name.slice(1)}`,"aria-selected":s,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${s?"bg-blue-50 text-zinc-900":"text-zinc-700 hover:bg-zinc-50"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,t.jsxs)("span",{className:"text-xs text-zinc-300 font-mono",children:["(",e.aliases.join(", "),")"]}),(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:e.description})]})},e.name)})})}):null}var eL=e.i(63209);let eF=(0,h.default)("file",[["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"}]]);var e_=e.i(27025);function eW({suggestion:e,isActive:a,optionId:s,onSelect:r,onAttachContents:l,itemRef:n}){let i="folder"===e.type,o="contents"===e.attachMode,d=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),c=e.relativePath??e.path;return(0,t.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors ${a?"bg-blue-50":"hover:bg-zinc-50"}`,children:[(0,t.jsx)("span",{className:"shrink-0 text-zinc-400","aria-hidden":!0,children:i?a?(0,t.jsx)(_.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,t.jsx)(e_.Folder,{className:"h-4 w-4 text-amber-400"}):(0,t.jsx)(eF,{className:"h-4 w-4"})}),(0,t.jsxs)("button",{type:"button",role:"option",id:s,"aria-selected":a,ref:n,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>r(e),tabIndex:-1,children:[(0,t.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:`block truncate font-mono text-xs ${a?"text-zinc-900":"text-zinc-700"}`,children:c}),d&&(0,t.jsx)("span",{className:"shrink-0 text-xs text-zinc-400",children:d})]}),i&&e.manifest&&(0,t.jsxs)("span",{className:"block text-xs text-zinc-400",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,o?(0,t.jsx)("span",{className:"ml-1 font-medium text-blue-500",children:"full tree"}):(0,t.jsx)("span",{className:"ml-1 text-zinc-400",children:"manifest"})]})]}),i&&!o&&(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-zinc-400 hover:bg-zinc-100 hover:text-zinc-700 transition-colors",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${c}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),tabIndex:-1,children:"Attach contents"}),i&&o&&(0,t.jsx)("span",{className:"shrink-0 rounded bg-blue-50 px-1.5 py-0.5 text-xs font-medium text-blue-600",children:"full tree"})]})}var eq=e.i(37452);function eB({isOpen:e,suggestions:s,activeIndex:r,isLoading:l,error:n,listboxId:i,optionIdPrefix:o,onSelect:d,onAttachContents:c}){let u=(0,a.useRef)([]),p=(0,a.useRef)(null),[m,h]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{e&&u.current[r]?.scrollIntoView({block:"nearest"})},[r,e]),(0,a.useEffect)(()=>{e&&p.current&&h(p.current.getBoundingClientRect().top<280)},[e]),!e)return null;let x=s.length>0?`${o}-${r}`:void 0;return(0,t.jsx)("div",{ref:p,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${eq.default.popover}`,children:(0,t.jsxs)("div",{role:"listbox",id:i,"aria-label":"File suggestions","aria-activedescendant":x,className:"max-h-64 overflow-y-auto rounded-xl border border-zinc-200 bg-white shadow-lg",children:[n&&!l&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,t.jsx)(eL.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{children:n})]}),!n&&l&&0===s.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-zinc-400","aria-live":"polite","aria-label":"Searching for files",children:[(0,t.jsx)(j,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{children:"Searching…"})]}),!n&&!l&&0===s.length&&(0,t.jsx)("div",{className:"px-3 py-3 text-sm text-zinc-400","aria-live":"polite",children:"No results"}),!n&&l&&s.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-zinc-400 border-b border-zinc-100",children:[(0,t.jsx)(j,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),s.length>0&&s.map((e,a)=>(0,t.jsx)(eW,{suggestion:e,isActive:a===r,optionId:`${o}-${a}`,onSelect:d,onAttachContents:c,itemRef:e=>{u.current[a]=e}},e.path))]})})}function eH({isOpen:e,suggestions:a,activeIndex:s,listboxId:r,optionIdPrefix:l,onSelect:n}){return e&&0!==a.length?(0,t.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-white rounded-xl shadow-xl border border-slate-200 overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:r,children:[(0,t.jsx)("div",{className:"px-3 py-2 bg-slate-50 border-b border-slate-100 text-[11px] font-bold text-slate-500 uppercase tracking-wider",children:"Reference Discussion"}),(0,t.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:a.map((e,a)=>{let r=a===s;return(0,t.jsxs)("button",{role:"option",id:`${l}-${a}`,"aria-selected":r,onClick:()=>n(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${r?"bg-indigo-50":"hover:bg-slate-50"}`,children:[(0,t.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${r?"bg-indigo-100 text-indigo-600":"bg-slate-100 text-slate-500"}`,children:(0,t.jsx)(b.MessageSquare,{size:14,strokeWidth:2.5})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:`text-sm font-semibold truncate ${r?"text-indigo-900":"text-slate-900"}`,children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:`text-xs ${r?"text-indigo-600":"text-slate-500"}`,children:[e.replies.length," replies"]}),(0,t.jsx)("span",{className:"text-slate-300",children:"•"}),(0,t.jsxs)("span",{className:"text-[10px] text-slate-400 flex items-center gap-1",children:[(0,t.jsx)(ee.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m`;let s=Math.floor(a/60);return s<24?`${s}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}var eV=e.i(16715);let eJ=(0,h.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function eK({attachments:e,onRemove:a,onRetry:s}){return 0===e.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var r;let l=e.mimeType.startsWith("image/"),n="failed"===e.status,i="uploading"===e.status;return(0,t.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${n?"border-red-200 bg-red-50 text-red-700":"border-slate-200 bg-slate-50 text-slate-600"}`,children:[l&&e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,t.jsx)("div",{className:"w-8 h-8 rounded bg-slate-100 flex items-center justify-center shrink-0",children:l?(0,t.jsx)(eJ,{className:"w-4 h-4 text-slate-400"}):(0,t.jsx)(x,{className:"w-4 h-4 text-slate-400"})}),(0,t.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:e.filename}),n&&e.error?(0,t.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,t.jsx)("div",{className:"text-[10px] text-slate-400",children:(r=e.size)<1024?`${r}B`:r<1048576?`${(r/1024).toFixed(0)}KB`:`${(r/1048576).toFixed(1)}MB`})]}),i&&(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-slate-200 rounded-b-lg overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>s(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,t.jsx)(eV.RefreshCw,{className:"w-3 h-3"})}),(0,t.jsx)("button",{type:"button",onClick:()=>a(e.id),className:"p-0.5 rounded hover:bg-slate-200 transition-colors",title:"Remove",children:(0,t.jsx)(T.X,{className:"w-3 h-3"})})]})]},e.id)})})}function eX({onDrop:e,children:s}){let[r,l]=(0,a.useState)(!1),n={current:0},i=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current++,e.dataTransfer.types.includes("Files")&&l(!0)},[]),o=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),d=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current--,0===n.current&&l(!1)},[]),c=(0,a.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),n.current=0,l(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,t.jsxs)("div",{className:"relative",onDragEnter:i,onDragOver:o,onDragLeave:d,onDrop:c,children:[s,r&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,t.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let eY=(0,h.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);function eG(e,t,a,s,r){if(!e)return;let l=eD(e,t,a,s);l&&e.chain().focus().deleteRange(l).insertContent(r).insertContent(" ").run()}function eZ({onSend:e,onStop:s,loading:r,participants:l,projects:n=[],projectGroups:i=[],messages:o=[],commands:d,placeholder:c="Message — @name to mention, /search, /summarize",workspaceRoots:u=[],onConfigureRoots:p,pendingThreadInsert:m,onClearPendingThread:h,autoMode:x=!1,onAutoModeChange:f}){let[g,b]=(0,a.useState)(10),v=(0,a.useRef)(null),j=(0,a.useRef)(!1),w=(0,a.useCallback)(()=>{v.current?.click()},[]),[y,k]=(0,a.useState)([]),N=function({participants:e,projectGroups:t=[],projects:s=[],maxSuggestions:r=6}){let[l,n]=(0,a.useState)(null),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),u=null!==l&&!d,p=l?.query??"",m=(0,a.useMemo)(()=>(function(e,t,a,s=[],r=[]){let l=t.toLowerCase(),n=new Map(e.map(e=>[e.id,e])),i=new Set;for(let e of s)for(let t of e.agents)i.add(t.agent_id);let o=[];for(let e of(null!==ev("all","all",l)&&o.push({kind:"agent",participant:eb,group:""}),s)){let t=ev(e.name.toLowerCase(),e.id.toLowerCase(),l),a=[];for(let t of e.agents){let e=n.get(t.agent_id);if(!e)continue;let s=ev(e.name.toLowerCase(),e.id.toLowerCase(),l);null!==s&&a.push({participant:e,score:s})}(null!==t||a.length>0)&&(null!==t&&o.push({kind:"project-group",project:e,group:e.name}),(null!==t&&l?e.agents.map(e=>n.get(e.agent_id)).filter(e=>!!e).map(e=>({participant:e,score:0})):a).sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:t})=>{o.push({kind:"agent",participant:t,group:e.name})}))}for(let e of r)null!==ev(e.name.toLowerCase(),e.slug.toLowerCase(),l)&&o.push({kind:"project",project:e,group:"Projects"});let d=[];for(let t of e){if(i.has(t.id))continue;let e=ev(t.name.toLowerCase(),t.id.toLowerCase(),l);null!==e&&d.push({participant:t,score:e})}return d.sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:e})=>{o.push({kind:"agent",participant:e,group:""})}),o.slice(0,a)})(e,p,r,t,s),[e,p,r,t,s]),h=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let s=e.slice(a,t);if(!s.startsWith("@")||s.startsWith("@@@")||s.startsWith("@#"))return null;let r=s.startsWith("@@"),l=s.slice(r?2:1);return eg.test(l)?{startIndex:a,endIndex:t,query:l.toLowerCase(),mode:r?"parallel":"sequential",isParallel:r}:null}(e,t);n(e=>((e?.startIndex!==a?.startIndex||e?.isParallel!==a?.isParallel||e?.query!==a?.query)&&o(0),a))},[]),x=(0,a.useCallback)((e,t)=>{d||h(e,t)},[d,h]),f=(0,a.useCallback)(e=>{if(!u||0===m.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<m.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:m.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),n(null),!0;default:return!1}},[u,m.length]),g=(0,a.useCallback)(e=>{if(!l)return null;let t="project-group"===e.kind||"project"===e.kind?e.project.name:e.participant.name,a=l.isParallel?"@@":"@";return{text:`${a}${t} `,startIndex:l.startIndex,endIndex:l.endIndex}},[l]),b=(0,a.useCallback)(()=>{n(null),o(0)},[]);return{isOpen:u,query:p,filteredSuggestions:m,activeIndex:i,token:l,isComposing:d,handleInput:x,handleKeyDown:f,selectSuggestion:g,close:b,startComposition:(0,a.useCallback)(()=>{c(!0)},[]),endComposition:(0,a.useCallback)((e,t)=>{c(!1),h(e,t)},[h])}}({participants:l,projectGroups:i,projects:n,maxSuggestions:8}),C=function({commands:e,maxSuggestions:t=6}){let[s,r]=(0,a.useState)(null),[l,n]=(0,a.useState)(0),i=null!==s,o=s?.query??"",d=(0,a.useMemo)(()=>{let a;return(a=o.toLowerCase())?e.filter(e=>!!e.name.slice(1).toLowerCase().startsWith(a)||(e.aliases?.some(e=>e.toLowerCase().startsWith(a))??!1)).slice(0,t):e.slice(0,t)},[e,o,t]),c=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length||!e.startsWith("/"))return null;let a=e.slice(0,t);if(/\s/.test(a))return null;let s=a.slice(1);return ej.test(s)?{startIndex:0,endIndex:t,query:s.toLowerCase()}:null}(e,t);r(e=>(e?.query!==a?.query&&n(0),a))},[]),u=(0,a.useCallback)(e=>{if(!i||0===d.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),n(e=>e<d.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),n(e=>e>0?e-1:d.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),r(null),!0;default:return!1}},[i,d.length]),p=(0,a.useCallback)(e=>!!s&&(e.execute(),r(null),n(0),!0),[s]);return{isOpen:i,query:o,filteredCommands:d,activeIndex:l,token:s,handleInput:c,handleKeyDown:u,selectCommand:p,close:(0,a.useCallback)(()=>{r(null),n(0)},[])}}({commands:d,maxSuggestions:6}),I=function({maxSuggestions:e=8,debounceMs:t=150}={}){let[s,r]=(0,a.useState)(null),[l,n]=(0,a.useState)([]),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(null),x=(0,a.useRef)(null),f=null!==s,g=(0,a.useCallback)(async(t,a)=>{m.current&&m.current.abort();let s=new AbortController;m.current=s,c(!0),p(null);try{let r=t.endsWith("/"),l=r?"*":t,i=new URLSearchParams({q:l,limit:String(e),includeFolders:"1"});if(r){let e="@~"===a?`${D.default.env.HOME??"~"}/${t.slice(0,-1)}`:`/${t.slice(0,-1)}`;i.set("root",e)}else"@~"===a&&i.set("root",D.default.env.HOME??"~");let d=await fetch(`/api/file-search?${i.toString()}`,{signal:s.signal});if(!d.ok){let e=await d.json().catch(()=>({}));throw Error(e.error??`HTTP ${d.status}`)}let c=await d.json();n(c.files.map(e=>({...e,attachMode:"folder"===e.type?"manifest":void 0}))),o(0)}catch(e){if("AbortError"===e.name)return;p(e.message??"Search failed"),n([])}finally{c(!1)}},[e]),b=(0,a.useCallback)((a,s)=>{if(null!==h.current&&clearTimeout(h.current),a!==x.current){if(a.length<3){m.current&&(m.current.abort(),m.current=null),x.current=a,c(!1),p(null),n(ek.slice(0,e).map(e=>({...e,attachMode:"manifest"}))),o(0);return}h.current=setTimeout(()=>{x.current=a,g(a,s)},t)}},[t,g,e]);(0,a.useEffect)(()=>()=>{null!==h.current&&clearTimeout(h.current),m.current&&m.current.abort()},[]);let v=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<2||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let s=e.slice(a,t);if(!s.startsWith("@/")&&!s.startsWith("@~"))return null;let r=s.slice(0,2);return{startIndex:a,endIndex:t,query:s.slice(2),trigger:r}}(e,t);r(e=>((e?.startIndex!==a?.startIndex||e?.query!==a?.query||e?.trigger!==a?.trigger)&&null===a&&(null!==h.current&&clearTimeout(h.current),m.current&&(m.current.abort(),m.current=null),x.current=null,n([]),c(!1),p(null)),a)),a&&b(a.query,a.trigger)},[b]),j=(0,a.useCallback)(e=>{if(!f||0===l.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<l.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:l.length-1),!0;case"Enter":return e.preventDefault(),!0;case"Tab":return!0;case"Escape":return e.preventDefault(),r(null),n([]),!0;default:return!1}},[f,l.length]),w=(0,a.useCallback)(e=>{if(!s)return null;let t=eN(e.relativePath??e.path,s),a="folder"===e.type?"/":"",l=`@${t}${a} `;return r(null),n([]),{text:l,startIndex:s.startIndex,endIndex:s.endIndex}},[s]),y=(0,a.useCallback)(e=>{if(!s||"folder"!==e.type)return null;let t=eN(e.relativePath??e.path,s),a=t.startsWith("~/")?"@~":"@/",l=t.slice(1),n=`@${t}/`,i=s.startIndex+n.length,o=`${l}/`;return r({startIndex:s.startIndex,endIndex:i,query:o,trigger:a}),x.current=null,b(o,a),{text:n,startIndex:s.startIndex,endIndex:s.endIndex}},[s,b]),k=(0,a.useCallback)(e=>{n(t=>t.map(t=>t.path===e.path?{...t,attachMode:"contents"}:t))},[]);return{isOpen:f,token:s,suggestions:l,activeIndex:i,isLoading:d,error:u,handleInput:v,handleKeyDown:j,selectSuggestion:w,drillDown:y,close:(0,a.useCallback)(()=>{r(null),n([]),o(0)},[]),onAttachContents:k}}({maxSuggestions:8}),S=function({messages:e,maxSuggestions:t=5}){let[s,r]=(0,a.useState)(!1),[l,n]=(0,a.useState)(""),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)([]),[u,p]=(0,a.useState)(null),m=(0,a.useRef)([]);(0,a.useEffect)(()=>{let t=e.filter(e=>!e.rootMessageId),a=new Map;e.forEach(e=>{if(e.rootMessageId){let t=a.get(e.rootMessageId)||[];t.push(e),a.set(e.rootMessageId,t)}}),m.current=t.map(e=>{let t=a.get(e.id)||[],s=[e,...t],r=Math.max(...s.map(e=>e.timestamp)),l=e.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",n=[...new Set(s.map(e=>e.participantId||"user"))];return{rootMessageId:e.id,title:l,rootMessage:e,replies:t,participantIds:n,lastActivityAt:r}}).sort((e,t)=>t.lastActivityAt-e.lastActivityAt)},[e]);let h=(0,a.useCallback)((e,a)=>{let s=e.slice(0,a).match(/@#([^@#\s]*)$/);if(s){r(!0);let e=s[1].toLowerCase();n(e),p(s.index),o(0),c(m.current.filter(t=>t.title.toLowerCase().includes(e)).slice(0,t))}else r(!1),p(null)},[t]),x=(0,a.useCallback)(e=>!!s&&0!==d.length&&("ArrowDown"===e.key?(e.preventDefault(),o(e=>(e+1)%d.length),!0):"ArrowUp"===e.key?(e.preventDefault(),o(e=>(e-1+d.length)%d.length),!0):"Escape"===e.key&&(e.preventDefault(),r(!1),!0)),[s,d.length]),f=(0,a.useCallback)(e=>null===u?null:{startIndex:u,endIndex:u+2+l.length,text:""},[u,l]);return{isOpen:s,suggestions:d,activeIndex:i,handleInput:h,handleKeyDown:x,selectSuggestion:f,close:(0,a.useCallback)(()=>{r(!1),p(null)},[]),exportDiscussion:(0,a.useCallback)(async e=>{let t=[];try{let e=await fetch("/api/participants");e.ok&&(t=await e.json())}catch(e){console.warn("Failed to fetch participants for export",e)}let a=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e.rootMessageId,title:e.title,messages:[e.rootMessage,...e.replies],participants:t})});if(!a.ok)throw Error(`Export failed: ${await a.text()}`);return await a.json()},[])}}({messages:o,maxSuggestions:8}),$=function(){let[e,t]=(0,a.useState)([]),s=(0,a.useRef)(new Map),r=(0,a.useCallback)(e=>{let a=new XMLHttpRequest;s.current.set(e.id,a);let r=new FormData;r.append("file",e.file),a.upload.onprogress=a=>{if(a.lengthComputable){let s=Math.round(a.loaded/a.total*100);t(t=>t.map(t=>t.id===e.id?{...t,progress:s}:t))}},a.onload=()=>{if(s.current.delete(e.id),a.status>=200&&a.status<300)try{let s=JSON.parse(a.responseText),r=s.attachments?.[0];if(r)return void t(t=>t.map(t=>t.id===e.id?{...t,status:"uploaded",progress:100,serverId:r.id}:t))}catch{}let r=(()=>{try{return JSON.parse(a.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:r}:t))},a.onerror=()=>{s.current.delete(e.id),t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:"Network error"}:t))},a.open("POST","/api/upload"),a.send(r)},[]),l=(0,a.useCallback)(a=>{let s=Array.from(a),l=function(e){let t=e.reduce((e,t)=>e+t.size,0);if(t>0x3200000){let e=(t/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${e}MB) exceeds 50MB limit`}}return null}([...e.map(e=>({name:e.filename,size:e.size,type:e.mimeType})),...s.map(e=>({name:e.name,size:e.size,type:e.type}))]);if(l)return void alert(l.reason);let n=[];for(let e of s){let t=function(e){let t=e.name.includes(".")?"."+e.name.split(".").pop().toLowerCase():"";if(ey.has(t))return{file:e.name,reason:`File type "${t}" is not allowed`};if(e.type&&!ew.has(e.type))return{file:e.name,reason:`File type "${e.type}" is not supported`};if(!e.type&&!ew.has("application/octet-stream"),e.size>0xa00000){let t=(e.size/1048576).toFixed(1);return{file:e.name,reason:`File is too large (${t}MB). Maximum is 10MB`}}return 0===e.size?{file:e.name,reason:"File is empty"}:null}({name:e.name,size:e.size,type:e.type});if(t){n.push({id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type,size:e.size,previewUrl:null,progress:0,status:"failed",error:t.reason});continue}let a=e.type.startsWith("image/")?URL.createObjectURL(e):null,s={id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type||"application/octet-stream",size:e.size,previewUrl:a,progress:0,status:"uploading"};n.push(s)}for(let e of(t(e=>[...e,...n]),n))"uploading"===e.status&&r(e)},[e,r]),n=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);a?.previewUrl&&URL.revokeObjectURL(a.previewUrl);let r=s.current.get(e);return r&&(r.abort(),s.current.delete(e)),a?.serverId&&fetch(`/api/upload/${a.serverId}`,{method:"DELETE"}).catch(()=>{}),t.filter(t=>t.id!==e)})},[]),i=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);if(!a||"failed"!==a.status)return t;let s=t.map(t=>t.id===e?{...t,status:"uploading",error:void 0,progress:0}:t),l=s.find(t=>t.id===e);return setTimeout(()=>r(l),0),s})},[r]),o=(0,a.useCallback)(()=>{t(e=>{for(let t of e){t.previewUrl&&URL.revokeObjectURL(t.previewUrl);let e=s.current.get(t.id);e&&e.abort()}return s.current.clear(),[]})},[]),d=0===e.length||e.every(e=>"uploaded"===e.status||"failed"===e.status),c=e.some(e=>"uploaded"===e.status),u=e.filter(e=>"uploaded"===e.status&&e.serverId);return{staged:e,stageFiles:l,remove:n,retry:i,clear:o,canSend:d,hasUploaded:c,attachmentIds:u.map(e=>e.serverId),getAttachmentMetas:(0,a.useCallback)(()=>u.map(e=>({id:e.serverId,filename:e.filename,mimeType:e.mimeType,size:e.size,status:"uploaded",url:`/api/attachments/${e.serverId}`})),[u])}}(),M=function(){let[e,t]=(0,a.useState)([]),s=(0,a.useCallback)((e,a,s)=>{t(t=>t.find(t=>t.path===e)?t.map(t=>t.path===e?{...t,label:a,attachMode:s??t.attachMode}:t):[...t,{kind:"file-path",id:crypto.randomUUID(),path:e,label:a,attachMode:s}])},[]);return{filePaths:e,addFilePath:s,removeFilePath:(0,a.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[]),clearFilePaths:(0,a.useCallback)(()=>{t([])},[]),hasFilePaths:e.length>0}}(),T=(0,eh.useEditor)({immediatelyRender:!1,extensions:[ex.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),ef.default.configure({placeholder:c}),e$,eM,eT,ez],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(e,t)=>{let a=t.clipboardData?.files;return!!a&&a.length>0&&(t.preventDefault(),$.stageFiles(a),!0)},handleDOMEvents:{compositionstart:()=>(j.current=!0,N.startComposition(),!1),compositionend:(e,t)=>(j.current=!1,setTimeout(()=>{if(!T)return;let e=eP(T);e&&N.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(C.isOpen&&C.filteredCommands.length>0){t.preventDefault();let e=C.filteredCommands[C.activeIndex];return e&&O(e),!0}if(I.isOpen&&I.suggestions.length>0){t.preventDefault();let e=I.suggestions[I.activeIndex];return e&&("folder"===e.type?E(e):A(e)),!0}if(S.isOpen&&S.suggestions.length>0){t.preventDefault();let e=S.suggestions[S.activeIndex];return e&&R(e),!0}if(N.isOpen&&N.filteredSuggestions.length>0){t.preventDefault();let e=N.filteredSuggestions[N.activeIndex];return e&&P(e),!0}}let a={key:t.key,preventDefault:()=>t.preventDefault()};return!!(C.isOpen&&C.handleKeyDown(a)||I.isOpen&&I.handleKeyDown(a)||S.isOpen&&S.handleKeyDown(a)||N.handleKeyDown(a))||"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),U(),!0)}},onUpdate:({editor:e})=>{if(j.current)return;let t=eP(e);t&&(N.handleInput(t.text,t.cursorPos),C.handleInput(t.text,t.cursorPos),I.handleInput(t.text,t.cursorPos),S.handleInput(t.text,t.cursorPos))},onBlur:()=>{N.close(),C.close(),I.close(),S.close()}});(0,a.useEffect)(()=>{if(!m||!T)return;let{title:e,threadId:t,messages:a}=m;T.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let s=a[0];if(s){let r={rootMessageId:t,title:e,rootMessage:s,replies:a.slice(1),participantIds:[...new Set(a.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...a.map(e=>e.timestamp))};S.exportDiscussion(r).then(e=>k(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}h?.()},[m]);let z=(0,a.useCallback)(()=>{if(!T)return;let e=eP(T);e&&N.handleInput(e.text,e.cursorPos)},[T,N]),P=(0,a.useCallback)(e=>{if(!T)return;let t=N.selectSuggestion(e);if(!t)return;let a=eP(T);if(!a)return;let s=t.text.startsWith("@@"),r="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:s?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:s?"parallel":"sequential",kind:"agent"}};eG(T,a.blockStart,t.startIndex,t.endIndex,r),N.close()},[T,N]),A=(0,a.useCallback)(e=>{if(!T)return;let t=I.selectSuggestion(e);if(!t)return;let a=eP(T);if(!a)return;let s={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:I.token?.trigger??"@/",attachMode:e.attachMode}};eG(T,a.blockStart,t.startIndex,t.endIndex,s),M.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[T,I,M]),E=(0,a.useCallback)(e=>{if(!T)return;let t=eP(T);if(!t)return;let a=I.drillDown(e);if(!a)return;let s=eD(T,t.blockStart,a.startIndex,a.endIndex);s&&T.chain().focus().deleteRange(s).insertContent(a.text).run()},[T,I]),R=(0,a.useCallback)(async e=>{if(!T)return;let t=S.selectSuggestion(e);if(!t)return;let a=eP(T);if(!a)return;let s={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};eG(T,a.blockStart,t.startIndex,t.endIndex,s);try{let t=await S.exportDiscussion(e);k(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[T,S]),O=(0,a.useCallback)(e=>{C.selectCommand(e),T&&T.commands.clearContent()},[C,T]),U=(0,a.useCallback)(async()=>{if(!T)return;let t=(function(e){if(!e.content)return"";let t=[];for(let a of e.content)a.type,t.push(function(e){if(!e.content)return"";let t="";for(let a of e.content)switch(a.type){case"text":t+=a.text??"";break;case"participantMention":{let e=a.attrs??{},s="parallel"===e.mode?"@@":"@";t+=`${s}${e.name}`;break}case"projectMention":{let e=a.attrs??{},s=String(e.slug??"").trim();s?t+=`@~project:${s}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=a.attrs??{},s=e.relativePath||e.path;t+=`@${s}`;break}case"threadMention":{let e=((a.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}default:"hardBreak"===a.type&&(t+="\n")}return t}(a));return t.join("\n")})(T.getJSON()).trim();if(!t&&!$.hasUploaded&&!M.hasFilePaths||!$.canSend)return;if(t){let e=d.find(e=>e.name===t||e.aliases?.some(e=>`/${e}`===t));if(e){e.execute(),T.commands.clearContent(),C.close(),N.close();return}}let a=t||"(attached files)";if(y.length>0){let e=y.map(e=>`- "${e.title}" — ${e.summary} (full transcript: ${e.filePath})`).join("\n");a=`Referenced threads:
|
|
6
|
-
${e}
|
|
7
|
-
|
|
8
|
-
${a}`}if(M.hasFilePaths){let e=await eI(M.filePaths);e.contextPrefix&&(a=e.contextPrefix+a)}let s=$.attachmentIds.length>0?$.attachmentIds:void 0,r=s?$.getAttachmentMetas():void 0;e(a,g,s,r),T.commands.clearContent(),k([]),$.clear(),M.clearFilePaths(),N.close(),C.close(),S.close()},[T,g,N,C,d,e,$,M,y,S]),L=N.isOpen&&N.filteredSuggestions.length>0;C.isOpen&&C.filteredCommands.length,I.isOpen&&I.suggestions.length,S.isOpen&&S.suggestions.length,L&&N.filteredSuggestions[N.activeIndex];let F=$.staged.some(e=>"uploading"===e.status),_=!T||T.isEmpty;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,t.jsx)(eX,{onDrop:$.stageFiles,children:(0,t.jsxs)("div",{className:"bg-white rounded-2xl border border-slate-200 shadow-xl shadow-slate-200/50 transition-all duration-300",children:[f&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${x?"border-orange-200/50":"border-slate-100"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${x?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, #fff7ed 0%, #ffedd5 25%, #fed7aa 50%, #ffedd5 75%, #fff7ed 100%)",backgroundSize:"200% 100%",animation:x?"shipBgSweep 4s ease-in-out infinite":"none"}}),x&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,a)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*a}%`,right:"-10%",width:`${20+a%3*15}%`,background:`linear-gradient(to left, transparent, rgba(251, 146, 60, ${.15+a%3*.1}))`,animation:`shipSpeedLine ${.8+a%4*.3}s ${.1*a}s ease-in-out infinite`}},a))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${x?"bg-indigo-500 text-white shadow-md shadow-indigo-500/30":"bg-slate-100 text-slate-400"}`,style:x?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(er,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${x?"text-indigo-900":"text-slate-800"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${x?"text-indigo-600/60":"text-slate-400"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${x?"text-indigo-700/70":"text-slate-500"}`,children:"Agents work continuously until this thread ships"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>f(!x),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-offset-2 ${x?"bg-orange-500":"bg-slate-200"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white shadow-sm transition-transform duration-200 ${x?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 focus-within:ring-4 focus-within:ring-slate-900/5 transition-all",children:[$.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(eK,{attachments:$.staged,onRemove:$.remove,onRetry:$.retry})}),(0,t.jsxs)("div",{className:"flex items-end gap-2 p-2 relative",children:[(0,t.jsx)("button",{type:"button",onClick:w,className:"p-2.5 text-slate-400 hover:bg-slate-50 hover:text-slate-600 rounded-xl transition-all shrink-0","aria-label":"Attach file",title:"Attach file",children:(0,t.jsx)(eY,{className:"h-5 w-5",strokeWidth:1.75})}),(0,t.jsx)("input",{ref:v,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&($.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:z,children:[(0,t.jsx)(eh.EditorContent,{editor:T,className:"composer-editor"}),(0,t.jsx)(eO,{isOpen:N.isOpen&&!C.isOpen,suggestions:N.filteredSuggestions,activeIndex:N.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:P}),(0,t.jsx)(eU,{isOpen:C.isOpen,commands:C.filteredCommands,activeIndex:C.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:O}),(0,t.jsx)(eB,{isOpen:I.isOpen,suggestions:I.suggestions,activeIndex:I.activeIndex,isLoading:I.isLoading,error:I.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?E(e):A(e)},onAttachContents:I.onAttachContents}),(0,t.jsx)(eH,{isOpen:S.isOpen&&!C.isOpen&&!I.isOpen,suggestions:S.suggestions,activeIndex:S.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:R})]}),r?(0,t.jsx)("button",{type:"button",onClick:s,className:"h-10 px-4 bg-red-50 text-red-600 border border-red-200 rounded-xl font-bold text-sm hover:bg-red-100 shadow-sm flex items-center gap-2 transition-all shrink-0",children:"Stop"}):(0,t.jsxs)("button",{type:"button",onClick:U,disabled:_&&!$.hasUploaded&&!M.hasFilePaths||F,className:"h-10 px-4 bg-slate-900 text-white rounded-xl font-bold text-sm hover:bg-slate-800 disabled:opacity-50 disabled:hover:bg-slate-900 disabled:cursor-not-allowed shadow-md flex items-center gap-2 transition-all shrink-0",children:["Send",(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]}),(0,t.jsxs)("div",{className:"px-4 pb-2.5 pt-1 flex items-center justify-between border-t border-slate-100 mt-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-wider",children:"Turns"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:"h-1.5 w-14 bg-slate-100 rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full rounded-full transition-all duration-500 bg-indigo-500",style:{width:"0%"}})}),(0,t.jsx)("select",{value:g,onChange:e=>b(Number(e.target.value)),className:"bg-transparent border-none outline-none text-xs font-semibold text-slate-600 cursor-pointer appearance-none hover:text-indigo-600 transition-colors",children:[1,3,5,10,20,50].map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]})]}),(0,t.jsx)("div",{className:"w-px h-4 bg-slate-100"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===l.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-slate-400",children:"No agents"}):l.map(e=>(0,t.jsxs)("div",{className:"relative w-6 h-6 rounded-full bg-slate-100 border-2 border-white shadow-sm flex items-center justify-center overflow-visible shrink-0 hover:-translate-y-0.5 transition-transform cursor-pointer",title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),r&&(0,t.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2 h-2 bg-emerald-400 border border-white rounded-full"})]},e.id))})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-slate-400",children:[(0,t.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-tight",children:r?"Working":"Ready"}),(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${r?"bg-amber-400 animate-pulse":"bg-emerald-400"}`})]})]})]})]})})})})}var eQ=e.i(54238);let e0="agx-chat:project-agent-config",e1={activeParticipantIdsByThread:{}};function e5(){return void 0!==window.localStorage}function e2(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let s of e){if("string"!=typeof s)continue;let e=s.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}function e4(){if(!e5())return{...e1};let e=window.localStorage.getItem(e0);if(!e)return{...e1};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...e1};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,e2(t)]))}}catch{return{...e1}}}function e3(e,t){let a=e.trim();if(!a)return;let s=e4();s.activeParticipantIdsByThread[a]=e2(t);if(e5())try{window.localStorage.setItem(e0,JSON.stringify(s))}catch{}}let e6={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function e8(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:e6.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):e6.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:e6.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof e.hasCompletedFirstRun?e.hasCompletedFirstRun:e6.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):e6.fileIgnorePatterns}:e6}let e7="/api/userPreferences";function e9(e){return e.json().then(e=>e&&"object"==typeof e?e8(e.preferences??e):e8(e)).catch(()=>e8(null))}function te(e){return e.statusText||`Failed to reach ${e7} (${e.status})`}async function tt(){let e=await fetch(e7,{cache:"no-store"});if(!e.ok)throw Error(te(e));return e9(e)}async function ta(e){let t=await fetch(e7,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(te(t));return e9(t)}var ts=e.i(74049),tr=e.i(55436),tl=e.i(73375);let tn=(0,h.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);function ti({logs:e,participants:s,onClear:r,open:l,onToggle:n}){let[i,o]=(0,a.useState)(420),[d,c]=(0,a.useState)(null),u=(0,a.useRef)(null),p=(0,a.useRef)(!1),m=(0,a.useRef)(0),h=(0,a.useRef)(0),x=Object.fromEntries(s.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]);let f=(0,a.useCallback)(e=>{e.preventDefault(),p.current=!0,m.current=e.clientX,h.current=i,e.target.setPointerCapture(e.pointerId)},[i]),g=(0,a.useCallback)(e=>{if(!p.current)return;let t=m.current-e.clientX;o(Math.max(280,Math.min(h.current+t,.6*window.innerWidth)))},[]),b=(0,a.useCallback)(()=>{p.current=!1},[]);if(!l)return null;let v=d?e.filter(e=>e.participantId===d):e;return(0,t.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,t.jsx)("div",{onPointerDown:f,onPointerMove:g,onPointerUp:b,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,t.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,t.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:i},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,t.jsx)("span",{className:"text-[11px] text-zinc-400 font-mono",children:"Logs"}),(0,t.jsxs)("select",{value:d||"",onChange:e=>c(e.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,t.jsx)("option",{value:"",children:"All"}),s.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:r,className:"text-[11px] text-zinc-500 hover:text-zinc-300",children:"Clear"}),(0,t.jsx)("button",{onClick:n,className:"text-[11px] text-zinc-500 hover:text-zinc-300",children:"✕"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[v.map((e,a)=>{let s=x[e.participantId]?.name||e.participantId,r=x[e.participantId]?.color||"#888",l="stderr"===e.stream;return(0,t.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,t.jsx)("span",{className:"text-zinc-600 shrink-0 select-none",children:new Date(e.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,t.jsx)("span",{className:"shrink-0",style:{color:r},children:s}),(0,t.jsx)("span",{className:l?"text-red-400":"text-zinc-400",children:e.line})]},a)}),(0,t.jsx)("div",{ref:u})]})]})]})}function to(){let[e,s]=(0,a.useState)("unknown"),[r,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(""),[d,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/status");if(!e.ok)return void s("unknown");let t=await e.json();s("ok"===t.status?"ok":"degraded");let a=t.services.filter(e=>"agx-chat"===e.name||"agx-cloud"===e.name);l(a),i(new Date().toLocaleTimeString())}catch{s("unknown"),l([])}},[]);return(0,a.useEffect)(()=>{u();let e=setInterval(u,3e4);return()=>clearInterval(e)},[u]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,t.jsx)(o.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-slate-200 bg-white hover:bg-slate-50 transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",title:"System status",children:(0,t.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===e?"bg-emerald-400":"degraded"===e?"bg-amber-400":"bg-slate-300"} ${"degraded"===e?"animate-pulse":""}`})}),d&&(0,t.jsxs)("div",{className:"absolute top-full right-0 mt-1.5 w-52 rounded-lg border border-slate-200 bg-white p-3 shadow-lg z-50 text-xs",children:[r.length>0?(0,t.jsx)("ul",{className:"space-y-1.5",children:r.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-slate-700 font-medium",children:e.name}),(0,t.jsx)("span",{className:"ok"===e.status?"text-emerald-600":"error"===e.status?"text-red-500":"text-slate-400",children:"ok"===e.status?"Healthy":"error"===e.status?e.detail||"Error":"Unavailable"})]},e.name))}):(0,t.jsx)("p",{className:"text-slate-400",children:"Checking..."}),n&&(0,t.jsxs)("p",{className:"text-slate-400 mt-2 pt-1.5 border-t border-slate-100",children:["Last check: ",n]})]})]})}function td(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}function tc(e,t,a){let s=Object.fromEntries(t.map(e=>[e.id,e])),r=[];for(let t of e){let e="user"===t.role?"You":t.participantId?s[t.participantId]?.name||t.participantId:"Assistant",a=td(t.content,"user"!==t.role);a&&(r.push(`**${e}:**`),r.push(""),r.push(a),r.push(""))}if(a){let e=function(e){if(0===e.tasks.length)return"";let t=new Map(e.tasks.map(e=>[e.id,e.title.trim()])),a=["## Draft Tasks",""];return e.projectName&&a.push(`Project: ${e.projectName}`),e.buildStatus&&a.push(`Build status: ${e.buildStatus.replaceAll("_"," ")}`),(e.projectName||e.buildStatus)&&a.push(""),e.tasks.forEach((s,r)=>{let l=td(s.title)||`Task ${r+1}`,n=td(s.description),i=(s.dependsOn||[]).map(e=>t.get(e)?.trim()).filter(e=>!!e),o=e.builtTaskIds?.[s.id];a.push(`${r+1}. [ ] **${l}**`),n&&a.push(n),i.length>0&&a.push(`Depends on: ${i.join(", ")}`),o&&a.push(`agx task id: \`${o}\``),a.push("")}),a.join("\n").trim()}(a);e&&r.push(e)}return r.join("\n").trim()}function tu({projectSlug:e,initialThreadId:o,initialRootMessageId:d}={}){let{threads:c,activeThreadId:u,selectThread:p,createThread:m,deleteThread:h,updateThreadMessages:x,isCreating:f,deletingThreadId:g,renamingThreadId:b,isLoading:v,isRestoringActiveThread:j,renameThread:w,updateThreadStatus:y,updateThreadOutcomeNote:k,updateMessageThreadStatus:N,updateMessageOutcomeNote:C}=(0,n.useThreadState)(o),{messages:I,setMessages:S,logs:$,sendMessage:M,loadHistory:T,clearLogs:z,stop:P,stopThread:A}=function(e){let[t,l]=(0,a.useState)([]),[n,i]=(0,a.useState)([]),o=(0,a.useRef)(e),d=(0,a.useRef)(e);o.current=e,d.current!==e&&(d.current=e,l([]),i([]));let c=(0,a.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();if(!t){l([]),i([]);return}let a=s(t);try{let[e,s]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${r(t)}`)]);if(o.current!==t)return;e.ok&&l(await e.json()),s.ok&&i(await s.json())}catch{}},[]),u=(0,a.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();if(!t){l([]),i([]);return}let a=s(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${r(t)}`,{method:"DELETE"})]),o.current===t&&(l([]),i([]))},[]),p=(0,a.useCallback)(async(e,t=10,a,s,r,n,i,d)=>{let c=a?.trim()||o.current?.trim();if(!c)return;let u=Date.now(),p=crypto.randomUUID(),m={id:p,role:"user",participantId:null,content:e,timestamp:u,rootMessageId:s||null,parentMessageId:s||null,depth:+!!s,...n&&n.length>0?{attachments:n}:{}};l(e=>[...e,m]);try{await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:c,prompt:e,maxRounds:t,userMessageId:p,rootMessageId:s||void 0,attachmentIds:r?.length?r:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:d?.trim()||void 0})})}catch{}return p},[]),m=(0,a.useCallback)(async()=>{let e=o.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),h=(0,a.useCallback)(async e=>{let t=o.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:t,setMessages:l,logs:n,sendMessage:p,loadHistory:c,clearHistory:u,clearLogs:(0,a.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();t?(await fetch(`/api/logs?${r(t)}`,{method:"DELETE"}).catch(()=>{}),o.current===t&&i([])):i([])},[]),stop:m,stopThread:h}}(u),{activeAgents:D,processes:E,streaming:R,poll:O}=(0,l.useProcessPolling)(u?{workspaceId:u}:null,{messages:I,setMessages:S}),U=D.size>0,L=(0,a.useCallback)(async()=>{await P(),await O()},[P,O]),_=(0,a.useCallback)(async e=>{await A(e),await O()},[A,O]),{projects:W,createProject:q,deleteProject:B,addAgent:H,removeAgent:V,reorderAgents:J}=(0,ts.useProjectsWithAgents)(),{projects:K,updateProject:X}=(0,ts.useProjects)(),[Y,G]=(0,a.useState)([]),[Z,Q]=(0,a.useState)(!1),[ee,et]=(0,a.useState)([]),[ea,es]=(0,a.useState)(!1),[er,el]=(0,a.useState)(!1);(0,a.useEffect)(()=>{el((0,eQ.loadWorkspaceSidebarVisible)())},[]);let[en,ei]=(0,a.useState)(!1),[ed,eu]=(0,a.useState)(new Set),[ep,eh]=(0,a.useState)(!1),[ex,ef]=(0,a.useState)(d??null),eg=ex?ed.has(ex):ep;(0,a.useEffect)(()=>{if(!ex)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ex)}`).then(e=>e.json()).then(t=>{e||eu(e=>{let a=e.has(ex);if(t.active&&!a){let t=new Set(e);return t.add(ex),t}if(!t.active&&a){let t=new Set(e);return t.delete(ex),t}return e})}).catch(()=>{})};t();let a=setInterval(t,1e4);return()=>{e=!0,clearInterval(a)}},[ex]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&eu(e=>{let a=new Set(t.activeRootMessageIds);for(let t of e)a.add(t);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(()=>{})};t();let a=setInterval(t,15e3);return()=>{e=!0,clearInterval(a)}},[]),(0,a.useEffect)(()=>{ex?window.history.replaceState(null,"",`/thread/${ex}`):window.history.replaceState(null,"","/")},[ex,u]),(0,a.useEffect)(()=>{d&&(async()=>{try{let e=await fetch(`/api/messages/${d}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&p(t)}catch{}})()},[d,p]);let[eb,ev]=(0,a.useState)(""),[ej,ew]=(0,a.useState)([]),[ey,ek]=(0,a.useState)(0),[eN,eC]=(0,a.useState)(!1),[eI,eS]=(0,a.useState)(null),[e$,eM]=(0,a.useState)(null),[eT,ez]=(0,a.useState)(new Set),[eP,eA]=(0,a.useState)(null),[eD,eE]=(0,a.useState)({}),eR=(0,a.useCallback)(e=>{eE(t=>{let a="function"==typeof e?e(t):e;if(u)for(let[e,s]of Object.entries(a))t[e]!==s&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,messageId:e,draft:s})}).catch(()=>{});return a})},[u]),[eO,eU]=(0,a.useState)(new Set),[eL,eF]=(0,a.useState)(new Set),e_=(0,a.useRef)(null),eW=(0,a.useRef)(null),eq=(0,a.useRef)(null),eB=(0,a.useRef)(""),eH=(0,a.useCallback)(async(e=!1)=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();if(!Array.isArray(t))return;G(t)}finally{e&&Q(!0)}},[]),eV=(0,a.useCallback)(async e=>{try{await ta({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[ta]),eJ=(0,a.useCallback)(e=>{(0,eQ.persistWorkspaceSidebarVisible)(e),eV(e)},[eV]),eK=eb.trim(),eX=eK.length>0,eY=(0,a.useMemo)(()=>Object.fromEntries(c.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[c]),eG=(0,a.useMemo)(()=>{if(!ex)return[];let e=new Set([I.find(e=>e.id===ex),...I.filter(e=>e.rootMessageId===ex)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(R).forEach(t=>{R[t].rootMessageId===ex&&e.add(t)}),Y.filter(t=>e.has(t.id))},[ex,I,R,Y]),e0=(0,a.useMemo)(()=>{let e=new Map(Y.map(e=>[e.id,e]));return ee.map(t=>e.get(t)).filter(Boolean)},[Y,ee]),e1=(0,a.useMemo)(()=>K.map(e=>({id:e.id,name:e.name,slug:e.slug})),[K]),e5=(0,a.useMemo)(()=>{if(!ex)return 0;let e=[I.find(e=>e.id===ex),...I.filter(e=>e.rootMessageId===ex)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[ex,I]),e2=(0,a.useMemo)(()=>{if(!ex)return"";let e=I.find(e=>e.id===ex);if(!e)return"Thread";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[ex,I]),e6=(0,a.useCallback)(()=>{ev(""),ew([]),ek(0),eS(null),eC(!1)},[]);(0,a.useCallback)(()=>{let e=tc(I,Y);navigator.clipboard.writeText(e).then(()=>{es(!0),setTimeout(()=>es(!1),2e3)})},[I,Y]);let[e8,e7]=(0,a.useState)(null),e9=(0,a.useCallback)(e=>{let t=I.find(t=>t.id===e);if(!t)return;let a=[t,...I.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];e7({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[I]),te=(0,a.useCallback)(e=>{let t=tc([I.find(t=>t.id===e),...I.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),Y,eD[e]);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[I,Y,eD]);(0,a.useEffect)(()=>{eH(!0)},[eH]);let td=(0,a.useMemo)(()=>{if(!Z)return[];let e=new Set(Y.map(e=>e.id)),t=new Set;for(let a of I)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(R))e.has(a)||t.add(a);return Array.from(t).sort()},[I,Y,Z,R]);(0,a.useEffect)(()=>{if(!Z)return;let e=td.join("|");if(!e){eB.current="";return}eB.current!==e&&(eB.current=e,eH(!1))},[Z,eH,td]),(0,a.useEffect)(()=>{if(!Z)return;let e=new Set(Y.map(e=>e.id)),t=u?W.find(e=>e.thread_ids?.includes(u)):W[0],a=t?t.agents.map(e=>e.agent_id).filter(t=>e.has(t)):[],s=a.length>0?[...a,...Y.filter(e=>!a.includes(e.id)).map(e=>e.id)]:Y.map(e=>e.id);if(!u)return void et(s);let r=function(e){let t=e.trim();if(!t)return null;let a=e4();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(u);if(null===r)return void et(s);let l=r.filter(t=>e.has(t));l.length!==r.length&&e3(u,l),et(l)},[u,Y,Z,W]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await tt();if(e)return;el(e=>e===t.threadSidebarVisible?e:((0,eQ.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tt,eQ.persistWorkspaceSidebarVisible]),(0,a.useEffect)(()=>{v||f||0!==c.length||m({id:"global",title:"General"})},[v,f,c.length,m]),(0,a.useEffect)(()=>()=>{eq.current&&window.clearTimeout(eq.current)},[]),(0,a.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),e_.current?.focus(),e_.current?.select();return}"Escape"===e.key&&eK&&e6()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[e6,eK]),(0,a.useEffect)(()=>{if(!eK){ew([]),ek(0),eS(null),eC(!1);return}let e=!1;eC(!0);let t=window.setTimeout(()=>{(async()=>{try{let t=new URLSearchParams({q:eK,limit:"20",offset:"0"}),a=await fetch(`/api/search?${t.toString()}`),s=await a.json().catch(()=>null);if(e)return;if(!a.ok){let e=s&&"object"==typeof s&&"error"in s?String(s.error):"Search failed";ew([]),ek(0),eS(e);return}ew(Array.isArray(s.results)?s.results:[]),ek("number"==typeof s.total?s.total:0),eS(null)}catch(t){if(e)return;console.error("Search request failed",t),ew([]),ek(0),eS("Search failed")}finally{e||eC(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[eK]);let tp=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tp.current&&tp.current!==u&&(L(),eW.current?(ef(eW.current),eW.current=null):ef(null)),tp.current=u,u&&(T(u),fetch(`/api/task-drafts?threadId=${encodeURIComponent(u)}`).then(e=>e.json()).then(e=>{e.drafts&&Object.keys(e.drafts).length>0?eE(e.drafts):eE({})}).catch(()=>eE({})))},[u,T,L]),(0,a.useEffect)(()=>{u&&x(u,I)},[u,I,x]);let tm=(0,a.useCallback)((t,a,s=10)=>{u&&0!==e0.length&&M(a,s,u,t,void 0,void 0,e0.map(e=>e.id),e)},[u,M,e0,e]),th=(0,a.useCallback)(async e=>{if(u){if(0===e0.length)return void window.alert("Enable at least one agent in this project.");ez(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,rootMessageId:e,activeParticipantIds:e0.map(e=>e.id)})});t.ok?await T(u):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{ez(t=>{let a=new Set(t);return a.delete(e),a})}}},[u,T,e0]),tx=(0,a.useCallback)(async e=>{if(u){if(0===e0.length)return void window.alert("Enable at least one agent in this project.");eU(t=>new Set(t).add(e));try{let t=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,rootMessageId:e,activeParticipantIds:e0.map(e=>e.id)})});if(t.ok){let a=await t.json(),s={draftId:crypto.randomUUID(),revision:0,tasks:a.tasks,buildStatus:"idle"};eR(t=>({...t,[e]:s}))}else console.error("Task extraction failed:",await t.text())}catch(e){console.error("Task extraction error:",e)}finally{eU(t=>{let a=new Set(t);return a.delete(e),a})}}},[u,e0]),tf=(0,a.useCallback)((e,t)=>{eR(a=>({...a,[e]:t}))},[]),tg=(0,a.useCallback)(async(e,t,a,s)=>{if(u){eF(e=>new Set(e).add(t.draftId)),eR(r=>({...r,[e]:{...t,buildStatus:"building",projectId:a,projectName:s}}));try{let s=crypto.randomUUID(),r=await F(t.tasks,a,s,t.builtTaskIds),l={...t.builtTaskIds},n=!1;for(let e of r.results)"created"===e.status&&e.remoteTaskId?l[e.clientTaskId]=e.remoteTaskId:n=!0;eR(t=>({...t,[e]:{...t[e],buildId:s,buildStatus:n?"partial_failure":"done",builtTaskIds:l}}))}catch(t){console.error("Build error:",t),eR(t=>({...t,[e]:{...t[e],buildStatus:"partial_failure"}}))}finally{eF(e=>{let a=new Set(e);return a.delete(t.draftId),a})}}},[u]),tb=(0,a.useCallback)(()=>{if(!u)return;let e=(()=>{if(ex)return ex;let e=new Set(I.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=I.length-1;t>=0;t-=1){let a=I[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tx(e):console.warn("No thread with replies available to extract tasks from")},[u,tx,I,ex]);(0,a.useCallback)(e=>{ef(e)},[]);let tv=(0,a.useCallback)(e=>{ef(e)},[]),tj=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&ev(t),requestAnimationFrame(()=>{e_.current?.focus(),t||e_.current?.select()})},[]),tw=(0,a.useCallback)(()=>{if(!u)return;let e=(()=>{if(ex)return ex;let e=new Set(I.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=I.length-1;t>=0;t-=1){let a=I[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?th(e):console.warn("No thread with replies available to summarize")},[u,th,I,ex]),ty=(0,a.useCallback)(async(t,a,s,r)=>{let l=t.match(/^\/search(?:\s+([\s\S]+))?$/i);if(l)return void tj(l[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(t))return void tw();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(t)||/^\/create(?:\s+[\s\S]+)?$/i.test(t))return void tb();eg&&ex&&(eu(e=>{let t=new Set(e);return t.delete(ex),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:ex})}).catch(e=>console.error("Failed to deactivate schedule:",e)));let n=u;n||(n=(await m()).id);let i=e0.map(e=>e.id);if(0===i.length)return void window.alert("Enable at least one agent in this project.");if(ex)return void await M(t,a,n,ex,s,r,i,e);let o=await M(t,a,n,null,s,r,i,e);ep&&o&&(eh(!1),eu(e=>{let t=new Set(e);return t.add(o),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:o})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[u,eg,ep,m,tj,tw,ex,e0,M,e]),tk=(0,a.useCallback)(async e=>{if(!ex)return void eh(e);eu(t=>{let a=new Set(t);return e?a.add(ex):a.delete(ex),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:ex})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[ex]),tN=(0,a.useCallback)(e=>{let t=e.rootMessageId||e.messageId;e.threadId!==u?(eW.current=t,p(e.threadId)):ef(t),eM(null),window.requestAnimationFrame(()=>{eM(e.messageId),eq.current&&window.clearTimeout(eq.current),eq.current=window.setTimeout(()=>{eM(t=>t===e.messageId?null:t)},2e3)}),e6()},[u,e6,p]),tC=(0,a.useCallback)(async e=>{L(),await h(e)},[h,L]),tI=(0,a.useCallback)(async e=>{if(u&&e&&window.confirm("Delete this thread and all of its replies?")){eA(e),_(e);try{let t=new URLSearchParams({threadId:u,rootMessageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message thread",await a.text());ef(t=>t===e?null:t),eM(null);let s=I.filter(t=>t.id!==e&&t.rootMessageId!==e);x(u,s),await T(u)}catch(e){console.error("Failed to delete message thread",e)}finally{eA(t=>t===e?null:t)}}},[u,T,I,_,x]),tS=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tj()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>tw()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>tb()}],[tj,tw,tb]),t$=(0,a.useMemo)(()=>u?W.filter(e=>e.thread_ids?.includes(u)):W,[W,u]),tM=(0,a.useCallback)(e=>(0,t.jsx)(eZ,{onSend:(t,a)=>tm(e,t,a),onStop:()=>_(e),loading:Object.values(R).some(t=>t.rootMessageId===e),participants:e0,projectGroups:t$,projects:e1,messages:I,commands:tS,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:eg,onAutoModeChange:tk}),[tm,_,R,e0,t$,e1,tS,I,eg,tk]),tT=(0,a.useCallback)(()=>{el(e=>{let t=!e;return eJ(t),t})},[eJ]),tz=async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();G(t=>t.map(t=>t.id===e.id?e:t))}},tP=(0,a.useCallback)((e,t)=>{et(a=>{if(!new Set(Y.map(e=>e.id)).has(e))return a;let s=new Set(a);t?s.add(e):s.delete(e);let r=Y.map(e=>e.id).filter(e=>s.has(e));return u&&e3(u,r),r})},[u,Y]),tA=(0,a.useCallback)(e=>{let t=W.find(t=>t.id===e);if(!t||u&&!t.thread_ids?.includes(u))return;let a=t.agents.map(e=>e.agent_id);et(a),u&&e3(u,a)},[W,u]),tD=(0,t.jsx)("div",{className:"border-b border-slate-200/60 bg-white px-6 py-2.5",children:(0,t.jsxs)("div",{className:"max-w-2xl mx-auto relative group/search",children:[(0,t.jsx)(tr.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 group-focus-within/search:text-indigo-500 transition-colors",strokeWidth:2}),(0,t.jsx)("input",{ref:e_,type:"text",value:eb,onChange:e=>ev(e.target.value),onKeyDown:e=>{"Escape"===e.key&&e6()},placeholder:"Search messages…",className:"h-9 w-full rounded-lg border border-slate-200 bg-slate-50/80 pl-9 pr-16 text-sm font-medium outline-none placeholder:text-slate-400 transition-all focus:bg-white focus:border-indigo-300 focus:ring-2 focus:ring-indigo-500/10 hover:border-slate-300"}),eK?(0,t.jsxs)("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-slate-400",children:eN?"…":ey}),(0,t.jsx)("button",{type:"button",onClick:e6,className:"text-[10px] font-bold text-slate-400 hover:text-slate-600 transition-colors",children:"✕"})]}):(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 px-1.5 py-0.5 text-[10px] font-sans font-bold text-slate-400 bg-slate-100 border border-slate-200 rounded-md",children:"⌘K"})]})});return(0,t.jsxs)("div",{className:"flex h-screen bg-white text-zinc-900",children:[(0,t.jsx)(i.WorkspaceSidebar,{threads:c,participants:Y,activeThreadId:u,isLoading:v,isRestoringActiveThread:j,isCreating:f,deletingThreadId:g,renamingThreadId:b,onSelectThread:p,onCreateThread:m,onRenameThread:w,onDeleteThread:tC,activeParticipantIds:ee,onToggleParticipantActive:tP,visible:er,onToggle:tT,projects:W,onCreateProject:q,onUpdateProject:X,onDeleteProject:B,onAddAgentToProject:H,onRemoveAgentFromProject:V,onReorderProjectAgents:J,onUpdateParticipant:tz,onSelectProject:tA}),(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:[(0,t.jsxs)("div",{className:"absolute top-4 right-4 z-30 flex items-center gap-2",children:[(0,t.jsx)(to,{}),ex&&(0,t.jsx)("button",{type:"button",onClick:()=>ei(!en),"aria-label":en?"Hide logs":`Show logs${$.length>0?` (${$.length})`:""}`,"aria-pressed":en,title:en?"Hide logs":`Show logs${$.length>0?` (${$.length})`:""}`,className:`inline-flex h-8 w-8 items-center justify-center rounded-md border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400 ${en?"border-slate-300 bg-slate-50 text-slate-800":"border-slate-200 bg-white text-slate-500 hover:bg-slate-50 hover:text-slate-800"}`,children:(0,t.jsx)(tn,{className:"h-4 w-4",strokeWidth:1.75})})]}),ex&&(0,t.jsx)("header",{className:"border-b border-slate-200 px-6 py-4 flex items-center h-16 pr-14",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)("button",{onClick:()=>ef(null),className:"p-1.5 text-slate-400 hover:text-indigo-600 hover:bg-zinc-100 rounded-lg transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,t.jsx)(tl.ChevronLeft,{size:22,strokeWidth:2.5})}),(0,t.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("h2",{className:"text-[15px] font-bold text-slate-900 tracking-tight leading-tight truncate max-w-[240px]",children:e2}),(0,t.jsx)("div",{className:"flex -space-x-1.5 ml-1 flex-shrink-0",children:eG.map(e=>(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-5 h-5 rounded-full border-2 border-white shadow-sm ring-1 ring-slate-200 object-cover",title:e.name},e.id))})]}),(0,t.jsxs)("div",{className:"text-[11px] text-slate-500 font-medium flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:"opacity-80",children:[eG.length," agents"]}),(0,t.jsx)("span",{className:"w-0.5 h-0.5 rounded-full bg-slate-300"}),(0,t.jsxs)("span",{className:"opacity-80",children:["Updated ",function(e){if(!e)return"recently";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let s=Math.floor(a/60);return s<24?`${s}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e5)]})]})]})]})}),j?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-zinc-500",children:"Loading your last project…"}):(0,t.jsx)("div",{className:"flex flex-1 min-h-0 bg-slate-50 relative",children:(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[!ex&&tD,eX?(0,t.jsx)(em,{query:eK,results:ej,total:ey,participants:Y,threadTitleById:eY,isLoading:eN,error:eI,onSelectResult:tN}):ex?(0,t.jsx)(ec,{messages:I,streaming:R,participants:Y,rootMessageId:ex,onClose:()=>ef(null),onCopyThread:te,onAddToChat:e9,onDeleteThreadRoot:tI,highlightedMessageId:e$||void 0,renderReplyComposer:tM,activeProcesses:E.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===ex)}):(0,t.jsx)(eo,{messages:I,streaming:R,participants:Y,onOpenThread:tv,onCopyThread:te,onAddToChat:e9,onDeleteThreadRoot:tI,onSummarize:th,onCreateTasks:tx,onUpdateTaskDraft:tf,onBuildTasks:tg,summarizingThreads:eT,extractingTasks:eO,buildingDrafts:eL,taskDrafts:eD,deletingThreadRootId:eP,highlightedMessageId:e$,shipModeThreads:ed,onUpdateMessageThreadStatus:u?(e,t)=>{S(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),N(u,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:u?(e,t)=>{S(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),C(u,e,t);let a=I.find(t=>t.id===e);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:a?.threadStatus??null,outcomeNote:t})})}:void 0}),!eX&&!ex&&(0,t.jsx)(eZ,{onSend:ty,onStop:L,loading:U,participants:e0,projects:e1,projectGroups:t$,messages:I,commands:tS,pendingThreadInsert:e8,onClearPendingThread:()=>e7(null),autoMode:eg,onAutoModeChange:tk})]})})]}),d&&(0,t.jsx)(ti,{logs:$,participants:Y,onClear:()=>void z(u),open:en,onToggle:()=>ei(!1)})]})}e.s(["ChatContainer",()=>tu],30426)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},43531,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],43531)},40160,e=>{"use strict";let t=(0,e.i(75254).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],40160)},61911,e=>{"use strict";let t=(0,e.i(75254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],61911)},99438,e=>{"use strict";let t="agx-chat:threads";function r(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function a(){let e=r().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var r,a;return[e,(r=e,a=t,{id:r,title:a?.title,messages:Array.isArray(a?.messages)?[...a.messages]:[],createdAt:"number"==typeof a?.createdAt?a.createdAt:Date.now(),updatedAt:"number"==typeof a?.updatedAt?a.updatedAt:Date.now(),metadata:a?.metadata,status:a?.status,outcomeNote:a?.outcomeNote,projectId:"string"==typeof a?.projectId?a.projectId:"string"==typeof a?.teamId?a.teamId:a?.projectId===null||a?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function n(e){r().setItem(t,JSON.stringify(e))}function o(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let s=new class{async saveThread(e){let t=Date.now(),r=a(),s=r.threads[e.id],i=s?.createdAt??e.createdAt??t,u=e.updatedAt??t,c={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:i,updatedAt:u,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return r.threads[e.id]=c,n(r),o(c)}async loadThread(e){let t=a().threads[e];return t?o(t):null}async listThreads(e){let t=Object.values(a().threads),r=e?.order??"desc",n=[...t].sort((e,t)=>"asc"===r?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),s=Math.max(0,e?.offset??0),i=e?.limit,u="number"==typeof i&&i>=0?n.slice(s,s+i):n.slice(s);return{total:t.length,threads:u.map(o)}}async deleteThread(e){let t=a();t.threads[e]&&(delete t.threads[e],n(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await s.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let r=await s.loadThread(t);if(r){let t={...r.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return s.saveThread({id:r.id,title:e?.title??r.title,messages:e?.messages?.length?e.messages:r.messages,metadata:t,createdAt:r.createdAt})}}let r={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return s.saveThread(r)},async deleteThread(e){let t=e.trim();if(!t)return;let r=await s.loadThread(t);if(!r)return;let a={...r.metadata??{},archived:!0,archivedAt:Date.now()};await s.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:a,createdAt:r.createdAt})},async renameThread(e,t){let r=e.trim(),a=t.trim();if(!r||!a)return null;let n=await s.loadThread(r);return n?(n.title?.trim()??"")===a?n:s.saveThread({id:n.id,title:a,messages:n.messages,metadata:n.metadata,createdAt:n.createdAt}):null},async updateThreadStatus(e,t){let r=await s.loadThread(e);return r?r.status===t?r:s.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:t,outcomeNote:r.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let r=await s.loadThread(e);return r?r.outcomeNote===t?r:s.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,r){let a=await s.loadThread(e);if(!a)return null;let n=a.messages.map(e=>e.id===t?{...e,threadStatus:r}:e);return s.saveThread({id:a.id,title:a.title,messages:n,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async updateMessageOutcomeNote(e,t,r){let a=await s.loadThread(e);if(!a)return null;let n=a.messages.map(e=>e.id===t?{...e,outcomeNote:r}:e);return s.saveThread({id:a.id,title:a.title,messages:n,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async saveThreadMessages(e,t){let r=await s.loadThread(e);if(!r)return null;let a=r.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let r=t.replace(/\s+/g," ");return r.length>60?`${r.slice(0,60).trim()}…`:r}(t);return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let a=e[r],n=t[r];if(a.id!==n.id||a.role!==n.role||a.participantId!==n.participantId||a.content!==n.content||a.timestamp!==n.timestamp)return!1}return!0}(r.messages,t)&&(r.title?.trim()||void 0)===a?r:s.saveThread({id:r.id,title:a,messages:t,metadata:r.metadata,createdAt:r.createdAt})}}],99438)},74049,e=>{"use strict";var t=e.i(71645);function r(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[o,s]=(0,t.useState)(null),i=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),s(null)}catch(e){s(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{i()},[i]);let u=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:o,refetch:i,createProject:u,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),o=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let s=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),o=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),s=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:o})});if(!s.ok)return null;let{project:i}=await s.json(),u=Array.isArray(t)?t:t?[t]:[];for(let e of u)await fetch(`/api/projects/${i.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(()=>{});let c={...i,repos:i.repos??[],agents:[],thread_ids:u,workspace_ids:u};return r(e=>[...e,c].sort((e,t)=>e.name.localeCompare(t.name))),c}catch{return null}},[]),i=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),u=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),l=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:s,updateProject:c,renameProject:i,deleteProject:u,addAgent:l,removeAgent:d,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await o()}catch{}},[o]),refresh:o}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],27612)},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return u},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function o(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,s(e));else t.set(r,s(a));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},61746,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return u}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",u=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),u&&"object"==typeof u&&(u=String(o.urlQueryToSearchParams(u)));let l=e.search||u&&`?${u}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||s.test(a))&&!1!==c?(c="//"+(c||""),n&&"/"!==n[0]&&(n="/"+n)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),n=n.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${a}${c}${n}${l}${i}`}let u=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(71645);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=o(e,a)),t&&(n.current=o(t,a))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return w},NormalizeError:function(){return v},PageNotFoundError:function(){return j},SP:function(){return y},ST:function(){return m},WEB_VITALS:function(){return o},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return l},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return k}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&f(r))return a;if(!a)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let y="u">typeof performance,m=y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class v extends Error{}class j extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let a=e.r(18967),n=e.r(52817);function o(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return j}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(90809),s=e.r(18050),i=o._(e.r(71645)),u=e.r(61746),c=e.r(8372),l=e.r(18581),d=e.r(18967),f=e.r(5550);e.r(33525);let p=e.r(91949),h=e.r(73668),y=e.r(9396);function m(e){return"string"==typeof e?e:(0,u.formatUrl)(e)}function g(t){var r;let a,n,o,[u,g]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),j=(0,i.useRef)(null),{href:w,as:b,children:k,prefetch:T=null,passHref:_,replace:S,shallow:E,scroll:A,onClick:O,onMouseEnter:C,onTouchStart:P,legacyBehavior:N=!1,onNavigate:x,ref:M,unstable_dynamicOnHover:$,...I}=t;a=k,N&&("string"==typeof a||"number"==typeof a)&&(a=(0,s.jsx)("a",{children:a}));let L=i.default.useContext(c.AppRouterContext),R=!1!==T,U=!1!==T?null===(r=T)||"auto"===r?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,{href:D,as:F}=i.default.useMemo(()=>{let e=m(w);return{href:e,as:b?m(b):e}},[w,b]);if(N){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=i.default.Children.only(a)}let z=N?n&&"object"==typeof n&&n.ref:M,J=i.default.useCallback(e=>(null!==L&&(j.current=(0,p.mountLinkInstance)(e,D,L,U,R,g)),()=>{j.current&&((0,p.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,p.unmountPrefetchableInstance)(e)}),[R,D,L,U,g]),B={ref:(0,l.useMergedRef)(J,z),onClick(t){N||"function"!=typeof O||O(t),N&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!L||t.defaultPrevented||function(t,r,a,n,o,s,u){if("u">typeof window){let c,{nodeName:l}=t.currentTarget;if("A"===l.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);i.default.startTransition(()=>{d(a||r,o?"replace":"push",s??!0,n.current)})}}(t,D,F,j,S,A,x)},onMouseEnter(e){N||"function"!=typeof C||C(e),N&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),L&&R&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){N||"function"!=typeof P||P(e),N&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),L&&R&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,d.isAbsoluteUrl)(F)?B.href=F:N&&!_&&("a"!==n.type||"href"in n.props)||(B.href=(0,f.addBasePath)(F)),o=N?i.default.cloneElement(n,B):(0,s.jsx)("a",{...I,...B,children:a}),(0,s.jsx)(v.Provider,{value:u,children:o})}e.r(84508);let v=(0,i.createContext)(p.IDLE_LINK_STATUS),j=()=>(0,i.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:o=2,absoluteStrokeWidth:s,className:i="",children:u,iconNode:c,...l},d)=>(0,t.createElement)("svg",{ref:d,...n,width:a,height:a,stroke:e,strokeWidth:s?24*Number(o)/Number(a):o,className:r("lucide",i),...!u&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(l)&&{"aria-hidden":"true"},...l},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(u)?u:[u]])),s=(e,n)=>{let s=(0,t.forwardRef)(({className:s,...i},u)=>(0,t.createElement)(o,{ref:u,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,s),...i}));return s.displayName=a(e),s};e.s(["default",()=>s],75254)},7233,e=>{"use strict";let t=(0,e.i(75254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],7233)},10980,e=>{"use strict";let t=(0,e.i(75254).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);e.s(["BookOpen",()=>t],10980)},55838,(e,t,r)=>{"use strict";var a=e.r(71645),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=a.useState,s=a.useEffect,i=a.useLayoutEffect,u=a.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}var l="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=o({inst:{value:r,getSnapshot:t}}),n=a[0].inst,l=a[1];return i(function(){n.value=r,n.getSnapshot=t,c(n)&&l({inst:n})},[e,r,t]),s(function(){return c(n)&&l({inst:n}),e(function(){c(n)&&l({inst:n})})},[e]),u(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:l},2239,(e,t,r)=>{"use strict";t.exports=e.r(55838)},52822,(e,t,r)=>{"use strict";var a=e.r(71645),n=e.r(2239),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useSyncExternalStore,i=a.useRef,u=a.useEffect,c=a.useMemo,l=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,n){var d=i(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var p=s(e,(d=c(function(){function e(e){if(!u){if(u=!0,s=e,e=a(e),void 0!==n&&f.hasValue){var t=f.value;if(n(t,e))return i=t}return i=e}if(t=i,o(s,e))return t;var r=a(e);return void 0!==n&&n(t,r)?(s=e,t):(s=e,i=r)}var s,i,u=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,a,n]))[0],d[1]);return u(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}},30224,(e,t,r)=>{"use strict";t.exports=e.r(52822)},63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},88081,e=>{"use strict";let t=(0,e.i(75254).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",()=>t],88081)},88699,e=>{"use strict";let t=(0,e.i(75254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],88699)},74886,e=>{"use strict";let t=(0,e.i(75254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],74886)}]);
|