@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
|
@@ -46,7 +46,13 @@ const THREAD_MENTION_LISTBOX_ID = "composer-thread-mention-listbox";
|
|
|
46
46
|
const THREAD_MENTION_OPTION_ID_PREFIX = "composer-thread-mention-option";
|
|
47
47
|
|
|
48
48
|
interface Props {
|
|
49
|
-
onSend: (
|
|
49
|
+
onSend: (
|
|
50
|
+
message: string,
|
|
51
|
+
maxRounds: number,
|
|
52
|
+
attachmentIds?: string[],
|
|
53
|
+
attachments?: Attachment[],
|
|
54
|
+
pinnedParticipantId?: string
|
|
55
|
+
) => void;
|
|
50
56
|
onStop: () => void;
|
|
51
57
|
loading: boolean;
|
|
52
58
|
/** Whether autonomous mode is currently active */
|
|
@@ -112,6 +118,7 @@ export function Composer({
|
|
|
112
118
|
onAutoModeChange,
|
|
113
119
|
}: Props) {
|
|
114
120
|
const [maxRounds, setMaxRounds] = useState(10);
|
|
121
|
+
const [pinnedParticipantId, setPinnedParticipantId] = useState<string | null>(null);
|
|
115
122
|
const fileInputRef = useRef<HTMLInputElement>(null);
|
|
116
123
|
const isComposingRef = useRef(false);
|
|
117
124
|
|
|
@@ -128,6 +135,12 @@ export function Composer({
|
|
|
128
135
|
const attachments = useAttachments();
|
|
129
136
|
const fileAttachments = useComposerAttachments();
|
|
130
137
|
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
if (pinnedParticipantId && !participants.some((participant) => participant.id === pinnedParticipantId)) {
|
|
140
|
+
setPinnedParticipantId(null);
|
|
141
|
+
}
|
|
142
|
+
}, [participants, pinnedParticipantId]);
|
|
143
|
+
|
|
131
144
|
// ─── Tiptap editor ─────────────────────────────────────────────────────────
|
|
132
145
|
|
|
133
146
|
const editor = useEditor({
|
|
@@ -469,9 +482,10 @@ export function Composer({
|
|
|
469
482
|
|
|
470
483
|
const ids = attachments.attachmentIds.length > 0 ? attachments.attachmentIds : undefined;
|
|
471
484
|
const metas = ids ? attachments.getAttachmentMetas() : undefined;
|
|
472
|
-
onSend(messageText, maxRounds, ids, metas);
|
|
485
|
+
onSend(messageText, maxRounds, ids, metas, pinnedParticipantId ?? undefined);
|
|
473
486
|
|
|
474
487
|
editor.commands.clearContent();
|
|
488
|
+
setPinnedParticipantId(null);
|
|
475
489
|
setThreadRefs([]);
|
|
476
490
|
attachments.clear();
|
|
477
491
|
fileAttachments.clearFilePaths();
|
|
@@ -495,20 +509,22 @@ export function Composer({
|
|
|
495
509
|
|
|
496
510
|
// Compute whether editor has content for disabled state
|
|
497
511
|
const editorIsEmpty = !editor || editor.isEmpty;
|
|
512
|
+
const turnsMeterWidth = `${Math.max(12, Math.min(100, Math.round((maxRounds / 50) * 100)))}%`;
|
|
513
|
+
const pinnedParticipant = participants.find((participant) => participant.id === pinnedParticipantId) ?? null;
|
|
498
514
|
|
|
499
515
|
return (
|
|
500
516
|
<div className="pb-6">
|
|
501
517
|
<div className="max-w-3xl mx-auto">
|
|
502
518
|
<ComposerDropZone onDrop={attachments.stageFiles}>
|
|
503
|
-
<div className={`bg-
|
|
519
|
+
<div className={`bg-[var(--app-shell-elevated)] rounded-2xl border border-[var(--app-shell-border)] shadow-[0_8px_30px_rgb(0,0,0,0.12)] dark:shadow-[0_8px_30px_rgb(0,0,0,0.5)] transition-all duration-300`}>
|
|
504
520
|
{/* Ship Mode header */}
|
|
505
521
|
{onAutoModeChange && (
|
|
506
|
-
<div className={`relative overflow-hidden border-b transition-all duration-500 ${autoMode ? "border-orange-200/50" : "border-
|
|
522
|
+
<div className={`relative overflow-hidden border-b transition-all duration-500 ${autoMode ? "border-orange-200/50 dark:border-orange-500/30" : "border-[var(--app-shell-border)]"}`}>
|
|
507
523
|
{/* Animated gradient background when active */}
|
|
508
524
|
<div
|
|
509
525
|
className={`absolute inset-0 transition-opacity duration-700 ${autoMode ? "opacity-100" : "opacity-0"}`}
|
|
510
526
|
style={{
|
|
511
|
-
background: "linear-gradient(120deg,
|
|
527
|
+
background: "linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",
|
|
512
528
|
backgroundSize: "200% 100%",
|
|
513
529
|
animation: autoMode ? "shipBgSweep 4s ease-in-out infinite" : "none",
|
|
514
530
|
}}
|
|
@@ -524,7 +540,8 @@ export function Composer({
|
|
|
524
540
|
top: `${12 + i * 10}%`,
|
|
525
541
|
right: "-10%",
|
|
526
542
|
width: `${20 + (i % 3) * 15}%`,
|
|
527
|
-
background: `linear-gradient(to left, transparent,
|
|
543
|
+
background: `linear-gradient(to left, transparent, var(--warning))`,
|
|
544
|
+
opacity: 0.3 + (i % 3) * 0.1,
|
|
528
545
|
animation: `shipSpeedLine ${0.8 + (i % 4) * 0.3}s ${i * 0.1}s ease-in-out infinite`,
|
|
529
546
|
}}
|
|
530
547
|
/>
|
|
@@ -535,31 +552,31 @@ export function Composer({
|
|
|
535
552
|
<div className="flex items-center justify-between">
|
|
536
553
|
<div className="flex items-center gap-2">
|
|
537
554
|
<div
|
|
538
|
-
className={`p-1 rounded-md transition-all duration-300 ${autoMode ? "bg-
|
|
555
|
+
className={`p-1 rounded-md transition-all duration-300 ${autoMode ? "bg-[var(--warning)] text-[var(--warning-muted)] shadow-md" : "bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`}
|
|
539
556
|
style={autoMode ? { animation: "shipPulse 2s ease-in-out infinite" } : {}}
|
|
540
557
|
>
|
|
541
558
|
<Rocket size={14} />
|
|
542
559
|
</div>
|
|
543
|
-
<span className={`text-sm font-semibold transition-colors duration-300 ${autoMode ? "text-
|
|
544
|
-
<span className={`text-xs transition-colors duration-300 ${autoMode ? "text-
|
|
545
|
-
<span className={`text-xs font-medium transition-colors duration-300 ${autoMode ? "text-
|
|
560
|
+
<span className={`text-sm font-semibold transition-colors duration-300 ${autoMode ? "text-[var(--warning)]" : "text-[var(--foreground)]"}`}>Ship Mode</span>
|
|
561
|
+
<span className={`text-xs transition-colors duration-300 ${autoMode ? "text-[var(--warning)] opacity-60" : "text-[var(--app-shell-muted)] opacity-60"}`}>|</span>
|
|
562
|
+
<span className={`text-xs font-medium transition-colors duration-300 ${autoMode ? "text-[var(--warning)] opacity-80" : "text-[var(--app-shell-muted)]"}`}>
|
|
546
563
|
{autoMode
|
|
547
|
-
? "
|
|
548
|
-
: "
|
|
564
|
+
? "Continuous execution is active for this thread"
|
|
565
|
+
: "Continuous execution stays off until you enable it"}
|
|
549
566
|
</span>
|
|
550
567
|
</div>
|
|
551
568
|
<button
|
|
552
569
|
type="button"
|
|
553
570
|
onClick={() => onAutoModeChange(!autoMode)}
|
|
554
|
-
className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-
|
|
571
|
+
className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${autoMode ? "bg-[var(--warning)]" : "bg-[var(--app-shell-border-strong)]"}`}
|
|
555
572
|
>
|
|
556
|
-
<span className={`inline-block h-4 w-4 transform rounded-full bg-
|
|
573
|
+
<span className={`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${autoMode ? "translate-x-6" : "translate-x-1"}`} />
|
|
557
574
|
</button>
|
|
558
575
|
</div>
|
|
559
576
|
</div>
|
|
560
577
|
</div>
|
|
561
578
|
)}
|
|
562
|
-
<div className="p-1.5 focus-within:ring-4 focus-within:ring-
|
|
579
|
+
<div className="p-1.5 focus-within:ring-4 focus-within:ring-[var(--app-shell-border-strong)] transition-all">
|
|
563
580
|
|
|
564
581
|
{attachments.staged.length > 0 && (
|
|
565
582
|
<div className="mx-2 mt-2 mb-1">
|
|
@@ -575,7 +592,7 @@ export function Composer({
|
|
|
575
592
|
<button
|
|
576
593
|
type="button"
|
|
577
594
|
onClick={handleAttachClick}
|
|
578
|
-
className="p-2.5 text-
|
|
595
|
+
className="p-2.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)] rounded-xl transition-all shrink-0"
|
|
579
596
|
aria-label="Attach file"
|
|
580
597
|
title="Attach file"
|
|
581
598
|
>
|
|
@@ -643,7 +660,7 @@ export function Composer({
|
|
|
643
660
|
<button
|
|
644
661
|
type="button"
|
|
645
662
|
onClick={onStop}
|
|
646
|
-
className="h-10 px-4 bg-
|
|
663
|
+
className="h-10 px-4 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] rounded-xl font-bold text-sm hover:opacity-90 shadow-sm flex items-center gap-2 transition-all shrink-0"
|
|
647
664
|
>
|
|
648
665
|
Stop
|
|
649
666
|
</button>
|
|
@@ -652,7 +669,7 @@ export function Composer({
|
|
|
652
669
|
type="button"
|
|
653
670
|
onClick={handleSubmit}
|
|
654
671
|
disabled={(editorIsEmpty && !attachments.hasUploaded && !fileAttachments.hasFilePaths) || uploadsInProgress}
|
|
655
|
-
className="h-10 px-4 bg-
|
|
672
|
+
className="h-10 px-4 bg-[var(--primary)] text-[var(--primary-foreground)] rounded-xl font-bold text-sm hover:bg-[var(--primary-hover)] disabled:opacity-50 disabled:cursor-not-allowed shadow-md flex items-center gap-2 transition-all shrink-0"
|
|
656
673
|
>
|
|
657
674
|
Send
|
|
658
675
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>
|
|
@@ -661,22 +678,22 @@ export function Composer({
|
|
|
661
678
|
</div>
|
|
662
679
|
|
|
663
680
|
{/* Meta Footer */}
|
|
664
|
-
<div className="px-4 pb-2.5 pt-1 flex items-center justify-between border-t border-
|
|
681
|
+
<div className="px-4 pb-2.5 pt-1 flex items-center justify-between border-t border-[var(--app-shell-border)] mt-1">
|
|
665
682
|
<div className="flex items-center gap-4">
|
|
666
683
|
{/* Turn Limit — progress bar + selector */}
|
|
667
684
|
<div className="flex items-center gap-2">
|
|
668
|
-
<span className="text-[10px] font-bold text-
|
|
685
|
+
<span className="text-[10px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider">Turns</span>
|
|
669
686
|
<div className="flex items-center gap-1.5">
|
|
670
|
-
|
|
687
|
+
<div className="h-1.5 w-14 bg-[var(--app-shell-border)] rounded-full overflow-hidden">
|
|
671
688
|
<div
|
|
672
|
-
className="h-full rounded-full transition-all duration-500 bg-
|
|
673
|
-
style={{ width:
|
|
689
|
+
className="h-full rounded-full transition-all duration-500 bg-[var(--primary)]"
|
|
690
|
+
style={{ width: turnsMeterWidth }}
|
|
674
691
|
/>
|
|
675
692
|
</div>
|
|
676
693
|
<select
|
|
677
694
|
value={maxRounds}
|
|
678
695
|
onChange={(e) => setMaxRounds(Number(e.target.value))}
|
|
679
|
-
className="bg-transparent border-none outline-none text-xs font-semibold text-
|
|
696
|
+
className="bg-transparent border-none outline-none text-xs font-semibold text-[var(--app-shell-muted)] cursor-pointer appearance-none hover:text-[var(--primary)] transition-colors"
|
|
680
697
|
>
|
|
681
698
|
{[1, 3, 5, 10, 20, 50].map((n) => (
|
|
682
699
|
<option key={n} value={n}>{n}</option>
|
|
@@ -685,17 +702,31 @@ export function Composer({
|
|
|
685
702
|
</div>
|
|
686
703
|
</div>
|
|
687
704
|
|
|
688
|
-
<div className="w-px h-4 bg-
|
|
705
|
+
<div className="w-px h-4 bg-[var(--app-shell-border)]" />
|
|
689
706
|
|
|
690
707
|
{/* Agent Status — overlapping avatars with activity dots */}
|
|
691
708
|
<div className="flex items-center -space-x-1.5">
|
|
692
709
|
{participants.length === 0 ? (
|
|
693
|
-
<span className="text-[10px] font-medium text-
|
|
710
|
+
<span className="text-[10px] font-medium text-[var(--app-shell-muted)]">No agents</span>
|
|
694
711
|
) : (
|
|
695
712
|
participants.map(p => (
|
|
696
713
|
<div
|
|
697
714
|
key={p.id}
|
|
698
|
-
|
|
715
|
+
role="button"
|
|
716
|
+
tabIndex={0}
|
|
717
|
+
aria-pressed={pinnedParticipantId === p.id}
|
|
718
|
+
onClick={() => setPinnedParticipantId((current) => current === p.id ? null : p.id)}
|
|
719
|
+
onKeyDown={(event) => {
|
|
720
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
721
|
+
event.preventDefault();
|
|
722
|
+
setPinnedParticipantId((current) => current === p.id ? null : p.id);
|
|
723
|
+
}
|
|
724
|
+
}}
|
|
725
|
+
className={`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${
|
|
726
|
+
pinnedParticipantId === p.id
|
|
727
|
+
? "-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]"
|
|
728
|
+
: "hover:-translate-y-0.5"
|
|
729
|
+
}`}
|
|
699
730
|
title={p.name}
|
|
700
731
|
>
|
|
701
732
|
<img
|
|
@@ -704,7 +735,7 @@ export function Composer({
|
|
|
704
735
|
className="w-full h-full rounded-full object-cover"
|
|
705
736
|
/>
|
|
706
737
|
{loading && (
|
|
707
|
-
<span className="absolute -bottom-0.5 -right-0.5 w-2 h-2 bg-emerald-400 border border-
|
|
738
|
+
<span className="absolute -bottom-0.5 -right-0.5 w-2 h-2 bg-emerald-400 border border-[var(--app-shell-elevated)] rounded-full" />
|
|
708
739
|
)}
|
|
709
740
|
</div>
|
|
710
741
|
))
|
|
@@ -713,7 +744,12 @@ export function Composer({
|
|
|
713
744
|
</div>
|
|
714
745
|
|
|
715
746
|
{/* Status indicator */}
|
|
716
|
-
<div className="flex items-center gap-
|
|
747
|
+
<div className="flex items-center gap-2 text-[var(--app-shell-muted)]">
|
|
748
|
+
{pinnedParticipant && (
|
|
749
|
+
<span className="text-[10px] font-medium text-[var(--app-shell-muted)]">
|
|
750
|
+
Pinned: <span className="text-[var(--foreground)]">{pinnedParticipant.name}</span>
|
|
751
|
+
</span>
|
|
752
|
+
)}
|
|
717
753
|
<span className="text-[10px] font-medium uppercase tracking-tight">
|
|
718
754
|
{loading ? "Working" : "Ready"}
|
|
719
755
|
</span>
|
|
@@ -67,7 +67,7 @@ export function FileMentionPopover({
|
|
|
67
67
|
id={listboxId}
|
|
68
68
|
aria-label="File suggestions"
|
|
69
69
|
aria-activedescendant={activeOptionId}
|
|
70
|
-
className="max-h-64 overflow-y-auto rounded-xl border border-
|
|
70
|
+
className="max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg"
|
|
71
71
|
>
|
|
72
72
|
{/* Error state */}
|
|
73
73
|
{error && !isLoading && (
|
|
@@ -80,7 +80,7 @@ export function FileMentionPopover({
|
|
|
80
80
|
{/* Loading state — no stale results yet */}
|
|
81
81
|
{!error && isLoading && suggestions.length === 0 && (
|
|
82
82
|
<div
|
|
83
|
-
className="flex items-center gap-2 px-3 py-3 text-sm text-
|
|
83
|
+
className="flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]"
|
|
84
84
|
aria-live="polite"
|
|
85
85
|
aria-label="Searching for files"
|
|
86
86
|
>
|
|
@@ -91,14 +91,14 @@ export function FileMentionPopover({
|
|
|
91
91
|
|
|
92
92
|
{/* Empty state (done loading, no results) */}
|
|
93
93
|
{!error && !isLoading && suggestions.length === 0 && (
|
|
94
|
-
<div className="px-3 py-3 text-sm text-
|
|
94
|
+
<div className="px-3 py-3 text-sm text-[var(--muted-foreground)]" aria-live="polite">
|
|
95
95
|
No results
|
|
96
96
|
</div>
|
|
97
97
|
)}
|
|
98
98
|
|
|
99
99
|
{/* Stale-results loading indicator */}
|
|
100
100
|
{!error && isLoading && suggestions.length > 0 && (
|
|
101
|
-
<div className="flex items-center gap-1.5 px-3 py-1 text-xs text-
|
|
101
|
+
<div className="flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]">
|
|
102
102
|
<Loader2 className="h-3 w-3 animate-spin" aria-hidden />
|
|
103
103
|
<span aria-live="polite" aria-label="Updating results">Updating…</span>
|
|
104
104
|
</div>
|
|
@@ -48,11 +48,11 @@ export function FileMentionPopoverItem({
|
|
|
48
48
|
return (
|
|
49
49
|
<div
|
|
50
50
|
className={`flex items-center gap-2 px-3 py-2 text-sm transition-colors ${
|
|
51
|
-
isActive ? "bg-
|
|
51
|
+
isActive ? "bg-[var(--primary-muted)]" : "hover:bg-[var(--app-shell-subtle)]"
|
|
52
52
|
}`}
|
|
53
53
|
>
|
|
54
54
|
{/* File/folder icon */}
|
|
55
|
-
<span className="shrink-0 text-
|
|
55
|
+
<span className="shrink-0 text-[var(--muted-foreground)]" aria-hidden>
|
|
56
56
|
{isFolder ? (
|
|
57
57
|
isActive ? (
|
|
58
58
|
<FolderOpen className="h-4 w-4 text-amber-500" />
|
|
@@ -79,7 +79,7 @@ export function FileMentionPopoverItem({
|
|
|
79
79
|
<span className="flex items-baseline gap-2">
|
|
80
80
|
<span
|
|
81
81
|
className={`block truncate font-mono text-xs ${
|
|
82
|
-
isActive ? "text-
|
|
82
|
+
isActive ? "text-[var(--foreground)]" : "text-[var(--foreground)]"
|
|
83
83
|
}`}
|
|
84
84
|
>
|
|
85
85
|
{displayPath}
|
|
@@ -87,19 +87,19 @@ export function FileMentionPopoverItem({
|
|
|
87
87
|
|
|
88
88
|
{/* Recency badge */}
|
|
89
89
|
{recency && (
|
|
90
|
-
<span className="shrink-0 text-xs text-
|
|
90
|
+
<span className="shrink-0 text-xs text-[var(--muted-foreground)]">{recency}</span>
|
|
91
91
|
)}
|
|
92
92
|
</span>
|
|
93
93
|
|
|
94
94
|
{/* Folder manifest sub-line */}
|
|
95
95
|
{isFolder && suggestion.manifest && (
|
|
96
|
-
<span className="block text-xs text-
|
|
96
|
+
<span className="block text-xs text-[var(--muted-foreground)]">
|
|
97
97
|
{suggestion.manifest.childCount} items ·{" "}
|
|
98
98
|
{suggestion.manifest.sizeSummary}
|
|
99
99
|
{isContentsMode ? (
|
|
100
|
-
<span className="ml-1 font-medium text-
|
|
100
|
+
<span className="ml-1 font-medium text-[var(--primary)]">full tree</span>
|
|
101
101
|
) : (
|
|
102
|
-
<span className="ml-1 text-
|
|
102
|
+
<span className="ml-1 text-[var(--muted-foreground)]">manifest</span>
|
|
103
103
|
)}
|
|
104
104
|
</span>
|
|
105
105
|
)}
|
|
@@ -109,7 +109,7 @@ export function FileMentionPopoverItem({
|
|
|
109
109
|
{isFolder && !isContentsMode && (
|
|
110
110
|
<button
|
|
111
111
|
type="button"
|
|
112
|
-
className="shrink-0 rounded px-1.5 py-0.5 text-xs text-
|
|
112
|
+
className="shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors"
|
|
113
113
|
title="Attach full directory contents instead of manifest"
|
|
114
114
|
aria-label={`Attach full contents of ${displayPath}`}
|
|
115
115
|
onMouseDown={(e) => e.preventDefault()}
|
|
@@ -120,7 +120,7 @@ export function FileMentionPopoverItem({
|
|
|
120
120
|
</button>
|
|
121
121
|
)}
|
|
122
122
|
{isFolder && isContentsMode && (
|
|
123
|
-
<span className="shrink-0 rounded bg-
|
|
123
|
+
<span className="shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]">
|
|
124
124
|
full tree
|
|
125
125
|
</span>
|
|
126
126
|
)}
|
|
@@ -59,7 +59,7 @@ export function LogPanel({ logs, participants, onClear, open, onToggle }: Props)
|
|
|
59
59
|
</div>
|
|
60
60
|
<div className="flex flex-col bg-zinc-950 h-full" style={{ width }}>
|
|
61
61
|
<div className="flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0">
|
|
62
|
-
<span className="text-[11px] text-
|
|
62
|
+
<span className="text-[11px] text-[var(--muted-foreground)] font-mono">Logs</span>
|
|
63
63
|
<select
|
|
64
64
|
value={filter || ""}
|
|
65
65
|
onChange={(e) => setFilter(e.target.value || null)}
|
|
@@ -73,13 +73,13 @@ export function LogPanel({ logs, participants, onClear, open, onToggle }: Props)
|
|
|
73
73
|
<div className="ml-auto flex items-center gap-2">
|
|
74
74
|
<button
|
|
75
75
|
onClick={onClear}
|
|
76
|
-
className="text-[11px] text-
|
|
76
|
+
className="text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300"
|
|
77
77
|
>
|
|
78
78
|
Clear
|
|
79
79
|
</button>
|
|
80
80
|
<button
|
|
81
81
|
onClick={onToggle}
|
|
82
|
-
className="text-[11px] text-
|
|
82
|
+
className="text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300"
|
|
83
83
|
>
|
|
84
84
|
✕
|
|
85
85
|
</button>
|
|
@@ -92,11 +92,11 @@ export function LogPanel({ logs, participants, onClear, open, onToggle }: Props)
|
|
|
92
92
|
const isErr = entry.stream === "stderr";
|
|
93
93
|
return (
|
|
94
94
|
<div key={i} className="flex gap-2 whitespace-pre-wrap break-all">
|
|
95
|
-
<span className="text-
|
|
95
|
+
<span className="text-[var(--muted-foreground)] shrink-0 select-none">
|
|
96
96
|
{new Date(entry.timestamp).toLocaleTimeString([], { hour12: false, hour: "2-digit", minute: "2-digit", second: "2-digit" })}
|
|
97
97
|
</span>
|
|
98
98
|
<span className="shrink-0" style={{ color }}>{name}</span>
|
|
99
|
-
<span className={isErr ? "text-red-400" : "text-
|
|
99
|
+
<span className={isErr ? "text-red-400" : "text-[var(--muted-foreground)]"}>
|
|
100
100
|
{entry.line}
|
|
101
101
|
</span>
|
|
102
102
|
</div>
|
|
@@ -46,11 +46,11 @@ const components: Components = {
|
|
|
46
46
|
},
|
|
47
47
|
pre: ({ children }) => <>{children}</>,
|
|
48
48
|
blockquote: ({ children }) => (
|
|
49
|
-
<blockquote className="border-l-[3px] border-
|
|
49
|
+
<blockquote className="border-l-[3px] border-[var(--border)] pl-3 my-3 text-[var(--muted-foreground)]">
|
|
50
50
|
{children}
|
|
51
51
|
</blockquote>
|
|
52
52
|
),
|
|
53
|
-
hr: () => <hr className="my-4 border-
|
|
53
|
+
hr: () => <hr className="my-4 border-[var(--border)]" />,
|
|
54
54
|
a: ({ children, href }) => (
|
|
55
55
|
<a href={href} className="text-blue-600 underline underline-offset-2" target="_blank" rel="noopener noreferrer">
|
|
56
56
|
{children}
|
|
@@ -61,12 +61,12 @@ const components: Components = {
|
|
|
61
61
|
<table className="min-w-full text-sm border-collapse">{children}</table>
|
|
62
62
|
</div>
|
|
63
63
|
),
|
|
64
|
-
thead: ({ children }) => <thead className="bg-
|
|
64
|
+
thead: ({ children }) => <thead className="bg-[var(--muted)]">{children}</thead>,
|
|
65
65
|
th: ({ children }) => (
|
|
66
|
-
<th className="border border-
|
|
66
|
+
<th className="border border-[var(--border)] px-3 py-1.5 text-left text-xs font-semibold text-[var(--muted-foreground)]">{children}</th>
|
|
67
67
|
),
|
|
68
68
|
td: ({ children }) => (
|
|
69
|
-
<td className="border border-
|
|
69
|
+
<td className="border border-[var(--border)] px-3 py-1.5">{children}</td>
|
|
70
70
|
),
|
|
71
71
|
};
|
|
72
72
|
|
|
@@ -83,13 +83,13 @@ const userComponents: Components = {
|
|
|
83
83
|
const isBlock = className?.includes("language-");
|
|
84
84
|
if (isBlock) {
|
|
85
85
|
return (
|
|
86
|
-
<pre className="bg-
|
|
86
|
+
<pre className="bg-[var(--card-bg)]/[0.12] rounded-lg p-3 my-3 overflow-x-auto border border-white/[0.08]">
|
|
87
87
|
<code className="text-[13px] leading-relaxed font-mono">{children}</code>
|
|
88
88
|
</pre>
|
|
89
89
|
);
|
|
90
90
|
}
|
|
91
91
|
return (
|
|
92
|
-
<code className="bg-
|
|
92
|
+
<code className="bg-[var(--card-bg)]/[0.15] rounded-md px-1.5 py-0.5 text-[13px] font-mono">
|
|
93
93
|
{children}
|
|
94
94
|
</code>
|
|
95
95
|
);
|
|
@@ -110,7 +110,7 @@ const userComponents: Components = {
|
|
|
110
110
|
<table className="min-w-full text-sm border-collapse">{children}</table>
|
|
111
111
|
</div>
|
|
112
112
|
),
|
|
113
|
-
thead: ({ children }) => <thead className="bg-
|
|
113
|
+
thead: ({ children }) => <thead className="bg-[var(--card-bg)]/[0.08]">{children}</thead>,
|
|
114
114
|
th: ({ children }) => (
|
|
115
115
|
<th className="border border-white/20 px-3 py-1.5 text-left text-xs font-semibold">{children}</th>
|
|
116
116
|
),
|
|
@@ -170,12 +170,12 @@ export function Markdown({ content, isUser }: Props) {
|
|
|
170
170
|
return (
|
|
171
171
|
<details
|
|
172
172
|
key={i}
|
|
173
|
-
className="my-2 rounded-lg bg-
|
|
173
|
+
className="my-2 rounded-lg bg-[var(--muted)] border border-[var(--border)]/60"
|
|
174
174
|
>
|
|
175
|
-
<summary className="cursor-pointer select-none px-3 py-1.5 text-[11px] font-medium text-
|
|
175
|
+
<summary className="cursor-pointer select-none px-3 py-1.5 text-[11px] font-medium text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors">
|
|
176
176
|
Thought process
|
|
177
177
|
</summary>
|
|
178
|
-
<div className="px-3 pb-2.5 text-[12px] leading-relaxed text-
|
|
178
|
+
<div className="px-3 pb-2.5 text-[12px] leading-relaxed text-[var(--muted-foreground)]">
|
|
179
179
|
<ReactMarkdown remarkPlugins={[remarkGfm]} components={comps}>{seg.content}</ReactMarkdown>
|
|
180
180
|
</div>
|
|
181
181
|
</details>
|
|
@@ -46,7 +46,7 @@ export function MentionPopover({
|
|
|
46
46
|
role="listbox"
|
|
47
47
|
id={listboxId}
|
|
48
48
|
aria-label="Mention suggestions"
|
|
49
|
-
className="max-h-56 overflow-y-auto rounded-xl border border-
|
|
49
|
+
className="max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg"
|
|
50
50
|
>
|
|
51
51
|
{suggestions.map((suggestion, index) => {
|
|
52
52
|
const isActive = index === activeIndex;
|
|
@@ -63,7 +63,7 @@ export function MentionPopover({
|
|
|
63
63
|
if (group && !renderedGroups.has(group)) {
|
|
64
64
|
renderedGroups.add(group);
|
|
65
65
|
groupHeader = (
|
|
66
|
-
<div className="px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-
|
|
66
|
+
<div className="px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0">
|
|
67
67
|
{group}
|
|
68
68
|
</div>
|
|
69
69
|
);
|
|
@@ -82,7 +82,7 @@ export function MentionPopover({
|
|
|
82
82
|
optionRefs.current[index] = element;
|
|
83
83
|
}}
|
|
84
84
|
className={`w-full px-3 py-2 text-left text-sm transition-colors ${
|
|
85
|
-
isActive ? "bg-
|
|
85
|
+
isActive ? "bg-[var(--primary-muted)] text-[var(--foreground)]" : "text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"
|
|
86
86
|
}`}
|
|
87
87
|
onMouseDown={(e) => {
|
|
88
88
|
e.preventDefault();
|
|
@@ -90,9 +90,9 @@ export function MentionPopover({
|
|
|
90
90
|
onClick={() => onSelect(suggestion)}
|
|
91
91
|
>
|
|
92
92
|
<span className="inline-flex items-center gap-2">
|
|
93
|
-
<Users className="h-3.5 w-3.5 text-
|
|
93
|
+
<Users className="h-3.5 w-3.5 text-[var(--muted-foreground)]" aria-hidden />
|
|
94
94
|
<span className="font-medium">{suggestion.project.name}</span>
|
|
95
|
-
<span className="text-xs text-
|
|
95
|
+
<span className="text-xs text-[var(--muted-foreground)]">
|
|
96
96
|
{suggestion.project.agents.length} agent{suggestion.project.agents.length !== 1 ? "s" : ""}
|
|
97
97
|
</span>
|
|
98
98
|
</span>
|
|
@@ -114,7 +114,7 @@ export function MentionPopover({
|
|
|
114
114
|
optionRefs.current[index] = element;
|
|
115
115
|
}}
|
|
116
116
|
className={`w-full px-3 py-2 text-left text-sm transition-colors ${
|
|
117
|
-
isActive ? "bg-
|
|
117
|
+
isActive ? "bg-[var(--primary-muted)] text-[var(--foreground)]" : "text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"
|
|
118
118
|
}`}
|
|
119
119
|
onMouseDown={(e) => {
|
|
120
120
|
e.preventDefault();
|
|
@@ -122,9 +122,9 @@ export function MentionPopover({
|
|
|
122
122
|
onClick={() => onSelect(suggestion)}
|
|
123
123
|
>
|
|
124
124
|
<span className="inline-flex items-center gap-2">
|
|
125
|
-
<FolderKanban className="h-3.5 w-3.5 text-
|
|
125
|
+
<FolderKanban className="h-3.5 w-3.5 text-[var(--muted-foreground)]" aria-hidden />
|
|
126
126
|
<span className="font-medium">{suggestion.project.name}</span>
|
|
127
|
-
<span className="text-xs text-
|
|
127
|
+
<span className="text-xs text-[var(--muted-foreground)]">{suggestion.project.slug}</span>
|
|
128
128
|
</span>
|
|
129
129
|
</button>
|
|
130
130
|
</div>
|
|
@@ -144,7 +144,7 @@ export function MentionPopover({
|
|
|
144
144
|
optionRefs.current[index] = element;
|
|
145
145
|
}}
|
|
146
146
|
className={`w-full px-3 py-2 text-left text-sm transition-colors ${
|
|
147
|
-
isActive ? "bg-
|
|
147
|
+
isActive ? "bg-[var(--primary-muted)] text-[var(--foreground)]" : "text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"
|
|
148
148
|
}${group ? " pl-6" : ""}`}
|
|
149
149
|
onMouseDown={(e) => {
|
|
150
150
|
e.preventDefault();
|
|
@@ -159,9 +159,9 @@ export function MentionPopover({
|
|
|
159
159
|
/>
|
|
160
160
|
<span className="font-medium">{participant.name}</span>
|
|
161
161
|
{participant.id === "all" ? (
|
|
162
|
-
<span className="text-xs text-
|
|
162
|
+
<span className="text-xs text-[var(--muted-foreground)]">All participants</span>
|
|
163
163
|
) : participant.model && (
|
|
164
|
-
<span className="text-xs text-
|
|
164
|
+
<span className="text-xs text-[var(--muted-foreground)]">{participant.model}</span>
|
|
165
165
|
)}
|
|
166
166
|
</span>
|
|
167
167
|
</button>
|
|
@@ -34,7 +34,7 @@ export function MessageAttachments({ attachments, compact = false }: Props) {
|
|
|
34
34
|
href={att.url}
|
|
35
35
|
target="_blank"
|
|
36
36
|
rel="noopener noreferrer"
|
|
37
|
-
className="block rounded-lg overflow-hidden border border-
|
|
37
|
+
className="block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors"
|
|
38
38
|
>
|
|
39
39
|
<img
|
|
40
40
|
src={att.url}
|
|
@@ -55,14 +55,14 @@ export function MessageAttachments({ attachments, compact = false }: Props) {
|
|
|
55
55
|
key={att.id}
|
|
56
56
|
href={att.url}
|
|
57
57
|
download={att.filename}
|
|
58
|
-
className={`inline-flex items-center gap-1.5 rounded-md border border-
|
|
58
|
+
className={`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${
|
|
59
59
|
compact ? "px-2 py-0.5 text-[11px]" : "px-2.5 py-1 text-xs"
|
|
60
60
|
}`}
|
|
61
61
|
>
|
|
62
|
-
<FileText className={`text-
|
|
62
|
+
<FileText className={`text-[var(--muted-foreground)] shrink-0 ${compact ? "w-3 h-3" : "w-3.5 h-3.5"}`} />
|
|
63
63
|
<span className={`truncate ${compact ? "max-w-[100px]" : "max-w-[150px]"}`}>{att.filename}</span>
|
|
64
|
-
<span className="text-
|
|
65
|
-
<Download className={`text-
|
|
64
|
+
<span className="text-[var(--muted-foreground)] shrink-0">{formatSize(att.size)}</span>
|
|
65
|
+
<Download className={`text-[var(--muted-foreground)] shrink-0 ${compact ? "w-2.5 h-2.5" : "w-3 h-3"}`} />
|
|
66
66
|
</a>
|
|
67
67
|
))}
|
|
68
68
|
</div>
|
|
@@ -58,11 +58,11 @@ export function MessageBubble({
|
|
|
58
58
|
>
|
|
59
59
|
{!(isUser && hideUserAvatarAndName) && (
|
|
60
60
|
participantId && !isUser ? (
|
|
61
|
-
<Link href={`/agents/${participantId}`} className={`w-9 h-9 rounded-full flex items-center justify-center shrink-0 bg-
|
|
61
|
+
<Link href={`/agents/${participantId}`} className={`w-9 h-9 rounded-full flex items-center justify-center shrink-0 bg-[var(--muted)] overflow-hidden hover:ring-2 hover:ring-blue-300 transition-shadow`}>
|
|
62
62
|
<img src={agentAvatarUrl(participantId, 36, participantColor)} alt="" className="w-full h-full object-cover" />
|
|
63
63
|
</Link>
|
|
64
64
|
) : (
|
|
65
|
-
<div className={`w-9 h-9 rounded-full flex items-center justify-center shrink-0 ${isUser ? 'bg-
|
|
65
|
+
<div className={`w-9 h-9 rounded-full flex items-center justify-center shrink-0 ${isUser ? 'bg-[var(--muted)] text-[var(--muted-foreground)]' : 'bg-[var(--muted)] overflow-hidden'}`}>
|
|
66
66
|
<User className="w-5 h-5" />
|
|
67
67
|
</div>
|
|
68
68
|
)
|
|
@@ -85,13 +85,13 @@ export function MessageBubble({
|
|
|
85
85
|
</span>
|
|
86
86
|
)
|
|
87
87
|
)}
|
|
88
|
-
<span className="text-xs text-
|
|
88
|
+
<span className="text-xs text-[var(--muted-foreground)] font-medium">
|
|
89
89
|
{formatTimestamp(message.timestamp)}
|
|
90
90
|
</span>
|
|
91
91
|
</div>
|
|
92
92
|
|
|
93
93
|
<div
|
|
94
|
-
className={`text-[15px] text-
|
|
94
|
+
className={`text-[15px] text-[var(--foreground)] leading-relaxed ${isUser ? "cursor-pointer hover:bg-[var(--app-shell-subtle)]/50 transition-colors rounded p-1 -mx-1" : ""}`}
|
|
95
95
|
onClick={() => {
|
|
96
96
|
if (isUser && onOpenThread) {
|
|
97
97
|
onOpenThread(message.id);
|
|
@@ -112,7 +112,7 @@ export function MessageBubble({
|
|
|
112
112
|
<button
|
|
113
113
|
type="button"
|
|
114
114
|
onClick={() => onReply(message.id)}
|
|
115
|
-
className="flex items-center gap-1.5 px-2.5 py-1 text-
|
|
115
|
+
className="flex items-center gap-1.5 px-2.5 py-1 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded-full hover:bg-[var(--app-shell-subtle)] transition-colors text-xs font-semibold"
|
|
116
116
|
>
|
|
117
117
|
<MessageSquare className="w-3 h-3" />
|
|
118
118
|
Reply
|
|
@@ -123,7 +123,7 @@ export function MessageBubble({
|
|
|
123
123
|
type="button"
|
|
124
124
|
onClick={() => onSummarize(message.id)}
|
|
125
125
|
disabled={summarizing}
|
|
126
|
-
className="flex items-center gap-1.5 px-2.5 py-1 text-
|
|
126
|
+
className="flex items-center gap-1.5 px-2.5 py-1 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded-full hover:bg-[var(--app-shell-subtle)] transition-colors text-xs font-semibold disabled:opacity-50 disabled:cursor-not-allowed"
|
|
127
127
|
>
|
|
128
128
|
{summarizing ? <Loader2 className="w-3 h-3 animate-spin" /> : <FileText className="w-3 h-3" />}
|
|
129
129
|
{summarizing ? "Summarizing…" : "Summarize"}
|