vibedoc 1.6.1 → 1.8.0
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +11 -0
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +69 -13
- package/.next/routes-manifest.json +66 -0
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page.js.nft.json +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/chat/page/app-paths-manifest.json +3 -0
- package/.next/server/app/(app)/chat/page/build-manifest.json +20 -0
- package/.next/server/app/(app)/chat/page/next-font-manifest.json +11 -0
- package/.next/server/app/(app)/chat/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/(app)/chat/page/server-reference-manifest.json +4 -0
- package/.next/server/app/(app)/chat/page.js +15 -0
- package/.next/server/app/(app)/chat/page.js.map +5 -0
- package/.next/server/app/(app)/chat/page.js.nft.json +1 -0
- package/.next/server/app/(app)/chat/page_client-reference-manifest.js +3 -0
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
- package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/manual-tests/page/app-paths-manifest.json +3 -0
- package/.next/server/app/(app)/manual-tests/page/build-manifest.json +20 -0
- package/.next/server/app/(app)/manual-tests/page/next-font-manifest.json +11 -0
- package/.next/server/app/(app)/manual-tests/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/(app)/manual-tests/page/server-reference-manifest.json +4 -0
- package/.next/server/app/(app)/manual-tests/page.js +15 -0
- package/.next/server/app/(app)/manual-tests/page.js.map +5 -0
- package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -0
- package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +3 -0
- package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
- package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +14 -13
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +10 -10
- package/.next/server/app/activity.segments/_full.segment.rsc +14 -13
- package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/api/activity/route.js +2 -2
- package/.next/server/app/api/activity/route.js.nft.json +1 -1
- package/.next/server/app/api/backlinks/route.js +2 -2
- package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js +2 -2
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/conversations/route/build-manifest.json +12 -0
- package/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/conversations/route.js +9 -0
- package/.next/server/app/api/conversations/route.js.map +5 -0
- package/.next/server/app/api/conversations/route.js.nft.json +1 -0
- package/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/decisions/route.js +2 -2
- package/.next/server/app/api/decisions/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/route.js +1 -1
- package/.next/server/app/api/docs/route.js.nft.json +1 -1
- package/.next/server/app/api/explorer/route.js +2 -2
- package/.next/server/app/api/explorer/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +2 -2
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/apply/route.js +3 -3
- package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js +2 -2
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/route.js +2 -2
- package/.next/server/app/api/registry/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/create/route.js +3 -3
- package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/delete/route.js +3 -3
- package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/generate/route.js +3 -3
- package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/layout/route.js +3 -3
- package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/restore/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/roadmap/restore/route/build-manifest.json +12 -0
- package/.next/server/app/api/roadmap/restore/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/roadmap/restore/route.js +9 -0
- package/.next/server/app/api/roadmap/restore/route.js.map +5 -0
- package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -0
- package/.next/server/app/api/roadmap/restore/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/roadmap/route.js +3 -3
- package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/update/route.js +3 -3
- package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +2 -2
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +3 -3
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js +1 -1
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/write/route.js +2 -2
- package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
- package/.next/server/app/api/summary/route.js +2 -2
- package/.next/server/app/api/summary/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/bulk/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/bulk/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/bulk/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/bulk/route.js +9 -0
- package/.next/server/app/api/tasks/bulk/route.js.map +5 -0
- package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/bulk/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/tasks/create/route.js +2 -2
- package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/delete/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/delete/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/delete/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/delete/route.js +9 -0
- package/.next/server/app/api/tasks/delete/route.js.map +5 -0
- package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/delete/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/tasks/manual-tests/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/manual-tests/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/manual-tests/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/manual-tests/route.js +8 -0
- package/.next/server/app/api/tasks/manual-tests/route.js.map +5 -0
- package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/manual-tests/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/tasks/restore/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/restore/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/restore/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/restore/route.js +9 -0
- package/.next/server/app/api/tasks/restore/route.js.map +5 -0
- package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/restore/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/tasks/review/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/review/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/review/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/review/route.js +9 -0
- package/.next/server/app/api/tasks/review/route.js.map +5 -0
- package/.next/server/app/api/tasks/review/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/review/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/tasks/route.js +2 -2
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/update/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/tasks/update/route/build-manifest.json +12 -0
- package/.next/server/app/api/tasks/update/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/tasks/update/route.js +9 -0
- package/.next/server/app/api/tasks/update/route.js.map +5 -0
- package/.next/server/app/api/tasks/update/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/update/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/views/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/views/route/build-manifest.json +12 -0
- package/.next/server/app/api/views/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/views/route.js +9 -0
- package/.next/server/app/api/views/route.js.map +5 -0
- package/.next/server/app/api/views/route.js.nft.json +1 -0
- package/.next/server/app/api/views/route_client-reference-manifest.js +3 -0
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +14 -13
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +10 -10
- package/.next/server/app/board.segments/_full.segment.rsc +14 -13
- package/.next/server/app/board.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/chat.html +1 -0
- package/.next/server/app/chat.meta +31 -0
- package/.next/server/app/chat.rsc +31 -0
- package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +34 -0
- package/.next/server/app/chat.segments/_full.segment.rsc +31 -0
- package/.next/server/app/chat.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +24 -27
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +7 -6
- package/.next/server/app/docs.segments/_full.segment.rsc +24 -27
- package/.next/server/app/docs.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +14 -13
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +6 -5
- package/.next/server/app/explorer.segments/_full.segment.rsc +14 -13
- package/.next/server/app/explorer.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/manual-tests.html +1 -0
- package/.next/server/app/manual-tests.meta +31 -0
- package/.next/server/app/manual-tests.rsc +31 -0
- package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +33 -0
- package/.next/server/app/manual-tests.segments/_full.segment.rsc +31 -0
- package/.next/server/app/manual-tests.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +14 -13
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +6 -5
- package/.next/server/app/memory.segments/_full.segment.rsc +14 -13
- package/.next/server/app/memory.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roadmap.html +1 -1
- package/.next/server/app/roadmap.rsc +24 -26
- package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +10 -11
- package/.next/server/app/roadmap.segments/_full.segment.rsc +24 -26
- package/.next/server/app/roadmap.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +14 -13
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +10 -10
- package/.next/server/app/settings.segments/_full.segment.rsc +14 -13
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +14 -13
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +6 -5
- package/.next/server/app/setup.segments/_full.segment.rsc +14 -13
- package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/.next/server/app-paths-manifest.json +11 -0
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js → 11mp_@anthropic-ai_sdk_00p3fu1._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js → 11mp_@anthropic-ai_sdk_01amtux._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js → 11mp_@anthropic-ai_sdk_01jjl08._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js → 11mp_@anthropic-ai_sdk_071zfm8._.js} +1 -1
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_07v3boe._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_09iva72._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0bom1b1._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dvji7p._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dzo8jn._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hvqsqq._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7i-jw._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k0iop5._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l3-6aq._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oegm3y._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0p5cyes._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qw8i6_._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yk-a7v._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_11fsqvb._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_143_7ez._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_14a4-64._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_17d_oma._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_18qwuyb._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_19au8y6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ak_hy5._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cqa0nq._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js → [root-of-the-server]__0-pmfg2._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__02co2yq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02co2yq._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js → [root-of-the-server]__04tibmn._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js → [root-of-the-server]__05g5cgo._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js → [root-of-the-server]__0b5pwze._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__142icjb._.js → [root-of-the-server]__0druay_._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js → [root-of-the-server]__0p6ja6l._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js → [root-of-the-server]__1-e3i_5._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js → [root-of-the-server]__11c8641._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__11c8641._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +30 -19
- package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js → [root-of-the-server]__197vw9g._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js → [root-of-the-server]__19k8t87._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js → [root-of-the-server]__1ezzeji._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1mrmaf9._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js → [root-of-the-server]__1n68akx._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1n68akx._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js → [root-of-the-server]__1npya5q._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1npya5q._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js → [root-of-the-server]__1umrorf._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js → [root-of-the-server]__1vh9g2o._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js → [root-of-the-server]__1vq38ov._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js.map +1 -1
- package/.next/server/chunks/_04byth9._.js +24 -19
- package/.next/server/chunks/_04byth9._.js.map +1 -1
- package/.next/server/chunks/_1au4syj._.js +1 -1
- package/.next/server/chunks/_1au4syj._.js.map +1 -1
- package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
- package/.next/server/chunks/_1ivswa9._.js +3 -0
- package/.next/server/chunks/_1ivswa9._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js.map +1 -0
- package/.next/server/chunks/ssr/{_0qyglif._.js → 0_g__next_dist_000c5_m._.js} +2 -4
- package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js.map +1 -0
- package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js → 0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js} +2 -2
- package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map +1 -0
- package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0mwkb-i._.js → 1u84_katex_dist_katex_mjs_1kb5xea._.js} +1 -1
- package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_1kb5xea._.js.map +1 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js +1 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js.map +1 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +1 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +1 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js.map +1 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xt_0w2._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js.map +1 -0
- package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
- package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
- package/.next/server/chunks/ssr/_071j6mr._.js +4 -0
- package/.next/server/chunks/ssr/_071j6mr._.js.map +1 -0
- package/.next/server/chunks/ssr/_09b02z-._.js +3 -0
- package/.next/server/chunks/ssr/_09b02z-._.js.map +1 -0
- package/.next/server/chunks/ssr/_0d0f1s1._.js +3 -0
- package/.next/server/chunks/ssr/_0d0f1s1._.js.map +1 -0
- package/.next/server/chunks/ssr/_0idb-vo._.js +151 -0
- package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -0
- package/.next/server/chunks/ssr/_0lnt_va._.js +4 -0
- package/.next/server/chunks/ssr/_0lnt_va._.js.map +1 -0
- package/.next/server/chunks/ssr/_0qlymco._.js +3 -0
- package/.next/server/chunks/ssr/_0qlymco._.js.map +1 -0
- package/.next/server/chunks/ssr/_0qp3gu7._.js +3 -0
- package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -0
- package/.next/server/chunks/ssr/_0sg1oeq._.js +3 -0
- package/.next/server/chunks/ssr/_0sg1oeq._.js.map +1 -0
- package/.next/server/chunks/ssr/_14emfpq._.js +3 -0
- package/.next/server/chunks/ssr/_14emfpq._.js.map +1 -0
- package/.next/server/chunks/ssr/_1ftruw6._.js +4 -0
- package/.next/server/chunks/ssr/_1ftruw6._.js.map +1 -0
- package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
- package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
- package/.next/server/chunks/ssr/_1ncdakv._.js +4 -0
- package/.next/server/chunks/ssr/_1ncdakv._.js.map +1 -0
- package/.next/server/chunks/ssr/_1t76zdx._.js +3 -0
- package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -0
- package/.next/server/chunks/ssr/_1x7ggg5._.js +4 -0
- package/.next/server/chunks/ssr/_1x7ggg5._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js → node_modules__pnpm_01bjcv9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js → node_modules__pnpm_03qrzdb._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js → node_modules__pnpm_06d-fdo._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js → node_modules__pnpm_0ctisl0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js → node_modules__pnpm_0fwp8jm._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js → node_modules__pnpm_0kpu0-2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js → node_modules__pnpm_0vry74x._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js → node_modules__pnpm_0ycbjbd._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js → node_modules__pnpm_1-76qxg._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js → node_modules__pnpm_1-r94f7._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js → node_modules__pnpm_14piqi4._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_14piqi4._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js → node_modules__pnpm_16u1vfb._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules__pnpm_16u1vfb._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js → node_modules__pnpm_17i6z2d._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js → node_modules__pnpm_189m48n._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_189m48n._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js → node_modules__pnpm_192f222._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js → node_modules__pnpm_1a48_nl._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js → node_modules__pnpm_1aa37e1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js → node_modules__pnpm_1f440kx._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js → node_modules__pnpm_1fn3ejy._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js → node_modules__pnpm_1min2jl._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js → node_modules__pnpm_1q_hhr3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js → node_modules__pnpm_1qmkxyo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js → node_modules__pnpm_1qp_jvj._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js → node_modules__pnpm_1ssjj4u._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js → node_modules__pnpm_1txccoj._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js → node_modules__pnpm_1uwkcin._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js → node_modules__pnpm_1ygal0c._.js} +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +5 -0
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
- package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +3 -0
- package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -0
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +5 -0
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -0
- package/.next/server/chunks/ssr/{_1wf14_u._.js → src_lib_templates_index_ts_1s61uk7._.js} +2 -2
- package/.next/server/chunks/ssr/{_1wf14_u._.js.map → src_lib_templates_index_ts_1s61uk7._.js.map} +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +8 -0
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/prefetch-hints.json +38 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/02cj5_i9np4sg.js +3 -0
- package/.next/static/chunks/02i5hsdat1nuq.css +9 -0
- package/.next/static/chunks/0mgifb98wbesa.js +1 -0
- package/.next/static/chunks/0p1-hkgnm2ll2.js +1 -0
- package/.next/static/chunks/0pgu5q5vodev6.js +1 -0
- package/.next/static/chunks/0rqzvayflendx.js +2 -0
- package/.next/static/chunks/0vcfs7dii85tw.js +21 -0
- package/.next/static/chunks/13l4l-boqg8fx.js +1 -0
- package/.next/static/chunks/14hxe1qiaram9.js +1 -0
- package/.next/static/chunks/150y5rwg6gwvx.css +1 -0
- package/.next/static/chunks/16k196zyl-n9q.js +1 -0
- package/.next/static/chunks/18b5l8p0vd9f8.js +1 -0
- package/.next/static/chunks/1c_8t2kecjnua.js +1 -0
- package/.next/static/chunks/1fd43t9y42wd3.js +1 -0
- package/.next/static/chunks/1q50zh5z-fq2k.js +2 -0
- package/.next/static/chunks/1tu8lforstp1o.js +1 -0
- package/.next/static/chunks/23-xknrz6o748.js +1 -0
- package/.next/static/chunks/2_xpm7qhr69n8.js +2 -0
- package/.next/static/chunks/2ls_yp4-qgb42.js +1 -0
- package/.next/static/chunks/2zz0ip2l_29c3.js +3 -0
- package/.next/static/chunks/3ly7b47esdb7j.js +1 -0
- package/.next/static/chunks/3ruw8lu2_re-h.js +1 -0
- package/.next/static/chunks/3vf5nnd4xjo5_.js +1 -0
- package/.next/static/chunks/{0eggcu0ovk8sd.js → 40jaenrnspnlh.js} +26 -26
- package/.next/static/chunks/41oxcdcw-pcwt.js +1 -0
- package/README.md +3 -2
- package/package.json +1 -1
- package/skills/work-epic/SKILL.md +22 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js.map +0 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +0 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js.map +0 -1
- package/.next/server/chunks/ssr/_0qyglif._.js.map +0 -1
- package/.next/server/chunks/ssr/_0skuoxv._.js +0 -6
- package/.next/server/chunks/ssr/_0skuoxv._.js.map +0 -1
- package/.next/server/chunks/ssr/_14i_6yb._.js +0 -3
- package/.next/server/chunks/ssr/_14i_6yb._.js.map +0 -1
- package/.next/server/chunks/ssr/_1c95ems._.js +0 -151
- package/.next/server/chunks/ssr/_1c95ems._.js.map +0 -1
- package/.next/server/chunks/ssr/_1cbhuz4._.js +0 -3
- package/.next/server/chunks/ssr/_1cbhuz4._.js.map +0 -1
- package/.next/server/chunks/ssr/_1ewk_mn._.js +0 -3
- package/.next/server/chunks/ssr/_1ewk_mn._.js.map +0 -1
- package/.next/server/chunks/ssr/_1y-ofyw._.js +0 -3
- package/.next/server/chunks/ssr/_1y-ofyw._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_008q3v8._.js +0 -3
- package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_14pwej-._.js +0 -3
- package/.next/server/chunks/ssr/src_components_14pwej-._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js +0 -3
- package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js.map +0 -1
- package/.next/static/chunks/0-vk2d2nnzav2.js +0 -3
- package/.next/static/chunks/0-z7kyblalrea.js +0 -1
- package/.next/static/chunks/02sab26ica2x3.js +0 -1
- package/.next/static/chunks/0iva6rdtfqpbz.js +0 -1
- package/.next/static/chunks/0k2qhx29amdgs.js +0 -1
- package/.next/static/chunks/0qm101bdsxdyh.css +0 -10
- package/.next/static/chunks/0wg9n5zb8mo2p.js +0 -1
- package/.next/static/chunks/0z_y7el6m76yk.js +0 -1
- package/.next/static/chunks/1-ekntoveuxzd.js +0 -4
- package/.next/static/chunks/10neasnz6hhq1.js +0 -1
- package/.next/static/chunks/1r7z33e9jk3vp.js +0 -1
- package/.next/static/chunks/22dw7r8x0h2sx.js +0 -1
- package/.next/static/chunks/26ee8jsbellqk.js +0 -21
- package/.next/static/chunks/3kkg030rcpz7l.js +0 -1
- package/.next/static/chunks/3pf_4ye6ju8gt.js +0 -1
- package/.next/static/chunks/3smp1lj103j-l.js +0 -1
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js.map → 11mp_@anthropic-ai_sdk_00p3fu1._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js.map → 11mp_@anthropic-ai_sdk_01amtux._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js.map → 11mp_@anthropic-ai_sdk_01jjl08._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js.map → 11mp_@anthropic-ai_sdk_071zfm8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0am8bw2._.js.map → 11mp_@anthropic-ai_sdk_07v3boe._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0enefn6._.js.map → 11mp_@anthropic-ai_sdk_09iva72._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k3n_5f._.js.map → 11mp_@anthropic-ai_sdk_0bom1b1._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcfjm4._.js.map → 11mp_@anthropic-ai_sdk_0dvji7p._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lfx9av._.js.map → 11mp_@anthropic-ai_sdk_0dzo8jn._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qau3qw._.js.map → 11mp_@anthropic-ai_sdk_0hvqsqq._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r1pmvm._.js.map → 11mp_@anthropic-ai_sdk_0i7i-jw._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11t-z2t._.js.map → 11mp_@anthropic-ai_sdk_0k0iop5._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15hyn79._.js.map → 11mp_@anthropic-ai_sdk_0l3-6aq._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_qk07x._.js.map → 11mp_@anthropic-ai_sdk_0oegm3y._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b2929e._.js.map → 11mp_@anthropic-ai_sdk_0p5cyes._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1e72c89._.js.map → 11mp_@anthropic-ai_sdk_0qw8i6_._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1eq7asn._.js.map → 11mp_@anthropic-ai_sdk_0yk-a7v._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fhdojs._.js.map → 11mp_@anthropic-ai_sdk_11fsqvb._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lh_vwq._.js.map → 11mp_@anthropic-ai_sdk_143_7ez._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ludf-o._.js.map → 11mp_@anthropic-ai_sdk_14a4-64._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1m3luz3._.js.map → 11mp_@anthropic-ai_sdk_17d_oma._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x1iz3d._.js.map → 11mp_@anthropic-ai_sdk_18qwuyb._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xsmwlh._.js.map → 11mp_@anthropic-ai_sdk_19au8y6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_202spah._.js.map → 11mp_@anthropic-ai_sdk_1ak_hy5._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215hw9u._.js.map → 11mp_@anthropic-ai_sdk_1cqa0nq._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_0mwkb-i._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_0--x5-5._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_04xoqd9._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_0cj37c-._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js.map → [root-of-the-server]__0-pmfg2._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js.map → [root-of-the-server]__04tibmn._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js.map → [root-of-the-server]__05g5cgo._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js.map → [root-of-the-server]__0b5pwze._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__142icjb._.js.map → [root-of-the-server]__0druay_._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js.map → [root-of-the-server]__0p6ja6l._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js.map → [root-of-the-server]__1-e3i_5._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js.map → [root-of-the-server]__197vw9g._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js.map → [root-of-the-server]__19k8t87._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js.map → [root-of-the-server]__1ezzeji._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js.map → [root-of-the-server]__1mrmaf9._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js.map → [root-of-the-server]__1umrorf._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js.map → [root-of-the-server]__1vh9g2o._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js.map → [root-of-the-server]__1vq38ov._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js.map → node_modules__pnpm_01bjcv9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js.map → node_modules__pnpm_03qrzdb._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js.map → node_modules__pnpm_06d-fdo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js.map → node_modules__pnpm_0ctisl0._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js.map → node_modules__pnpm_0fwp8jm._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js.map → node_modules__pnpm_0kpu0-2._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js.map → node_modules__pnpm_0vry74x._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js.map → node_modules__pnpm_0ycbjbd._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js.map → node_modules__pnpm_1-76qxg._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js.map → node_modules__pnpm_1-r94f7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js.map → node_modules__pnpm_17i6z2d._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js.map → node_modules__pnpm_192f222._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js.map → node_modules__pnpm_1a48_nl._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js.map → node_modules__pnpm_1aa37e1._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js.map → node_modules__pnpm_1f440kx._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js.map → node_modules__pnpm_1fn3ejy._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js.map → node_modules__pnpm_1min2jl._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js.map → node_modules__pnpm_1q_hhr3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js.map → node_modules__pnpm_1qmkxyo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js.map → node_modules__pnpm_1qp_jvj._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js.map → node_modules__pnpm_1ssjj4u._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js.map → node_modules__pnpm_1txccoj._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js.map → node_modules__pnpm_1uwkcin._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js.map → node_modules__pnpm_1ygal0c._.js.map} +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL → fGPda81_8-K4GmaNUE6KA}/_buildManifest.js +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL → fGPda81_8-K4GmaNUE6KA}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL → fGPda81_8-K4GmaNUE6KA}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[856095,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(200382),f=a.i(72551),g=a.i(54165),h=a.i(685698),i=a.i(712125),j=a.i(147758),k=a.i(822404),l=a.i(544428),m=a.i(256857);let n={name:"link-2-off",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]};n.node;let o=(0,m.default)(n);var p=a.i(544394),q=a.i(149350),r=a.i(173628),s=a.i(618940),t=a.i(368114),u=a.i(598984);let v="font-mono text-[10px] uppercase tracking-widest text-muted";function w({attach:a}){let{board:d,rootParam:e}=(0,p.useApp)(),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=!1;return fetch(`/api/roadmap${e}`).then(a=>a.ok?a.json():{items:[]}).then(b=>{a||g(b.items??[])}).catch(a=>console.warn("[vibedoc] could not load roadmap for the chat rail:",a)),()=>{a=!0}},[e,h]),(0,c.useEffect)(()=>{let a=a=>{let b=a.detail?.type;("roadmap_updated"===b||"task_created"===b)&&i(a=>a+1)};return window.addEventListener("vibedoc:sse",a),()=>window.removeEventListener("vibedoc:sse",a)},[]);let j=(0,c.useMemo)(()=>Object.fromEntries((d?Object.values(d).flat():[]).map(a=>[a.id,a])),[d]);return(0,b.jsx)("div",{className:"flex h-full min-h-0 flex-col overflow-y-auto",children:(0,b.jsxs)("div",{className:"flex flex-col gap-5 p-5 animate-fade-in",children:[!a&&(0,b.jsx)(x,{}),a?.kind==="epic"&&(0,b.jsx)(y,{item:f.find(b=>b.id===a.id),id:a.id,tasksById:j}),a?.kind==="task"&&(0,b.jsx)(A,{task:j[a.id],id:a.id,items:f})]},a?`${a.kind}:${a.id}`:"none")})}function x(){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:v,children:"Context"}),(0,b.jsxs)("div",{className:"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4",children:[(0,b.jsx)(o,{className:"size-4 text-muted"}),(0,b.jsx)("p",{className:"text-sm text-txt",children:"Not linked to an epic or task"}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-muted",children:"Open a chat from an epic on the roadmap or a task on the board, and the agent starts with that item as context. Its status then shows on the item."})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("p",{className:v,children:"The agent can"}),(0,b.jsxs)("ul",{className:"flex flex-col gap-1.5 text-xs text-muted",children:[(0,b.jsx)("li",{children:"Read docs, tasks, the roadmap and memory"}),(0,b.jsx)("li",{children:"Propose doc and task edits (you review a diff)"}),(0,b.jsx)("li",{children:"Propose epics and task breakdowns (you accept)"}),(0,b.jsx)("li",{className:"text-muted/70",children:"It can't run code or edit source files"})]})]})]})}function y({item:a,id:c,tasksById:d}){if(!a)return(0,b.jsx)(B,{kind:"Epic",id:c});let e=a.tasks.map(a=>d[a]).filter(a=>!!a),f=e.map(a=>a.status).filter(a=>"cancelled"!==a),g=f.filter(a=>"done"===a).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:v,children:["Epic · ",a.id]}),(0,b.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:a.title}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(s.StatusPill,{status:a.status}),a.due&&(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",a.due]})]})]}),f.length>0&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)("p",{className:v,children:"Progress"}),(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[g,"/",f.length," tasks"]})]}),(0,b.jsx)(s.SegmentedProgress,{statuses:f})]}),e.length>0&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:v,children:"Tasks"}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:e.map(a=>(0,b.jsx)(z,{task:a},a.id))})]}),a.body.trim()&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:v,children:"Brief"}),(0,b.jsx)(q.MarkdownRenderer,{content:a.body,className:"prose-compact"})]}),(0,b.jsx)(C,{attach:{kind:"epic",id:a.id},label:"Open in roadmap"})]})}function z({task:a}){let{showAbout:c}=(0,h.useChats)();return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>c({kind:"task",id:a.id}),title:`Chat about ${a.id}`,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors duration-(--duration-fast) hover:bg-surface2",children:[(0,b.jsx)(r.StatusIcon,{status:(0,j.displayStatus)(a),className:"size-3"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:a.id}),(0,b.jsx)("span",{className:(0,t.cn)("min-w-0 flex-1 truncate","done"===a.status?"text-muted":"text-txt"),children:a.title})]})})}function A({task:a,id:c,items:d}){let{showAbout:e}=(0,h.useChats)();if(!a)return(0,b.jsx)(B,{kind:"Task",id:c});let f=a.phase.match(/^R\d+/)?.[0],g=f?d.find(a=>a.id===f):void 0,i=a.raw?.replace(/^#.*\n(\*\*[^*]+:\*\*.*\n)*/,"").trim();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:v,children:["Task · ",a.id]}),(0,b.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:a.title}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(r.StatusChip,{status:(0,j.displayStatus)(a)}),a.size&&(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:a.size}),a.due&&(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",a.due]})]})]}),(0,b.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs",children:[f&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted",children:"Epic"}),(0,b.jsx)("dd",{className:"min-w-0",children:(0,b.jsxs)("button",{type:"button",onClick:()=>e({kind:"epic",id:f}),className:"truncate text-left text-txt hover:text-accent",title:`Chat about ${f}`,children:[(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:f})," ",g?.title??a.phase.replace(/^R\d+\s*—\s*/,"")]})})]}),a.dependsOn&&"—"!==a.dependsOn&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted",children:"Depends on"}),(0,b.jsx)("dd",{className:"font-mono text-[11px] text-txt",children:a.dependsOn})]})]}),i&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:v,children:"Spec"}),(0,b.jsx)(q.MarkdownRenderer,{content:i,className:"prose-compact"})]}),(0,b.jsx)(C,{attach:{kind:"task",id:a.id},label:"Open on board"})]})}function B({kind:a,id:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:v,children:[a," · ",c]}),(0,b.jsxs)("p",{className:"text-sm text-muted",children:[a," ",c," isn't in this project any more."]})]})}function C({attach:a,label:c}){return(0,b.jsxs)(k.default,{href:(0,u.attachHref)(a),className:"group inline-flex w-fit items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-txt transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent",children:[c,(0,b.jsx)(l.ArrowUpRight,{className:"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px"})]})}var D=a.i(107742);let E=a=>{let b=setInterval(a,3e4);return()=>clearInterval(b)},F=()=>6e4*Math.floor(Date.now()/6e4);function G(){let{chats:a,loaded:c,create:e,show:f,send:g,now:j}=(0,h.useChats)(),k=(0,d.useRouter)(),l=(0,d.useSearchParams)().get("id"),m=a.find(a=>a.id===l)??(l?void 0:(0,D.defaultChat)(a,j));function n(a){let b=e();f(b),a&&g(b,a)}return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H,{selectedId:m?.id??null,onNew:()=>n()}),(0,b.jsx)("section",{className:"flex min-w-0 flex-1 flex-col border-r border-border bg-bg",children:m?(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col animate-fade-in",children:(0,b.jsx)(i.ChatView,{chatId:m.id,variant:"page"})},m.id):c?(0,b.jsx)(J,{missing:!!l,onStart:n,onBack:()=>k.replace("/chat")}):null}),(0,b.jsx)("aside",{className:"hidden w-80 shrink-0 bg-surface xl:block","aria-label":"Chat context",children:(0,b.jsx)(w,{attach:m?.attach??null})})]})}function H({selectedId:a,onNew:d}){let{chats:g,now:i}=(0,h.useChats)(),[j,k]=(0,c.useState)(""),l=j.trim().toLowerCase(),m=l?g.filter(a=>a.title.toLowerCase().includes(l)||a.attach?.id.toLowerCase().includes(l)):g,n=(0,D.groupChats)(m,i),o=[{label:"Needs you",items:n.needsYou,tone:"text-amber"},{label:"Errors",items:n.errors,tone:"text-danger"},{label:"Running",items:n.running,tone:"text-accent"},{label:"Recent",items:n.recent,tone:"text-muted"}];return(0,b.jsxs)("aside",{className:"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex","aria-label":"All chats",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3 pt-4",children:[(0,b.jsx)("h1",{className:"flex-1 text-sm font-semibold text-txt",children:"Chats"}),(0,b.jsxs)("button",{type:"button",onClick:d,className:"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-accent-fg transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]",children:[(0,b.jsx)(e.Plus,{className:"size-3.5"})," New chat"]})]}),g.length>3&&(0,b.jsxs)("label",{className:"mx-3 mb-2 flex items-center gap-2 rounded-md border border-border bg-bg px-2.5 py-1.5 text-xs focus-within:border-accent/50",children:[(0,b.jsx)(f.Search,{className:"size-3.5 text-muted"}),(0,b.jsx)("input",{value:j,onChange:a=>k(a.target.value),placeholder:"Filter by title or R/T id",className:"min-w-0 flex-1 bg-transparent text-txt placeholder:text-muted focus:outline-hidden"})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-4",children:[0===g.length&&(0,b.jsx)("p",{className:"px-2 py-6 text-xs text-muted",children:"No chats yet."}),o.map(c=>c.items.length>0&&(0,b.jsxs)("div",{className:"mt-3 first:mt-1",children:[(0,b.jsxs)("p",{className:(0,t.cn)("px-2 pb-1 font-mono text-[10px] uppercase tracking-widest",c.tone),children:[c.label," · ",c.items.length]}),(0,b.jsx)("ul",{className:"flex flex-col gap-px",children:c.items.map(c=>(0,b.jsx)(I,{chat:c,active:c.id===a},c.id))})]},c.label)),l&&0===m.length&&(0,b.jsxs)("p",{className:"px-2 py-6 text-xs text-muted",children:["No chat matches “",j,"”."]})]})]})}function I({chat:a,active:d}){let{show:e,remove:f,now:i}=(0,h.useChats)(),j=(0,c.useSyncExternalStore)(E,F,()=>0),k=(0,D.shellStatus)(a,i),l=[...a.messages].reverse().find(a=>a.text)?.text.replace(/\s+/g," ").trim();return(0,b.jsxs)("li",{className:"group relative animate-slide-in",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),"aria-current":d?"true":void 0,className:(0,t.cn)("flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)",d?"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]":"hover:bg-surface2/60"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 pr-5",children:[(0,b.jsx)(u.StatusMarker,{status:k,showIdle:!0}),(0,b.jsx)("span",{className:(0,t.cn)("min-w-0 flex-1 truncate text-[13px]","idle"!==k||d?"text-txt":"text-txt/80"),children:a.title}),j>0&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0",children:(0,D.ago)(a.updatedAt,j)})]}),(a.attach||l)&&(0,b.jsxs)("span",{className:"flex items-center gap-2 pl-5 text-[11px] text-muted",children:[a.attach&&(0,b.jsx)(u.AttachLabel,{attach:a.attach,className:"shrink-0"}),l&&(0,b.jsx)("span",{className:"min-w-0 truncate",children:l})]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>f(a.id),"aria-label":`Close ${a.title}`,title:a.busy?"Stop and delete chat":"Delete chat",className:"absolute right-1.5 top-1.5 grid size-6 place-items-center rounded-md text-muted opacity-0 transition-opacity duration-(--duration-fast) hover:bg-surface hover:text-danger focus-visible:opacity-100 group-hover:opacity-100",children:(0,b.jsx)(g.X,{className:"size-3.5"})})]})}function J({missing:a,onStart:c,onBack:d}){return(0,b.jsx)("div",{className:"grid flex-1 place-items-center p-8",children:(0,b.jsxs)("div",{className:"flex max-w-md flex-col items-start gap-4 animate-fade-in",children:[(0,b.jsx)("div",{className:"grid size-10 place-items-center rounded-xl bg-linear-to-br from-accent to-teal text-white","aria-hidden":!0,children:"⬡"}),a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"This chat was deleted"}),(0,b.jsx)("button",{type:"button",onClick:d,className:"text-sm text-accent hover:underline",children:"Back to all chats"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"Run chats side by side"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted",children:"Each chat is its own Claude Code session, up to 4 at once. Start one here, or from an epic on the roadmap or a task on the board."})]}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,D.suggestions)(null).map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>c(a),className:"rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors hover:border-accent/50 hover:bg-accent/5",children:a},a))})]})]})})}a.s(["default",0,function(){return(0,b.jsx)("div",{className:"flex h-[calc(100svh-3rem)] min-h-0",children:(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(G,{})})})}],856095)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_app_%28app%29_chat_page_tsx_0c3e4l4._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/chat/ChatContextRail.tsx","../../../../src/app/%28app%29/chat/page.tsx","../../../../src/hooks/use-minute.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/link-2-off.ts"],"sourcesContent":["\"use client\"\n\nimport { displayStatus } from \"@/lib/statuses\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport Link from \"next/link\"\nimport { ArrowUpRight, Link2Off } from \"lucide-react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { useChats } from \"@/context/ChatContext\"\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\nimport { StatusChip, StatusIcon } from \"@/components/shared/StatusIcon\"\nimport { SegmentedProgress, StatusPill } from \"@/components/roadmap/RoadmapNodes\"\nimport { cn } from \"@/lib/utils\"\nimport type { Attach } from \"@/lib/chats\"\nimport type { RoadmapItem, Task, TaskStatus } from \"@/types\"\nimport { attachHref } from \"./StatusMarker\"\n\nconst KICKER = \"font-mono text-[10px] uppercase tracking-widest text-muted\"\n\n\n/** Right column of /chat: what the chat is about (epic or task), live from the board and roadmap. */\nexport function ChatContextRail({ attach }: { attach: Attach | null }) {\n const { board, rootParam } = useApp()\n const [items, setItems] = useState<RoadmapItem[]>([])\n const [reload, setReload] = useState(0)\n\n // Roadmap items: loaded here (the roadmap page keeps its own copy); refetched on roadmap SSE events\n useEffect(() => {\n let cancelled = false\n fetch(`/api/roadmap${rootParam}`)\n .then((r) => (r.ok ? r.json() : { items: [] }))\n .then((d: { items?: RoadmapItem[] }) => { if (!cancelled) setItems(d.items ?? []) })\n .catch((e) => console.warn(\"[vibedoc] could not load roadmap for the chat rail:\", e))\n return () => { cancelled = true }\n }, [rootParam, reload])\n useEffect(() => {\n const onSse = (e: Event) => {\n const type = (e as CustomEvent<{ type?: string }>).detail?.type\n if (type === \"roadmap_updated\" || type === \"task_created\") setReload((n) => n + 1)\n }\n window.addEventListener(\"vibedoc:sse\", onSse)\n return () => window.removeEventListener(\"vibedoc:sse\", onSse)\n }, [])\n\n const tasksById = useMemo(() => {\n const all = board ? Object.values(board).flat() : []\n return Object.fromEntries(all.map((t) => [t.id, t])) as Record<string, Task>\n }, [board])\n\n return (\n <div className=\"flex h-full min-h-0 flex-col overflow-y-auto\">\n <div key={attach ? `${attach.kind}:${attach.id}` : \"none\"} className=\"flex flex-col gap-5 p-5 animate-fade-in\">\n {!attach && <NoAttach />}\n {attach?.kind === \"epic\" && <EpicContext item={items.find((i) => i.id === attach.id)} id={attach.id} tasksById={tasksById} />}\n {attach?.kind === \"task\" && <TaskContext task={tasksById[attach.id]} id={attach.id} items={items} />}\n </div>\n </div>\n )\n}\n\nfunction NoAttach() {\n return (\n <>\n <p className={KICKER}>Context</p>\n <div className=\"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4\">\n <Link2Off className=\"size-4 text-muted\" />\n <p className=\"text-sm text-txt\">Not linked to an epic or task</p>\n <p className=\"text-xs leading-relaxed text-muted\">\n Open a chat from an epic on the roadmap or a task on the board, and the agent starts with that item as context.\n Its status then shows on the item.\n </p>\n </div>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>The agent can</p>\n <ul className=\"flex flex-col gap-1.5 text-xs text-muted\">\n <li>Read docs, tasks, the roadmap and memory</li>\n <li>Propose doc and task edits (you review a diff)</li>\n <li>Propose epics and task breakdowns (you accept)</li>\n <li className=\"text-muted/70\">It can't run code or edit source files</li>\n </ul>\n </div>\n </>\n )\n}\n\nfunction EpicContext({ item, id, tasksById }: { item?: RoadmapItem; id: string; tasksById: Record<string, Task> }) {\n if (!item) return <Missing kind=\"Epic\" id={id} />\n const tasks = item.tasks.map((t) => tasksById[t]).filter((t): t is Task => !!t)\n const statuses = tasks.map((t) => t.status).filter((s): s is TaskStatus => s !== \"cancelled\")\n const done = statuses.filter((s) => s === \"done\").length\n return (\n <>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>Epic · {item.id}</p>\n <h3 className=\"text-base font-semibold leading-snug text-txt\">{item.title}</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <StatusPill status={item.status} />\n {item.due && <span className=\"font-mono text-[10px] text-muted\">due {item.due}</span>}\n </div>\n </div>\n\n {statuses.length > 0 && (\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-baseline justify-between\">\n <p className={KICKER}>Progress</p>\n <span className=\"font-mono text-[10px] text-muted\">{done}/{statuses.length} tasks</span>\n </div>\n <SegmentedProgress statuses={statuses} />\n </div>\n )}\n\n {tasks.length > 0 && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Tasks</p>\n <ul className=\"-mx-2 flex flex-col\">\n {tasks.map((t) => <TaskRow key={t.id} task={t} />)}\n </ul>\n </div>\n )}\n\n {item.body.trim() && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Brief</p>\n <MarkdownRenderer content={item.body} className=\"prose-compact\" />\n </div>\n )}\n\n <OpenLink attach={{ kind: \"epic\", id: item.id }} label=\"Open in roadmap\" />\n </>\n )\n}\n\nfunction TaskRow({ task }: { task: Task }) {\n const { showAbout } = useChats()\n return (\n <li>\n <button\n type=\"button\"\n onClick={() => showAbout({ kind: \"task\", id: task.id })}\n title={`Chat about ${task.id}`}\n className=\"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors duration-(--duration-fast) hover:bg-surface2\"\n >\n <StatusIcon status={displayStatus(task)} className=\"size-3\" />\n <span className=\"shrink-0 font-mono text-[10px] text-muted\">{task.id}</span>\n <span className={cn(\"min-w-0 flex-1 truncate\", task.status === \"done\" ? \"text-muted\" : \"text-txt\")}>{task.title}</span>\n </button>\n </li>\n )\n}\n\nfunction TaskContext({ task, id, items }: { task?: Task; id: string; items: RoadmapItem[] }) {\n const { showAbout } = useChats()\n if (!task) return <Missing kind=\"Task\" id={id} />\n const epicId = task.phase.match(/^R\\d+/)?.[0]\n const epic = epicId ? items.find((i) => i.id === epicId) : undefined\n const body = task.raw?.replace(/^#.*\\n(\\*\\*[^*]+:\\*\\*.*\\n)*/, \"\").trim()\n return (\n <>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>Task · {task.id}</p>\n <h3 className=\"text-base font-semibold leading-snug text-txt\">{task.title}</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <StatusChip status={displayStatus(task)} />\n {task.size && <span className=\"font-mono text-[10px] text-muted\">{task.size}</span>}\n {task.due && <span className=\"font-mono text-[10px] text-muted\">due {task.due}</span>}\n </div>\n </div>\n\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs\">\n {epicId && (\n <>\n <dt className=\"text-muted\">Epic</dt>\n <dd className=\"min-w-0\">\n <button type=\"button\" onClick={() => showAbout({ kind: \"epic\", id: epicId })} className=\"truncate text-left text-txt hover:text-accent\" title={`Chat about ${epicId}`}>\n <span className=\"font-mono text-[10px] text-muted\">{epicId}</span> {epic?.title ?? task.phase.replace(/^R\\d+\\s*—\\s*/, \"\")}\n </button>\n </dd>\n </>\n )}\n {task.dependsOn && task.dependsOn !== \"—\" && (\n <>\n <dt className=\"text-muted\">Depends on</dt>\n <dd className=\"font-mono text-[11px] text-txt\">{task.dependsOn}</dd>\n </>\n )}\n </dl>\n\n {body && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Spec</p>\n <MarkdownRenderer content={body} className=\"prose-compact\" />\n </div>\n )}\n\n <OpenLink attach={{ kind: \"task\", id: task.id }} label=\"Open on board\" />\n </>\n )\n}\n\nfunction Missing({ kind, id }: { kind: string; id: string }) {\n return (\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>{kind} · {id}</p>\n <p className=\"text-sm text-muted\">{kind} {id} isn't in this project any more.</p>\n </div>\n )\n}\n\nfunction OpenLink({ attach, label }: { attach: Attach; label: string }) {\n return (\n <Link\n href={attachHref(attach)}\n className=\"group inline-flex w-fit items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-txt transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent\"\n >\n {label}\n <ArrowUpRight className=\"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px\" />\n </Link>\n )\n}\n","\"use client\"\n\nimport { Suspense, useState } from \"react\"\nimport { useRouter, useSearchParams } from \"next/navigation\"\nimport { Plus, Search, X } from \"lucide-react\"\nimport { useChats, type ChatTab } from \"@/context/ChatContext\"\nimport { ChatView } from \"@/components/chat/ChatView\"\nimport { ChatContextRail } from \"@/components/chat/ChatContextRail\"\nimport { AttachLabel, StatusMarker } from \"@/components/chat/StatusMarker\"\nimport { ago, defaultChat, groupChats, shellStatus, suggestions } from \"@/lib/chats\"\nimport { useMinute } from \"@/hooks/use-minute\"\nimport { cn } from \"@/lib/utils\"\n\nexport default function ChatPage() {\n // main has no fixed height; the columns need one (viewport minus the h-12 AppHeader)\n return (\n <div className=\"flex h-[calc(100svh-3rem)] min-h-0\">\n <Suspense>\n <ChatPageInner />\n </Suspense>\n </div>\n )\n}\n\nfunction ChatPageInner() {\n const { chats, loaded, create, show, send, now } = useChats()\n const router = useRouter()\n const param = useSearchParams().get(\"id\")\n const selected = chats.find((c) => c.id === param) ?? (param ? undefined : defaultChat(chats, now))\n\n function startWith(text?: string) {\n const id = create()\n show(id)\n if (text) send(id, text)\n }\n\n return (\n <>\n <ChatList selectedId={selected?.id ?? null} onNew={() => startWith()} />\n\n <section className=\"flex min-w-0 flex-1 flex-col border-r border-border bg-bg\">\n {selected ? (\n <div key={selected.id} className=\"flex min-h-0 flex-1 flex-col animate-fade-in\">\n <ChatView chatId={selected.id} variant=\"page\" />\n </div>\n ) : loaded ? (\n <NoChat\n missing={!!param}\n onStart={startWith}\n onBack={() => router.replace(\"/chat\")}\n />\n ) : null}\n </section>\n\n <aside className=\"hidden w-80 shrink-0 bg-surface xl:block\" aria-label=\"Chat context\">\n <ChatContextRail attach={selected?.attach ?? null} />\n </aside>\n </>\n )\n}\n\nfunction ChatList({ selectedId, onNew }: { selectedId: string | null; onNew: () => void }) {\n const { chats, now } = useChats()\n const [query, setQuery] = useState(\"\")\n const q = query.trim().toLowerCase()\n const shown = q ? chats.filter((c) => c.title.toLowerCase().includes(q) || c.attach?.id.toLowerCase().includes(q)) : chats\n const g = groupChats(shown, now)\n const sections = [\n { label: \"Needs you\", items: g.needsYou, tone: \"text-amber\" },\n { label: \"Errors\", items: g.errors, tone: \"text-danger\" },\n { label: \"Running\", items: g.running, tone: \"text-accent\" },\n { label: \"Recent\", items: g.recent, tone: \"text-muted\" },\n ]\n\n return (\n <aside className=\"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex\" aria-label=\"All chats\">\n <div className=\"flex items-center gap-2 px-4 pb-3 pt-4\">\n <h1 className=\"flex-1 text-sm font-semibold text-txt\">Chats</h1>\n <button\n type=\"button\"\n onClick={onNew}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-accent-fg transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]\"\n >\n <Plus className=\"size-3.5\" /> New chat\n </button>\n </div>\n {chats.length > 3 && (\n <label className=\"mx-3 mb-2 flex items-center gap-2 rounded-md border border-border bg-bg px-2.5 py-1.5 text-xs focus-within:border-accent/50\">\n <Search className=\"size-3.5 text-muted\" />\n <input\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Filter by title or R/T id\"\n className=\"min-w-0 flex-1 bg-transparent text-txt placeholder:text-muted focus:outline-hidden\"\n />\n </label>\n )}\n <div className=\"min-h-0 flex-1 overflow-y-auto px-2 pb-4\">\n {chats.length === 0 && <p className=\"px-2 py-6 text-xs text-muted\">No chats yet.</p>}\n {sections.map((s) => s.items.length > 0 && (\n <div key={s.label} className=\"mt-3 first:mt-1\">\n <p className={cn(\"px-2 pb-1 font-mono text-[10px] uppercase tracking-widest\", s.tone)}>\n {s.label} · {s.items.length}\n </p>\n <ul className=\"flex flex-col gap-px\">\n {s.items.map((c) => <ChatRow key={c.id} chat={c} active={c.id === selectedId} />)}\n </ul>\n </div>\n ))}\n {q && shown.length === 0 && <p className=\"px-2 py-6 text-xs text-muted\">No chat matches “{query}”.</p>}\n </div>\n </aside>\n )\n}\n\nfunction ChatRow({ chat, active }: { chat: ChatTab; active: boolean }) {\n const { show, remove, now: clock } = useChats()\n const now = useMinute()\n const status = shellStatus(chat, clock)\n const lastText = [...chat.messages].reverse().find((m) => m.text)?.text.replace(/\\s+/g, \" \").trim()\n return (\n <li className=\"group relative animate-slide-in\">\n <button\n type=\"button\"\n onClick={() => show(chat.id)}\n aria-current={active ? \"true\" : undefined}\n className={cn(\n \"flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)\",\n active ? \"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]\" : \"hover:bg-surface2/60\",\n )}\n >\n <span className=\"flex items-center gap-2 pr-5\">\n <StatusMarker status={status} showIdle />\n <span className={cn(\"min-w-0 flex-1 truncate text-[13px]\", status === \"idle\" && !active ? \"text-txt/80\" : \"text-txt\")}>{chat.title}</span>\n {now > 0 && <span className=\"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0\">{ago(chat.updatedAt, now)}</span>}\n </span>\n {(chat.attach || lastText) && (\n <span className=\"flex items-center gap-2 pl-5 text-[11px] text-muted\">\n {chat.attach && <AttachLabel attach={chat.attach} className=\"shrink-0\" />}\n {lastText && <span className=\"min-w-0 truncate\">{lastText}</span>}\n </span>\n )}\n </button>\n <button\n type=\"button\"\n onClick={() => remove(chat.id)}\n aria-label={`Close ${chat.title}`}\n title={chat.busy ? \"Stop and delete chat\" : \"Delete chat\"}\n className=\"absolute right-1.5 top-1.5 grid size-6 place-items-center rounded-md text-muted opacity-0 transition-opacity duration-(--duration-fast) hover:bg-surface hover:text-danger focus-visible:opacity-100 group-hover:opacity-100\"\n >\n <X className=\"size-3.5\" />\n </button>\n </li>\n )\n}\n\nfunction NoChat({ missing, onStart, onBack }: { missing: boolean; onStart: (text?: string) => void; onBack: () => void }) {\n return (\n <div className=\"grid flex-1 place-items-center p-8\">\n <div className=\"flex max-w-md flex-col items-start gap-4 animate-fade-in\">\n <div className=\"grid size-10 place-items-center rounded-xl bg-linear-to-br from-accent to-teal text-white\" aria-hidden>⬡</div>\n {missing ? (\n <>\n <h2 className=\"text-lg font-semibold text-txt\">This chat was deleted</h2>\n <button type=\"button\" onClick={onBack} className=\"text-sm text-accent hover:underline\">Back to all chats</button>\n </>\n ) : (\n <>\n <div>\n <h2 className=\"text-lg font-semibold text-txt\">Run chats side by side</h2>\n <p className=\"mt-1 text-sm text-muted\">\n Each chat is its own Claude Code session, up to 4 at once. Start one here, or from an epic on the roadmap or a task on the board.\n </p>\n </div>\n <div className=\"flex flex-col gap-1.5\">\n {suggestions(null).map((s) => (\n <button key={s} type=\"button\" onClick={() => onStart(s)} className=\"rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors hover:border-accent/50 hover:bg-accent/5\">\n {s}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n </div>\n )\n}\n","import { useSyncExternalStore } from \"react\"\n\nconst subscribe = (tick: () => void) => {\n const id = setInterval(tick, 30_000)\n return () => clearInterval(id)\n}\n// Rounded to the minute so the snapshot is stable between ticks\nconst snapshot = () => Math.floor(Date.now() / 60_000) * 60_000\n\n/** Current time in ms, updated about once a minute (for \"5m ago\" labels). 0 during server render. */\nexport function useMinute(): number {\n return useSyncExternalStore(subscribe, snapshot, () => 0)\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'link-2-off',\n size: 24,\n node: [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7', key: '10o201' }],\n ['path', { d: 'M15 7h2a5 5 0 0 1 4 8', key: '1d3206' }],\n ['line', { x1: '8', x2: '12', y1: '12', y2: '12', key: 'rvw6j4' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Link2Off\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/link-2-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Link2Off = createLucideIcon(__iconData);\n\nexport default Link2Off;\n"],"names":["x2","y2"],"mappings":"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","ignoreList":[3]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[648102,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(544394),f=a.i(210436),g=a.i(817163);function h(){let{rootParam:a,refresh:b,setEditorSettings:d,setAutoRefreshSeconds:h,autoRefreshSeconds:i}=(0,e.useApp)(),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!a)return;let b=!1;return fetch(`/api/settings${a}&type=settings`).then(a=>a.ok?a.json():g.DEFAULT_SETTINGS).then(a=>{b||((0,f.applyTheme)(a.theme),(0,f.applyAccent)(a.accentColor),(0,f.applyFontSize)(a.fontSize),(0,f.applyFonts)(a),d(a.editor),h(a.project?.autoRefresh??0))}).catch(()=>{}),()=>{b=!0}},[a]),(0,c.useEffect)(()=>(j.current&&clearInterval(j.current),i>0&&(j.current=setInterval(b,1e3*i)),()=>{j.current&&(clearInterval(j.current),j.current=null)}),[i,b]),null}function i(){return(0,b.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"flex gap-1.5 justify-center mb-4",children:[0,1,2].map(a=>(0,b.jsx)("div",{className:"w-2 h-2 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${.15*a}s`}},a))}),(0,b.jsx)("p",{className:"text-muted text-sm font-mono",children:"Loading project..."})]})})}var j=a.i(822404),k=a.i(795667),l=a.i(425404),m=a.i(60084),n=a.i(108280),o=a.i(256857);let p={name:"messages-square",size:24,node:[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]};p.node;let q=(0,o.default)(p);var r=a.i(909898),s=a.i(72551),t=a.i(685698),u=a.i(335732),v=a.i(195011),w=a.i(368114);function x({projects:a,activeProject:d,currentName:e,onSelect:f}){let[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(""),k=a.length>=6,m=i.trim().toLowerCase(),n=m?a.filter(a=>`${a.name} ${a.root}`.toLowerCase().includes(m)):a;return(0,b.jsxs)(u.DropdownMenu,{open:g,onOpenChange:a=>{h(a),a||j("")},children:[(0,b.jsx)(u.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{className:"flex h-8 items-center gap-1.5 rounded-md px-2 text-sm text-muted transition-colors hover:bg-surface2 hover:text-txt focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg",children:[(0,b.jsx)("span",{className:"max-w-[160px] truncate",children:e||"Select project"}),(0,b.jsx)(v.ChevronsUpDown,{className:"size-3.5 shrink-0 opacity-60"})]})}),(0,b.jsxs)(u.DropdownMenuContent,{className:"w-64 bg-surface border-border2 text-txt",align:"start",children:[k&&(0,b.jsx)("input",{autoFocus:!0,value:i,onChange:a=>j(a.target.value),onKeyDown:a=>{"ArrowDown"===a.key?(a.preventDefault(),a.currentTarget.parentElement?.querySelector("[role=menuitem]")?.focus()):"Enter"===a.key&&n[0]?(f(n[0].root),h(!1),j("")):1===a.key.length&&a.stopPropagation()},placeholder:"Filter projects…","aria-label":"Filter projects",className:"mb-1 h-8 w-full border-b border-border bg-transparent px-2 text-sm text-txt outline-none placeholder:text-muted"}),0===n.length?(0,b.jsx)("div",{className:"px-3 py-2 text-sm text-muted",children:a.length?`No project matches “${i.trim()}”`:"No projects found"}):n.map(a=>{var c;let e,g=a.root===d;return(0,b.jsxs)(u.DropdownMenuItem,{onClick:()=>f(a.root),title:a.root,"aria-current":g||void 0,className:(0,w.cn)("cursor-pointer hover:bg-surface2 focus:bg-surface2",g&&"text-accent"),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.name}),(0,b.jsx)("div",{className:"truncate font-mono text-[11px] text-muted",children:(e=(c=a.root).split("/").filter(Boolean)).length>2?`…/${e.slice(-2).join("/")}`:c})]}),(0,b.jsx)(l.Check,{"aria-hidden":!0,className:(0,w.cn)("size-3.5 shrink-0",!g&&"invisible")})]},a.root)})]})]})}var y=a.i(776692),z=a.i(142261);let A={name:"panel-left",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],aliases:["sidebar"]};A.node;let B=(0,o.default)(A);var C=a.i(959792),D=a.i(699570),E=a.i(866718),F=a.i(505084),G=a.i(757061);function H({className:a,...c}){return(0,b.jsx)("div",{className:(0,w.cn)("animate-pulse rounded-md bg-surface2",a),...c})}var I=a.i(785259);let J=c.createContext(null);function K(){let a=c.useContext(J);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}let L=c.forwardRef(({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:g,children:h,...i},j)=>{let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,o]=c.useState(a),p=d??n,q=c.useCallback(a=>{let b="function"==typeof a?a(p):a;e?e(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[e,p]),r=c.useCallback(()=>k?m(a=>!a):q(a=>!a),[k,q,m]);c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&!a.defaultPrevented&&!(0,C.inTextField)(a.target)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",t=c.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:r}),[s,p,q,k,l,m,r]);return(0,b.jsx)(J.Provider,{value:t,children:(0,b.jsx)(I.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...g},className:(0,w.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",f),ref:j,...i,children:h})})})});L.displayName="SidebarProvider";let M=c.forwardRef(({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...g},h)=>{let{isMobile:i,state:j,openMobile:k,setOpenMobile:l}=K();return"none"===d?(0,b.jsx)("div",{className:(0,w.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",e),ref:h,...g,children:f}):i?(0,b.jsx)(G.Sheet,{open:k,onOpenChange:l,...g,children:(0,b.jsxs)(G.SheetContent,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,b.jsxs)(G.SheetHeader,{className:"sr-only",children:[(0,b.jsx)(G.SheetTitle,{children:"Sidebar"}),(0,b.jsx)(G.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{ref:h,className:"group peer hidden text-sidebar-foreground md:block","data-state":j,"data-collapsible":"collapsed"===j?d:"","data-variant":c,"data-side":a,children:[(0,b.jsx)("div",{className:(0,w.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{className:(0,w.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)","floating"===c||"inset"===c?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",e),...g,children:(0,b.jsx)("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:f})})]})});M.displayName="Sidebar";let N=c.forwardRef(({className:a,onClick:c,...d},e)=>{let{toggleSidebar:f}=K();return(0,b.jsxs)(D.Button,{ref:e,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:(0,w.cn)("h-7 w-7",a),onClick:a=>{c?.(a),f()},...d,children:[(0,b.jsx)(B,{}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})});N.displayName="SidebarTrigger",c.forwardRef(({className:a,...c},d)=>{let{toggleSidebar:e}=K();return(0,b.jsx)("button",{ref:d,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:e,title:"Toggle Sidebar",className:(0,w.cn)("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-[translate,background-color] ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...c})}).displayName="SidebarRail";let O=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,className:(0,w.cn)("relative flex w-full flex-1 flex-col bg-bg","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",a),...c}));O.displayName="SidebarInset",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Input,{ref:d,"data-sidebar":"input",className:(0,w.cn)("h-8 w-full bg-bg shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...c})).displayName="SidebarInput";let P=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"header",className:(0,w.cn)("flex flex-col gap-2 p-2",a),...c}));P.displayName="SidebarHeader";let Q=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"footer",className:(0,w.cn)("flex flex-col gap-2 p-2",a),...c}));Q.displayName="SidebarFooter",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(F.Separator,{ref:d,"data-sidebar":"separator",className:(0,w.cn)("mx-2 w-auto bg-sidebar-border",a),...c})).displayName="SidebarSeparator";let R=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"content",className:(0,w.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c}));R.displayName="SidebarContent";let S=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"group",className:(0,w.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c}));S.displayName="SidebarGroup";let T=c.forwardRef(({className:a,asChild:c=!1,...d},e)=>{let f=c?y.Slot:"div";return(0,b.jsx)(f,{ref:e,"data-sidebar":"group-label",className:(0,w.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...d})});T.displayName="SidebarGroupLabel";let U=c.forwardRef(({className:a,asChild:c=!1,...d},e)=>{let f=c?y.Slot:"button";return(0,b.jsx)(f,{ref:e,"data-sidebar":"group-action",className:(0,w.cn)("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","group-data-[collapsible=icon]:hidden",a),...d})});U.displayName="SidebarGroupAction";let V=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"group-content",className:(0,w.cn)("w-full text-sm",a),...c}));V.displayName="SidebarGroupContent";let W=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("ul",{ref:d,"data-sidebar":"menu",className:(0,w.cn)("flex w-full min-w-0 flex-col gap-1",a),...c}));W.displayName="SidebarMenu";let X=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("li",{ref:d,"data-sidebar":"menu-item",className:(0,w.cn)("group/menu-item relative",a),...c}));X.displayName="SidebarMenuItem";let Y=(0,z.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-bg shadow-[0_0_0_1px_rgb(var(--rgb-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_rgb(var(--rgb-surface2))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}}),Z=c.forwardRef(({asChild:a=!1,isActive:c=!1,variant:d="default",size:e="default",tooltip:f,className:g,...h},i)=>{let j=a?y.Slot:"button",{isMobile:k,state:l}=K(),m=(0,b.jsx)(j,{ref:i,"data-sidebar":"menu-button","data-size":e,"data-active":c,className:(0,w.cn)(Y({variant:d,size:e}),g),...h});return f?("string"==typeof f&&(f={children:f}),(0,b.jsxs)(I.Tooltip,{children:[(0,b.jsx)(I.TooltipTrigger,{asChild:!0,children:m}),(0,b.jsx)(I.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==l||k,...f})]})):m});Z.displayName="SidebarMenuButton";let $=c.forwardRef(({className:a,asChild:c=!1,showOnHover:d=!1,...e},f)=>{let g=c?y.Slot:"button";return(0,b.jsx)(g,{ref:f,"data-sidebar":"menu-action",className:(0,w.cn)("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",d&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",a),...e})});$.displayName="SidebarMenuAction",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"menu-badge",className:(0,w.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...c})).displayName="SidebarMenuBadge",c.forwardRef(({className:a,showIcon:d=!1,...e},f)=>{let g=c.useMemo(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,b.jsxs)("div",{ref:f,"data-sidebar":"menu-skeleton",className:(0,w.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),...e,children:[d&&(0,b.jsx)(H,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,b.jsx)(H,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":g}})]})}).displayName="SidebarMenuSkeleton",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("ul",{ref:d,"data-sidebar":"menu-sub",className:(0,w.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...c})).displayName="SidebarMenuSub",c.forwardRef(({...a},c)=>(0,b.jsx)("li",{ref:c,...a})).displayName="SidebarMenuSubItem",c.forwardRef(({asChild:a=!1,size:c="md",isActive:d,className:e,...f},g)=>{let h=a?y.Slot:"a";return(0,b.jsx)(h,{ref:g,"data-sidebar":"menu-sub-button","data-size":c,"data-active":d,className:(0,w.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground","sm"===c&&"text-xs","md"===c&&"text-sm","group-data-[collapsible=icon]:hidden",e),...f})}).displayName="SidebarMenuSubButton";var _=a.i(689101),aa=a.i(107742),ab=a.i(376847);let ac={"/board":"Board","/roadmap":"Roadmap","/docs":"Docs","/activity":"Activity","/memory":"Memory","/manual-tests":"Manual tests","/explorer":"Explorer","/settings":"Settings","/chat":"Chats"},ad="focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg";function ae({summary:a,projects:c,activeProject:f,liveIndicator:g,onProjectChange:h,onToggleChat:i,onOpenSearch:j}){let k=(0,d.usePathname)(),l=Object.entries(ac).find(([a])=>k.startsWith(a))?.[1],{activity:m}=(0,e.useApp)(),{now:n}=(0,t.useChats)();return(0,b.jsxs)("header",{className:"sticky top-0 z-50 flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface/80 px-3 backdrop-blur-xs sm:px-4",children:[(0,b.jsx)(N,{className:"-ml-1 text-muted hover:text-txt"}),(0,b.jsx)("span",{className:"mx-1 h-4 w-px bg-border","aria-hidden":!0}),(0,b.jsxs)("nav",{"aria-label":"Location",className:"flex min-w-0 items-center gap-1.5 text-sm [&_button]:min-w-0 max-sm:[&_button>span]:max-w-20",children:[(0,b.jsx)(x,{projects:c,activeProject:f,currentName:a?.name||"",onSelect:h}),l&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted","aria-hidden":!0,children:"/"}),(0,b.jsx)("span",{className:"shrink-0 font-medium text-txt",children:l})]})]}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(ag,{liveIndicator:g,activity:m,now:n}),(0,b.jsxs)("button",{type:"button",onClick:j,className:(0,w.cn)("flex h-8 items-center gap-2 rounded-md border border-border bg-bg/60 px-2 text-xs text-muted transition-colors hover:border-border2 hover:text-txt sm:w-48 sm:px-2.5",ad),children:[(0,b.jsx)(s.Search,{className:"size-3.5"}),(0,b.jsx)("span",{className:"hidden flex-1 text-left sm:inline",children:"Search…"}),(0,b.jsx)("kbd",{className:"hidden rounded-sm border border-border px-1 font-mono text-[10px] sm:inline",children:"⌘K"}),(0,b.jsx)("span",{className:"sr-only sm:hidden",children:"Search"})]}),(0,b.jsx)(ah,{activity:m,now:n}),(0,b.jsxs)("button",{type:"button",onClick:i,title:"Chats (c)","aria-label":"Chats (c)",className:(0,w.cn)("flex h-8 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs text-muted transition-colors hover:border-border2 hover:text-txt",ad),children:[(0,b.jsx)(q,{className:"size-3.5","aria-hidden":!0}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"Chats"})]})]})}let af=(a,b)=>`${a} ${b}${1===a?"":"s"}`;function ag({liveIndicator:a,activity:c,now:f}){let{connection:g}=(0,e.useApp)(),{runningCount:h,waitingCount:i,errorCount:j,queue:l,show:m}=(0,t.useChats)(),o=(0,d.useRouter)(),p=(0,ab.groupSessions)(c).filter(a=>"ai"===a.actor&&(0,ab.isLive)(a,f)).length,q="disconnected"===g,r=q?"Reconnecting…":"live"===g?"Connected":"Connecting",s=[r,p&&`${af(p,"agent")} working`,h&&`${h} ${1===h?"chat":"chats"} running`,i&&`${i} need you`,j&&`${af(j,"chat error")}`].filter(Boolean).join(" · "),u=`${s} — ${l[0]?"open next in queue":"open Chats"}`,v=[i&&`${i} ${1===i?"chat needs":"chats need"} you`,j&&af(j,"chat error")].filter(Boolean).join(", "),x=[["agents",p>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.Bot,{"aria-hidden":!0,className:"size-3 text-txt motion-safe:animate-pulse-dot"}),(0,b.jsxs)("span",{className:"text-txt",children:[p,(0,b.jsxs)("span",{className:"max-sm:sr-only",children:[" ",1===p?"agent":"agents"," working"]})]})]})],["running",h>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Loader2,{"aria-hidden":!0,className:"size-3 animate-spin text-accent"}),h," running"]})],["waiting",i>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"size-1.5 rounded-full bg-amber animate-pulse-dot"}),(0,b.jsxs)("span",{className:"text-txt",children:[i,(0,b.jsx)("span",{className:"max-sm:sr-only",children:" need you"})]})]})],["errors",j>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"size-1.5 rounded-full bg-danger"}),(0,b.jsxs)("span",{className:"text-txt",children:[j,(0,b.jsxs)("span",{className:"max-sm:sr-only",children:[" ",1===j?"error":"errors"]})]})]})]].filter(([,a])=>a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{id:"agent-status",type:"button",onClick:()=>l[0]?m(l[0].id):o.push("/chat"),title:u,"aria-label":u,className:(0,w.cn)("flex h-8 min-w-0 items-center gap-1.5 overflow-hidden whitespace-nowrap rounded-md px-1.5 font-mono text-[11px] text-muted transition-colors duration-(--duration-fast) hover:bg-surface2 hover:text-txt",ad),children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,w.cn)("size-1.5 shrink-0 rounded-full transition-colors duration-(--duration-slow)",q?"bg-amber":"live"===g?a?"bg-txt":"bg-muted":"border border-muted")}),q&&(0,b.jsx)("span",{className:"text-txt max-sm:sr-only",children:r}),x.map(([a,c],d)=>(0,b.jsxs)("span",{className:(0,w.cn)("flex items-center gap-1","running"===a&&"max-sm:hidden"),children:[(d>0||q)&&(0,b.jsx)("span",{"aria-hidden":!0,className:(0,w.cn)("text-muted",x.slice(0,d).every(([a])=>"running"===a)&&"max-sm:hidden"),children:"·"}),c]},a))]}),(0,b.jsx)("span",{"aria-live":"polite",className:"sr-only",children:v})]})}function ah({activity:a,now:d}){let e=`${(0,_.useOrigin)()}/api/mcp`,f=`claude mcp add --transport http vibedoc ${e}`,[g,h]=(0,c.useState)(null),i=a.filter(a=>"ai"===a.actor).reduce((a,b)=>!a||b.timestamp>a?b.timestamp:a,null),k=i&&(0,aa.ago)(i,d);async function n(a){try{await navigator.clipboard.writeText(a),h(a),setTimeout(()=>h(null),1500)}catch(a){console.warn("[vibedoc] could not copy:",a)}}let o=(a,c)=>(0,b.jsxs)(u.DropdownMenuItem,{onSelect:b=>{b.preventDefault(),n(a)},className:"mt-2 items-start gap-1 rounded-md border border-border bg-bg px-2 py-1.5 focus:border-border2 [&_svg]:size-3.5",children:[(0,b.jsxs)("span",{className:"sr-only",children:[c,": "]}),(0,b.jsx)("code",{className:"min-w-0 flex-1 break-all font-mono text-xs text-accent",children:a}),(0,b.jsx)("span",{"aria-hidden":!0,className:"grid size-5 place-items-center text-muted",children:g===a?(0,b.jsx)(l.Check,{className:"text-teal"}):(0,b.jsx)(m.Copy,{})})]});return(0,b.jsxs)(u.DropdownMenu,{children:[(0,b.jsx)(u.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",title:"Connect an AI agent (MCP)",className:(0,w.cn)("flex h-8 items-center gap-1.5 rounded-md border border-border px-2 text-xs text-muted transition-colors hover:border-border2 hover:text-txt md:px-2.5",ad),children:[(0,b.jsx)(r.Plug,{"aria-hidden":!0,className:"size-3.5"}),(0,b.jsx)("span",{className:"max-md:sr-only",children:"Connect"})]})}),(0,b.jsxs)(u.DropdownMenuContent,{align:"end",className:"w-80 max-w-[calc(100vw-1.5rem)] border-border2 bg-surface p-3 text-txt",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:"Connect your AI agent"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted",children:"Add this MCP endpoint to Claude Code, Cursor or Windsurf. The board updates live as the agent works."}),o(e,"Copy endpoint"),o(f,"Copy claude mcp add command"),(0,b.jsxs)("p",{className:"mt-3 font-mono text-[11px] text-muted",children:["Last agent call: ",k?"now"===k?"just now":`${k} ago`:"none yet"]}),(0,b.jsx)(u.DropdownMenuItem,{asChild:!0,className:"mt-1 -mx-2 text-xs text-muted focus:text-txt",children:(0,b.jsxs)(j.default,{href:"/settings",children:["Agent configs and connection test in ",(0,b.jsx)("span",{className:"text-accent",children:"Settings → MCP"})]})})]})]})}let ai={name:"layout-dashboard",size:24,node:[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]};ai.node;let aj=(0,o.default)(ai);var ak=a.i(508817),al=a.i(879136),am=a.i(842717),an=a.i(966420);let ao={name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]};ao.node;let ap=(0,o.default)(ao);var aq=a.i(899593),ar=a.i(270923);let as={name:"hexagon",size:24,node:[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]]};as.node;let at=(0,o.default)(as),au={name:"keyboard",size:24,node:[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]};au.node;let av=(0,o.default)(au);var aw=a.i(200382),ax=a.i(54165),ay=a.i(598984);let az=(0,C.shortcutFor)("/chat"),aA="rounded-sm border border-border bg-surface2 px-1 font-mono text-[10px] leading-4 text-muted";function aB(){return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(aC,{})})}function aC(){let{chats:a,loaded:c,modalId:e,show:f,create:g,dismiss:h,waitingCount:i,runningCount:k,errorCount:l,now:m}=(0,t.useChats)(),o=(0,d.usePathname)(),p=(0,d.useSearchParams)().get("id"),r=(0,aa.groupChats)(a,m),s=[...r.needsYou,...r.errors,...r.running,...r.recent.slice(0,4)],u=a.length-s.length,v=[k&&`${k} running`,i&&`${i} waiting for you`,l&&`${l} with an error`].filter(Boolean).join(" · "),x=v?`Chats \xb7 ${v}`:"Chats";return(0,b.jsxs)(S,{role:"group","aria-label":"Chats",children:[(0,b.jsx)(T,{children:"Chats"}),(0,b.jsxs)(U,{title:"New chat",onClick:()=>f(g()),children:[(0,b.jsx)(aw.Plus,{}),(0,b.jsx)("span",{className:"sr-only",children:"New chat"})]}),(0,b.jsx)(V,{children:(0,b.jsxs)(W,{children:[(0,b.jsx)(X,{className:"hidden group-data-[collapsible=icon]:block",children:(0,b.jsx)(Z,{asChild:!0,tooltip:{children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[x,az&&(0,b.jsx)("kbd",{className:aA,children:az})]})},isActive:"/chat"===o,children:(0,b.jsxs)(j.default,{href:"/chat","aria-keyshortcuts":az,className:"relative",children:[k>0?(0,b.jsx)(n.Loader2,{className:"animate-spin text-accent"}):(0,b.jsx)(q,{}),(0,b.jsx)("span",{children:x}),i>0&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute right-1 top-1 size-1.5 rounded-full bg-amber animate-pulse-dot"}),l>0&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute bottom-1 right-1 size-1.5 rounded-full bg-danger"})]})})}),c&&0===a.length&&(0,b.jsx)(X,{className:"group-data-[collapsible=icon]:hidden",children:(0,b.jsxs)(Z,{onClick:()=>f(g()),className:"text-muted",children:[(0,b.jsx)(q,{}),(0,b.jsx)("span",{children:"Start a chat"})]})}),s.map(a=>{let c,d=(0,aa.shellStatus)(a,m),g=(0,aa.isActionableError)(a,m);return(0,b.jsxs)(X,{className:"group-data-[collapsible=icon]:hidden animate-slide-in",children:[(0,b.jsxs)(Z,{onClick:()=>f(a.id),isActive:e===(c=a.id)||"/chat"===o&&p===c,className:(0,w.cn)("h-8","idle"===d&&"text-muted",g&&"pr-8"),title:a.title,children:[(0,b.jsx)(ay.StatusMarker,{status:d,showIdle:!0}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.title}),g&&(0,b.jsx)("span",{"aria-hidden":!0,className:"shrink-0 font-mono text-[10px] text-danger",children:"error"}),a.attach&&!a.title.includes(a.attach.id)&&(0,b.jsx)(ay.AttachLabel,{attach:a.attach,className:"shrink-0 text-muted"})]}),g&&(0,b.jsxs)($,{title:"Dismiss error",onClick:()=>h(a.id),className:"text-muted hover:text-txt",children:[(0,b.jsx)(ax.X,{}),(0,b.jsxs)("span",{className:"sr-only",children:["Dismiss error in ",a.title]})]})]},a.id)}),a.length>0&&(0,b.jsx)(X,{className:"group-data-[collapsible=icon]:hidden",children:(0,b.jsx)(Z,{asChild:!0,isActive:"/chat"===o&&!p,className:"h-7 text-xs text-muted",children:(0,b.jsxs)(j.default,{href:"/chat","aria-keyshortcuts":az,children:[(0,b.jsx)(q,{}),(0,b.jsx)("span",{children:u>0?`All chats \xb7 ${a.length}`:"All chats"}),az&&(0,b.jsx)("kbd",{"aria-hidden":!0,className:(0,w.cn)(aA,"ml-auto hidden group-hover/menu-item:inline group-focus-within/menu-item:inline"),children:az})]})})})]})})]})}let aD=[{label:"Plan & supervise",items:[{href:"/board",icon:aj,label:"Board"},{href:"/roadmap",icon:aq.Map,label:"Roadmap"},{href:"/manual-tests",icon:ar.FlaskConical,label:"Manual tests"},{href:"/activity",icon:al.Zap,label:"Activity"}]},{label:"Reference",items:[{href:"/docs",icon:ak.BookOpen,label:"Docs"},{href:"/memory",icon:am.Brain,label:"Memory"},{href:"/explorer",icon:ap,label:"Explorer"}]}],aE="rounded-sm border border-border bg-surface2 px-1 font-mono text-[10px] leading-4 text-muted";function aF(){window.dispatchEvent(new KeyboardEvent("keydown",{key:"?"}))}function aG({board:a}){let c=(0,d.usePathname)(),e=(0,C.shortcutFor)("/settings"),f=a?Object.values(a).flat().reduce((a,b)=>a+(b.manualTests?b.manualTests.total-b.manualTests.done:0),0):0,g={"/board":{n:a?a["in-progress"].length+a.review.length:0,label:"in progress or in review"},"/manual-tests":{n:f,label:"unticked"}};return(0,b.jsxs)(M,{collapsible:"icon",children:[(0,b.jsx)(P,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1",children:[(0,b.jsx)("div",{"aria-hidden":!0,className:"grid size-6 shrink-0 place-items-center rounded-md bg-accent text-accent-fg",children:(0,b.jsx)(at,{className:"size-3.5",strokeWidth:2.5})}),(0,b.jsx)("span",{className:"text-sm font-semibold tracking-tight text-txt group-data-[collapsible=icon]:hidden",children:"VibeDoc"})]})}),(0,b.jsxs)(R,{children:[(0,b.jsx)(aB,{}),aD.map(a=>(0,b.jsxs)(S,{children:[(0,b.jsx)(T,{children:a.label}),(0,b.jsx)(V,{children:(0,b.jsx)(W,{children:a.items.map(({href:a,icon:d,label:e})=>{let f=(0,C.shortcutFor)(a),h=g[a];return(0,b.jsx)(X,{children:(0,b.jsx)(Z,{asChild:!0,isActive:c.startsWith(a),tooltip:{children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[e,f&&(0,b.jsx)("kbd",{className:aE,children:f})]})},children:(0,b.jsxs)(j.default,{href:a,"aria-keyshortcuts":f,children:[(0,b.jsx)(d,{}),(0,b.jsx)("span",{children:e}),h?.n>0&&(0,b.jsxs)("span",{className:"ml-auto font-mono text-[10px] tabular-nums text-muted",children:[h.n,(0,b.jsxs)("span",{className:"sr-only",children:[" ",h.label]})]}),f&&(0,b.jsx)("kbd",{"aria-hidden":!0,className:(0,w.cn)(aE,!(h?.n>0)&&"ml-auto","hidden group-hover/menu-item:inline group-focus-within/menu-item:inline"),children:f})]})})},a)})})})]},a.label))]}),(0,b.jsx)(Q,{children:(0,b.jsxs)(W,{children:[(0,b.jsx)(X,{children:(0,b.jsxs)(Z,{onClick:aF,"aria-keyshortcuts":"?",tooltip:"Keyboard shortcuts (?)",className:"text-muted",children:[(0,b.jsx)(av,{}),(0,b.jsx)("span",{children:"Shortcuts"}),(0,b.jsx)("kbd",{"aria-hidden":!0,className:(0,w.cn)(aE,"ml-auto"),children:"?"})]})}),(0,b.jsx)(X,{children:(0,b.jsx)(Z,{asChild:!0,isActive:c.startsWith("/settings"),tooltip:{children:(0,b.jsxs)("span",{className:"flex items-center gap-2",children:["Settings",(0,b.jsx)("kbd",{className:aE,children:e})]})},children:(0,b.jsxs)(j.default,{href:"/settings","aria-keyshortcuts":e,children:[(0,b.jsx)(an.Settings,{}),(0,b.jsx)("span",{children:"Settings"}),(0,b.jsx)("kbd",{"aria-hidden":!0,className:(0,w.cn)(aE,"ml-auto hidden group-hover/menu-item:inline group-focus-within/menu-item:inline"),children:e})]})})})]})})]})}var aH=a.i(228705),aI=a.i(192676),aJ=a.i(926128);let aK={name:"message-square-plus",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]};aK.node;let aL=(0,o.default)(aK),aM={name:"sun-moon",size:24,node:[["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",key:"xlf6rm"}],["path",{d:"M16 12a4 4 0 0 0-4-4",key:"6vsxu"}],["path",{d:"m19 5-1.256 1.256",key:"1yg6a6"}],["path",{d:"M20 12h2",key:"1q8mjw"}]]};aM.node;let aN=(0,o.default)(aM);var aO=a.i(769242);let aP=/[/\-_. ]/;function aQ(a,b,c){return b.map(b=>({item:b,path:c(b),score:function(a,b){let c=a.toLowerCase().replace(/\s+/g,"");if(!c)return 0;let d=b.toLowerCase(),e=null;for(let a=d.indexOf(c[0]);-1!==a;a=d.indexOf(c[0],a+1)){let b=function(a,b,c){let d=b.lastIndexOf("/")+1,e=0,f=0,g=-2;for(let h=c;h<b.length&&f<a.length;h++)b[h]===a[f]&&(e+=1,h===g+1&&(e+=5),(0===h||aP.test(b[h-1]))&&(e+=8),h>=d&&(e+=3),g=h,f++);return f===a.length?e:null}(c,d,a);null!==b&&(null===e||b>e)&&(e=b)}return e}(a,c(b))})).filter(a=>null!==a.score).sort((a,b)=>b.score-a.score||a.path.length-b.path.length).map(a=>a.item)}var aR=a.i(173628),aS=a.i(814574),aT=a.i(890728),aU=a.i(147758);let aV=[{href:"/chat",label:"Chats",icon:k.Bot},{href:"/board",label:"Board",icon:aj},{href:"/roadmap",label:"Roadmap",icon:aq.Map},{href:"/docs",label:"Docs",icon:ak.BookOpen},{href:"/activity",label:"Activity",icon:aI.Activity},{href:"/memory",label:"Memory",icon:am.Brain},{href:"/manual-tests",label:"Manual tests",icon:ar.FlaskConical},{href:"/explorer",label:"Explorer",icon:ap},{href:"/settings",label:"Settings",icon:an.Settings}],aW=a=>(0,b.jsx)(a,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0});function aX({open:a,onClose:f,onOpenDoc:g,onNewDoc:h,onQuickOpen:i,onShowHelp:j,rootParam:k}){let l=(0,d.useRouter)(),{board:m,projects:n,activeProject:o,onProjectChange:p}=(0,e.useApp)(),{chats:q,queue:r,now:u,show:v,create:x}=(0,t.useChats)(),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(0),[D,E]=(0,c.useState)(null),[F,G]=(0,c.useState)([]),H=(0,c.useRef)(null),I=(0,aT.useCurrentItemCommands)(),[J,K]=(0,c.useState)(a);a!==J&&(K(a),a&&(z(""),B(0),E(null))),(0,c.useEffect)(()=>{if(!a)return;let b=!1;return fetch(`/api/roadmap${k}`).then(a=>a.ok?a.json():{items:[]}).then(a=>{b||G((a.items??[]).filter(a=>a.parent))}).catch(a=>console.warn("[vibedoc] palette could not load the roadmap:",a)),()=>{b=!0}},[a,k]);let L=y.trim();(0,c.useEffect)(()=>{if(L.length<2)return;let a=setTimeout(async()=>{try{let a=await fetch(`/api/docs${k}&q=${encodeURIComponent(L)}`);if(!a.ok)throw Error(`HTTP ${a.status}`);let b=await a.json();E({query:L,status:"done",files:b.results?.map(a=>a.file)??[]})}catch(a){console.warn("[vibedoc] doc search failed:",a),E({query:L,status:"error",files:[]})}},300);return()=>clearTimeout(a)},[L,k]);let M=(0,c.useMemo)(()=>{let a=a=>()=>{l.push(a),f()},c=(a,b)=>L?aQ(L,a,b).slice(0,6):a,d=[],e=[];if(I)for(let a of c(I.commands,a=>a.label))d.push({id:`item-cmd-${a.action}`,group:I.title,label:a.label,lead:aW(al.Zap),kbd:(0,aT.itemKeyLabel)(a.action),run:()=>{f(),a.run()}});if(L){let c=[...(m?Object.values(m).flat():[]).map(a=>({id:a.id,title:a.title,lead:(0,b.jsx)(aR.StatusIcon,{status:(0,aU.displayStatus)(a)}),href:(0,ay.attachHref)({kind:"task",id:a.id})})),...F.map(a=>({id:a.id,title:a.title,lead:aW(aq.Map),href:(0,ay.attachHref)({kind:"epic",id:a.id})}))],d=L.toLowerCase(),f=c.filter(a=>a.id.toLowerCase().startsWith(d)).sort((a,b)=>a.id.length-b.id.length);for(let b of(f.length?f:aQ(L,c,a=>a.title)).slice(0,6))e.push({id:`item-${b.id}`,group:"Tasks & epics",label:b.title,code:b.id,lead:b.lead,run:a(b.href)})}let s=/^[TR]\d/i.test(L);s&&d.push(...e);let t=(0,aa.groupChats)(q,u),w=[...r,...t.running];for(let a of c(L?q:w.length?w:t.recent.slice(0,3),a=>`${a.attach?.id??""} ${a.title}`))d.push({id:`chat-${a.id}`,group:"Chats",label:a.title,code:a.attach?.id,lead:(0,b.jsx)(ay.StatusMarker,{status:(0,aa.shellStatus)(a,u),showIdle:!0}),run:()=>{v(a.id),f()}});for(let b of(s||d.push(...e),c(aV,a=>a.label)))d.push({id:`page-${b.href}`,group:"Navigate",label:b.label,lead:aW(b.icon),kbd:(0,C.shortcutFor)(b.href),run:a(b.href)});let y=[{id:"new-chat",group:"Actions",label:"New chat",lead:aW(aL),run:()=>{v(x()),f()}},{id:"new-doc",group:"Actions",label:"New doc",lead:aW(aH.FilePlus),run:()=>{h?.(),f()}},{id:"go-file",group:"Actions",label:"Go to file",lead:aW(aJ.FileText),kbd:"⌘P",run:i},{id:"theme",group:"Actions",label:"Toggle light / dark theme",lead:aW(aN),run:()=>{aY(k),f()}},{id:"help",group:"Actions",label:"Keyboard shortcuts",lead:aW(av),kbd:"?",run:j},...(L?n.filter(a=>a.root!==o):[]).map(a=>({id:`project-${a.root}`,group:"Actions",label:`Switch project: ${a.name}`,detail:a.root,lead:aW(aO.FolderOpen),run:()=>{p(a.root),f()}}))];if(d.push(...c(y,a=>a.label)),L.length>=2&&D?.query===L)for(let a of D.files.filter(a=>!/^plans\/(tasks|roadmap)\//.test(a)).slice(0,6)){let b=a.lastIndexOf("/");d.push({id:`doc-${a}`,group:"Docs",label:a.slice(b+1).replace(/\.md$/,""),detail:b>0?a.slice(0,b):void 0,lead:aW(aJ.FileText),run:()=>{g(a),f()}})}return d},[L,I,q,r,u,m,F,n,o,D,l,f,v,x,h,i,j,g,p,k]),N=Math.max(0,Math.min(A,M.length-1)),O=M.reduce((a,b,c)=>{let d=a[a.length-1];return d?.group===b.group?d.items.push(b):a.push({group:b.group,start:c,items:[b]}),a},[]),P=L.length>=2&&D?.query!==L,Q=L.length>=2&&D?.query===L&&"error"===D.status;return(0,c.useEffect)(()=>{H.current?.querySelector(`[data-index="${N}"]`)?.scrollIntoView({block:"nearest"})},[N]),(0,b.jsx)(aS.Dialog,{open:a,onOpenChange:a=>{a||f()},children:(0,b.jsxs)(aS.DialogContent,{className:"max-w-lg p-0 overflow-hidden bg-surface border-border gap-0 top-[20%] translate-y-0",children:[(0,b.jsx)(aS.DialogTitle,{className:"sr-only",children:"Command palette"}),(0,b.jsxs)("div",{className:"flex items-center gap-3 px-4 h-11 border-b border-border",children:[(0,b.jsx)(s.Search,{className:"size-4 text-muted shrink-0","aria-hidden":!0}),(0,b.jsx)("input",{autoFocus:!0,role:"combobox","aria-expanded":M.length>0,"aria-controls":"cmd-list","aria-autocomplete":"list","aria-activedescendant":M[N]?`cmd-${N}`:void 0,value:y,onChange:a=>{z(a.target.value),B(0)},onKeyDown:function(a){"ArrowDown"===a.key?(a.preventDefault(),B(Math.min(N+1,M.length-1))):"ArrowUp"===a.key?(a.preventDefault(),B(Math.max(N-1,0))):"Enter"===a.key&&(a.preventDefault(),M[N]?.run())},placeholder:"Search tasks, epics, chats, docs…",className:"h-full flex-1 bg-transparent text-sm text-txt outline-none placeholder:text-muted"})]}),(0,b.jsxs)("div",{ref:H,id:"cmd-list",role:"listbox","aria-label":"Results",className:"max-h-80 overflow-y-auto py-1",children:[O.map(({group:a,start:c,items:d})=>(0,b.jsxs)("div",{role:"group","aria-labelledby":`cmd-g-${c}`,children:[(0,b.jsx)("div",{id:`cmd-g-${c}`,role:"presentation",className:"px-4 pt-2 pb-1 font-mono text-[10px] uppercase tracking-[0.06em] text-muted",children:a}),d.map((a,d)=>{let e=c+d;return(0,b.jsxs)("div",{id:`cmd-${e}`,"data-index":e,role:"option","aria-selected":e===N,onClick:a.run,onMouseMove:()=>B(e),className:(0,w.cn)("flex items-center gap-2.5 w-full px-4 py-1.5 text-[13px] cursor-pointer transition-colors duration-[var(--duration-fast)]",e===N?"bg-accent/10 text-txt":"text-muted"),children:[a.lead,a.code&&(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted shrink-0",children:a.code}),(0,b.jsx)("span",{className:"truncate text-txt",children:a.label}),a.detail&&(0,b.jsx)("span",{className:"truncate text-[11px] text-muted",children:a.detail}),a.kbd&&(0,b.jsx)("kbd",{className:"ml-auto shrink-0 rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:a.kbd})]},a.id)})]},`${a}-${c}`)),P&&(0,b.jsx)("div",{className:"px-4 py-1.5 text-[11px] text-muted",children:"Searching docs…"}),Q&&(0,b.jsx)("div",{role:"alert",className:"px-4 py-1.5 text-[11px] text-danger",children:"Search failed. Check the server and try again."}),0===M.length&&!P&&!Q&&(0,b.jsxs)("div",{className:"px-4 py-6 text-center text-[13px] text-muted",children:["Nothing matches “",L,"”"]})]})]})})}async function aY(a){try{let b=await fetch(`/api/settings${a}&type=settings`);if(!b.ok)throw Error(`HTTP ${b.status}`);let c={...g.DEFAULT_SETTINGS,...await b.json()};c.theme=document.documentElement.classList.contains("dark")?"light":"dark",(0,f.applyTheme)(c.theme),await fetch(`/api/settings${a}&type=settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(a){console.warn("[vibedoc] could not save the theme:",a)}}function aZ({open:a,onClose:d,onOpenDoc:e,rootParam:f}){let[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(0),m=(0,c.useRef)(null),[n,o]=(0,c.useState)(a);a!==n&&(o(a),a&&(j(""),l(0))),(0,c.useEffect)(()=>{a&&fetch(`/api/docs${f}`).then(a=>a.json()).then(a=>h(Array.isArray(a)?a:[])).catch(()=>h([]))},[a,f]);let p=(0,c.useMemo)(()=>aQ(i,g,a=>a.path),[i,g]),q=p.slice(0,50);function r(a){a&&(e(a.path),d())}return(0,c.useEffect)(()=>{m.current?.querySelector(`[data-index="${k}"]`)?.scrollIntoView({block:"nearest"})},[k]),(0,b.jsx)(aS.Dialog,{open:a,onOpenChange:a=>{a||d()},children:(0,b.jsxs)(aS.DialogContent,{className:"max-w-xl p-0 overflow-hidden bg-surface border-border gap-0 top-[20%] translate-y-0",children:[(0,b.jsx)(aS.DialogTitle,{className:"sr-only",children:"Go to file"}),(0,b.jsx)(E.Input,{autoFocus:!0,role:"combobox","aria-expanded":q.length>0,"aria-controls":"quick-open-list","aria-autocomplete":"list","aria-activedescendant":q[k]?`quick-open-${k}`:void 0,value:i,onChange:a=>{j(a.target.value),l(0)},onKeyDown:function(a){"ArrowDown"===a.key||a.ctrlKey&&"n"===a.key?(a.preventDefault(),l(a=>Math.min(a+1,q.length-1))):"ArrowUp"===a.key||a.ctrlKey&&"p"===a.key?(a.preventDefault(),l(a=>Math.max(a-1,0))):"Enter"===a.key&&(a.preventDefault(),r(q[k]))},placeholder:"Go to file…",className:"h-11 rounded-none border-0 border-b border-border bg-transparent px-4 text-sm shadow-none focus-visible:ring-0 placeholder:text-muted"}),(0,b.jsxs)("div",{ref:m,id:"quick-open-list",role:"listbox","aria-label":"Files",className:"max-h-80 overflow-y-auto py-1",children:[q.map((a,c)=>{let d=a.path.lastIndexOf("/");return(0,b.jsxs)("div",{id:`quick-open-${c}`,"data-index":c,role:"option","aria-selected":k===c,onClick:()=>r(a),onMouseMove:()=>l(c),className:(0,w.cn)("flex items-center gap-2.5 w-full px-4 py-1.5 text-left text-sm cursor-pointer transition-colors",k===c?"bg-accent/10 text-txt":"text-muted"),children:[(0,b.jsx)(aJ.FileText,{"aria-hidden":!0,className:"h-3.5 w-3.5 shrink-0 opacity-60"}),(0,b.jsx)("span",{className:"truncate text-txt",children:a.path.slice(d+1)}),d>0&&(0,b.jsx)("span",{className:"truncate text-xs text-muted",children:a.path.slice(0,d)})]},a.path)}),0===q.length&&(0,b.jsx)("div",{role:"presentation",className:"px-4 py-6 text-center text-sm text-muted",children:"No matching files"}),p.length>50&&(0,b.jsxs)("div",{className:"px-4 py-1.5 text-xs text-muted",children:[p.length-50," more — keep typing to narrow"]})]})]})})}var a$=a.i(877468),a_=a.i(712125);function a0(){let{chats:a,modalId:c,closeModal:e}=(0,t.useChats)(),f=(0,d.useRouter)(),g=a.find(a=>a.id===c)?.title??"Chat";return(0,b.jsx)(aS.Dialog,{open:!!c,onOpenChange:a=>{a||e()},children:(0,b.jsxs)(aS.DialogContent,{"aria-describedby":void 0,className:"flex h-[min(82vh,780px)] w-[calc(100vw-2rem)] flex-col gap-0 overflow-hidden rounded-xl p-0 shadow-2xl sm:max-w-3xl sm:rounded-xl",children:[(0,b.jsx)(aS.DialogTitle,{className:"sr-only",children:g}),c&&(0,b.jsx)(a_.ChatView,{chatId:c,variant:"modal",onNavigate:e,onExpand:()=>{e({keep:!0}),f.push(`/chat?id=${encodeURIComponent(c)}`)}})]})})}var a1=a.i(269769);let a2=[{title:"Go to",rows:C.PAGE_SHORTCUTS.map(({key:a,label:b,help:c})=>({key:a,description:c??b}))},...["Open","Board","Open item","Editing & other"].map(a=>({title:a,rows:C.OTHER_SHORTCUTS.filter(b=>b.section===a).map(({key:a,label:b})=>({key:a,description:b}))}))],a3="sr-only focus:not-sr-only focus:fixed focus:left-2 focus:top-2 focus:z-50 focus:rounded-md focus:bg-surface focus:px-3 focus:py-1.5 focus:text-xs focus:text-txt focus:ring-2 focus:ring-ring";function a4({children:a}){let{loading:f,summary:g,projects:h,activeProject:j,liveIndicator:k,onProjectChange:l,board:m,openDoc:n,rootParam:o}=(0,e.useApp)(),p=(0,d.useRouter)(),q=(0,d.usePathname)(),[r,s]=(0,c.useState)(!1),[u,v]=(0,c.useState)(!1),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(!1),{showDefault:A}=(0,t.useChats)(),B=(0,c.useRef)(!1),D=(0,c.useRef)(q),E=g?.name;return((0,c.useEffect)(()=>{let a=[(0,C.pageTitle)(q),E].filter(Boolean).join(" · "),b=document.title.match(/^\(\d+\) /)?.[0]??"";document.title=`${b}${a?`${a} — `:""}VibeDoc`,D.current!==q&&(D.current=q,B.current&&document.getElementById("main")?.focus({preventScroll:!0}))},[q,E]),(0,c.useEffect)(()=>{let a=()=>{B.current=!0},b=()=>{B.current=!1};return window.addEventListener("keydown",a,!0),window.addEventListener("pointerdown",b,!0),()=>{window.removeEventListener("keydown",a,!0),window.removeEventListener("pointerdown",b,!0)}},[]),(0,c.useEffect)(()=>{function a(a){if((a.metaKey||a.ctrlKey)&&"k"===a.key){a.preventDefault(),v(a=>!a);return}if((a.metaKey||a.ctrlKey)&&"p"===a.key){a.preventDefault(),v(!1),x(a=>!a);return}if(!(0,C.shouldHandleShortcut)(a))return;let b=(0,C.pageForKey)(a.key);if(b)return void p.push(b);switch(a.key){case C.CHAT_KEY:a.preventDefault(),A();break;case"?":s(a=>!a);break;case"Escape":s(!1);break;case"/":a.preventDefault(),"/docs"===q?document.getElementById("doc-search")?.focus():"/board"===q?document.getElementById("board-search")?.focus():p.push("/docs")}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[p,q,A]),f)?(0,b.jsx)(i,{}):(0,b.jsxs)(L,{children:[(0,b.jsx)("a",{href:"#agent-status",className:a3,children:"Skip to agent status"}),(0,b.jsx)("a",{href:"#main",className:a3,children:"Skip to content"}),(0,b.jsx)(aG,{board:m}),(0,b.jsxs)(O,{className:"min-w-0",children:[(0,b.jsx)(ae,{summary:g,projects:h,activeProject:j,liveIndicator:k,onProjectChange:l,onToggleChat:A,onOpenSearch:()=>v(!0)}),(0,b.jsx)("main",{id:"main",tabIndex:-1,className:"flex-1 min-h-0 overflow-y-auto outline-none",children:a}),(0,b.jsx)(a0,{}),(0,b.jsx)(a1.Toaster,{}),(0,b.jsx)(aT.ItemCommandKeys,{}),(0,b.jsx)(aZ,{open:w,onClose:()=>x(!1),onOpenDoc:n,rootParam:o}),(0,b.jsx)(aX,{open:u,onClose:()=>v(!1),onOpenDoc:n,onNewDoc:()=>{v(!1),z(!0)},onQuickOpen:()=>{v(!1),x(!0)},onShowHelp:()=>{v(!1),s(!0)},rootParam:o}),(0,b.jsx)(a$.NewDocModal,{open:y,onOpenChange:z,rootParam:o,onDocCreated:async a=>{await n(a)}}),(0,b.jsx)(aS.Dialog,{open:r,onOpenChange:s,children:(0,b.jsxs)(aS.DialogContent,{"aria-describedby":void 0,className:"block w-80 p-5 rounded-xl sm:rounded-xl shadow-2xl",children:[(0,b.jsx)(aS.DialogTitle,{className:"font-display text-sm font-semibold text-txt mb-4",children:"Keyboard shortcuts"}),a2.map(({title:a,rows:c})=>(0,b.jsxs)("table",{className:"w-full text-xs mt-3 first-of-type:mt-0",children:[(0,b.jsx)("caption",{className:"pb-1 text-left font-mono text-[10px] uppercase tracking-[0.06em] text-muted",children:a}),(0,b.jsx)("tbody",{children:c.map(({key:a,description:c})=>(0,b.jsxs)("tr",{className:"border-t border-border first:border-0",children:[(0,b.jsx)("td",{className:"py-1.5 pr-4 w-16 whitespace-nowrap",children:(0,b.jsx)("kbd",{className:"font-mono bg-surface2 border border-border rounded-sm px-1.5 py-0.5 text-txt",children:a})}),(0,b.jsx)("td",{className:"py-1.5 text-muted",children:c})]},a))})]},a))]})})]})]})}a.s(["default",0,function({children:a}){return(0,b.jsxs)(e.AppProvider,{children:[(0,b.jsx)(h,{}),(0,b.jsx)(t.ChatProvider,{children:(0,b.jsx)(a4,{children:a})})]})}],648102)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_app_%28app%29_layout_tsx_1yu5hom._.js.map
|