@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
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50030,e=>{"use strict";var t=e.i(71645);let r=new Set(["spawning","running"]);function s(e,s){let a=s?.intervalMs??3e3,[o,n]=(0,t.useState)(new Set),[i,d]=(0,t.useState)([]),[l,c]=(0,t.useState)({}),p=(0,t.useRef)(e);p.current=e;let u=(0,t.useRef)(s?.messages??[]);u.current=s?.messages??[];let m=(0,t.useRef)(s?.setMessages);m.current=s?.setMessages;let x=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=s?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t)}},[s?.messages]);let h=(0,t.useCallback)(async()=>{let e=p.current;if(!e){n(new Set),d([]),c({});return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){n(new Set),d([]),c({});return}try{let s=e.workspaceId||e.threadId,a=s?`/api/history?threadId=${encodeURIComponent(s)}&since=${x.current}`:null,o=[fetch(t)];a&&o.push(fetch(a));let[i,l]=await Promise.all(o),h=p.current;if(h?.threadId!==e.threadId||h?.workspaceId!==e.workspaceId)return;if(i.ok){let e=await i.json();d(e);let t=new Set(e.filter(e=>r.has(e.state)).map(e=>e.agentId));n(t);let s={};for(let t of e){if(!r.has(t.state))continue;let e=u.current.find(e=>e.id===t.sinceMessageId),a=e?.rootMessageId??t.sinceMessageId;s[t.agentId]={content:"",rootMessageId:a}}c(s)}if(l?.ok&&m.current){let e=await l.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),s=e.filter(e=>!r.has(e.id)),a=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===s.length?a:[...a,...s].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),f=e?.threadId||e?.workspaceId||null;return(0,t.useEffect)(()=>{if(!f){n(new Set),d([]),c({});return}h();let e=setInterval(h,a);return()=>clearInterval(e)},[f,a,h]),{activeAgents:o,processes:i,streaming:l,poll:h}}e.s(["useProcessPolling",()=>s])},23385,e=>{"use strict";let t=(0,e.i(75254).default)("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);e.s(["BrainCircuit",()=>t],23385)},67581,e=>{"use strict";var t=e.i(18050),r=e.i(71645),s=e.i(18566),a=e.i(23385),o=e.i(10980),n=e.i(7233),i=e.i(55436),d=e.i(27612),l=e.i(19580),c=e.i(74049),p=e.i(40461),u=e.i(36797),m=e.i(67041),x=e.i(93237);function h(){let[e,s]=(0,r.useState)(null),[a,o]=(0,r.useState)(!1),n=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/daemon");e.ok&&s(await e.json())}catch{}},[]);(0,r.useEffect)(()=>{n();let e=setInterval(n,1e4);return()=>clearInterval(e)},[n]);let i=async()=>{o(!0);try{e?.running?await fetch("/api/daemon",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop"})}):await fetch("/api/daemon",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workers:1})}),await n()}finally{o(!1)}},d=async t=>{if(!e)return;let r=Math.max(1,Math.min(e.maxWorkers,e.targetWorkers+t));if(r!==e.targetWorkers){o(!0);try{await fetch("/api/daemon",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workers:r})}),await n()}finally{o(!1)}}};if(!e)return null;let l=e.running;return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-2 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("button",{type:"button",onClick:i,disabled:a,className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full border border-[var(--border)] hover:border-[var(--border)] transition-colors disabled:opacity-50",children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${l?"bg-emerald-500":"bg-[var(--app-shell-soft-text)]"}`}),(0,t.jsx)("span",{className:"font-medium text-[var(--muted-foreground)]",children:a?"...":l?"Daemon running":"Daemon stopped"})]}),l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"inline-flex items-center rounded-full border border-[var(--border)] overflow-hidden",children:[(0,t.jsx)("button",{type:"button",onClick:()=>d(-1),disabled:a||e.targetWorkers<=1,className:"px-1.5 py-0.5 hover:bg-[var(--muted)] transition-colors disabled:opacity-30 text-[var(--muted-foreground)]",children:"-"}),(0,t.jsxs)("span",{className:"px-2 py-0.5 font-mono text-[var(--muted-foreground)] border-x border-[var(--border)]",children:[e.activeWorkers,"/",e.targetWorkers,"w"]}),(0,t.jsx)("button",{type:"button",onClick:()=>d(1),disabled:a||e.targetWorkers>=e.maxWorkers,className:"px-1.5 py-0.5 hover:bg-[var(--muted)] transition-colors disabled:opacity-30 text-[var(--muted-foreground)]",children:"+"})]}),e.startedAt&&(0,t.jsxs)("span",{className:"text-[var(--muted-foreground)]",children:["up since ",new Date(e.startedAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]})]})}var f=e.i(50030);function g({params:e}){let{slug:g}=(0,r.use)(e),b=(0,s.useRouter)(),{tasks:v,isLoading:y,createTask:j,updateTask:w,deleteTask:k,completeTaskStage:N,cancelWorkflow:S,refetch:C,cancellingTaskId:$,fetchTask:I}=(0,l.useTasks)({realtime:!0,project:g}),{projects:T}=(0,c.useProjects)(),{workflow:M,stages:E,stageConfig:P,isValidTransition:O,isLoading:R}=(0,p.useWorkflows)(),[A,L]=(0,r.useState)(""),[_,D]=(0,r.useState)(!1),[U,W]=(0,r.useState)(!1),[K,B]=(0,r.useState)(null),[J,q]=(0,r.useState)(!1),[F,G]=(0,r.useState)(!1),[H,z]=(0,r.useState)(""),[V,Z]=(0,r.useState)(""),[Q,X]=(0,r.useState)(""),[Y,ee]=(0,r.useState)({}),[et,er]=(0,r.useState)([]),[es,ea]=(0,r.useState)({}),eo=T.find(e=>e.slug===g),en=eo?.id??null,{skills:ei,addSkill:ed,removeSkill:el}=function(e){let[t,s]=(0,r.useState)([]),[a,o]=(0,r.useState)(!0),n=(0,r.useCallback)(async()=>{if(!e){s([]),o(!1);return}try{let t=await fetch(`/api/projects/${e}/skills`);if(!t.ok)return;let r=await t.json();s(r.skills??[])}catch{}finally{o(!1)}},[e]);return(0,r.useEffect)(()=>{n()},[n]),{skills:t,isLoading:a,addSkill:(0,r.useCallback)(async(t,r)=>{if(e)try{(await fetch(`/api/projects/${e}/skills`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:t,condition:r})})).ok&&await n()}catch{}},[e,n]),removeSkill:(0,r.useCallback)(async t=>{if(e)try{(await fetch(`/api/projects/${e}/skills?skillId=${t}`,{method:"DELETE"})).ok&&s(e=>e.filter(e=>e.id!==t))}catch{}},[e]),refresh:n}}(en),{memory:ec,addMemory:ep,deleteMemory:eu}=function(e){let[t,s]=(0,r.useState)([]),[a,o]=(0,r.useState)(!0),n=(0,r.useCallback)(async()=>{if(!e){s([]),o(!1);return}try{let t=await fetch(`/api/projects/${e}/memory?producer=human`);if(!t.ok)return;let r=await t.json();s(r.memory??[])}catch{}finally{o(!1)}},[e]);return(0,r.useEffect)(()=>{n()},[n]),{memory:t,isLoading:a,addMemory:(0,r.useCallback)(async(t,r)=>{if(e)try{(await fetch(`/api/projects/${e}/memory`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t,source:r,producer:"human"})})).ok&&await n()}catch{}},[e,n]),deleteMemory:(0,r.useCallback)(async t=>{if(e)try{(await fetch(`/api/projects/${e}/memory?memoryId=${t}`,{method:"DELETE"})).ok&&s(e=>e.filter(e=>e.id!==t))}catch{}},[e]),refresh:n}}(en);(0,r.useEffect)(()=>{eo?.repos&&ee(e=>{let t={};for(let r of eo.repos)t[r.id]=e[r.id]??r.notes??"";return t})},[eo?.repos]),(0,r.useEffect)(()=>{let e=!1;return async function(){let t=eo?.repos??[];if(0!==t.length)try{let r=await Promise.all(t.map(async e=>{let t=await fetch(`/api/repos/${e.id}/knowledge?producer=human`),r=((t.ok?await t.json():{knowledge:[]}).knowledge??[]).map(e=>String(e.content??"").trim()).filter(Boolean).join("\n\n");return[e.id,r]}));e||ee(e=>{let t={...e};for(let[e,s]of r)s&&(t[e]=s);return t})}catch{}}(),()=>{e=!0}},[eo?.repos]),(0,r.useEffect)(()=>{let e=!1;return async function(){if(!en)return er([]);try{let t=await fetch(`/api/projects/${en}/memory?producer=system`);if(!t.ok)return;let r=await t.json();e||er(r.memory??[])}catch{e||er([])}}(),()=>{e=!0}},[en]),(0,r.useEffect)(()=>{let e=!1;return async function(){let t=eo?.repos??[];if(0===t.length)return ea({});try{let r=await Promise.all(t.map(async e=>{let t=await fetch(`/api/repos/${e.id}/knowledge?producer=system`),r=t.ok?await t.json():{knowledge:[]};return[e.id,r.knowledge??[]]}));e||ea(Object.fromEntries(r))}catch{e||ea({})}}(),()=>{e=!0}},[eo?.repos]);let{processes:em}=(0,f.useProcessPolling)(eo?{workspaceId:eo.id}:null,{intervalMs:3e3}),ex=(0,r.useMemo)(()=>{if(!A.trim())return v;let e=A.toLowerCase();return v.filter(t=>(t.title||"").toLowerCase().includes(e)||(t.content||"").toLowerCase().includes(e))},[v,A]),eh=(0,r.useMemo)(()=>v.some(e=>!!e.graph_id),[v]),ef=(0,r.useMemo)(()=>v.filter(e=>e.graph_id).map(e=>e.id),[v]),[eg,eb]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(0===ef.length)return void eb(!0);let e=!1;return(0,x.prefetchGraphSummaries)(ef).then(()=>{e||eb(!0)}),()=>{e=!0}},[ef]);let ev=(0,r.useCallback)(e=>{let t=(0,x.getCachedGraphSummary)(e.id);if(!t)return"done"===e.stage||"completed"===e.status?"DONE":"INTAKE"===e.stage||"ideation"===e.stage||"queued"===e.status?"INTAKE":"PROGRESS";return t.derivedStatus},[]),ey=(0,r.useCallback)(e=>{b.push(`/projects/${g}/graph/${e.id}`)},[b,g]),ej=(0,r.useCallback)(async(e,t)=>{await w(e,t)},[w]),ew=async(e,t)=>{let r=[`status: ${"INTAKE"===t?"queued":"in_progress"}`,`stage: ${t}`];eo&&(r.push(`project: ${eo.slug}`),r.push(`project_id: ${eo.id}`),r.push(`workflow_id: ${eo.workflow_id||p.DEFAULT_WORKFLOW_ID}`));let s=`---
|
|
2
|
+
${r.join("\n")}
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ${e}
|
|
6
|
+
`;await j(s,null),D(!1)},ek=(0,r.useCallback)(async()=>{if(!eo?.id)return void B("Project is not loaded yet.");W(!0),B(null);try{let e=await fetch(`/api/projects/${eo.id}/migrate-v2`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dryRun:!1})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t?.error||`Migration failed (${e.status})`);let r=Number(t?.processed??0),s=Number(t?.migrated??0),a=Number(t?.skipped??0),o=Number(t?.failed??0),n=Number(t?.backup?.backedUp??0);B(`Migration finished: backed up ${n}, processed ${r}, migrated ${s}, skipped ${a}, failed ${o}.`),await C()}catch(t){let e=t instanceof Error?t.message:String(t);B(`Migration failed: ${e}`)}finally{W(!1)}},[eo?.id,C]);return y||R?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading board..."})]})}):(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"flex-shrink-0 border-b border-[var(--border)] bg-[var(--card-bg)] backdrop-blur-md px-3 sm:px-6 py-2 sm:py-0 sm:h-14 flex flex-col sm:flex-row sm:items-center justify-between gap-2 sm:gap-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-3 sm:gap-4 text-sm text-[var(--app-shell-soft-text)] flex-shrink-0",children:(0,t.jsx)("span",{className:"font-semibold text-[var(--foreground)] truncate",children:eo?.name||g})}),(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-1 sm:justify-end",children:[(0,t.jsxs)("div",{className:"relative w-full sm:max-w-sm group",children:[(0,t.jsx)(i.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--app-shell-soft-text)] group-focus-within:text-indigo-500 transition-colors",size:14}),(0,t.jsx)("input",{type:"text",placeholder:"Search tasks...",value:A,onChange:e=>L(e.target.value),className:"w-full bg-[var(--secondary)] border border-[var(--border)] rounded-full py-1.5 pl-9 pr-4 text-xs focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>q(e=>!e),className:`hidden sm:inline-flex px-3 py-1.5 rounded-full text-xs font-medium border transition-colors whitespace-nowrap ${J?"bg-indigo-50 border-indigo-200 text-indigo-700":"bg-[var(--card-bg)] border-[var(--border)] hover:border-indigo-300 hover:text-indigo-600"}`,title:"Inspect and edit project-scoped knowledge",children:J?"Hide project knowledge":"Project knowledge"}),(0,t.jsx)("button",{type:"button",onClick:()=>G(e=>!e),className:`hidden sm:inline-flex px-3 py-1.5 rounded-full text-xs font-medium border transition-colors whitespace-nowrap ${F?"bg-emerald-50 border-emerald-200 text-emerald-700":"bg-[var(--card-bg)] border-[var(--border)] hover:border-emerald-300 hover:text-emerald-600"}`,title:"Inspect and edit repo-scoped knowledge",children:F?"Hide repo knowledge":"Repo knowledge"}),!eh&&(0,t.jsx)("button",{type:"button",onClick:ek,disabled:U||!eo?.id,className:`hidden sm:inline-flex px-3 py-1.5 rounded-full text-xs font-medium border transition-colors whitespace-nowrap ${U?"bg-[var(--secondary)] border-[var(--border)] text-[var(--app-shell-soft-text)] cursor-wait":"bg-[var(--card-bg)] border-[var(--border)] hover:border-indigo-300 hover:text-indigo-600"}`,title:"Create v2 execution graphs for tasks in this project",children:U?"Migrating...":"Migrate to v2"})]})]}),K&&(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] px-6 py-1",children:K}),J&&eo&&(0,t.jsx)("div",{className:"px-3 sm:px-6 py-3",children:(0,t.jsxs)("div",{className:"rounded-3xl border border-[var(--border)] bg-[var(--card-bg)] p-4 sm:p-6 shadow-sm",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 mb-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xs font-black text-[var(--app-shell-soft-text)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,t.jsx)(a.BrainCircuit,{className:"w-4 h-4"})," Project Knowledge"]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)] max-w-2xl",children:"Edit project-scoped knowledge here. This is situational context for this project, not portable agent knowledge and not durable repo truth."})]}),(0,t.jsxs)("div",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[ei.length," references, ",ec.length," notes"]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-6",children:[(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.BrainCircuit,{className:"w-4 h-4 text-[var(--app-shell-soft-text)]"}),(0,t.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Human-Authored References"})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"File-backed project knowledge for project-specific instructions and references."}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-2",children:[(0,t.jsx)("input",{type:"text",value:H,onChange:e=>z(e.target.value),placeholder:"path/to/project-knowledge.md",className:"w-full rounded-xl border border-[var(--border)] bg-[var(--secondary)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500"}),(0,t.jsx)("input",{type:"text",value:V,onChange:e=>Z(e.target.value),placeholder:"Optional condition",className:"w-full rounded-xl border border-[var(--border)] bg-[var(--secondary)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500"}),(0,t.jsxs)("button",{type:"button",onClick:async()=>{let e=H.trim();e&&(await ed(e,V.trim()||void 0),z(""),Z(""))},className:"inline-flex items-center justify-center gap-2 rounded-xl bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] hover:opacity-90 transition-colors",children:[(0,t.jsx)(n.Plus,{className:"w-4 h-4"}),"Add reference"]})]}),(0,t.jsx)("div",{className:"space-y-2",children:0===ei.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-6 text-sm text-[var(--app-shell-soft-text)]",children:"No project knowledge references yet."}):ei.map(e=>(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-2xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"font-mono text-xs text-[var(--secondary-foreground)] break-all",children:e.file}),e.condition?(0,t.jsxs)("div",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:["Use when: ",e.condition]}):null]}),(0,t.jsx)("button",{type:"button",onClick:()=>void el(e.id),className:"rounded-lg p-2 text-[var(--app-shell-soft-text)] hover:bg-[var(--card-bg)] hover:text-red-600 transition-colors","aria-label":"Remove knowledge reference",children:(0,t.jsx)(d.Trash2,{className:"w-4 h-4"})})]},e.id))})]}),(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.BookOpen,{className:"w-4 h-4 text-[var(--app-shell-soft-text)]"}),(0,t.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Human-Authored Notes"})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Inline project notes for current decisions, assumptions, and temporary coordination context."}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-2",children:[(0,t.jsx)("textarea",{value:Q,onChange:e=>X(e.target.value),rows:4,placeholder:"Current decision, assumption, or project-specific context...",className:"w-full rounded-xl border border-[var(--border)] bg-[var(--secondary)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500"}),(0,t.jsxs)("button",{type:"button",onClick:async()=>{let e=Q.trim();e&&(await ep(e,"human-authored"),X(""))},className:"inline-flex items-center justify-center gap-2 rounded-xl bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] hover:opacity-90 transition-colors",children:[(0,t.jsx)(n.Plus,{className:"w-4 h-4"}),"Add note"]})]}),(0,t.jsx)("div",{className:"space-y-2",children:0===ec.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-6 text-sm text-[var(--app-shell-soft-text)]",children:"No project knowledge notes yet."}):ec.map(e=>(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-2xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-sm text-[var(--secondary-foreground)] leading-relaxed",children:e.content}),(0,t.jsxs)("div",{className:"mt-1 text-[11px] text-[var(--app-shell-soft-text)]",children:[e.source||"project"," • ",new Date(e.created_at).toLocaleString()]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>void eu(e.id),className:"rounded-lg p-2 text-[var(--app-shell-soft-text)] hover:bg-[var(--card-bg)] hover:text-red-600 transition-colors","aria-label":"Remove knowledge note",children:(0,t.jsx)(d.Trash2,{className:"w-4 h-4"})})]},e.id))})]})]}),(0,t.jsxs)("div",{className:"mt-6 rounded-2xl border border-[var(--border)] bg-[var(--secondary)] px-4 py-4",children:[(0,t.jsx)("div",{className:"text-xs font-black uppercase tracking-[0.18em] text-[var(--app-shell-soft-text)]",children:"System-Generated Project Knowledge"}),et.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:et.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-3",children:[(0,t.jsx)("div",{className:"text-sm text-[var(--secondary-foreground)] leading-relaxed",children:e.content}),(0,t.jsxs)("div",{className:"mt-2 text-[11px] text-[var(--app-shell-soft-text)]",children:[e.source?`${e.source} • `:"",new Date(e.created_at).toLocaleString()]})]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project-scoped system-generated knowledge candidates are surfaced yet."})]})]})}),F&&eo&&(0,t.jsx)("div",{className:"px-3 sm:px-6 py-3",children:(0,t.jsxs)("div",{className:"rounded-3xl border border-[var(--border)] bg-[var(--card-bg)] p-4 sm:p-6 shadow-sm",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 mb-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xs font-black text-[var(--app-shell-soft-text)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,t.jsx)(o.BookOpen,{className:"w-4 h-4"})," Repo Knowledge"]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)] max-w-2xl",children:"Edit repo-scoped knowledge here. Use this for durable codebase facts, conventions, and workflows that belong to a specific repository."})]}),(0,t.jsxs)("div",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[eo.repos.length," repos"]})]}),0===eo.repos.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-6 text-sm text-[var(--app-shell-soft-text)]",children:"This project has no repos attached yet."}):(0,t.jsx)("div",{className:"space-y-4",children:eo.repos.map(e=>(0,t.jsxs)("section",{className:"rounded-2xl border border-[var(--border)] bg-[var(--secondary)] p-4",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:e.name}),(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:e.path||"No path set"}),(0,t.jsx)("div",{className:"mt-2 text-[10px] font-black uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:"Human-authored repo knowledge"})]}),(0,t.jsx)("button",{type:"button",onClick:async()=>{await fetch(`/api/repos/${e.id}/knowledge`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({producer:"human",content:Y[e.id]??""})}).then(async e=>{if(!e.ok)throw Error((await e.json().catch(()=>({}))).error||"Failed to save repo knowledge")})},className:"inline-flex items-center justify-center rounded-xl bg-[var(--foreground)] px-3 py-2 text-xs font-medium text-[var(--card-bg)] hover:opacity-90 transition-colors",children:"Save repo knowledge"})]}),(0,t.jsx)("textarea",{value:Y[e.id]??"",onChange:t=>ee(r=>({...r,[e.id]:t.target.value})),rows:4,placeholder:"Architecture facts, repo conventions, commands, or stable gotchas...",className:"mt-3 w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500/20 focus:border-emerald-500"}),(0,t.jsxs)("div",{className:"mt-4 rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-3",children:[(0,t.jsx)("div",{className:"text-[10px] font-black uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:"System-Generated Repo Knowledge"}),(es[e.id]??[]).length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:(es[e.id]??[]).map(e=>(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--secondary)] px-3 py-2",children:[(0,t.jsx)("div",{className:"text-sm text-[var(--secondary-foreground)] leading-relaxed",children:e.content}),(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--app-shell-soft-text)]",children:new Date(e.created_at).toLocaleString()})]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No repo-scoped system-generated knowledge candidates yet."})]})]},e.id))})]})}),(0,t.jsx)("div",{className:"flex-shrink-0 px-3 sm:px-6",children:(0,t.jsx)(h,{})}),(0,t.jsx)("div",{className:"flex-shrink-0 px-3 sm:px-6",children:(0,t.jsx)(m.default,{tasks:ex,processes:em,onTaskClick:e=>b.push(`/projects/${g}/graph/${e.id}`),onStop:async e=>{await S({taskId:e}),await C()},onRetry:async e=>{await N({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})},cancellingTaskId:$})}),(0,t.jsx)("div",{className:"flex-1 min-h-0 relative",children:(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden",children:(0,t.jsx)(u.default,{tasks:ex,onSelectTask:ey,onTasksChange:()=>{},onTaskUpdate:ej,onAddTask:(e,t)=>ew(e,t),stages:E,stageConfig:P,isValidTransition:eh?void 0:O,graphColumnFn:eh?ev:void 0})})})]})}e.s(["default",()=>g],67581)}]);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.workspace-sidebar{--workspace-indent:1rem;border-right:1px solid var(--app-shell-border);background:var(--app-shell-pane);width:16rem;min-width:16rem;color:var(--foreground);flex-direction:column;height:100vh;transition:width .15s,min-width .15s;display:flex;overflow:hidden}.workspace-sidebar--collapsed{width:3.5rem;min-width:3.5rem}.workspace-sidebar--collapsed .workspace-sidebar__brand{justify-content:center}.workspace-sidebar--collapsed .workspace-sidebar__brand-icon{cursor:pointer;transition:transform .15s}.workspace-sidebar--collapsed .workspace-sidebar__brand-icon:hover{transform:scale(1.08)}.workspace-sidebar__brand{border-bottom:1px solid var(--app-shell-border);background:color-mix(in srgb,var(--app-shell-pane)84%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:.5rem;padding:.875rem .75rem;display:flex}.workspace-sidebar__brand-icon{color:#fff;letter-spacing:.12em;text-transform:uppercase;background:#000;border:0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:1.35rem;font-size:.625rem;font-weight:700;display:inline-flex}.dark .workspace-sidebar__brand-icon{color:#000;background:#fff}.workspace-sidebar__brand-title{color:var(--foreground);margin:0;font-size:.9375rem;font-weight:600}.workspace-sidebar__content{flex-direction:column;flex:1;gap:.125rem;min-height:0;padding:.5rem;display:flex;overflow-y:auto}.workspace-sidebar__section{flex-direction:column;gap:.25rem;display:flex}.workspace-sidebar__section--workspaces{flex:1;min-height:0;overflow:hidden}.workspace-sidebar__section-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.workspace-sidebar__section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--app-shell-soft-text);margin:1rem 0 0;padding:.5rem .75rem;font-size:.625rem;font-weight:700}.workspace-sidebar__section-link{color:var(--app-shell-muted);border-radius:.375rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s,background-color .15s;display:flex}.workspace-sidebar__section-link:hover{color:var(--foreground);background-color:var(--app-shell-subtle)}.workspace-sidebar__nav-item{width:100%;color:var(--app-shell-muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:.375rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,box-shadow .15s;display:inline-flex}.workspace-sidebar__nav-item:hover{background:var(--app-shell-subtle);color:var(--foreground)}.workspace-sidebar__nav-item--active{background:var(--app-shell-elevated);color:var(--foreground);box-shadow:0 1px 2px #0f172a0f,0 0 0 1px color-mix(in srgb,var(--primary)28%,transparent)}.workspace-sidebar__workspace-list{flex-direction:column;gap:.25rem;min-height:0;margin:0;padding:.125rem 0;list-style:none;display:flex;overflow-y:auto}.workspace-sidebar__workspace-item{position:relative}.workspace-sidebar__workspace-nav-item{padding-right:3rem}.workspace-sidebar__workspace-nav-item:focus-visible,.workspace-sidebar__workspace-action:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.workspace-sidebar__workspace-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-sidebar__workspace-actions{opacity:0;align-items:center;gap:.2rem;transition:opacity .12s;display:inline-flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.workspace-sidebar__workspace-action{background:var(--app-shell-elevated);color:var(--app-shell-soft-text);cursor:pointer;border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;transition:all .12s;display:inline-flex}.workspace-sidebar__workspace-item:hover .workspace-sidebar__workspace-actions,.workspace-sidebar__workspace-nav-item--active+.workspace-sidebar__workspace-actions{opacity:1}.workspace-sidebar__workspace-action:hover:not(:disabled){color:var(--foreground);background:var(--app-shell-elevated);border-color:var(--app-shell-border-strong)}.workspace-sidebar__workspace-action--delete:hover:not(:disabled){color:var(--destructive);background:var(--destructive-muted);border-color:var(--status-failed-border)}.workspace-sidebar__workspace-action:disabled{opacity:.4;cursor:not-allowed}.workspace-sidebar__header-actions{align-items:center;gap:.25rem;display:inline-flex}.workspace-sidebar__action{border:1px solid var(--app-shell-border);background:color-mix(in srgb,var(--app-shell-elevated)92%,transparent);width:1.75rem;height:1.75rem;color:var(--app-shell-muted);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.workspace-sidebar__action:hover:not(:disabled){background:var(--app-shell-elevated);color:var(--foreground)}.workspace-sidebar__action:disabled{opacity:.4;cursor:not-allowed}.workspace-sidebar__action:focus-visible,.workspace-sidebar__empty-cta:focus-visible,.workspace-sidebar__settings-button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.workspace-sidebar__list{flex-direction:column;gap:.35rem;margin:0;padding:.25rem 0;list-style:none;display:flex}.thread-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.75rem;flex-direction:column;gap:.3125rem;width:100%;padding:.6rem;transition:all .15s;display:flex}.thread-item:hover{background:var(--app-shell-subtle)}.thread-item--active{background:var(--app-shell-elevated);border-color:color-mix(in srgb,var(--primary)18%,transparent);box-shadow:0 1px 2px #0f172a0d}.thread-item__header{justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.thread-item__title-wrap{align-items:center;gap:.3rem;min-width:0;display:inline-flex}.thread-item__hash{color:var(--app-shell-muted);flex-shrink:0}.thread-item__title{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.thread-item__timestamp{color:var(--app-shell-soft-text);white-space:nowrap;flex-shrink:0;font-size:.625rem}.thread-item__meta{color:var(--app-shell-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.75rem;line-height:1.35;display:-webkit-box;overflow:hidden}.workspace-sidebar__empty{padding:.75rem .625rem}.workspace-sidebar__empty-card{border:1px dashed var(--app-shell-border-strong);background:var(--app-shell-subtle);text-align:left;border-radius:.75rem;flex-direction:column;gap:.5rem;padding:.875rem;display:flex}.workspace-sidebar__empty-title{color:var(--foreground);margin:0;font-size:.8125rem;font-weight:600}.workspace-sidebar__empty-copy{color:var(--app-shell-muted);margin:0;font-size:.75rem;line-height:1.45}.workspace-sidebar__empty-cta{border:1px solid var(--app-shell-border-strong);background:var(--app-shell-elevated);color:var(--foreground);cursor:pointer;border-radius:.5rem;width:fit-content;padding:.45rem .625rem;font-size:.75rem;font-weight:500}.workspace-sidebar__empty-cta:hover:not(:disabled){background:var(--app-shell-subtle)}.workspace-sidebar__empty-cta:disabled{opacity:.4;cursor:not-allowed}.workspace-sidebar__models{flex-direction:column;margin:0;padding:.125rem 0;list-style:none;display:flex}.workspace-sidebar__model-item{border-radius:.375rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.workspace-sidebar__model-item:hover{background:var(--app-shell-subtle)}.workspace-sidebar__model-dot{border-radius:999px;flex-shrink:0;width:.5rem;height:.5rem}.workspace-sidebar__model-name{color:var(--foreground);font-size:.875rem;font-weight:500}.workspace-sidebar__model-meta{color:var(--app-shell-soft-text);opacity:0;text-align:right;font-size:.625rem;transition:opacity .15s}.workspace-sidebar__model-item:hover .workspace-sidebar__model-meta{opacity:1}.workspace-sidebar__models-empty{color:var(--app-shell-soft-text);margin:0;padding:.25rem .75rem 0;font-size:.75rem}.workspace-sidebar__footer{border-top:1px solid var(--app-shell-border);margin-top:auto;padding:.75rem}.workspace-sidebar__settings-button{width:100%;color:var(--app-shell-muted);cursor:pointer;background:0 0;border:0;border-radius:.375rem;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.workspace-sidebar__settings-button:hover{background:var(--app-shell-subtle);color:var(--foreground)}
|
|
2
|
+
.FileMentionPopover-module__1CTxzW__popover{animation:.12s ease-out both FileMentionPopover-module__1CTxzW__fileMentionFadeIn}@keyframes FileMentionPopover-module__1CTxzW__fileMentionFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55436,e=>{"use strict";let t=(0,e.i(75254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],55436)},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)},11132,e=>{"use strict";var t=e.i(18050),r=e.i(71645);function a({initialPath:e,onSelect:a,onCancel:s}){let[o,n]=(0,r.useState)(e||""),[l,i]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(null),m=(0,r.useRef)(null),x=(0,r.useCallback)(async e=>{c(!0),u(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void u(a.error||"Failed to browse");i(a),n(a.current),m.current?.scrollTo(0,0)}catch{u("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{x(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:o,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&x(o)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>x(o),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[d&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),p&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:p}),!d&&l&&(0,t.jsxs)("div",{className:"py-1",children:[l.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>x(l.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===l.dirs.length&&!l.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),l.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>x(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:l?.current||o}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(l?.current||o),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}let s={name:"",description:""},o={name:"",path:"",notes:""};function n(){let[e,t]=(0,r.useState)(s),[a,n]=(0,r.useState)([o]),[l,i]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),p=(0,r.useCallback)((e,t,r)=>{n(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),u=(0,r.useCallback)(()=>{n(e=>[...e,{...o}])},[]),m=(0,r.useCallback)(e=>{n(t=>t.filter((t,r)=>r!==e))},[]),x=(0,r.useCallback)(()=>{t(s),n([o]),c(null)},[]),h=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?n(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):n([o]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:p,addRepo:u,removeRepo:m,resetForm:x,hydrateFromProject:h,isSubmitting:l,setIsSubmitting:i,formError:d,setFormError:c}}function l(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}}function i({form:e,repos:s,isEditingProject:o,isSubmitting:n,onFieldChange:l,onRepoChange:i,onAddRepo:d,onRemoveRepo:c}){let[p,u]=(0,r.useState)([]),[m,x]=(0,r.useState)(null),h=(0,r.useRef)(0);(0,r.useEffect)(()=>{o?u([]):u(s.map((e,t)=>t)),h.current=s.length},[o,s.length]),(0,r.useEffect)(()=>{if(!o){h.current=s.length;return}let e=h.current;u(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),h.current=s.length},[o,s.length]);let b=(0,r.useCallback)(e=>{u(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),g=(0,r.useCallback)(e=>!o||p.includes(e),[p,o]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>l("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:n})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>l("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:n})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Repositories"}),(0,t.jsx)("button",{type:"button",onClick:d,className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:n,children:"+ Add Repository"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Repo #",r+1]}),o&&!g(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed repository"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[o&&(0,t.jsx)("button",{type:"button",onClick:()=>b(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:n,children:g(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>c(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:n,children:"Remove"})]})]}),g(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>i(r,"name",e.target.value),placeholder:"Name (e.g. Frontend)",className:"input text-sm",disabled:n}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>i(r,"path",e.target.value),placeholder:"Local path (mandatory)",className:"input text-sm flex-1",disabled:n}),(0,t.jsx)("button",{type:"button",onClick:()=>x(m===r?null:r),className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:n,children:"Browse"})]}),m===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a,{initialPath:e.path||"",onSelect:e=>{i(r,"path",e),x(null)},onCancel:()=>x(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>i(r,"notes",e.target.value),placeholder:"Repo-specific rules and notes (placeholder for conventions, constraints, ownership, deploy notes...)",className:"input text-sm w-full min-h-24 resize-y",disabled:n})})]}):null]},r))})]})]})}function d({isOpen:e,onClose:a,onSubmit:s,editingProject:o,form:n,repos:l,isSubmitting:d,formError:c,onFieldChange:p,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}){let[h,b]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!o)return b([]);try{let t=await fetch(`/api/projects/${o.id}/memory?producer=system`),r=t.ok?await t.json():{memory:[]};e||b(r.memory??[])}catch{e||b([])}}(),()=>{e=!0}},[o]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:o?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:o?"Update your project settings and repositories.":"Define a new project and connect repositories."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[o&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"System-Generated Project Knowledge"}),h.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:h.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No system-generated project knowledge candidates yet."})]})}),(0,t.jsx)(i,{form:n,repos:l,isEditingProject:!!o,isSubmitting:d,onFieldChange:p,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:d,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:d?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):o?"Save Changes":"Create Project"})]})]})}):null}e.s(["createProjectPayload",()=>l,"default",()=>d,"useProjectFormState",()=>n],11132)},68542,31245,27025,54238,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(64659),s=e.i(63059),o=e.i(88081),n=e.i(75254);let l=(0,n.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>l],31245);let i=(0,n.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",()=>i],27025);let d=(0,n.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]),c=(0,n.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var p=e.i(88699);let u=(0,n.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var m=e.i(7233),x=e.i(55436),h=e.i(27612),b=e.i(37727),g=e.i(22016),v=e.i(25459),f=e.i(11132);function j({threads:e,participants:n=[],activeThreadId:j,isLoading:y,isCreating:k,onSelectThread:w,onCreateThread:N,onRenameThread:_,onDeleteThread:C,deletingThreadId:S=null,renamingThreadId:I=null,activeParticipantIds:z=[],onToggleParticipantActive:P,visible:A=!1,isRestoringActiveThread:R=!1,onToggle:D,onSearch:F,projects:M=[],onCreateProject:E,onUpdateProject:T,onDeleteProject:$,onAddAgentToProject:L,onRemoveAgentFromProject:K,onAddAgentViaForm:V,onReorderProjectAgents:U,onUpdateParticipant:B,onSelectProject:H}){let W,O,G=(0,r.useRef)(null),[X,q]=(0,r.useState)(new Set),[J,Y]=(0,r.useState)(null),[Z,Q]=(0,r.useState)(new Set),[ee,et]=(0,r.useState)(!1),[er,ea]=(0,r.useState)(null),[es,eo]=(0,r.useState)(null),en=(0,f.useProjectFormState)(),[el,ei]=(0,r.useState)(null),ed=(0,r.useCallback)(e=>{e&&(e.focus(),e.select())},[]),[ec,ep]=(0,r.useState)(null),[eu,em]=(0,r.useState)(null),ex=eu?n.find(e=>e.id===eu)??null:null,[eh,eb]=(0,r.useState)(null),[eg,ev]=(0,r.useState)(null),ef=e=>{q(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},ej=async()=>{if(!er&&!es)return;if(!en.form.name.trim())return void en.setFormError("Project name is required");let e=en.repos.find(e=>e.name.trim()&&!e.path.trim());if(e)return void en.setFormError(`Local path is required for repository "${e.name}"`);en.setFormError(null),en.setIsSubmitting(!0);let t=(0,f.createProjectPayload)(en.form,en.repos);es?await T?.(es.id,t):await E?.(t,er?.threadId),en.setIsSubmitting(!1),ea(null),eo(null)},ey=async e=>{en.resetForm();try{let t=await fetch(`/api/projects/${e}`);if(!t.ok)throw Error("Failed to load project");let r=(await t.json()).project;eo(r),en.hydrateFromProject(r)}catch(e){console.error("Failed to load project settings",e)}};(0,r.useEffect)(()=>{let e=!1;async function t(){if(eh?.repoId)try{let t=await fetch(`/api/repos/${eh.repoId}/knowledge?producer=system`),r=t.ok?await t.json():{knowledge:[]};e||eb(e=>e&&e.repoId===eh.repoId?{...e,generatedKnowledge:r.knowledge??[],isLoadingKnowledge:!1}:e)}catch{e||eb(e=>e&&e.repoId===eh.repoId?{...e,generatedKnowledge:[],isLoadingKnowledge:!1}:e)}}return eh?.repoId&&t(),()=>{e=!0}},[eh?.repoId]);let ek=e=>{V?V(e):(Q(new Set),Y({projectId:e}))},ew=J?M.find(e=>e.id===J.projectId):null,eN=new Set(ew?.agents.map(e=>e.agent_id)??[]),e_=J?n.filter(e=>!eN.has(e.id)):[],eC=e.length>0,eS=!!A,eI=[...e].sort((e,t)=>(e.title??"").localeCompare(t.title??"")),ez=M.filter(e=>!e.is_default),eP=eI.filter(e=>!ez.some(t=>t.thread_ids?.includes(e.id)));!function({focusTarget:e,shouldFocus:t}){(0,r.useEffect)(()=>{if(!t||"u"<typeof document)return;let r=e.current;if(!r||r instanceof HTMLButtonElement&&r.disabled)return;let a=document.activeElement;if(!(a&&(r===a||r.contains(a))))try{r.focus({preventScroll:!0})}catch{r.focus()}},[e,t])}({focusTarget:G,shouldFocus:eS&&!(y&&!eC||R&&eC)&&!eC&&!k});let eA=()=>{ei({title:"Create thread",placeholder:"Thread title",defaultValue:"",onSubmit:e=>void N({title:e})})};return eS?(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":y?"true":void 0,children:[(0,t.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,t.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),D&&(0,t.jsx)("button",{type:"button",onClick:D,"aria-label":"Hide threads",title:"Hide threads",className:"ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,t.jsx)(c,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__content",children:[F&&(0,t.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,t.jsxs)("button",{type:"button",onClick:F,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,t.jsx)(x.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,t.jsx)("span",{children:"Search..."}),(0,t.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,t.jsx)("nav",{className:"workspace-sidebar__section",style:{gap:0},children:(0,t.jsxs)(g.default,{href:"/agents",className:"workspace-sidebar__nav-item",children:[(0,t.jsx)(l,{size:14,className:"flex-shrink-0"}),"Manage Agents"]})}),(0,t.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,t.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,t.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{en.resetForm(),eo(null),ea({})},"aria-label":"Create project",title:"Create project",children:(0,t.jsx)(m.Plus,{size:14})})})]}),ez.map(e=>{let r=X.has(e.id),l=eI.filter(t=>e.thread_ids?.includes(t.id));return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",onClick:()=>{H?.(e.id),ef(e.id)},children:[r?(0,t.jsx)(a.ChevronDown,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]",onClick:t=>{t.stopPropagation(),ef(e.id)}}):(0,t.jsx)(s.ChevronRight,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]",onClick:t=>{t.stopPropagation(),ef(e.id)}}),(0,t.jsx)(i,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:e.name})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void ey(e.id),"aria-label":`Open project settings for ${e.name}`,title:"Project settings",children:(0,t.jsx)(p.Pencil,{size:12})}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var t;let r;return t=e.id,r=M.find(e=>e.id===t),void ep({title:"Delete project",message:`Delete "${r?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void $?.(t)})},"aria-label":`Delete project ${e.name}`,title:`Delete project ${e.name}`,children:(0,t.jsx)(h.Trash2,{size:12})})]})]}),r&&(0,t.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:l[0]?(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${l[0].id===j?"workspace-sidebar__nav-item--active":""}`,onClick:()=>w(l[0].id),"aria-current":l[0].id===j?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Thread"})]}):(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:eA,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Thread"})]})}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,t.jsxs)(g.default,{href:`/projects/${e.slug}`,className:"workspace-sidebar__nav-item",children:[(0,t.jsx)(u,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Board"})]})}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Repos"}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>eb({projectId:e.id,projectName:e.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add repo",title:"Add repo",children:(0,t.jsx)(m.Plus,{size:12})})]}),e.repos.length>0?e.repos.map(r=>(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>eb({projectId:e.id,projectName:e.name,repoId:r.id,name:r.name,path:r.path||"",gitUrl:r.git_url||"",notes:r.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,t.jsx)(d,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:r.name})]}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async t=>{t.stopPropagation();let a=e.repos.filter(e=>e.id!==r.id).map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}));await T?.(e.id,{repos:a})},"aria-label":"Delete repo",title:"Delete repo",children:(0,t.jsx)(h.Trash2,{size:12})})]},`${e.id}:${r.name}:${r.path??""}`)):(0,t.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No repos"})]}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),e.agents.length>0&&(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>ek(e.id),"aria-label":"Add agents",title:"Add agents",children:(0,t.jsx)(m.Plus,{size:12})})]}),e.agents.length>0?(0,t.jsx)(t.Fragment,{children:e.agents.map((r,a)=>{let s=n.find(e=>e.id===r.agent_id),o=eg?.projectId===e.id&&eg?.agentId===r.agent_id,l=eg?.projectId===e.id&&eg?.overIndex===a&&!o;return(0,t.jsx)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.effectAllowed="move",ev({projectId:e.id,agentId:r.agent_id,overIndex:a})},onDragOver:t=>{t.preventDefault(),eg&&eg.projectId===e.id&&ev(e=>e?{...e,overIndex:a}:null)},onDragEnd:()=>{if(eg&&eg.projectId===e.id&&U){let t=e.agents.map(e=>e.agent_id),r=t.indexOf(eg.agentId),a=eg.overIndex;if(-1!==r&&r!==a){let s=[...t],[o]=s.splice(r,1);s.splice(a,0,o),U(e.id,s)}}ev(null)},className:`group/agent flex items-center ${l?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${o?"opacity-40":""}`,children:(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>em(r.agent_id),children:[(0,t.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===a?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,t.jsx)("img",{src:(0,v.agentAvatarUrl)(r.agent_id,16,s?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:s?.name??r.agent_id}),0===a&&(0,t.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},r.agent_id)})}):(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>ek(e.id),children:[(0,t.jsx)(m.Plus,{size:10}),(0,t.jsx)("span",{children:"Add agents"})]})]})]})]},e.id)}),eP.length>0&&(0,t.jsxs)("div",{className:"pt-3",children:[(0,t.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),eP.map(e=>{let r=e.id===j,a=e.title?.trim()||"Untitled thread";return(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${r?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>w(e.id),"aria-current":r?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a})]})},e.id)})]})]})]}),(0,t.jsx)("div",{className:"mt-auto px-3 pb-3",children:(0,t.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",children:[(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})}),eh&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{eh.isSaving||eb(null)},children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:eh.projectName}),(0,t.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:eh.repoId?eh.name||"Repository":"Add Repository"})]}),(0,t.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{eh.isSaving||eb(null)},"aria-label":"Close repo details",disabled:eh.isSaving,children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,t.jsx)("input",{value:eh.name,onChange:e=>eb(t=>t?{...t,name:e.target.value,error:null}:t),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:eh.isSaving})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,t.jsx)("input",{value:eh.path,onChange:e=>eb(t=>t?{...t,path:e.target.value,error:null}:t),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:eh.isSaving})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Repo Notes"}),(0,t.jsx)("textarea",{value:eh.notes,onChange:e=>eb(t=>t?{...t,notes:e.target.value,error:null}:t),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:eh.isSaving,placeholder:"Repo-specific rules, notes, conventions, deployment constraints..."})]}),eh.repoId?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"System-Generated Repo Knowledge"}),eh.isLoadingKnowledge?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading generated knowledge…"}):eh.generatedKnowledge.length>0?(0,t.jsx)("div",{className:"space-y-2",children:eh.generatedKnowledge.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No generated repo knowledge yet."})]}):null,eh.error?(0,t.jsx)("p",{className:"text-xs text-red-600",children:eh.error}):null,(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,t.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>eb(null),disabled:eh.isSaving,children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:eh.isSaving||!T,onClick:async()=>{let e=M.find(e=>e.id===eh.projectId);if(!e)return void eb(e=>e?{...e,error:"Project not found."}:e);let t=eh.name.trim(),r=eh.path.trim();if(!t)return void eb(e=>e?{...e,error:"Repo name is required."}:e);if(!r)return void eb(e=>e?{...e,error:"Repo path is required."}:e);eb(e=>e?{...e,isSaving:!0,error:null}:e);try{let a=eh.repoId?e.repos.map(e=>e.id===eh.repoId?{id:e.id,name:t,path:r,git_url:eh.gitUrl.trim()||void 0,notes:eh.notes.trim()||void 0}:{id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}):[...e.repos.map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes})),{name:t,path:r,git_url:eh.gitUrl.trim()||void 0,notes:eh.notes.trim()||void 0}];await T?.(e.id,{repos:a}),eb(null)}catch(e){eb(t=>t?{...t,isSaving:!1,error:e instanceof Error?e.message:"Failed to save repo details."}:t)}},children:eh.isSaving?"Saving...":eh.repoId?"Save":"Add Repo"})]})]})]})}),J&&!ee&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>Y(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",ew?.name??"project"]}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>Y(null),children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>et(!0),children:[(0,t.jsx)(m.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===e_.length?(0,t.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):e_.map(e=>{let r=Z.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${r?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{Q(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${r?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsx)("img",{src:(0,v.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate font-medium text-xs",children:e.name}),(0,t.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:e.model})]})]},e.id)})]}),e_.length>0&&(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>Y(null),children:"Cancel"}),(0,t.jsxs)("button",{type:"button",disabled:0===Z.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let e of Z)L?.(J.projectId,e);Y(null)},children:["Add ",Z.size>0?`(${Z.size})`:""]})]})]})}),ee&&(0,t.jsx)(v.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[]},submitLabel:"Create & Add",projects:M?.filter(e=>!e.is_default).map(t=>{let r=(t.thread_ids??[]).map(t=>e.find(e=>e.id===t)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:t.id,name:t.name,label:`${r} › ${t.name}`}}),initialProjectIds:J?[J.projectId]:[],onSubmit:async(e,t)=>{let r=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],a=r[n.length%r.length],s=e.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),o=t?.[0],l=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:s,name:e.name,provider:e.provider,model:e.model,color:e.color??a,...e.identity?{identity:e.identity}:{},skills:e.skills??[],...o?{projectId:o}:{}})});if(l.ok){let e=await l.json().catch(()=>({})),r="string"==typeof e?.id&&e.id.trim()?e.id.trim():s;for(let e of(t??[]).slice(1))L?.(e,r);et(!1),Y(null)}},onCancel:()=>{et(!1)}}),el&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ei(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:el.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ei(null),children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:e=>{e.preventDefault();let t=new FormData(e.currentTarget),r=t.get("value")?.trim();r&&(el.onSubmit(r),ei(null))},children:[(0,t.jsx)("input",{ref:ed,name:"value",type:"text",defaultValue:el.defaultValue,placeholder:el.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ei(null),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:el.defaultValue?"Save":"Create"})]})]})]})}),ec&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ep(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:ec.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ep(null),children:(0,t.jsx)(b.X,{size:16})})]}),(0,t.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:ec.message}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ep(null),children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{ec.onConfirm(),ep(null)},children:"Delete"})]})]})]})}),(er||es)&&(0,t.jsx)(f.default,{isOpen:!0,onClose:()=>{en.resetForm(),ea(null),eo(null)},onSubmit:()=>void ej(),editingProject:es,form:en.form,repos:en.repos,isSubmitting:en.isSubmitting,formError:en.formError,onFieldChange:(e,t)=>en.setForm(r=>({...r,[e]:t})),onRepoChange:en.handleRepoChange,onAddRepo:en.addRepo,onRemoveRepo:en.removeRepo}),ex&&(W=M.filter(e=>e.agents.some(e=>e.agent_id===ex.id)),O=M.filter(e=>!e.agents.some(e=>e.agent_id===ex.id)),(0,t.jsx)(v.AgentForm,{title:"Edit agent",initial:{name:ex.name,provider:ex.provider,model:ex.model||"",identity:ex.identity||"",color:ex.color,skills:ex.skills||[]},agentId:ex.id,submitLabel:"Save",projectMemberships:{current:W.map(e=>({id:e.id,name:e.name,is_default:!!e.is_default})),available:O.map(e=>({id:e.id,name:e.name}))},onAddToProject:L?e=>L(e,ex.id):void 0,onRemoveFromProject:K?e=>K(e,ex.id):void 0,onSubmit:async e=>{B&&await B({...ex,name:e.name,provider:e.provider,model:e.model,color:e.color??ex.color,...e.identity?{identity:e.identity}:{},skills:e.skills??[]}),em(null)},onCancel:()=>em(null)}))]}):(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand",children:(0,t.jsx)("button",{type:"button",onClick:D,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show threads",title:"Show threads",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,t.jsx)("div",{className:"mt-auto p-2",children:(0,t.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",children:(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})}e.s(["WorkspaceSidebar",()=>j],68542);let y="agx-chat:uiSettings",k={threadSidebarVisible:!1};function w(){return void 0!==window.localStorage}function N(){if(!w())return{...k};let e=window.localStorage.getItem(y);if(!e)return{...k};try{let t=JSON.parse(e);return{...k,threadSidebarVisible:"boolean"==typeof t.threadSidebarVisible&&t.threadSidebarVisible}}catch{return{...k}}}function _(){return N().threadSidebarVisible}function C(e){var t={...N(),threadSidebarVisible:e};if(w())try{window.localStorage.setItem(y,JSON.stringify(t))}catch{}}e.s(["loadWorkspaceSidebarVisible",()=>_,"persistWorkspaceSidebarVisible",()=>C],54238)}]);
|
package/cloud-runtime/standalone/.next/static/chunks/{7ca3e4f9ed7425a8.js → d95cd010361834be.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66975,e=>{"use strict";var t=e.i(18050),r=e.i(71645),
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66975,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(18566),s=e.i(68542),i=e.i(74049),o=e.i(16625),n=e.i(54238);function d({children:e,params:d}){let{slug:l}=(0,r.use)(d),c=(0,a.useRouter)(),{projects:h,isLoading:u,createProject:p,updateProject:f,deleteProject:m,addAgent:j,removeAgent:g}=(0,i.useProjectsWithAgents)(),{threads:x,isLoading:b,isCreating:v,deletingThreadId:T,renamingThreadId:y,isRestoringActiveThread:P,createThread:A,renameThread:N,deleteThread:S}=(0,o.useThreadState)(),[k,C]=(0,r.useState)([]),[w,R]=(0,r.useState)(!1);(0,r.useEffect)(()=>{R((0,n.loadWorkspaceSidebarVisible)())},[]),(0,r.useEffect)(()=>{fetch("/api/participants").then(e=>e.json()).then(e=>C(Array.isArray(e)?e:[])).catch(()=>C([]))},[]);let U=(0,r.useMemo)(()=>h.find(e=>e.slug===l)??null,[h,l]);return u?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):U?(0,t.jsxs)("div",{className:"flex h-full min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,t.jsx)(s.WorkspaceSidebar,{threads:x,participants:k,activeThreadId:U.thread_ids[0]??null,isLoading:b,isRestoringActiveThread:P,isCreating:v,deletingThreadId:T,renamingThreadId:y,onSelectThread:e=>c.push(`/?thread=${encodeURIComponent(e)}`),onCreateThread:A,onRenameThread:N,onDeleteThread:S,visible:w,onToggle:()=>{let e=!w;R(e),(0,n.persistWorkspaceSidebarVisible)(e)},projects:h,onCreateProject:p,onUpdateProject:f,onDeleteProject:m,onAddAgentToProject:j,onRemoveAgentFromProject:g,onUpdateParticipant:async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("Failed to update agent");let r=await t.json();C(e=>e.map(e=>e.id===r.id?r:e))},onSelectProject:e=>{let t=h.find(t=>t.id===e);t&&c.push(`/projects/${t.slug}`)}}),(0,t.jsx)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:e})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,t.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,t.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",l,"” does not exist or you do not have access to it."]}),(0,t.jsx)("button",{onClick:()=>c.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}function l({children:e,params:a}){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,t.jsx)(d,{params:a,children:e})})}e.s(["default",()=>l])}]);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,3176,e=>{"use strict";let t=new Set(["done","passed"]),r=new Set(["pending","running","awaiting_human","blocked"]);function a(e){return`node--${e}`}function n(e){return e.replace(/_/gu," ")}function s(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function o(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}function l(e){let a,n=o(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(a=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(a.filter(e=>t.has(e.status)).length/a.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),a=r.find(([,e])=>"failed"===e.status);if(a)return a[0];let n=r.find(([,e])=>"awaiting_human"===e.status);if(n)return n[0];let s=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(s)return s[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:s(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>r.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==n,rootNodeId:n?.id??null}}e.s(["buildGraphSummary",()=>l,"findRootNode",()=>o,"formatNodeStatusLabel",()=>n,"getNodeLabel",()=>s,"toNodeStatusClass",()=>a],3176)},99695,93237,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(74080);let n=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function s({status:e,onStatusChange:s}){let[o,l]=(0,r.useState)(!1),[i,d]=(0,r.useState)(null),u=(0,r.useRef)(null),c=(0,r.useRef)(null),f=(0,r.useCallback)(()=>{if(!u.current)return;let e=u.current.getBoundingClientRect();d({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!o)return;f();let e=e=>{u.current&&!u.current.contains(e.target)&&c.current&&!c.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[o,f]),(0,r.useEffect)(()=>{l(!1)},[e]);let p=n.find(t=>t.value===e)||n[0],m="completed"===e,h="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:u,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),s&&l(!o)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
|
|
2
|
+
hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
|
|
3
|
+
${s?"cursor-pointer":"cursor-default"}
|
|
4
|
+
${h?"animate-pulse":""}
|
|
5
|
+
`,style:{borderColor:p.color,backgroundColor:m?p.color:"transparent"},title:p.label,children:[m&&(0,t.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===e&&(0,t.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:p.color,strokeWidth:"1.5",strokeLinecap:"round"})}),h&&(0,t.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:p.color}})]}),o&&i&&(0,a.createPortal)((0,t.jsx)("div",{ref:c,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:i.top,left:i.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:n.map(r=>{let a=r.value===e;return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors
|
|
6
|
+
hover:bg-[var(--item-hover-bg)]
|
|
7
|
+
${a?"font-semibold bg-[var(--item-hover-bg)]":""}
|
|
8
|
+
`,onClick:e=>{e.stopPropagation(),s?.(r.value),l(!1)},children:[(0,t.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:r.color,backgroundColor:"completed"===r.value?r.color:"transparent"},children:["completed"===r.value&&(0,t.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===r.value&&(0,t.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:r.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===r.value&&(0,t.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:r.color}})]}),(0,t.jsx)("span",{style:{color:a?r.color:void 0},children:r.label}),a&&(0,t.jsx)("svg",{className:"w-3 h-3 ml-auto",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2 6L5 9L10 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.value)})}),document.body)]})}var o=e.i(3176);let l=new Map,i=new Map;async function d(e){let t=l.get(e);if(void 0!==t)return t;let r=i.get(e);if(r)return r;let a=(async()=>{let t=await fetch(`/api/tasks/${e}/graph`,{method:"GET",cache:"no-store"});if(404===t.status)return l.set(e,null),null;let r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||`Failed to fetch graph summary (${t.status})`);let a=r?.graph??null,n=a?(0,o.buildGraphSummary)(a):null;return l.set(e,n),n})();i.set(e,a);try{return await a}finally{i.delete(e)}}function u(e){let t=(0,r.useMemo)(()=>e?l.get(e)??null:null,[e]),[a,n]=(0,r.useState)(t),[s,o]=(0,r.useState)(!!e&&null===t),[i,u]=(0,r.useState)(null),c=(0,r.useCallback)(async()=>{if(!e){n(null),u(null),o(!1);return}o(!0),u(null);try{let t=await d(e);n(t)}catch(e){u(e instanceof Error?e.message:"Failed to fetch graph summary"),n(null)}finally{o(!1)}},[e]);return(0,r.useEffect)(()=>{c()},[c]),{summary:a,isLoading:s,error:i,refresh:c}}function c(e){return l.get(e)??null}async function f(e){await Promise.allSettled(e.map(e=>d(e)))}e.s(["getCachedGraphSummary",()=>c,"prefetchGraphSummaries",()=>f,"useTaskGraphSummary",()=>u],93237);let p={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},m={INTAKE:{icon:"📥",label:"Intake"},PROGRESS:{icon:"🔄",label:"Progress"},DONE:{icon:"✅",label:"Done"}};function h({task:e,onClick:r,compact:a=!1,onStatusChange:n,onApprovalModeChange:o,allTasks:l,relationship:i="none"}){p[e.status||"queued"],e.stage&&m[e.stage];let{summary:d,isLoading:c}=u("draft"!==e.id?e.id:null),f=e.depends_on?.length?e.depends_on.map(e=>{let t=l?.find(t=>t.id===e);return{id:e,title:t?.title||e.slice(0,8),done:t?.status==="completed"}}):null;return f&&f.every(e=>e.done),(0,t.jsxs)("div",{onClick:r,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&r?.(),className:`group relative flex flex-col gap-1.5 sm:gap-2 p-2 sm:p-3 rounded-lg
|
|
9
|
+
bg-[var(--card-bg)] border shadow-sm
|
|
10
|
+
transition-all duration-200 cursor-grab active:cursor-grabbing
|
|
11
|
+
focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2
|
|
12
|
+
${"active"===i?"border-primary ring-2 ring-primary/20 z-40":"blocking"===i?"border-[var(--status-blocked)] bg-rose-50/30 dark:bg-rose-950/20 z-20":"dependent"===i?"border-[var(--status-in-progress)] bg-blue-50/30 dark:bg-blue-950/20 z-20":"dimmed"===i?"opacity-40 grayscale scale-[0.98]":"border-[var(--card-border)] hover:shadow-md hover:border-[var(--primary-muted)] hover:ring-1 hover:ring-[var(--primary-muted)]"}
|
|
13
|
+
${"failed"===e.status&&"none"===i?"border-red-200 bg-red-50/30 dark:bg-red-950/20":""}
|
|
14
|
+
${"completed"===e.status&&"none"===i?"opacity-75 bg-[var(--secondary)]":""}
|
|
15
|
+
`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)("h3",{className:`text-sm font-medium text-[var(--foreground)] leading-snug line-clamp-2 sm:line-clamp-3
|
|
16
|
+
${"completed"===e.status?"text-[var(--muted-foreground)] line-through":""}
|
|
17
|
+
`,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(s,{status:e.status||"queued",onStatusChange:n})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),o&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),o("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),o("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})})]})}e.s(["default",()=>h],99695)},19580,e=>{"use strict";var t=e.i(47167),r=e.i(71645);let a={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:t.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:t.default.env.AGX_BOARD_USER_NAME||"Local Board User"};function n(e={}){let s="1"===t.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,o=e.project,l=e.status,i=e.orphan,d=e.realtime,[u,c]=(0,r.useState)([]),[f,p]=(0,r.useState)(!0),[m,h]=(0,r.useState)(null),[g,x]=(0,r.useState)(null),[b,v]=(0,r.useState)(null),y=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),k=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?y(r.slice(r.indexOf(":")+1).trim()):[]},[y]),w=(0,r.useCallback)((e,t)=>{let r=y(e.depends_on);if(r.length>0)return{...e,depends_on:r};let a="string"==typeof e?.content?k(e.content):[];if(a.length>0)return{...e,depends_on:a};let n=y(t?.depends_on);return n.length>0?{...e,depends_on:n}:e},[k,y]),j=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;o&&e.set("project",o),l&&e.set("status",l),i&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),a=Array.isArray(r.tasks)?r.tasks.map(e=>w(e)):[];c(a),h(null)}catch(e){h(e instanceof Error?e:Error("Unknown error"))}finally{p(!1)}},[o,l,i]);(0,r.useEffect)(()=>{j()},[j]),(0,r.useEffect)(()=>{if(!s||!d)return;let e=setInterval(j,3e3);return()=>clearInterval(e)},[s,d,j]),(0,r.useEffect)(()=>{if(s||!d)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:a.id,email:a.email,user_metadata:{name:a.name,full_name:a.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},t=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?c(t=>{let r=w(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?c(t=>t.map(t=>t.id===e.new.id?w(e.new,t):t)):"DELETE"===e.eventType&&c(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(t)}},[d,s]),(0,r.useEffect)(()=>{if(s||!d)return;let e=setInterval(j,3e3);return()=>clearInterval(e)},[d,s,j]);let S=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:a}=await r.json(),n=w(a);return c(e=>e.some(e=>e.id===n.id)?e:[n,...e]),n},[e.realtime,w]),N=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(()=>null)),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:a}=await r.json();return c(t=>t.map(t=>t.id===e?w({...t,...a},t):t)),w(a)},[e.realtime,w]),C=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");c(t=>t.filter(t=>t.id!==e))},[e.realtime]),E=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return c(t=>t.map(t=>t.id===e.taskId?w({...t,...r},t):t)),w(r)},[e.realtime,w]),T=(0,r.useCallback)(async e=>{x(e.taskId),v(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw v(e),e}finally{x(null)}},[]),A=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(()=>null);if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return w(r?.task)},[w]),L=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await j(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[j]);return{tasks:u,isLoading:f,error:m,cancellingTaskId:g,isCancelling:!!g,cancelError:b,refetch:j,createTask:S,updateTask:N,deleteTask:C,completeTaskStage:E,cancelWorkflow:T,fetchTask:A,assignOrphanTasksToProject:L}}e.s(["useTasks",()=>n],19580)},90787,35912,e=>{"use strict";var t=e.i(18050),r=e.i(76590),a=e.i(7311),n=e.i(99695);function s({task:e,onClick:s,onStatusChange:o,onApprovalModeChange:l,allTasks:i,relationship:d="none"}){let{attributes:u,listeners:c,setNodeRef:f,transform:p,transition:m,isDragging:h}=(0,r.useSortable)({id:e.id}),g={transform:a.CSS.Transform.toString(p),transition:m,opacity:h?.5:1,...h?{zIndex:50,position:"relative"}:{}};return(0,t.jsx)("div",{ref:f,...u,...c,style:g,className:`touch-none ${"none"!==d&&"dimmed"!==d?"z-20 relative":""}`,children:(0,t.jsx)(n.default,{task:e,onClick:s,onStatusChange:o,onApprovalModeChange:l,allTasks:i,relationship:d})})}function o({task:e}){return(0,t.jsx)("div",{className:"w-full sm:w-80 cursor-grabbing shadow-lg border border-[var(--primary)] rotate-1 scale-[1.02] rounded-lg bg-[var(--card-bg)]",children:(0,t.jsx)(n.default,{task:e})})}e.s(["default",()=>s],90787),e.s(["default",()=>o],35912)},40461,e=>{"use strict";var t=e.i(71645);let r=["INTAKE","PROGRESS","DONE"],a={INTAKE:{icon:"📥",label:"Intake",color:"var(--warning)"},PROGRESS:{icon:"🔄",label:"Progress",color:"var(--primary)"},DONE:{icon:"✅",label:"Done",color:"var(--success)"}};function n(){return{workflow:null,stages:(0,t.useMemo)(()=>[...r],[]),stageConfig:a,transitions:[],isLoading:!1,error:null,refetch:()=>{},isValidTransition:(0,t.useCallback)((e,t)=>{if(e===t)return!0;let a=r.indexOf(e),n=r.indexOf(t);return n<a||n===a+1},[])}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","FALLBACK_STAGES",0,r,"FALLBACK_STAGE_CONFIG",0,a,"useWorkflows",()=>n])},36797,67041,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(77183),n=e.i(76590),s=e.i(90787),o=e.i(35912),l=e.i(40461);function i({tasks:e,onTasksChange:s,onSelectTask:i,onTaskUpdate:u,onAddTask:c,stages:f,stageConfig:p,isValidTransition:m,isCreatingTask:h,creatingStage:g,graphColumnFn:x}){let b=f||l.FALLBACK_STAGES,v=p||l.FALLBACK_STAGE_CONFIG,y=m||((e,t)=>{if(e===t)return!0;let r=b.indexOf(e),a=b.indexOf(t);return a<r||a===r+1}),[k,w]=(0,r.useState)(null),[j,S]=(0,r.useState)(e),[N,C]=(0,r.useState)(null),[E,T]=(0,r.useState)([]),A=(0,r.useRef)(null),L=(0,r.useRef)(null),_=(0,r.useCallback)(()=>{if(!N||!A.current)return void T([]);let e=[],t=A.current.getBoundingClientRect(),r=document.getElementById(`task-${N}`);if(!r)return;let a=r.getBoundingClientRect();j.forEach(r=>{if(j.find(e=>e.id===N)?.depends_on?.includes(r.id)){let n=document.getElementById(`task-${r.id}`);if(n){let s=n.getBoundingClientRect();e.push({id:`conn-blocking-${r.id}`,from:{x:s.right-t.left,y:s.top+s.height/2-t.top},to:{x:a.left-t.left,y:a.top+a.height/2-t.top},type:"blocking"})}}if(r.depends_on?.includes(N)){let n=document.getElementById(`task-${r.id}`);if(n){let s=n.getBoundingClientRect();e.push({id:`conn-dependent-${r.id}`,from:{x:a.right-t.left,y:a.top+a.height/2-t.top},to:{x:s.left-t.left,y:s.top+s.height/2-t.top},type:"dependent"})}}}),T(e)},[N,j]);(0,r.useEffect)(()=>(_(),window.addEventListener("resize",_),()=>window.removeEventListener("resize",_)),[_]),(0,r.useEffect)(()=>{k||S(e)},[e]);let O={ideation:"INTAKE",intake:"INTAKE",planning:"PROGRESS",coding:"PROGRESS",execution:"PROGRESS",qa:"PROGRESS",acceptance:"PROGRESS",verification:"PROGRESS",pr:"PROGRESS",smoke_test:"PROGRESS",release:"PROGRESS",done:"DONE"},R=e=>{let t="string"==typeof e.stage?e.stage:"",r="string"==typeof e.status?e.status.trim().toLowerCase():"";if(t&&b.includes(t))return t;if("completed"===r)return"DONE";if("in_progress"===r||"blocked"===r||"failed"===r)return"PROGRESS";let a=O[t.trim().toLowerCase()];return a||(x?x(e):"INTAKE")};(0,r.useMemo)(()=>{let e={},t=new Map(j.map(e=>[e.id,e]));for(let r of j)!function r(a,n){if(void 0!==e[a])return e[a];if(n.has(a))return 0;n.add(a);let s=t.get(a);if(!s?.depends_on?.length)return e[a]=0,0;let o=Math.max(...s.depends_on.map(e=>t.has(e)?r(e,n)+1:0));return e[a]=o,o}(r.id,new Set);return e},[j]);let $=(0,r.useMemo)(()=>{let e={},t=new Map(j.map(e=>[e.id,e]));for(let a of b){let n=j.filter(e=>R(e)===a),s=[],o=new Set;function r(e){if(!o.has(e.id)){for(let n of e.depends_on||[]){let e=t.get(n);e&&R(e)===a&&!o.has(n)&&r(e)}o.add(e.id),s.push(e)}}for(let e of n.filter(e=>!e.depends_on?.some(e=>t.has(e)&&R(t.get(e))===a)).sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);for(let e of n.sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);e[a]=s}return e},[j,b,x]),I=(0,a.useSensors)((0,a.useSensor)(a.PointerSensor,{activationConstraint:{distance:8}}));async function P(t){let{active:r,over:a}=t;if(w(null),!a)return void S(e);let o=r.id,l=a.id,i=j.find(e=>e.id===o);if(!i)return;let d=e.find(e=>e.id===o),c=R(i),f=i.priority||0;if(b.includes(l)){let e=$[c=l];f=e.length>0?Math.max(...e.map(e=>e.priority||0))+1:0}else{let e=j.find(e=>e.id===l);if(e){c=R(e);let t=j.filter(e=>R(e)===c),r=t.findIndex(e=>e.id===o),a=t.findIndex(e=>e.id===l);if(-1!==r&&-1!==a&&r!==a){let e=(0,n.arrayMove)(t,r,a),o=j.map(t=>{let r=e.findIndex(e=>e.id===t.id);return -1!==r?{...t,priority:r}:t});S(o),s?.(o)}f=e.priority||0}}let p=d?R(d):i.stage||"";if(d&&!y(p||"",c))return void S(e);if(u&&(p!==c||(d?.priority??i.priority)!==f))try{await u(o,{stage:c,priority:f}),s?.(j)}catch(t){console.error("Failed to update task:",t),S(e)}}return(0,t.jsxs)(a.DndContext,{sensors:I,collisionDetection:a.closestCorners,onDragStart:function(e){let t=j.find(t=>t.id===e.active.id);t&&w(t)},onDragOver:function(e){let{active:t,over:r}=e;if(!r)return;let a=t.id,n=r.id,s=j.find(e=>e.id===a);if(!s)return;let o=R(s),l=function(e){if(b.includes(e))return e;let t=j.find(t=>t.id===e);return t?R(t):null}(n);if(l&&o!==l){if(!y(o||"",l))return;S(e=>e.map(e=>e.id===a?{...e,stage:l}:e))}},onDragEnd:P,children:[(0,t.jsx)("div",{className:"h-full overflow-hidden relative bg-[var(--background)]",ref:L,onScroll:_,onClick:()=>C(null),children:(0,t.jsxs)("div",{className:"relative min-w-full h-full flex flex-col",ref:A,children:[(0,t.jsxs)("svg",{className:"absolute inset-0 w-full h-full pointer-events-none z-10 hidden xl:block",style:{overflow:"visible"},children:[(0,t.jsx)("style",{children:`
|
|
18
|
+
@keyframes flow {
|
|
19
|
+
from { stroke-dashoffset: 20; }
|
|
20
|
+
to { stroke-dashoffset: 0; }
|
|
21
|
+
}
|
|
22
|
+
.conn-path {
|
|
23
|
+
animation: flow 1s linear infinite;
|
|
24
|
+
}
|
|
25
|
+
`}),E.map(e=>{let r=e.to.x-e.from.x,a=e.from.x+.3*Math.abs(r)*(r>0?1:-1),n=e.to.x-.3*Math.abs(r)*(r>0?1:-1);return(0,t.jsx)("path",{d:`M ${e.from.x} ${e.from.y} C ${a} ${e.from.y}, ${n} ${e.to.y}, ${e.to.x} ${e.to.y}`,stroke:"blocking"===e.type?"var(--status-blocked, #f43f5e)":"var(--status-in-progress, #3b82f6)",strokeWidth:"2",strokeDasharray:"4 4",fill:"none",strokeOpacity:"0.4",className:"conn-path"},e.id)})]}),(0,t.jsx)("div",{className:"flex flex-col xl:flex-row gap-4 xl:gap-6 pb-4 px-3 xl:px-6 flex-1 min-h-0 items-stretch justify-center pt-2",children:b.map((e,r)=>(0,t.jsx)(d,{stage:e,tasks:$[e]||[],allTasks:j,selectedTaskId:N,setSelectedTaskId:C,onSelectTask:i,onTaskUpdate:u,index:r,onAddTask:c,config:v[e]||{icon:"📌",label:e,color:"var(--primary)"},isCreating:!!(h&&g===e)},e))})]})}),(0,t.jsx)(a.DragOverlay,{dropAnimation:{duration:200,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:k?(0,t.jsx)(o.default,{task:k}):null})]})}function d({stage:e,tasks:r,allTasks:n,selectedTaskId:s,setSelectedTaskId:o,onSelectTask:l,onTaskUpdate:i,index:d,onAddTask:c,config:f,isCreating:p=!1}){let{setNodeRef:m,isOver:h}=(0,a.useDroppable)({id:e});return(0,t.jsxs)("div",{ref:m,id:e,"data-testid":e,className:`
|
|
26
|
+
w-full xl:flex-shrink-0 xl:w-80 flex flex-col min-h-0
|
|
27
|
+
bg-[var(--muted)]/40 rounded-2xl border border-[var(--border)]/50 shadow-inner overflow-hidden
|
|
28
|
+
transition-all duration-200
|
|
29
|
+
${h?"ring-2 ring-[var(--primary)] ring-opacity-30 bg-[var(--primary-muted)]/10":""}
|
|
30
|
+
`,style:{animationDelay:`${50*d}ms`},children:[(0,t.jsxs)("div",{className:"p-4 flex items-center justify-between bg-[var(--card-bg)]/30 backdrop-blur-sm border-b border-[var(--border)]/20",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-lg",children:f.icon}),(0,t.jsx)("h3",{className:"font-bold text-[11px] uppercase tracking-widest text-[var(--muted-foreground)]",children:f.label})]}),(0,t.jsx)("span",{className:"text-[10px] font-bold text-[var(--muted-foreground)] bg-[var(--card-bg)] px-2 py-0.5 rounded-full border border-[var(--border)]",children:r.length})]}),(0,t.jsx)(u,{stage:e,tasks:r,allTasks:n,selectedTaskId:s,setSelectedTaskId:o,onSelectTask:l,onTaskUpdate:i,config:f,onAddTask:c,isCreating:p})]})}function u({stage:e,tasks:a,allTasks:o,selectedTaskId:l,setSelectedTaskId:i,onSelectTask:d,onTaskUpdate:u,config:c,onAddTask:f,isCreating:p}){let m=(0,r.useMemo)(()=>a.map(e=>e.id),[a]),[h,g]=(0,r.useState)(!1),[x,b]=(0,r.useState)(""),v=(0,r.useRef)(null),y=()=>{let t=x.trim();t&&f&&f(t,e),g(!1),b("")},k=()=>{g(!1),b("")};return(0,t.jsx)(n.SortableContext,{items:m,strategy:n.verticalListSortingStrategy,children:(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto scrollbar-thin px-3 py-3 space-y-2",children:[f&&!h&&(0,t.jsx)("button",{onClick:e=>{e.stopPropagation(),g(!0),b(""),setTimeout(()=>v.current?.focus(),0)},disabled:p,className:"w-full py-2.5 rounded-xl border border-dashed border-[var(--border)] text-[var(--muted-foreground)] text-[10px] font-bold uppercase tracking-widest hover:bg-[var(--card-bg)] hover:border-indigo-200 hover:text-indigo-400 transition-all flex items-center justify-center gap-2 mb-1",children:p?(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--border)] border-t-indigo-400 rounded-full"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add Task"]})}),h&&(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] border-2 border-indigo-400 rounded-xl p-3 shadow-lg shadow-indigo-50 mb-1",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("input",{ref:v,type:"text",value:x,onChange:e=>b(e.target.value),onKeyDown:e=>{"Enter"===e.key&&y(),"Escape"===e.key&&k()},onBlur:()=>{x.trim()?y():k()},placeholder:"Task title...",className:"w-full text-sm font-medium text-[var(--foreground)] bg-transparent outline-none placeholder:text-[var(--muted-foreground)]"}),(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Press Enter to create · Esc to cancel"})]}),a.map(e=>{let r=(e=>{if(!l)return"none";if(e.id===l)return"active";let t=o.find(e=>e.id===l);return t?.depends_on?.includes(e.id)?"blocking":e.depends_on?.includes(l)?"dependent":"dimmed"})(e);return(0,t.jsx)("div",{id:`task-${e.id}`,onClick:t=>{t.stopPropagation(),i(e.id===l?null:e.id),d?.(e)},children:(0,t.jsx)(s.default,{task:e,onClick:()=>d?.(e),onStatusChange:u?t=>u(e.id,{status:t}):void 0,onApprovalModeChange:u?t=>u(e.id,{approval_mode:t}):void 0,allTasks:o,relationship:r})},e.id)}),0===a.length&&!h&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 opacity-10",children:[(0,t.jsxs)("svg",{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",className:"mb-1",children:[(0,t.jsx)("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),(0,t.jsx)("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),(0,t.jsx)("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]}),(0,t.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest",children:"Available"})]})]})})}l.FALLBACK_STAGES,e.s(["default",()=>i],36797);let c=Number(e.i(47167).default.env.NEXT_PUBLIC_AGX_MAX_WORKERS)||10;function f({tasks:e,processes:a=[],onTaskClick:n,onStop:s,onRetry:o,cancellingTaskId:l}){let i=(0,r.useMemo)(()=>a.filter(e=>"spawning"===e.state||"running"===e.state),[a]),d=(0,r.useMemo)(()=>e.filter(e=>"in_progress"===e.status),[e]),[u,f]=(0,r.useState)({});(0,r.useEffect)(()=>{let e=()=>{let e={};d.forEach(t=>{let r=new Date(t.updated_at).getTime(),a=Math.floor((Date.now()-r)/6e4);a<1?e[t.id]="< 1m":a<60?e[t.id]=`${a}m`:e[t.id]=`${Math.floor(a/60)}h`}),f(e)};e();let t=setInterval(e,6e4);return()=>clearInterval(t)},[d]);let p=d.length/c,m=p>=.8,h=d.length>=c;return 0===d.length?null:(0,t.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,t.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,t.jsxs)("div",{className:"flex items-center gap-4 p-3 sm:p-4 flex-wrap sm:flex-nowrap sm:min-w-max",children:[(0,t.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[d.length," Active",i.length>0?` \xb7 ${i.length} process${i.length>1?"es":""}`:""]})]}),(0,t.jsxs)("div",{className:"hidden sm:flex flex-col justify-center pr-4 border-r border-[var(--border)] gap-1",title:`${d.length} of ${c} max workers in use. Single-writer SQLite architecture — see docs/LIMITS.md`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${h?"text-red-400":m?"text-amber-400":"text-[var(--muted-foreground)]"}`,children:[d.length,"/",c," workers"]}),m&&(0,t.jsxs)("svg",{className:`w-3 h-3 ${h?"text-red-400":"text-amber-400"}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),(0,t.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,t.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})]}),(0,t.jsx)("div",{className:"w-16 h-1.5 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:`h-full rounded-full transition-all ${h?"bg-red-400":m?"bg-amber-400":"bg-[var(--primary)]"}`,style:{width:`${Math.min(100*p,100)}%`}})})]}),(0,t.jsx)("div",{className:"flex items-center gap-3 flex-wrap",children:d.map(e=>{let r=e.id===l;return(0,t.jsxs)("div",{onClick:()=>n?.(e),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-0 w-full sm:min-w-[280px] sm:w-auto",children:[(0,t.jsx)("div",{className:"w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-[10px] sm:text-xs font-bold border border-[var(--border)] shrink-0",children:e.provider?e.provider.substring(0,2).toUpperCase():"AG"}),(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,t.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[e.provider||"Agent"," ",e.model?`• ${e.model}`:""]}),(0,t.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:u[e.id]||"0m"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:e.title||e.content.substring(0,30)}),(0,t.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r||s?.(e.id)},disabled:r,className:`p-1 rounded transition-all ${r?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:r?"Stopping...":"Stop Task",children:r?(0,t.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,t.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),o?.(e.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,t.jsx)("path",{d:"M3 3v5h5"}),(0,t.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,t.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},e.id)})})]})})})}e.s(["default",()=>f],67041)}]);
|