@mndrk/agx 2.0.23 → 2.0.25
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/{_a88b4884._.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/{_a19a362a._.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/{_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 +101 -101
- 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 +83 -111
- 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 +5 -1
- 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]__d2c48923._.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/_7dbc349d._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_8bbe2ac1._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a17cabe8._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cf5fdbfb._.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_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/2a3594d4cb2efe79.css +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/4ee6151684568990.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/5aad4adabb65cd20.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/78f6cef7d2129d30.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7f2513325b592f25.js +0 -18
- package/cloud-runtime/standalone/.next/static/chunks/81704a1c525bf2ee.js +0 -1
- 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/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/{R2CPNTvy5domQF90j_DYV → HOfhTqGoYN6GjsW9CCf3t}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{R2CPNTvy5domQF90j_DYV → HOfhTqGoYN6GjsW9CCf3t}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{R2CPNTvy5domQF90j_DYV → HOfhTqGoYN6GjsW9CCf3t}/_ssgManifest.js +0 -0
|
@@ -27,13 +27,14 @@ import type { Participant, GroupMessage, MessageSearchResponse, MessageSearchRes
|
|
|
27
27
|
import type { TaskDraftMessage } from "@/types/tasks";
|
|
28
28
|
import { buildTasks } from "@/services/agxService";
|
|
29
29
|
import { useProjectsWithAgents, useProjects } from "@/hooks/useProjects";
|
|
30
|
-
import { Search, ChevronLeft, SquareTerminal } from "lucide-react";
|
|
30
|
+
import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun } from "lucide-react";
|
|
31
31
|
import { LogPanel } from "./LogPanel";
|
|
32
32
|
import { StatusIndicator } from "./StatusIndicator";
|
|
33
33
|
|
|
34
34
|
const LEGACY_THREAD_ID = "global";
|
|
35
35
|
const SUMMARY_MARKER = "<!-- thread-summary -->";
|
|
36
36
|
const TASK_DRAFT_MARKER = "<!-- task-draft -->";
|
|
37
|
+
const THEME_STORAGE_KEY = "agx-theme";
|
|
37
38
|
|
|
38
39
|
function stripThoughts(text: string): string {
|
|
39
40
|
return text.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g, "\n").trim();
|
|
@@ -105,6 +106,42 @@ function getTimeAgo(ts: number) {
|
|
|
105
106
|
return new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric" }).format(ts);
|
|
106
107
|
}
|
|
107
108
|
|
|
109
|
+
function getOrderedParticipantIds(
|
|
110
|
+
participants: Participant[],
|
|
111
|
+
projects: ReturnType<typeof useProjectsWithAgents>["projects"],
|
|
112
|
+
activeThreadId: string | null
|
|
113
|
+
): string[] {
|
|
114
|
+
const participantIdSet = new Set(participants.map((participant) => participant.id));
|
|
115
|
+
const threadProject = activeThreadId
|
|
116
|
+
? projects.find((project) => project.thread_ids?.includes(activeThreadId))
|
|
117
|
+
: projects[0];
|
|
118
|
+
const routingOrderIds = threadProject
|
|
119
|
+
? threadProject.agents.map((agent) => agent.agent_id).filter((id) => participantIdSet.has(id))
|
|
120
|
+
: [];
|
|
121
|
+
|
|
122
|
+
if (routingOrderIds.length === 0) {
|
|
123
|
+
return participants.map((participant) => participant.id);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const routedIdSet = new Set(routingOrderIds);
|
|
127
|
+
const fallbackIds = participants
|
|
128
|
+
.map((participant) => participant.id)
|
|
129
|
+
.filter((id) => !routedIdSet.has(id));
|
|
130
|
+
return [...routingOrderIds, ...fallbackIds];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function reconcileActiveParticipantIds(
|
|
134
|
+
orderedParticipantIds: string[],
|
|
135
|
+
storedIds: string[] | null
|
|
136
|
+
): string[] {
|
|
137
|
+
if (storedIds === null) {
|
|
138
|
+
return orderedParticipantIds;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const enabledIds = new Set(storedIds);
|
|
142
|
+
return orderedParticipantIds.filter((id) => enabledIds.has(id));
|
|
143
|
+
}
|
|
144
|
+
|
|
108
145
|
function toMarkdown(
|
|
109
146
|
messages: GroupMessage[],
|
|
110
147
|
participants: Participant[],
|
|
@@ -196,12 +233,25 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
196
233
|
const [participantsLoaded, setParticipantsLoaded] = useState(false);
|
|
197
234
|
const [activeParticipantIds, setActiveParticipantIds] = useState<string[]>([]);
|
|
198
235
|
const [copied, setCopied] = useState(false);
|
|
236
|
+
const [theme, setTheme] = useState<"light" | "dark">(() => {
|
|
237
|
+
if (typeof window === "undefined") return "light";
|
|
238
|
+
const stored = window.localStorage.getItem(THEME_STORAGE_KEY);
|
|
239
|
+
if (stored === "dark" || stored === "light") return stored;
|
|
240
|
+
return document.documentElement.classList.contains("dark") ? "dark" : "light";
|
|
241
|
+
});
|
|
199
242
|
const [workspaceSidebarVisible, setWorkspaceSidebarVisible] = useState(false);
|
|
200
243
|
|
|
201
244
|
// Sync sidebar visibility from localStorage after hydration to avoid SSR mismatch
|
|
202
245
|
useEffect(() => {
|
|
203
246
|
setWorkspaceSidebarVisible(loadWorkspaceSidebarVisible());
|
|
204
247
|
}, []);
|
|
248
|
+
useEffect(() => {
|
|
249
|
+
if (typeof window === "undefined") return;
|
|
250
|
+
const isDark = theme === "dark";
|
|
251
|
+
document.documentElement.classList.toggle("dark", isDark);
|
|
252
|
+
document.documentElement.style.colorScheme = theme;
|
|
253
|
+
window.localStorage.setItem(THEME_STORAGE_KEY, theme);
|
|
254
|
+
}, [theme]);
|
|
205
255
|
const [logsOpen, setLogsOpen] = useState(false);
|
|
206
256
|
const [autoModeThreads, setAutoModeThreads] = useState<Set<string>>(new Set());
|
|
207
257
|
const [pendingAutoMode, setPendingAutoMode] = useState(false);
|
|
@@ -488,34 +538,21 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
488
538
|
if (!participantsLoaded) {
|
|
489
539
|
return;
|
|
490
540
|
}
|
|
491
|
-
|
|
492
|
-
const participantIdSet = new Set(participants.map((p) => p.id));
|
|
493
|
-
|
|
494
|
-
// Use routing order from the thread's project if available, else fall back to participants order
|
|
495
|
-
const threadProject = activeThreadId
|
|
496
|
-
? projects.find((p) => p.thread_ids?.includes(activeThreadId))
|
|
497
|
-
: projects[0];
|
|
498
|
-
const routingOrderIds = threadProject
|
|
499
|
-
? threadProject.agents.map((a) => a.agent_id).filter((id) => participantIdSet.has(id))
|
|
500
|
-
: [];
|
|
501
|
-
// Append any participants not in the project (fallback)
|
|
502
|
-
const defaultIds = routingOrderIds.length > 0
|
|
503
|
-
? [...routingOrderIds, ...participants.filter((p) => !routingOrderIds.includes(p.id)).map((p) => p.id)]
|
|
504
|
-
: participants.map((p) => p.id);
|
|
541
|
+
const orderedParticipantIds = getOrderedParticipantIds(participants, projects, activeThreadId);
|
|
505
542
|
|
|
506
543
|
if (!activeThreadId) {
|
|
507
|
-
setActiveParticipantIds(
|
|
544
|
+
setActiveParticipantIds(orderedParticipantIds);
|
|
508
545
|
return;
|
|
509
546
|
}
|
|
510
547
|
|
|
511
548
|
const storedIds = loadStoredActiveParticipantIds(activeThreadId);
|
|
512
549
|
if (storedIds === null) {
|
|
513
|
-
setActiveParticipantIds(
|
|
550
|
+
setActiveParticipantIds(orderedParticipantIds);
|
|
514
551
|
return;
|
|
515
552
|
}
|
|
516
553
|
|
|
517
|
-
const reconciled =
|
|
518
|
-
if (reconciled.length !== storedIds.length) {
|
|
554
|
+
const reconciled = reconcileActiveParticipantIds(orderedParticipantIds, storedIds);
|
|
555
|
+
if (reconciled.length !== storedIds.length || reconciled.some((id, index) => storedIds[index] !== id)) {
|
|
519
556
|
persistStoredActiveParticipantIds(activeThreadId, reconciled);
|
|
520
557
|
}
|
|
521
558
|
setActiveParticipantIds(reconciled);
|
|
@@ -667,9 +704,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
667
704
|
}, [activeThreadId, messages, updateThreadMessages]);
|
|
668
705
|
|
|
669
706
|
const handleThreadReply = useCallback(
|
|
670
|
-
(rootMessageId: string, content: string, maxRounds: number = 10) => {
|
|
707
|
+
(rootMessageId: string, content: string, maxRounds: number = 10, pinnedParticipantId?: string) => {
|
|
671
708
|
if (!activeThreadId) return;
|
|
672
709
|
if (activeParticipants.length === 0) return;
|
|
710
|
+
const selectedActiveIds = activeParticipants.map((participant) => participant.id);
|
|
711
|
+
const orderedActiveIds = pinnedParticipantId && selectedActiveIds.includes(pinnedParticipantId)
|
|
712
|
+
? [pinnedParticipantId, ...selectedActiveIds.filter((participantId) => participantId !== pinnedParticipantId)]
|
|
713
|
+
: selectedActiveIds;
|
|
673
714
|
void sendMessage(
|
|
674
715
|
content,
|
|
675
716
|
maxRounds,
|
|
@@ -677,7 +718,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
677
718
|
rootMessageId,
|
|
678
719
|
undefined,
|
|
679
720
|
undefined,
|
|
680
|
-
|
|
721
|
+
orderedActiveIds,
|
|
681
722
|
projectSlug
|
|
682
723
|
);
|
|
683
724
|
},
|
|
@@ -882,7 +923,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
882
923
|
}, [activeThreadId, handleSummarize, messages, openThreadId]);
|
|
883
924
|
|
|
884
925
|
const handleSend = useCallback(
|
|
885
|
-
async (
|
|
926
|
+
async (
|
|
927
|
+
prompt: string,
|
|
928
|
+
maxRounds: number,
|
|
929
|
+
attachmentIds?: string[],
|
|
930
|
+
attachmentMetas?: import("@/lib/types").Attachment[],
|
|
931
|
+
pinnedParticipantId?: string
|
|
932
|
+
) => {
|
|
886
933
|
const searchMatch = prompt.match(/^\/search(?:\s+([\s\S]+))?$/i);
|
|
887
934
|
if (searchMatch) {
|
|
888
935
|
handleSearchCommand(searchMatch[1]);
|
|
@@ -920,6 +967,9 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
920
967
|
window.alert("Enable at least one agent in this project.");
|
|
921
968
|
return;
|
|
922
969
|
}
|
|
970
|
+
const orderedActiveIds = pinnedParticipantId && selectedActiveIds.includes(pinnedParticipantId)
|
|
971
|
+
? [pinnedParticipantId, ...selectedActiveIds.filter((participantId) => participantId !== pinnedParticipantId)]
|
|
972
|
+
: selectedActiveIds;
|
|
923
973
|
|
|
924
974
|
if (openThreadId) {
|
|
925
975
|
await sendMessage(
|
|
@@ -929,7 +979,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
929
979
|
openThreadId,
|
|
930
980
|
attachmentIds,
|
|
931
981
|
attachmentMetas,
|
|
932
|
-
|
|
982
|
+
orderedActiveIds,
|
|
933
983
|
projectSlug
|
|
934
984
|
);
|
|
935
985
|
return;
|
|
@@ -944,7 +994,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
944
994
|
null,
|
|
945
995
|
attachmentIds,
|
|
946
996
|
attachmentMetas,
|
|
947
|
-
|
|
997
|
+
orderedActiveIds,
|
|
948
998
|
projectSlug
|
|
949
999
|
);
|
|
950
1000
|
|
|
@@ -1106,7 +1156,9 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1106
1156
|
const renderReplyComposer = useCallback(
|
|
1107
1157
|
(rootMessageId: string) => (
|
|
1108
1158
|
<Composer
|
|
1109
|
-
onSend={(message, maxRounds
|
|
1159
|
+
onSend={(message, maxRounds, _attachmentIds, _attachments, pinnedParticipantId) =>
|
|
1160
|
+
handleThreadReply(rootMessageId, message, maxRounds, pinnedParticipantId)
|
|
1161
|
+
}
|
|
1110
1162
|
onStop={() => handleStopThread(rootMessageId)}
|
|
1111
1163
|
loading={Object.values(streaming).some((s) => s.rootMessageId === rootMessageId)}
|
|
1112
1164
|
participants={activeParticipants}
|
|
@@ -1186,7 +1238,8 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1186
1238
|
const handleToggleParticipantActive = useCallback(
|
|
1187
1239
|
(participantId: string, active: boolean) => {
|
|
1188
1240
|
setActiveParticipantIds((prev) => {
|
|
1189
|
-
const
|
|
1241
|
+
const orderedParticipantIds = getOrderedParticipantIds(participants, projects, activeThreadId);
|
|
1242
|
+
const availableIds = new Set(orderedParticipantIds);
|
|
1190
1243
|
if (!availableIds.has(participantId)) {
|
|
1191
1244
|
return prev;
|
|
1192
1245
|
}
|
|
@@ -1198,9 +1251,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1198
1251
|
nextSet.delete(participantId);
|
|
1199
1252
|
}
|
|
1200
1253
|
|
|
1201
|
-
const next =
|
|
1202
|
-
.map((participant) => participant.id)
|
|
1203
|
-
.filter((id) => nextSet.has(id));
|
|
1254
|
+
const next = orderedParticipantIds.filter((id) => nextSet.has(id));
|
|
1204
1255
|
|
|
1205
1256
|
if (activeThreadId) {
|
|
1206
1257
|
persistStoredActiveParticipantIds(activeThreadId, next);
|
|
@@ -1209,7 +1260,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1209
1260
|
return next;
|
|
1210
1261
|
});
|
|
1211
1262
|
},
|
|
1212
|
-
[activeThreadId, participants]
|
|
1263
|
+
[activeThreadId, participants, projects]
|
|
1213
1264
|
);
|
|
1214
1265
|
|
|
1215
1266
|
const handleSelectProject = useCallback(
|
|
@@ -1227,46 +1278,100 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1227
1278
|
[projects, activeThreadId]
|
|
1228
1279
|
);
|
|
1229
1280
|
|
|
1230
|
-
const
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
{searchLoading ? "…" : searchTotal}
|
|
1252
|
-
</span>
|
|
1281
|
+
const toggleTheme = useCallback(() => {
|
|
1282
|
+
setTheme((current) => (current === "dark" ? "light" : "dark"));
|
|
1283
|
+
}, []);
|
|
1284
|
+
|
|
1285
|
+
const renderThemeToggleButton = () => (
|
|
1286
|
+
<button
|
|
1287
|
+
type="button"
|
|
1288
|
+
onClick={toggleTheme}
|
|
1289
|
+
aria-label={theme === "dark" ? "Switch to light theme" : "Switch to dark theme"}
|
|
1290
|
+
title={theme === "dark" ? "Switch to light theme" : "Switch to dark theme"}
|
|
1291
|
+
className="inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
|
|
1292
|
+
>
|
|
1293
|
+
{theme === "dark" ? <Sun className="h-4 w-4" strokeWidth={1.75} /> : <Moon className="h-4 w-4" strokeWidth={1.75} />}
|
|
1294
|
+
</button>
|
|
1295
|
+
);
|
|
1296
|
+
|
|
1297
|
+
const mainToolbar = (
|
|
1298
|
+
<div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
|
|
1299
|
+
<div className="mx-auto flex max-w-5xl items-center gap-3">
|
|
1300
|
+
<div className="flex min-w-0 items-center flex-shrink-0">
|
|
1301
|
+
{!workspaceSidebarVisible && (
|
|
1253
1302
|
<button
|
|
1254
1303
|
type="button"
|
|
1255
|
-
onClick={
|
|
1256
|
-
className="
|
|
1304
|
+
onClick={toggleWorkspaceSidebar}
|
|
1305
|
+
className="inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]"
|
|
1306
|
+
title="Show sidebar"
|
|
1307
|
+
aria-label="Show sidebar"
|
|
1257
1308
|
>
|
|
1258
|
-
|
|
1309
|
+
<PanelLeftOpen className="h-4 w-4" strokeWidth={1.75} />
|
|
1259
1310
|
</button>
|
|
1311
|
+
)}
|
|
1312
|
+
</div>
|
|
1313
|
+
<div className="flex flex-1 justify-center min-w-0">
|
|
1314
|
+
<div className="flex w-full max-w-2xl items-center gap-2">
|
|
1315
|
+
<div className="relative group/search min-w-0 flex-1">
|
|
1316
|
+
<Search
|
|
1317
|
+
className="pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]"
|
|
1318
|
+
strokeWidth={2}
|
|
1319
|
+
/>
|
|
1320
|
+
<input
|
|
1321
|
+
ref={searchInputRef}
|
|
1322
|
+
type="text"
|
|
1323
|
+
value={searchQuery}
|
|
1324
|
+
onChange={(e) => setSearchQuery(e.target.value)}
|
|
1325
|
+
onKeyDown={(e) => {
|
|
1326
|
+
if (e.key === "Escape") clearSearch();
|
|
1327
|
+
}}
|
|
1328
|
+
placeholder="Search messages…"
|
|
1329
|
+
className="h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"
|
|
1330
|
+
/>
|
|
1331
|
+
{normalizedSearchQuery ? (
|
|
1332
|
+
<div className="absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2">
|
|
1333
|
+
<span className="text-[11px] font-bold text-[var(--muted-foreground)]">
|
|
1334
|
+
{searchLoading ? "…" : searchTotal}
|
|
1335
|
+
</span>
|
|
1336
|
+
<button
|
|
1337
|
+
type="button"
|
|
1338
|
+
onClick={clearSearch}
|
|
1339
|
+
className="text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]"
|
|
1340
|
+
>
|
|
1341
|
+
✕
|
|
1342
|
+
</button>
|
|
1343
|
+
</div>
|
|
1344
|
+
) : (
|
|
1345
|
+
<kbd className="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]">⌘K</kbd>
|
|
1346
|
+
)}
|
|
1347
|
+
</div>
|
|
1348
|
+
<div className="flex items-center gap-2 flex-shrink-0">
|
|
1349
|
+
{renderThemeToggleButton()}
|
|
1350
|
+
<StatusIndicator />
|
|
1351
|
+
{openThreadId && (
|
|
1352
|
+
<button
|
|
1353
|
+
type="button"
|
|
1354
|
+
onClick={() => setLogsOpen(!logsOpen)}
|
|
1355
|
+
aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1356
|
+
aria-pressed={logsOpen}
|
|
1357
|
+
title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1358
|
+
className={`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${logsOpen
|
|
1359
|
+
? "border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]"
|
|
1360
|
+
: "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
|
|
1361
|
+
}`}
|
|
1362
|
+
>
|
|
1363
|
+
<SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
|
|
1364
|
+
</button>
|
|
1365
|
+
)}
|
|
1366
|
+
</div>
|
|
1260
1367
|
</div>
|
|
1261
|
-
|
|
1262
|
-
<kbd className="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 px-1.5 py-0.5 text-[10px] font-sans font-bold text-slate-400 bg-slate-100 border border-slate-200 rounded-md">⌘K</kbd>
|
|
1263
|
-
)}
|
|
1368
|
+
</div>
|
|
1264
1369
|
</div>
|
|
1265
1370
|
</div>
|
|
1266
1371
|
);
|
|
1267
1372
|
|
|
1268
1373
|
return (
|
|
1269
|
-
<div className="flex h-screen bg-
|
|
1374
|
+
<div className="flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]">
|
|
1270
1375
|
<WorkspaceSidebar
|
|
1271
1376
|
threads={threads}
|
|
1272
1377
|
participants={participants}
|
|
@@ -1295,73 +1400,65 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
|
|
|
1295
1400
|
onSelectProject={handleSelectProject}
|
|
1296
1401
|
/>
|
|
1297
1402
|
<div className="flex flex-col flex-1 min-w-0 relative">
|
|
1298
|
-
{/* Top-right controls */}
|
|
1299
|
-
<div className="absolute top-4 right-4 z-30 flex items-center gap-2">
|
|
1300
|
-
<StatusIndicator />
|
|
1301
|
-
{openThreadId && (
|
|
1302
|
-
<button
|
|
1303
|
-
type="button"
|
|
1304
|
-
onClick={() => setLogsOpen(!logsOpen)}
|
|
1305
|
-
aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1306
|
-
aria-pressed={logsOpen}
|
|
1307
|
-
title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1308
|
-
className={`inline-flex h-8 w-8 items-center justify-center rounded-md border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400 ${logsOpen
|
|
1309
|
-
? "border-slate-300 bg-slate-50 text-slate-800"
|
|
1310
|
-
: "border-slate-200 bg-white text-slate-500 hover:bg-slate-50 hover:text-slate-800"
|
|
1311
|
-
}`}
|
|
1312
|
-
>
|
|
1313
|
-
<SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
|
|
1314
|
-
</button>
|
|
1315
|
-
)}
|
|
1316
|
-
</div>
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
{openThreadId && (
|
|
1321
|
-
<header className="border-b border-slate-200 px-6 py-4 flex items-center h-16 pr-14">
|
|
1322
|
-
<div className="flex items-center gap-3 min-w-0">
|
|
1323
|
-
<button
|
|
1324
|
-
onClick={() => setOpenThreadId(null)}
|
|
1325
|
-
className="p-1.5 text-slate-400 hover:text-indigo-600 hover:bg-zinc-100 rounded-lg transition-all active:scale-95 flex-shrink-0"
|
|
1326
|
-
title="Back to main feed"
|
|
1327
|
-
>
|
|
1328
|
-
<ChevronLeft size={22} strokeWidth={2.5} />
|
|
1329
|
-
</button>
|
|
1330
|
-
<div className="flex flex-col min-w-0">
|
|
1331
|
-
<div className="flex items-center gap-3">
|
|
1332
|
-
<h2 className="text-[15px] font-bold text-slate-900 tracking-tight leading-tight truncate max-w-[240px]">
|
|
1333
|
-
{activeThreadTitle}
|
|
1334
|
-
</h2>
|
|
1335
|
-
<div className="flex -space-x-1.5 ml-1 flex-shrink-0">
|
|
1336
|
-
{activeThreadParticipants.map((p) => (
|
|
1337
|
-
<img
|
|
1338
|
-
key={p.id}
|
|
1339
|
-
src={`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${p.id}&backgroundColor=${p.color ? p.color.replace('#', '') : 'e2e8f0'}`}
|
|
1340
|
-
alt={p.name}
|
|
1341
|
-
className="w-5 h-5 rounded-full border-2 border-white shadow-sm ring-1 ring-slate-200 object-cover"
|
|
1342
|
-
title={p.name}
|
|
1343
|
-
/>
|
|
1344
|
-
))}
|
|
1345
|
-
</div>
|
|
1346
|
-
</div>
|
|
1347
|
-
<div className="text-[11px] text-slate-500 font-medium flex items-center gap-1.5">
|
|
1348
|
-
<span className="opacity-80">{activeThreadParticipants.length} agents</span>
|
|
1349
|
-
<span className="w-0.5 h-0.5 rounded-full bg-slate-300" />
|
|
1350
|
-
<span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
|
|
1351
|
-
</div>
|
|
1352
|
-
</div>
|
|
1353
|
-
</div>
|
|
1354
|
-
</header>
|
|
1355
|
-
)}
|
|
1356
1403
|
{
|
|
1357
1404
|
isRestoringActiveThread ? (
|
|
1358
|
-
<div className="flex-1 flex items-center justify-center px-4 text-sm text-
|
|
1405
|
+
<div className="flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]">
|
|
1359
1406
|
Loading your last project…
|
|
1360
1407
|
</div>
|
|
1361
1408
|
) : (
|
|
1362
|
-
<div className="flex flex-1 min-h-0 bg-
|
|
1409
|
+
<div className="flex flex-1 min-h-0 bg-transparent relative">
|
|
1363
1410
|
<div className="flex flex-col flex-1 min-w-0">
|
|
1364
|
-
{
|
|
1411
|
+
{openThreadId ? (
|
|
1412
|
+
<div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
|
|
1413
|
+
<div className="mx-auto flex max-w-5xl items-center gap-3 min-w-0">
|
|
1414
|
+
<button
|
|
1415
|
+
onClick={() => setOpenThreadId(null)}
|
|
1416
|
+
className="p-1.5 text-[var(--app-shell-muted)] hover:text-indigo-500 hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0"
|
|
1417
|
+
title="Back to main feed"
|
|
1418
|
+
>
|
|
1419
|
+
<ChevronLeft size={20} strokeWidth={2.25} />
|
|
1420
|
+
</button>
|
|
1421
|
+
<div className="flex-1 flex flex-col min-w-0">
|
|
1422
|
+
<h2 className="text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0">
|
|
1423
|
+
{activeThreadTitle}
|
|
1424
|
+
</h2>
|
|
1425
|
+
<div className="flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]">
|
|
1426
|
+
<span className="opacity-80">{activeThreadParticipants.length} agents</span>
|
|
1427
|
+
<span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
|
|
1428
|
+
<span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
|
|
1429
|
+
</div>
|
|
1430
|
+
</div>
|
|
1431
|
+
<div className="flex -space-x-1.5 flex-shrink-0">
|
|
1432
|
+
{activeThreadParticipants.map((p) => (
|
|
1433
|
+
<img
|
|
1434
|
+
key={p.id}
|
|
1435
|
+
src={`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${p.id}&backgroundColor=${p.color ? p.color.replace('#', '') : 'e2e8f0'}`}
|
|
1436
|
+
alt={p.name}
|
|
1437
|
+
className="h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]"
|
|
1438
|
+
title={p.name}
|
|
1439
|
+
/>
|
|
1440
|
+
))}
|
|
1441
|
+
</div>
|
|
1442
|
+
<div className="ml-auto flex items-center gap-2">
|
|
1443
|
+
{renderThemeToggleButton()}
|
|
1444
|
+
<StatusIndicator />
|
|
1445
|
+
<button
|
|
1446
|
+
type="button"
|
|
1447
|
+
onClick={() => setLogsOpen(!logsOpen)}
|
|
1448
|
+
aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1449
|
+
aria-pressed={logsOpen}
|
|
1450
|
+
title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
|
|
1451
|
+
className={`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${logsOpen
|
|
1452
|
+
? "border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]"
|
|
1453
|
+
: "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
|
|
1454
|
+
}`}
|
|
1455
|
+
>
|
|
1456
|
+
<SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
|
|
1457
|
+
</button>
|
|
1458
|
+
</div>
|
|
1459
|
+
</div>
|
|
1460
|
+
</div>
|
|
1461
|
+
) : mainToolbar}
|
|
1365
1462
|
|
|
1366
1463
|
{searchActive ? (
|
|
1367
1464
|
<SearchResults
|
|
@@ -48,9 +48,9 @@ export function ChatPreview() {
|
|
|
48
48
|
className="flex gap-3 animate-in fade-in slide-in-from-bottom-2 duration-300"
|
|
49
49
|
style={{ animationDelay: `${i * 50}ms` }}
|
|
50
50
|
>
|
|
51
|
-
<div className="w-8 h-8 rounded-full overflow-hidden border border-
|
|
51
|
+
<div className="w-8 h-8 rounded-full overflow-hidden border border-[var(--border)] shadow-sm shrink-0 mt-0.5 flex items-center justify-center bg-[var(--muted)]">
|
|
52
52
|
{isUser ? (
|
|
53
|
-
<User className="w-4 h-4 text-
|
|
53
|
+
<User className="w-4 h-4 text-[var(--muted-foreground)]" />
|
|
54
54
|
) : p ? (
|
|
55
55
|
<Link href={`/agents/${p.id}`} className="w-full h-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow">
|
|
56
56
|
<img
|
|
@@ -80,12 +80,12 @@ export function ChatPreview() {
|
|
|
80
80
|
</span>
|
|
81
81
|
)}
|
|
82
82
|
{!isUser && p?.model && (
|
|
83
|
-
<span className="text-[10px] text-
|
|
83
|
+
<span className="text-[10px] text-[var(--muted-foreground)] font-medium">
|
|
84
84
|
{p.model}
|
|
85
85
|
</span>
|
|
86
86
|
)}
|
|
87
87
|
</div>
|
|
88
|
-
<div className="text-[14px] text-
|
|
88
|
+
<div className="text-[14px] text-[var(--foreground)] leading-relaxed mt-0.5">
|
|
89
89
|
<Markdown content={msg.content} isUser={isUser} />
|
|
90
90
|
</div>
|
|
91
91
|
</div>
|
|
@@ -35,7 +35,7 @@ export function CommandPopover({
|
|
|
35
35
|
role="listbox"
|
|
36
36
|
id={listboxId}
|
|
37
37
|
aria-label="Command suggestions"
|
|
38
|
-
className="max-h-56 overflow-y-auto rounded-xl border border-
|
|
38
|
+
className="max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg"
|
|
39
39
|
>
|
|
40
40
|
{commands.map((command, index) => {
|
|
41
41
|
const isActive = index === activeIndex;
|
|
@@ -50,7 +50,7 @@ export function CommandPopover({
|
|
|
50
50
|
optionRefs.current[index] = el;
|
|
51
51
|
}}
|
|
52
52
|
className={`w-full px-3 py-2 text-left text-sm transition-colors ${
|
|
53
|
-
isActive ? "bg-
|
|
53
|
+
isActive ? "bg-[var(--primary-muted)] text-[var(--foreground)]" : "text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"
|
|
54
54
|
}`}
|
|
55
55
|
onMouseDown={(e) => e.preventDefault()}
|
|
56
56
|
onClick={() => onSelect(command)}
|
|
@@ -58,9 +58,9 @@ export function CommandPopover({
|
|
|
58
58
|
<span className="inline-flex items-center gap-2">
|
|
59
59
|
<span className="font-medium font-mono">{command.name}</span>
|
|
60
60
|
{command.aliases && command.aliases.length > 0 && (
|
|
61
|
-
<span className="text-xs text-
|
|
61
|
+
<span className="text-xs text-[var(--app-shell-soft-text)] font-mono">({command.aliases.join(", ")})</span>
|
|
62
62
|
)}
|
|
63
|
-
<span className="text-xs text-
|
|
63
|
+
<span className="text-xs text-[var(--muted-foreground)]">{command.description}</span>
|
|
64
64
|
</span>
|
|
65
65
|
</button>
|
|
66
66
|
);
|