vibedoc 1.10.0 → 1.12.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 +9 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +41 -13
- package/.next/routes-manifest.json +54 -6
- 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.js.nft.json +1 -1
- package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
- 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)/graph/page/app-paths-manifest.json +3 -0
- package/.next/server/app/(app)/graph/page/build-manifest.json +20 -0
- package/.next/server/app/(app)/graph/page/next-font-manifest.json +11 -0
- package/.next/server/app/(app)/graph/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/(app)/graph/page.js +15 -0
- package/.next/server/app/(app)/graph/page.js.nft.json +1 -0
- package/.next/server/app/(app)/graph/page_client-reference-manifest.js +3 -0
- package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
- package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
- 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 +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +8 -8
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/activity.segments/_full.segment.rsc +8 -8
- package/.next/server/app/activity.segments/_tree.segment.rsc +2 -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/chat/route.js +2 -2
- 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.js +2 -2
- package/.next/server/app/api/conversations/route.js.nft.json +1 -1
- 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/graph/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/docs/graph/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/docs/graph/route.js +9 -0
- package/.next/server/app/api/docs/graph/route.js.map +5 -0
- package/.next/server/app/api/docs/graph/route.js.nft.json +1 -0
- package/.next/server/app/api/docs/graph/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/docs/links/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/docs/links/route/build-manifest.json +12 -0
- package/.next/server/app/api/docs/links/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/docs/links/route.js +9 -0
- package/.next/server/app/api/docs/links/route.js.map +5 -0
- package/.next/server/app/api/docs/links/route.js.nft.json +1 -0
- package/.next/server/app/api/docs/links/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/docs/route.js +2 -2
- 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 +2 -2
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/delete/route.js +2 -2
- package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/merge/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/entries/merge/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/entries/merge/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/entries/merge/route.js +9 -0
- package/.next/server/app/api/memory/entries/merge/route.js.map +5 -0
- package/.next/server/app/api/memory/entries/merge/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/entries/merge/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/memory/entries/merge/undo/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/entries/merge/undo/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/entries/merge/undo/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/entries/merge/undo/route.js +9 -0
- package/.next/server/app/api/memory/entries/merge/undo/route.js.map +5 -0
- package/.next/server/app/api/memory/entries/merge/undo/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/entries/merge/undo/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/memory/entries/restore/route.js +2 -2
- package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/route.js +2 -2
- package/.next/server/app/api/memory/entries/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/entries/save/route.js +2 -2
- package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/graph/route.js +2 -2
- package/.next/server/app/api/memory/graph/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/health/dismiss/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/health/dismiss/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/health/dismiss/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/health/dismiss/route.js +9 -0
- package/.next/server/app/api/memory/health/dismiss/route.js.map +5 -0
- package/.next/server/app/api/memory/health/dismiss/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/health/dismiss/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/memory/health/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/health/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/health/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/health/route.js +8 -0
- package/.next/server/app/api/memory/health/route.js.map +5 -0
- package/.next/server/app/api/memory/health/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/health/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/memory/history/route.js +2 -2
- package/.next/server/app/api/memory/history/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/restore/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/restore/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/restore/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/restore/route.js +9 -0
- package/.next/server/app/api/memory/restore/route.js.map +5 -0
- package/.next/server/app/api/memory/restore/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/restore/route_client-reference-manifest.js +3 -0
- 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/memory/versions/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/memory/versions/route/build-manifest.json +12 -0
- package/.next/server/app/api/memory/versions/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/memory/versions/route.js +8 -0
- package/.next/server/app/api/memory/versions/route.js.map +5 -0
- package/.next/server/app/api/memory/versions/route.js.nft.json +1 -0
- package/.next/server/app/api/memory/versions/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/apply/route.js +2 -2
- 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 +2 -2
- package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/delete/route.js +2 -2
- package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/generate/route.js +2 -2
- package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/layout/route.js +2 -2
- package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/restore/route.js +2 -2
- package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/route.js +2 -2
- package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/update/route.js +2 -2
- 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 +2 -2
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js +2 -2
- 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.js +2 -2
- package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
- 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.js +2 -2
- package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/manual-tests/route.js +2 -2
- package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/restore/route.js +2 -2
- package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/review/route.js +2 -2
- package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
- 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.js +2 -2
- package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
- package/.next/server/app/api/views/route.js +2 -2
- package/.next/server/app/api/views/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +8 -8
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/board.segments/_full.segment.rsc +8 -8
- package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +8 -8
- package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +9 -11
- package/.next/server/app/chat.segments/_full.segment.rsc +8 -8
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +8 -8
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/docs.segments/_full.segment.rsc +8 -8
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +7 -7
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/explorer.segments/_full.segment.rsc +7 -7
- package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/graph.html +1 -0
- package/.next/server/app/graph.meta +31 -0
- package/.next/server/app/graph.rsc +32 -0
- package/.next/server/app/graph.segments/!KGFwcCk/graph/__PAGE__.segment.rsc +33 -0
- package/.next/server/app/graph.segments/_full.segment.rsc +32 -0
- package/.next/server/app/graph.segments/_tree.segment.rsc +6 -0
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/manual-tests.html +1 -1
- package/.next/server/app/manual-tests.rsc +7 -7
- package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/manual-tests.segments/_full.segment.rsc +7 -7
- package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +8 -8
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/memory.segments/_full.segment.rsc +8 -8
- package/.next/server/app/memory.segments/_tree.segment.rsc +2 -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 +8 -8
- package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/roadmap.segments/_full.segment.rsc +8 -8
- package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +7 -7
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +11 -9
- package/.next/server/app/settings.segments/_full.segment.rsc +7 -7
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +7 -7
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/setup.segments/_full.segment.rsc +7 -7
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app-paths-manifest.json +9 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_053zt3c._.js → 11mp_@anthropic-ai_sdk_013qeb4._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_zx69c._.js → 11mp_@anthropic-ai_sdk_05ck8py._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0gvxfg3._.js → 11mp_@anthropic-ai_sdk_05w8m72._.js} +1 -1
- package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0gx5t2l._.js → 11mp_@anthropic-ai_sdk_086oevc._.js} +1 -1
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_08rl0hf._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_09ujrsu._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0c3_7p7._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0cto43x._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fgisb_._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fy8wd3._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fyvizf._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hg0i2g._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i0sz05._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l0j9c6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcm61d._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qtva5j._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r4fkdu._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wbae0t._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wxyz1t._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0y2cods._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zu0fj1._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zxpgt0._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_10_cxcd._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_10gb7d1._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_12q70bs._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_149ltk3._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_165_uiw._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_19w4zh6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1adck-s._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1c2dwoi._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1d9lw_2._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1db6a7p._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1h2f90s._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1k5_i1z._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1p3mv6i._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qoom5s._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qsbcbe._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rk0x59._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sd98mi._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sumqg8._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t-rt4q._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t-rt4q._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tr-k4y._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tr-k4y._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xk3c39._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xk3c39._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_206l10_._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_206l10_._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_20giys9._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_20giys9._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_20xrvvy._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_20xrvvy._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_215tg00._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_215tg00._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0kuhhna._.js → [root-of-the-server]__00usbi3._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1gr4e22._.js → [root-of-the-server]__04cwur0._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__06dfvb0._.js → [root-of-the-server]__04ri_ci._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__00o3mbd._.js → [root-of-the-server]__05-be3n._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0uu9pgg._.js → [root-of-the-server]__0756_60._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1h5hb6u._.js → [root-of-the-server]__089ay-q._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__15jhpgl._.js → [root-of-the-server]__0d4t4q6._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__01n_hoh._.js → [root-of-the-server]__0dgwykw._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js +105 -0
- package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0lix3ru._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0lix3ru._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1kw2vct._.js → [root-of-the-server]__0n0myt9._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0pe1qih._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pe1qih._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js +105 -0
- package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0rggulw._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rggulw._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__076d4xm._.js → [root-of-the-server]__0s-j6z-._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0s8v5i-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0s8v5i-._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1e_o8h4._.js → [root-of-the-server]__0yaxn8g._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__162_l0k._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__162_l0k._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1-1hfrj._.js → [root-of-the-server]__16smlkg._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__19w-7h9._.js → [root-of-the-server]__19yo85m._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1_qenei._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_qenei._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__1lxrobr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1lxrobr._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__1rjgpbm._.js → [root-of-the-server]__1mnzsbh._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__06z8i6e._.js → [root-of-the-server]__1ntu_6r._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ntu_6r._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1pjwaan._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1af-wfk._.js.map → [root-of-the-server]__1pjwaan._.js.map} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1spley9._.js → [root-of-the-server]__1s0t8r3._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1lt5cds._.js → [root-of-the-server]__1sd3l-d._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1skrybv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1skrybv._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1vnine1._.js +105 -0
- package/.next/server/chunks/[root-of-the-server]__1vnine1._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__05tx02j._.js → [root-of-the-server]__1vzxnjb._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__09j_-hj._.js → [root-of-the-server]__1zeys20._.js} +2 -2
- package/.next/server/chunks/_04byth9._.js +31 -26
- package/.next/server/chunks/_04byth9._.js.map +1 -1
- package/.next/server/chunks/_0safx0g._.js +3 -3
- package/.next/server/chunks/_0safx0g._.js.map +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_docs_graph_route_actions_1nzoqf-.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_docs_links_route_actions_1q-6jeg.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_entries_merge_route_actions_1rr-wwt.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_entries_merge_route_actions_1rr-wwt.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_entries_merge_undo_route_actions_0l6cy9q.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_entries_merge_undo_route_actions_0l6cy9q.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_health_dismiss_route_actions_0i7_n68.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_health_dismiss_route_actions_0i7_n68.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_health_route_actions_1lk-_5d.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_health_route_actions_1lk-_5d.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_restore_route_actions_0679kmo.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_restore_route_actions_0679kmo.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_versions_route_actions_13mix75.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_memory_versions_route_actions_13mix75.js.map +1 -0
- package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0itmgkm._.js → 0_nd_mermaid_dist_mermaid_core_mjs_0y_edkq._.js} +2 -2
- package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_0y_edkq._.js.map +1 -0
- package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_08jn-sj._.js → 1u84_katex_dist_katex_mjs_0yg8zto._.js} +1 -1
- package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_0yg8zto._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1drc5py._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1drc5py._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-_04ia._.js +3 -0
- package/.next/server/chunks/ssr/_0-_04ia._.js.map +1 -0
- package/.next/server/chunks/ssr/_02ks8_a._.js +3 -0
- package/.next/server/chunks/ssr/_02ks8_a._.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/_0696iog._.js +3 -0
- package/.next/server/chunks/ssr/_0696iog._.js.map +1 -0
- package/.next/server/chunks/ssr/_0cv0ugs._.js +3 -0
- package/.next/server/chunks/ssr/_0cv0ugs._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ghj-vx._.js +3 -0
- package/.next/server/chunks/ssr/_0ghj-vx._.js.map +1 -0
- package/.next/server/chunks/ssr/{_0idb-vo._.js → _0kob2si._.js} +2 -2
- package/.next/server/chunks/ssr/_0kob2si._.js.map +1 -0
- package/.next/server/chunks/ssr/_0o8t6j-._.js +3 -0
- package/.next/server/chunks/ssr/_0o8t6j-._.js.map +1 -0
- package/.next/server/chunks/ssr/_128p7pz._.js +3 -0
- package/.next/server/chunks/ssr/_128p7pz._.js.map +1 -0
- package/.next/server/chunks/ssr/_19k2iz0._.js +2 -2
- package/.next/server/chunks/ssr/_19k2iz0._.js.map +1 -1
- package/.next/server/chunks/ssr/_1b82nz3._.js +3 -0
- package/.next/server/chunks/ssr/_1b82nz3._.js.map +1 -0
- package/.next/server/chunks/ssr/_1hm7p_8._.js +3 -0
- package/.next/server/chunks/ssr/_1hm7p_8._.js.map +1 -0
- package/.next/server/chunks/ssr/{_1s2ya35._.js → _1r_t_wi._.js} +1 -1
- package/.next/server/chunks/ssr/_1r_t_wi._.js.map +1 -0
- package/.next/server/chunks/ssr/_1s-2jub._.js +3 -0
- package/.next/server/chunks/ssr/_1s-2jub._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_graph_page_actions_041e9i7.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_graph_page_actions_041e9i7.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_0s7j-tv._.js → node_modules__pnpm_00f4yhs._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_00f4yhs._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_1fry8_2._.js → node_modules__pnpm_035haet._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0j7asqf._.js → node_modules__pnpm_03an60e._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0eub17j._.js → node_modules__pnpm_03mp7qw._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0_83tv8._.js → node_modules__pnpm_03mpmzx._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0e55e7-._.js → node_modules__pnpm_06_8fr8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_16bj927._.js → node_modules__pnpm_09nd7ia._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1ch46nl._.js → node_modules__pnpm_0_e05ka._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js.map +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_02p2rqs._.js → node_modules__pnpm_0iu4132._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0iqb0_x._.js → node_modules__pnpm_0j_-le7._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules__pnpm_0j_-le7._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_0abf_e9._.js → node_modules__pnpm_0jampur._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1hqh95z._.js → node_modules__pnpm_0lkvbt-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_14j18h7._.js → node_modules__pnpm_0mqeoh-._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0v_mhl7._.js → node_modules__pnpm_0oyo3yo._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_00lsytc._.js → node_modules__pnpm_0rq9x9q._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0s63lee._.js → node_modules__pnpm_0tn5pg3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0_ajzll._.js → node_modules__pnpm_0x5wj-4._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0rsfj9v._.js → node_modules__pnpm_0zz55xq._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0zz55xq._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_1gpkxns._.js → node_modules__pnpm_139-v1i._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1dc-yxd._.js → node_modules__pnpm_1i_chik._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_060kz-j._.js → node_modules__pnpm_1jgju12._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0up4z7m._.js → node_modules__pnpm_1n9oeu0._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1oygi6o._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1oygi6o._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1ukodtk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1ukodtk._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_05-p8zy._.js → node_modules__pnpm_1ws3ez9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0gp90ei._.js → node_modules__pnpm_1ydeqw6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0jlzk5z._.js → node_modules__pnpm_1zme4rg._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1oaf50x._.js → node_modules__pnpm_1zum4yd._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0vuao3_._.js → node_modules__pnpm_2045l51._.js} +1 -1
- package/.next/server/chunks/ssr/src_1e9kctc._.js +3 -0
- package/.next/server/chunks/ssr/src_1e9kctc._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_graph_page_tsx_1yudb7h._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_graph_page_tsx_1yudb7h._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +3 -2
- package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +1 -1
- package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_roadmap_RoadmapNodes_tsx_0up_ygp._.js +3 -0
- package/.next/server/chunks/ssr/src_components_roadmap_RoadmapNodes_tsx_0up_ygp._.js.map +1 -0
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.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 +4 -0
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/prefetch-hints.json +19 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/03tzhv775qv5m.js +1 -0
- package/.next/static/chunks/05rjl54wa6y43.js +1 -0
- package/.next/static/chunks/0_8ovyz2sbr3p.js +1 -0
- package/.next/static/chunks/0do6j4i1v_c6s.js +1 -0
- package/.next/static/chunks/0eax07u1ta6tp.css +1 -0
- package/.next/static/chunks/{3xqcluqa32mjv.js → 0h52yb69w77nq.js} +2 -2
- package/.next/static/chunks/0kb25y5g772mn.js +1 -0
- package/.next/static/chunks/0lfd3aomz4wv4.js +1 -0
- package/.next/static/chunks/0pmpdvev8bf-o.js +1 -0
- package/.next/static/chunks/0po8atank1p02.js +12 -0
- package/.next/static/chunks/{1hh2cxd9ndxf-.js → 10itjt9fhlzr1.js} +13 -13
- package/.next/static/chunks/11ou9nrpdg4qo.js +3 -0
- package/.next/static/chunks/1b9r_vdcewfu7.js +1 -0
- package/.next/static/chunks/1g7st54huk4if.js +1 -0
- package/.next/static/chunks/1l8fp2uesk29q.js +1 -0
- package/.next/static/chunks/1v63qs4kxxcfh.js +1 -0
- package/.next/static/chunks/36s2k2k_w-or8.js +1 -0
- package/.next/static/chunks/3ctec-7mnm19m.js +1 -0
- package/.next/static/chunks/3x43gd45wlhbl.js +1 -0
- package/.next/static/chunks/40diykjra8f9n.js +2107 -0
- package/README.md +16 -8
- package/package.json +1 -1
- package/.next/server/app/api/backlinks/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/backlinks/route.js +0 -8
- package/.next/server/app/api/backlinks/route.js.nft.json +0 -1
- package/.next/server/app/api/backlinks/route_client-reference-manifest.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0krkw4y._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l0xzie._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0pgjvhr._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r-keh6._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0tvfbjt._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0u4b8_f._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ud37xh._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0v3ar-t._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wk0b65._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wqkd2r._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wypotx._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yuq-9s._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_0z-e57x._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_108ltz4._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_10c_i6_._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_14jogs8._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_15u-n39._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_194ahxu._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ahph2t._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ajy77y._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b57s9p._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1brf2xn._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1btfw2x._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cyy_q6._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fz9fev._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i_rz7h._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1it8zsv._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jzusvd._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lfknr2._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1mewd-3._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1mkm4u_._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rggqq3._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rhjf1m._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1s6ks8c._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u8z4hp._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vyy3_4._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_036bvwf._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_046taqd._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bxad5f._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0g65abt._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0pb9bu1._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_120-cio._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13uyu_v._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13x2ww0._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17og64d._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1e_sh4o._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ecuo9i._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1go8d0m._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i13ryx._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jv_hid._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mh5mqk._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1oq7e8u._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1p-cq-p._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1the3g0._.js +0 -3
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1xubh-w._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +0 -110
- package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0p4w_o-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0p4w_o-._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +0 -110
- package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1af-wfk._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +0 -110
- package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_backlinks_route_actions_1_58m09.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +0 -1
- package/.next/server/chunks/ssr/_0h91h9n._.js +0 -3
- package/.next/server/chunks/ssr/_0h91h9n._.js.map +0 -1
- package/.next/server/chunks/ssr/_0idb-vo._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ip7sg0._.js +0 -3
- package/.next/server/chunks/ssr/_0ip7sg0._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ks_bep._.js +0 -3
- package/.next/server/chunks/ssr/_0ks_bep._.js.map +0 -1
- package/.next/server/chunks/ssr/_0lqrpim._.js +0 -3
- package/.next/server/chunks/ssr/_0lqrpim._.js.map +0 -1
- package/.next/server/chunks/ssr/_0qp3gu7._.js +0 -3
- package/.next/server/chunks/ssr/_0qp3gu7._.js.map +0 -1
- package/.next/server/chunks/ssr/_197jl3g._.js +0 -3
- package/.next/server/chunks/ssr/_197jl3g._.js.map +0 -1
- package/.next/server/chunks/ssr/_1el478k._.js +0 -3
- package/.next/server/chunks/ssr/_1el478k._.js.map +0 -1
- package/.next/server/chunks/ssr/_1t76zdx._.js +0 -3
- package/.next/server/chunks/ssr/_1t76zdx._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +0 -3
- package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_1s861m8._.js +0 -3
- package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +0 -1
- package/.next/static/chunks/08sqjdq-43nbt.js +0 -1
- package/.next/static/chunks/09r4_4wr0aga3.js +0 -1
- package/.next/static/chunks/0mgifb98wbesa.js +0 -1
- package/.next/static/chunks/0xw_sa58zqv5s.js +0 -1
- package/.next/static/chunks/1-a3-6c_nce84.js +0 -1
- package/.next/static/chunks/149fj-mseo8q3.css +0 -1
- package/.next/static/chunks/1c11k-snzp541.js +0 -1
- package/.next/static/chunks/1n4_u3om7ye4z.js +0 -2107
- package/.next/static/chunks/1qhndyi2gdbkf.js +0 -1
- package/.next/static/chunks/1x40-5s54wd5m.js +0 -11
- package/.next/static/chunks/24u_rc2tbkhai.js +0 -3
- package/.next/static/chunks/30s090l71e1gs.js +0 -1
- package/.next/static/chunks/3t8px4aygy1s9.js +0 -1
- package/.next/static/chunks/44gr_v5092gwh.js +0 -1
- /package/.next/server/app/{api/backlinks/route → (app)/graph/page}/server-reference-manifest.json +0 -0
- /package/.next/server/app/{api/backlinks/route.js.map → (app)/graph/page.js.map} +0 -0
- /package/.next/server/app/api/{backlinks → docs/graph}/route/build-manifest.json +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_053zt3c._.js.map → 11mp_@anthropic-ai_sdk_013qeb4._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0_zx69c._.js.map → 11mp_@anthropic-ai_sdk_05ck8py._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0gvxfg3._.js.map → 11mp_@anthropic-ai_sdk_05w8m72._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0gx5t2l._.js.map → 11mp_@anthropic-ai_sdk_086oevc._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0krkw4y._.js.map → 11mp_@anthropic-ai_sdk_08rl0hf._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0l0xzie._.js.map → 11mp_@anthropic-ai_sdk_09ujrsu._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0pgjvhr._.js.map → 11mp_@anthropic-ai_sdk_0c3_7p7._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r-keh6._.js.map → 11mp_@anthropic-ai_sdk_0cto43x._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0tvfbjt._.js.map → 11mp_@anthropic-ai_sdk_0fgisb_._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0u4b8_f._.js.map → 11mp_@anthropic-ai_sdk_0fy8wd3._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0ud37xh._.js.map → 11mp_@anthropic-ai_sdk_0fyvizf._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0v3ar-t._.js.map → 11mp_@anthropic-ai_sdk_0hg0i2g._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wk0b65._.js.map → 11mp_@anthropic-ai_sdk_0i0sz05._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wqkd2r._.js.map → 11mp_@anthropic-ai_sdk_0l0j9c6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wypotx._.js.map → 11mp_@anthropic-ai_sdk_0lcm61d._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0yuq-9s._.js.map → 11mp_@anthropic-ai_sdk_0qtva5j._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0z-e57x._.js.map → 11mp_@anthropic-ai_sdk_0r4fkdu._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_108ltz4._.js.map → 11mp_@anthropic-ai_sdk_0wbae0t._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_10c_i6_._.js.map → 11mp_@anthropic-ai_sdk_0wxyz1t._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_14jogs8._.js.map → 11mp_@anthropic-ai_sdk_0y2cods._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15u-n39._.js.map → 11mp_@anthropic-ai_sdk_0zu0fj1._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_194ahxu._.js.map → 11mp_@anthropic-ai_sdk_0zxpgt0._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ahph2t._.js.map → 11mp_@anthropic-ai_sdk_10_cxcd._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ajy77y._.js.map → 11mp_@anthropic-ai_sdk_10gb7d1._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b57s9p._.js.map → 11mp_@anthropic-ai_sdk_12q70bs._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1brf2xn._.js.map → 11mp_@anthropic-ai_sdk_149ltk3._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1btfw2x._.js.map → 11mp_@anthropic-ai_sdk_165_uiw._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1cyy_q6._.js.map → 11mp_@anthropic-ai_sdk_19w4zh6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fz9fev._.js.map → 11mp_@anthropic-ai_sdk_1adck-s._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1i_rz7h._.js.map → 11mp_@anthropic-ai_sdk_1c2dwoi._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1it8zsv._.js.map → 11mp_@anthropic-ai_sdk_1d9lw_2._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1jzusvd._.js.map → 11mp_@anthropic-ai_sdk_1db6a7p._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lfknr2._.js.map → 11mp_@anthropic-ai_sdk_1h2f90s._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1mewd-3._.js.map → 11mp_@anthropic-ai_sdk_1k5_i1z._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1mkm4u_._.js.map → 11mp_@anthropic-ai_sdk_1p3mv6i._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rggqq3._.js.map → 11mp_@anthropic-ai_sdk_1qoom5s._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rhjf1m._.js.map → 11mp_@anthropic-ai_sdk_1qsbcbe._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1s6ks8c._.js.map → 11mp_@anthropic-ai_sdk_1rk0x59._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1u8z4hp._.js.map → 11mp_@anthropic-ai_sdk_1sd98mi._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vyy3_4._.js.map → 11mp_@anthropic-ai_sdk_1sumqg8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_036bvwf._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_046taqd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0bxad5f._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0g65abt._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0pb9bu1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_120-cio._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13uyu_v._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13x2ww0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17og64d._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1e_sh4o._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ecuo9i._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1go8d0m._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1i13ryx._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1jv_hid._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1mh5mqk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1oq7e8u._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1p-cq-p._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1the3g0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js.map} +0 -0
- /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1xubh-w._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__00o3mbd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__06z8i6e._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1kw2vct._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js.map} +0 -0
- /package/.next/server/chunks/{_next-internal_server_app_api_backlinks_route_actions_1_58m09.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_0itmgkm._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_08jn-sj._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0kuhhna._.js.map → [root-of-the-server]__00usbi3._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1gr4e22._.js.map → [root-of-the-server]__04cwur0._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__06dfvb0._.js.map → [root-of-the-server]__04ri_ci._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/_1s2ya35._.js.map → [root-of-the-server]__05-be3n._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__09j_-hj._.js.map → [root-of-the-server]__0756_60._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1h5hb6u._.js.map → [root-of-the-server]__089ay-q._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__15jhpgl._.js.map → [root-of-the-server]__0d4t4q6._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__01n_hoh._.js.map → [root-of-the-server]__0dgwykw._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_0iqb0_x._.js.map → [root-of-the-server]__0n0myt9._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__076d4xm._.js.map → [root-of-the-server]__0s-j6z-._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1e_o8h4._.js.map → [root-of-the-server]__0yaxn8g._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1-1hfrj._.js.map → [root-of-the-server]__16smlkg._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__19w-7h9._.js.map → [root-of-the-server]__19yo85m._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1rjgpbm._.js.map → [root-of-the-server]__1mnzsbh._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1spley9._.js.map → [root-of-the-server]__1s0t8r3._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1lt5cds._.js.map → [root-of-the-server]__1sd3l-d._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__05tx02j._.js.map → [root-of-the-server]__1vzxnjb._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0uu9pgg._.js.map → [root-of-the-server]__1zeys20._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_0rsfj9v._.js.map → _next-internal_server_app_api_docs_graph_route_actions_1nzoqf-.js.map} +0 -0
- /package/.next/server/chunks/{ssr/node_modules__pnpm_0s7j-tv._.js.map → _next-internal_server_app_api_docs_links_route_actions_1q-6jeg.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1fry8_2._.js.map → node_modules__pnpm_035haet._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0j7asqf._.js.map → node_modules__pnpm_03an60e._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0eub17j._.js.map → node_modules__pnpm_03mp7qw._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0_83tv8._.js.map → node_modules__pnpm_03mpmzx._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0e55e7-._.js.map → node_modules__pnpm_06_8fr8._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_16bj927._.js.map → node_modules__pnpm_09nd7ia._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1ch46nl._.js.map → node_modules__pnpm_0_e05ka._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_02p2rqs._.js.map → node_modules__pnpm_0iu4132._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0abf_e9._.js.map → node_modules__pnpm_0jampur._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1hqh95z._.js.map → node_modules__pnpm_0lkvbt-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_14j18h7._.js.map → node_modules__pnpm_0mqeoh-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0v_mhl7._.js.map → node_modules__pnpm_0oyo3yo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00lsytc._.js.map → node_modules__pnpm_0rq9x9q._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0s63lee._.js.map → node_modules__pnpm_0tn5pg3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0_ajzll._.js.map → node_modules__pnpm_0x5wj-4._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1gpkxns._.js.map → node_modules__pnpm_139-v1i._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1dc-yxd._.js.map → node_modules__pnpm_1i_chik._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_060kz-j._.js.map → node_modules__pnpm_1jgju12._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0up4z7m._.js.map → node_modules__pnpm_1n9oeu0._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_05-p8zy._.js.map → node_modules__pnpm_1ws3ez9._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0gp90ei._.js.map → node_modules__pnpm_1ydeqw6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0jlzk5z._.js.map → node_modules__pnpm_1zme4rg._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1oaf50x._.js.map → node_modules__pnpm_1zum4yd._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0vuao3_._.js.map → node_modules__pnpm_2045l51._.js.map} +0 -0
- /package/.next/static/{qCiKQ9_g49vaoQ-Fewybk → P1gxTEpKVh-OOtIXC432U}/_buildManifest.js +0 -0
- /package/.next/static/{qCiKQ9_g49vaoQ-Fewybk → P1gxTEpKVh-OOtIXC432U}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{qCiKQ9_g49vaoQ-Fewybk → P1gxTEpKVh-OOtIXC432U}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[89032,a=>{"use strict";var b=a.i(256857);let c={name:"info",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]};c.node;let d=(0,b.default)(c);a.s(["Info",0,d],89032)},815122,a=>{"use strict";var b=a.i(662145),c=a.i(795667),d=a.i(108280),e=a.i(368114),f=a.i(685698),g=a.i(598984);let h={running:"Agent working","needs-answer":"Agent needs you",review:"Plan to review"};a.s(["AgentDot",0,function({attach:a}){let c=(0,f.useItemAgent)(a);return c?(0,b.jsx)(g.StatusMarker,{status:c.status,label:h[c.status]}):null},"AgentMark",0,function({attach:a,className:g}){let i=(0,f.useItemAgent)(a),{show:j}=(0,f.useChats)();if(!i)return null;let k=h[i.status];return(0,b.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),j(i.chatId)},title:`${k} \xb7 open chat`,"aria-label":`${k}, open chat`,className:(0,e.cn)("nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)","running"===i.status&&"border-accent/50 text-accent hover:bg-accent/10","needs-answer"===i.status&&"border-amber/50 text-amber hover:bg-amber/10","review"===i.status&&"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20",g),children:["running"===i.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin","aria-hidden":!0}):(0,b.jsx)(c.Bot,{className:"size-3","aria-hidden":!0}),k]})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0696iog._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/info.ts","../../../../src/components/chat/AgentMark.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'info',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/info\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 Info = createLucideIcon(__iconData);\n\nexport default Info;\n","\"use client\"\n\nimport { Bot, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { useChats, useItemAgent } from \"@/context/ChatContext\"\nimport type { Attach, ItemAgent } from \"@/lib/chats\"\nimport { StatusMarker } from \"./StatusMarker\"\n\nexport const AGENT_LABEL: Record<ItemAgent[\"status\"], string> = {\n running: \"Agent working\",\n \"needs-answer\": \"Agent needs you\",\n review: \"Plan to review\",\n}\n\n/**\n * Pill on an epic/task while a chat works on it; click opens that chat.\n * `nodrag` + stopPropagation keep a React Flow node from dragging/selecting on click.\n */\nexport function AgentMark({ attach, className }: { attach: Attach; className?: string }) {\n const agent = useItemAgent(attach)\n const { show } = useChats()\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); show(agent.chatId) }}\n title={`${label} · open chat`}\n aria-label={`${label}, open chat`}\n className={cn(\n \"nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)\",\n agent.status === \"running\" && \"border-accent/50 text-accent hover:bg-accent/10\",\n agent.status === \"needs-answer\" && \"border-amber/50 text-amber hover:bg-amber/10\",\n agent.status === \"review\" && \"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20\",\n className,\n )}\n >\n {agent.status === \"running\" ? <Loader2 className=\"size-3 animate-spin\" aria-hidden /> : <Bot className=\"size-3\" aria-hidden />}\n {label}\n </button>\n )\n}\n\n/** Non-interactive variant for places that are already a button (timeline markers, board cards, task rows). */\nexport function AgentDot({ attach }: { attach: Attach }) {\n const agent = useItemAgent(attach)\n if (!agent) return null\n return <StatusMarker status={agent.status} label={AGENT_LABEL[agent.status]} />\n}\n"],"names":["AGENT_LABEL","running","review","AgentMark","attach","className","agent","show","label","status","type","onClick","e","stopPropagation","chatId","title","AgentDot"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[658978,a=>{"use strict";var b=a.i(256857);let c={name:"calendar",size:24,node:[["path",{d:"M8 2v3",key:"1ioesn"}],["path",{d:"M16 2v3",key:"otl347"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M3 9h18",key:"1pudct"}]]};c.node;let d=(0,b.default)(c);a.s(["Calendar",0,d],658978)},388637,a=>{"use strict";var b=a.i(256857);let c={name:"circle-dashed",size:24,node:[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]};c.node;let d=(0,b.default)(c);a.s(["CircleDashed",0,d],388637)},763747,787714,891397,a=>{"use strict";var b=a.i(256857);let c={name:"ellipsis",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],aliases:["more-horizontal"]};c.node;let d=(0,b.default)(c);a.s(["MoreHorizontal",0,d],763747);var e=a.i(662145),f=a.i(368114),g=a.i(404687),h=a.i(174897),i=a.i(425404),j=a.i(335732);let k=a=>a.stopPropagation(),l="inline-flex min-w-0 items-center gap-1 rounded-sm px-1 -mx-1 text-left outline-hidden hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent/60";function m({label:a,value:b,options:c,onChange:d,children:g,className:h}){return(0,e.jsxs)(j.DropdownMenu,{children:[(0,e.jsx)(j.DropdownMenuTrigger,{asChild:!0,children:(0,e.jsx)("button",{type:"button","aria-label":a,draggable:!1,onClick:k,onKeyDown:k,onPointerDown:k,className:(0,f.cn)(l,h),children:g})}),(0,e.jsx)(j.DropdownMenuContent,{align:"start",className:"max-h-72 w-48 overflow-y-auto",onClick:k,onKeyDown:k,children:c.map(a=>(0,e.jsxs)(j.DropdownMenuItem,{onSelect:()=>{a.value!==b&&d(a.value)},children:[a.node??a.label,a.value===b&&(0,e.jsx)(i.Check,{className:"ml-auto size-3.5 text-muted","aria-hidden":!0})]},a.value))})]})}a.s(["InlineDate",0,function({label:a,value:b,onChange:c,children:d,className:g}){let[i,j]=(0,h.useState)(!1),[m,n]=(0,h.useState)(b??""),o=()=>{j(!1),(m||null)!==b&&c(m||null)};return i?(0,e.jsx)("input",{type:"date",autoFocus:!0,"aria-label":a,value:m,onChange:a=>n(a.target.value),onClick:k,onPointerDown:k,onKeyDown:a=>{k(a),"Enter"===a.key&&(a.preventDefault(),o()),"Escape"===a.key&&(a.preventDefault(),j(!1))},onBlur:o,className:"h-6 rounded-sm border border-accent/60 bg-bg px-1 font-mono text-[11px] text-txt scheme-light outline-hidden dark:scheme-dark"}):(0,e.jsx)("button",{type:"button","aria-label":a,draggable:!1,onClick:a=>{k(a),n(b??""),j(!0)},onKeyDown:k,className:(0,f.cn)(l,g),children:d})},"InlineSelect",0,m,"InlineText",0,function({label:a,value:b,onChange:c,children:d,className:g,placeholder:i,startEditing:j=!1,onCancel:m}){let[n,o]=(0,h.useState)(j),[p,q]=(0,h.useState)(b??""),r=()=>{o(!1);let a=p.trim()||null;a!==b?c(a):a||m?.()};return n?(0,e.jsx)("input",{autoFocus:!0,"aria-label":a,value:p,placeholder:i,onChange:a=>q(a.target.value),onClick:k,onPointerDown:k,onKeyDown:a=>{k(a),"Enter"===a.key&&(a.preventDefault(),r()),"Escape"===a.key&&(a.preventDefault(),o(!1),m?.())},onBlur:r,className:"h-7 w-full min-w-0 rounded-sm border border-accent/60 bg-bg px-1.5 text-[13px] text-txt outline-hidden placeholder:text-muted"}):(0,e.jsx)("button",{type:"button","aria-label":a,draggable:!1,onClick:a=>{k(a),q(b??""),o(!0)},onKeyDown:k,className:(0,f.cn)(l,g),children:d})}],787714);let n={P0:"bg-danger/12 text-danger",P1:"bg-amber/12 text-amber",P2:"bg-surface2 text-txt",P3:"bg-surface2 text-muted"};function o({priority:a,className:b}){return(0,e.jsx)("span",{className:(0,f.cn)("inline-flex h-4 shrink-0 items-center rounded-sm px-1 font-mono text-[10px] font-medium leading-none",n[a],b),children:a})}let p=[...g.PRIORITIES.map(a=>({value:a,label:a,node:(0,e.jsx)(o,{priority:a})})),{value:"",label:"No priority",node:(0,e.jsx)("span",{className:"text-muted",children:"No priority"})}];a.s(["PriorityBadge",0,o,"PriorityField",0,function({label:a,value:b,onChange:c,empty:d}){return(0,e.jsx)(m,{label:a,value:b??"",options:p,onChange:a=>c(a||null),children:b?(0,e.jsx)(o,{priority:b}):d??(0,e.jsx)("span",{className:"text-muted",children:"—"})})}],891397)},717143,a=>{"use strict";var b=a.i(256857);let c={name:"folder-input",size:24,node:[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]]};c.node;let d=(0,b.default)(c);a.s(["FolderInput",0,d],717143)},340753,a=>{"use strict";var b=a.i(256857);let c={name:"list-checks",size:24,node:[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]};c.node;let d=(0,b.default)(c);a.s(["ListChecks",0,d],340753)},553415,a=>{"use strict";var b=a.i(256857);let c={name:"list-tree",size:24,node:[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]};c.node;let d=(0,b.default)(c);a.s(["ListTree",0,d],553415)},441852,a=>{"use strict";var b=a.i(256857);let c={name:"message-square",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"}]]};c.node;let d=(0,b.default)(c);a.s(["MessageSquare",0,d],441852)},661661,a=>{"use strict";var b=a.i(256857);let c={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};c.node;let d=(0,b.default)(c);a.s(["Pencil",0,d],661661)},551729,a=>{"use strict";var b=a.i(256857);let c={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};c.node;let d=(0,b.default)(c);a.s(["Sparkles",0,d],551729)},340933,a=>{"use strict";var b=a.i(256857);let c={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};c.node;let d=(0,b.default)(c);a.s(["AlertTriangle",0,d],340933)},815122,a=>{"use strict";var b=a.i(662145),c=a.i(795667),d=a.i(108280),e=a.i(368114),f=a.i(685698),g=a.i(598984);let h={running:"Agent working","needs-answer":"Agent needs you",review:"Plan to review"};a.s(["AgentDot",0,function({attach:a}){let c=(0,f.useItemAgent)(a);return c?(0,b.jsx)(g.StatusMarker,{status:c.status,label:h[c.status]}):null},"AgentMark",0,function({attach:a,className:g}){let i=(0,f.useItemAgent)(a),{show:j}=(0,f.useChats)();if(!i)return null;let k=h[i.status];return(0,b.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),j(i.chatId)},title:`${k} \xb7 open chat`,"aria-label":`${k}, open chat`,className:(0,e.cn)("nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)","running"===i.status&&"border-accent/50 text-accent hover:bg-accent/10","needs-answer"===i.status&&"border-amber/50 text-amber hover:bg-amber/10","review"===i.status&&"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20",g),children:["running"===i.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin","aria-hidden":!0}):(0,b.jsx)(c.Bot,{className:"size-3","aria-hidden":!0}),k]})}])},21215,a=>{"use strict";var b=a.i(662145),c=a.i(368114);a.s(["EmptyState",0,function({icon:a,message:d,subMessage:e,bordered:f}){return(0,b.jsxs)("div",{className:(0,c.cn)("text-center py-16 text-muted text-sm",f&&"border border-dashed border-border rounded-xl"),children:[(0,b.jsx)("p",{className:"text-3xl mb-3",children:a}),(0,b.jsx)("p",{children:d}),e&&(0,b.jsx)("p",{className:"text-xs mt-1",children:e})]})}])},192698,a=>{"use strict";var b=a.i(662145),c=a.i(368114);function d({properties:a,className:e,children:f}){let g=a.filter(a=>null!==a.value&&void 0!==a.value&&!1!==a.value);return 0!==g.length||f?(0,b.jsxs)("dl",{className:(0,c.cn)("grid grid-cols-[minmax(6.5rem,8.5rem)_minmax(0,1fr)] items-center gap-x-2 text-[13px]",e),children:[g.map(a=>(0,b.jsxs)("div",{className:"contents",children:[(0,b.jsxs)("dt",{className:"flex min-h-8 min-w-0 items-center gap-2 text-muted",children:[a.icon&&(0,b.jsx)(a.icon,{className:"size-3.5 shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{className:"min-w-0 truncate",children:a.label})]}),(0,b.jsx)("dd",{className:"flex min-h-8 min-w-0 items-center gap-2 text-txt",children:a.value})]},a.id??String(a.label))),f&&(0,b.jsx)("div",{className:"col-span-2 flex min-h-8 items-center",children:f})]}):null}a.s(["ItemPanelHeader",0,function({kicker:a,title:e,menu:f,properties:g,className:h,children:i}){return(0,b.jsxs)("header",{"data-item-header":!0,className:(0,c.cn)("flex shrink-0 flex-col gap-2 border-b border-border px-5 pb-4 pt-4",h),children:[(0,b.jsxs)("div",{className:"flex min-h-7 items-center gap-2 pr-8 font-mono text-[11px] text-muted",children:[(0,b.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:a}),f]}),(0,b.jsx)("div",{className:"text-base font-semibold leading-snug text-txt",children:e}),(0,b.jsx)(d,{properties:g,className:"-my-0.5"}),i]})},"PropertyRows",0,d])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0cv0ugs._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/calendar.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/circle-dashed.ts","../../../../src/components/shared/InlineProperty.tsx","../../../../src/components/shared/PriorityBadge.tsx","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/ellipsis.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/folder-input.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/list-checks.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/list-tree.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/message-square.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/pencil.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/sparkles.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../src/components/chat/AgentMark.tsx","../../../../src/components/shared/EmptyState.tsx","../../../../src/components/shared/ItemPanelHeader.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'calendar',\n size: 24,\n node: [\n ['path', { d: 'M8 2v3', key: '1ioesn' }],\n ['path', { d: 'M16 2v3', key: 'otl347' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2', key: 'h1oib' }],\n ['path', { d: 'M3 9h18', key: '1pudct' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Calendar\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/calendar\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 Calendar = createLucideIcon(__iconData);\n\nexport default Calendar;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'circle-dashed',\n size: 24,\n node: [\n ['path', { d: 'M10.1 2.182a10 10 0 0 1 3.8 0', key: '5ilxe3' }],\n ['path', { d: 'M13.9 21.818a10 10 0 0 1-3.8 0', key: '11zvb9' }],\n ['path', { d: 'M17.609 3.721a10 10 0 0 1 2.69 2.7', key: '1iw5b2' }],\n ['path', { d: 'M2.182 13.9a10 10 0 0 1 0-3.8', key: 'c0bmvh' }],\n ['path', { d: 'M20.279 17.609a10 10 0 0 1-2.7 2.69', key: '1ruxm7' }],\n ['path', { d: 'M21.818 10.1a10 10 0 0 1 0 3.8', key: 'qkgqxc' }],\n ['path', { d: 'M3.721 6.391a10 10 0 0 1 2.7-2.69', key: '1mcia2' }],\n ['path', { d: 'M6.391 20.279a10 10 0 0 1-2.69-2.7', key: '1fvljs' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CircleDashed\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-dashed\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 CircleDashed = createLucideIcon(__iconData);\n\nexport default CircleDashed;\n","\"use client\"\n\nimport { useState, type ReactNode } from \"react\"\nimport { Check } from \"lucide-react\"\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from \"@/components/ui/dropdown-menu\"\nimport { cn } from \"@/lib/utils\"\n\n// Edit one property where it is shown (R055). Clicks and keys are stopped so a card or row underneath\n// doesn't open or drag. Keyboard: the menu takes arrows + Enter, Esc cancels; the date takes Enter / Esc.\n\nconst stop = (e: React.SyntheticEvent) => e.stopPropagation()\nconst trigger = \"inline-flex min-w-0 items-center gap-1 rounded-sm px-1 -mx-1 text-left outline-hidden hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent/60\"\n\nexport interface InlineOption { value: string; label: string; node?: ReactNode }\n\n/** The shown value opens a menu of options; picking one calls onChange (the menu closes). */\nexport function InlineSelect({ label, value, options, onChange, children, className }: {\n /** What is being edited, for screen readers (\"Status of T001\") */\n label: string\n value: string\n options: InlineOption[]\n onChange: (value: string) => void\n children: ReactNode\n className?: string\n}) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button type=\"button\" aria-label={label} draggable={false} onClick={stop} onKeyDown={stop} onPointerDown={stop} className={cn(trigger, className)}>\n {children}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"max-h-72 w-48 overflow-y-auto\" onClick={stop} onKeyDown={stop}>\n {options.map((o) => (\n <DropdownMenuItem key={o.value} onSelect={() => { if (o.value !== value) onChange(o.value) }}>\n {o.node ?? o.label}\n {o.value === value && <Check className=\"ml-auto size-3.5 text-muted\" aria-hidden />}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n/** The shown date turns into a date input: Enter saves, Esc cancels, leaving the field saves a change. */\nexport function InlineDate({ label, value, onChange, children, className }: {\n label: string\n value: string | null\n onChange: (value: string | null) => void\n children: ReactNode\n className?: string\n}) {\n const [editing, setEditing] = useState(false)\n const [draft, setDraft] = useState(value ?? \"\")\n const commit = () => {\n setEditing(false)\n if ((draft || null) !== value) onChange(draft || null)\n }\n if (!editing) {\n return (\n <button\n type=\"button\"\n aria-label={label}\n draggable={false}\n onClick={(e) => { stop(e); setDraft(value ?? \"\"); setEditing(true) }}\n onKeyDown={stop}\n className={cn(trigger, className)}\n >\n {children}\n </button>\n )\n }\n return (\n <input\n type=\"date\"\n autoFocus\n aria-label={label}\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onClick={stop}\n onPointerDown={stop}\n onKeyDown={(e) => {\n stop(e)\n if (e.key === \"Enter\") { e.preventDefault(); commit() }\n if (e.key === \"Escape\") { e.preventDefault(); setEditing(false) }\n }}\n onBlur={commit}\n className=\"h-6 rounded-sm border border-accent/60 bg-bg px-1 font-mono text-[11px] text-txt scheme-light outline-hidden dark:scheme-dark\"\n />\n )\n}\n\n/** The shown text turns into a text input: Enter or leaving saves, Esc cancels. Saving \"\" passes null. */\nexport function InlineText({ label, value, onChange, children, className, placeholder, startEditing = false, onCancel }: {\n label: string\n value: string | null\n onChange: (value: string | null) => void\n children: ReactNode\n className?: string\n placeholder?: string\n /** Open as an input right away (a property that was just added) */\n startEditing?: boolean\n onCancel?: () => void\n}) {\n const [editing, setEditing] = useState(startEditing)\n const [draft, setDraft] = useState(value ?? \"\")\n const commit = () => {\n setEditing(false)\n const next = draft.trim() || null\n if (next !== value) onChange(next)\n else if (!next) onCancel?.()\n }\n if (!editing) {\n return (\n <button\n type=\"button\"\n aria-label={label}\n draggable={false}\n onClick={(e) => { stop(e); setDraft(value ?? \"\"); setEditing(true) }}\n onKeyDown={stop}\n className={cn(trigger, className)}\n >\n {children}\n </button>\n )\n }\n return (\n <input\n autoFocus\n aria-label={label}\n value={draft}\n placeholder={placeholder}\n onChange={(e) => setDraft(e.target.value)}\n onClick={stop}\n onPointerDown={stop}\n onKeyDown={(e) => {\n stop(e)\n if (e.key === \"Enter\") { e.preventDefault(); commit() }\n if (e.key === \"Escape\") { e.preventDefault(); setEditing(false); onCancel?.() }\n }}\n onBlur={commit}\n className=\"h-7 w-full min-w-0 rounded-sm border border-accent/60 bg-bg px-1.5 text-[13px] text-txt outline-hidden placeholder:text-muted\"\n />\n )\n}\n","\"use client\"\n\nimport { cn } from \"@/lib/utils\"\nimport { PRIORITIES, type Priority } from \"@/lib/doc-priority\"\nimport { InlineSelect } from \"./InlineProperty\"\n\n// Colour only where it asks for attention: P0 red, P1 amber, P2/P3 stay neutral.\nconst TONE: Record<Priority, string> = {\n P0: \"bg-danger/12 text-danger\",\n P1: \"bg-amber/12 text-amber\",\n P2: \"bg-surface2 text-txt\",\n P3: \"bg-surface2 text-muted\",\n}\n\nexport function PriorityBadge({ priority, className }: { priority: Priority; className?: string }) {\n return (\n <span className={cn(\"inline-flex h-4 shrink-0 items-center rounded-sm px-1 font-mono text-[10px] font-medium leading-none\", TONE[priority], className)}>\n {priority}\n </span>\n )\n}\n\nconst OPTIONS = [\n ...PRIORITIES.map((p) => ({ value: p, label: p, node: <PriorityBadge priority={p} /> })),\n { value: \"\", label: \"No priority\", node: <span className=\"text-muted\">No priority</span> },\n]\n\n/** P0–P3 picker for any item (task, epic, doc); \"\" in the menu clears it. */\nexport function PriorityField({ label, value, onChange, empty }: {\n label: string\n value: Priority | null\n onChange: (value: Priority | null) => void\n /** Shown when unset */\n empty?: React.ReactNode\n}) {\n return (\n <InlineSelect label={label} value={value ?? \"\"} options={OPTIONS} onChange={(v) => onChange((v || null) as Priority | null)}>\n {value ? <PriorityBadge priority={value} /> : (empty ?? <span className=\"text-muted\">—</span>)}\n </InlineSelect>\n )\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'ellipsis',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n ['circle', { cx: '19', cy: '12', r: '1', key: '1wjl8i' }],\n ['circle', { cx: '5', cy: '12', r: '1', key: '1pcz8c' }],\n ],\n aliases: ['more-horizontal'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Ellipsis\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/ellipsis\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 Ellipsis = createLucideIcon(__iconData);\n\nexport default Ellipsis;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'folder-input',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1',\n key: 'fm4g5t',\n },\n ],\n ['path', { d: 'M2 13h10', key: 'pgb2dq' }],\n ['path', { d: 'm9 16 3-3-3-3', key: '6m91ic' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name FolderInput\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder-input\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 FolderInput = createLucideIcon(__iconData);\n\nexport default FolderInput;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'list-checks',\n size: 24,\n node: [\n ['path', { d: 'M13 5h8', key: 'a7qcls' }],\n ['path', { d: 'M13 12h8', key: 'h98zly' }],\n ['path', { d: 'M13 19h8', key: 'c3s6r1' }],\n ['path', { d: 'm3 17 2 2 4-4', key: '1jhpwq' }],\n ['path', { d: 'm3 7 2 2 4-4', key: '1obspn' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ListChecks\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/list-checks\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 ListChecks = createLucideIcon(__iconData);\n\nexport default ListChecks;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'list-tree',\n size: 24,\n node: [\n ['path', { d: 'M8 5h13', key: '1pao27' }],\n ['path', { d: 'M13 12h8', key: 'h98zly' }],\n ['path', { d: 'M13 19h8', key: 'c3s6r1' }],\n ['path', { d: 'M3 10a2 2 0 0 0 2 2h3', key: '1npucw' }],\n ['path', { d: 'M3 5v12a2 2 0 0 0 2 2h3', key: 'x1gjn2' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ListTree\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/list-tree\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 ListTree = createLucideIcon(__iconData);\n\nexport default ListTree;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'message-square',\n size: 24,\n node: [\n [\n 'path',\n {\n 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',\n key: '18887p',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\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 MessageSquare = createLucideIcon(__iconData);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'pencil',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\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 Pencil = createLucideIcon(__iconData);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sparkles',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n ],\n aliases: ['stars'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\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 Sparkles = createLucideIcon(__iconData);\n\nexport default Sparkles;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'triangle-alert',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n ],\n aliases: ['alert-triangle'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\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 TriangleAlert = createLucideIcon(__iconData);\n\nexport default TriangleAlert;\n","\"use client\"\n\nimport { Bot, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { useChats, useItemAgent } from \"@/context/ChatContext\"\nimport type { Attach, ItemAgent } from \"@/lib/chats\"\nimport { StatusMarker } from \"./StatusMarker\"\n\nexport const AGENT_LABEL: Record<ItemAgent[\"status\"], string> = {\n running: \"Agent working\",\n \"needs-answer\": \"Agent needs you\",\n review: \"Plan to review\",\n}\n\n/**\n * Pill on an epic/task while a chat works on it; click opens that chat.\n * `nodrag` + stopPropagation keep a React Flow node from dragging/selecting on click.\n */\nexport function AgentMark({ attach, className }: { attach: Attach; className?: string }) {\n const agent = useItemAgent(attach)\n const { show } = useChats()\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); show(agent.chatId) }}\n title={`${label} · open chat`}\n aria-label={`${label}, open chat`}\n className={cn(\n \"nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)\",\n agent.status === \"running\" && \"border-accent/50 text-accent hover:bg-accent/10\",\n agent.status === \"needs-answer\" && \"border-amber/50 text-amber hover:bg-amber/10\",\n agent.status === \"review\" && \"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20\",\n className,\n )}\n >\n {agent.status === \"running\" ? <Loader2 className=\"size-3 animate-spin\" aria-hidden /> : <Bot className=\"size-3\" aria-hidden />}\n {label}\n </button>\n )\n}\n\n/** Non-interactive variant for places that are already a button (timeline markers, board cards, task rows). */\nexport function AgentDot({ attach }: { attach: Attach }) {\n const agent = useItemAgent(attach)\n if (!agent) return null\n return <StatusMarker status={agent.status} label={AGENT_LABEL[agent.status]} />\n}\n","import { cn } from \"@/lib/utils\"\r\n\r\ninterface EmptyStateProps {\r\n icon: string\r\n message: string\r\n subMessage?: string\r\n bordered?: boolean\r\n}\r\n\r\nexport function EmptyState({ icon, message, subMessage, bordered }: EmptyStateProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"text-center py-16 text-muted text-sm\",\r\n bordered && \"border border-dashed border-border rounded-xl\",\r\n )}\r\n >\r\n <p className=\"text-3xl mb-3\">{icon}</p>\r\n <p>{message}</p>\r\n {subMessage && <p className=\"text-xs mt-1\">{subMessage}</p>}\r\n </div>\r\n )\r\n}\r\n","import type { ReactNode } from \"react\"\nimport type { LucideIcon } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface ItemProperty {\n label: ReactNode\n /** Row key when the label is not a string */\n id?: string\n icon?: LucideIcon\n /** null / undefined / false = the row is left out */\n value: ReactNode\n}\n\n/**\n * Notion-style property rows: icon + name on the left, the value (usually an inline editor) on the right.\n * Task, epic and doc panels all use it, so a property reads the same wherever it shows.\n */\nexport function PropertyRows({ properties, className, children }: {\n properties: ItemProperty[]\n className?: string\n /** A last full-width row, e.g. \"Add a property\" */\n children?: ReactNode\n}) {\n const shown = properties.filter((p) => p.value !== null && p.value !== undefined && p.value !== false)\n if (shown.length === 0 && !children) return null\n return (\n <dl className={cn(\"grid grid-cols-[minmax(6.5rem,8.5rem)_minmax(0,1fr)] items-center gap-x-2 text-[13px]\", className)}>\n {shown.map((p) => (\n <div key={p.id ?? String(p.label)} className=\"contents\">\n <dt className=\"flex min-h-8 min-w-0 items-center gap-2 text-muted\">\n {p.icon && <p.icon className=\"size-3.5 shrink-0\" aria-hidden />}\n <span className=\"min-w-0 truncate\">{p.label}</span>\n </dt>\n <dd className=\"flex min-h-8 min-w-0 items-center gap-2 text-txt\">{p.value}</dd>\n </div>\n ))}\n {children && <div className=\"col-span-2 flex min-h-8 items-center\">{children}</div>}\n </dl>\n )\n}\n\n/**\n * The one header every item panel uses (task, epic, doc): a kicker line (id · kind / breadcrumb) with the\n * ⋯ menu always at its right end, the title, then a properties grid.\n * `title` is a node so a Sheet can pass its SheetTitle.\n */\nexport function ItemPanelHeader({ kicker, title, menu, properties, className, children }: {\n kicker: ReactNode\n title: ReactNode\n menu?: ReactNode\n properties: ItemProperty[]\n className?: string\n /** Extra header content under the properties (e.g. an epic's progress) */\n children?: ReactNode\n}) {\n return (\n <header data-item-header className={cn(\"flex shrink-0 flex-col gap-2 border-b border-border px-5 pb-4 pt-4\", className)}>\n <div className=\"flex min-h-7 items-center gap-2 pr-8 font-mono text-[11px] text-muted\">\n <div className=\"flex min-w-0 flex-1 items-center gap-1\">{kicker}</div>\n {menu}\n </div>\n <div className=\"text-base font-semibold leading-snug text-txt\">{title}</div>\n <PropertyRows properties={properties} className=\"-my-0.5\" />\n {children}\n </header>\n )\n}\n"],"names":["cy","r","node","AGENT_LABEL","running","review","AgentMark","attach","className","agent","show","label","status","type","onClick","e","stopPropagation","chatId","title","AgentDot","EmptyState","icon","message","subMessage","bordered","PropertyRows","properties","children","shown","filter","p","value","undefined","length","map","id","String","ItemPanelHeader","kicker","menu"],"mappings":"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","ignoreList":[0,1,4,5,6,7,8,9,10,11]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[508817,a=>{"use strict";var b=a.i(256857);let c={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};c.node;let d=(0,b.default)(c);a.s(["BookOpen",0,d],508817)},717371,a=>{"use strict";var b=a.i(256857);let c={name:"flag",size:24,node:[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]};c.node;let d=(0,b.default)(c);a.s(["Flag",0,d],717371)},759658,a=>{"use strict";var b=a.i(256857);let c={name:"lightbulb",size:24,node:[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]};c.node;let d=(0,b.default)(c);a.s(["Lightbulb",0,d],759658)},471617,a=>{"use strict";var b=a.i(256857);let c={name:"scale",size:24,node:[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]};c.node;let d=(0,b.default)(c);a.s(["Scale",0,d],471617)},853244,a=>{"use strict";var b=a.i(256857);let c={name:"unlink",size:24,node:[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]};c.node;let d=(0,b.default)(c);a.s(["Unlink",0,d],853244)},892678,a=>{"use strict";var b=a.i(256857);let c={name:"user",size:24,node:[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]};c.node;let d=(0,b.default)(c);a.s(["User",0,d],892678)},731050,760093,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(508817),f=a.i(926128),g=a.i(717371),h=a.i(759658),i=a.i(471617),j=a.i(544394),k=a.i(173628),l=a.i(147758);let m=[{kind:"task",label:"Tasks"},{kind:"epic",label:"Epics"},{kind:"adr",label:"ADRs"},{kind:"doc",label:"Docs"},{kind:"entry",label:"Entries"}],n={epic:g.Flag,adr:i.Scale,doc:f.FileText,entry:h.Lightbulb,task:e.BookOpen};function o(a){let b=(0,d.useRouter)(),{openDoc:c}=(0,j.useApp)();return d=>{"task"===d.kind?b.push(`/board?task=${d.id}`):"epic"===d.kind?b.push(`/roadmap?item=${d.id}`):"entry"===d.kind?a(d.id):c(d.path)}}a.s(["EntryRelated",0,function({entryId:a,onOpenEntry:d}){let{rootParam:e,summary:f,board:g}=(0,j.useApp)(),h=o(d),[i,p]=(0,c.useState)(null);(0,c.useEffect)(()=>{let b=!0;return fetch(`/api/memory/graph${e}&entry=${encodeURIComponent(a)}`).then(a=>a.json()).then(a=>{b&&p(a.nodes?a:{nodes:[],edges:[]})}).catch(a=>{console.warn("Loading entry links failed",a),b&&p({nodes:[],edges:[]})}),()=>{b=!1}},[a,e,f]);let q=(0,c.useMemo)(()=>new Map(Object.values(g??{}).flat().map(a=>[a.id,a])),[g]),r=(0,c.useMemo)(()=>new Map((i?.nodes??[]).map(a=>[a.id,a])),[i]),s=a=>a.map(a=>r.get(a)).filter(a=>!!a),t=s((i?.edges??[]).filter(b=>b.from===a).map(a=>a.to)),u=s((i?.edges??[]).filter(b=>b.to===a).map(a=>a.from)),v=a=>{let c="task"===a.kind?q.get(a.id):void 0,d=c?(0,l.displayStatus)(c):"epic"===a.kind?a.status:void 0,e=n[a.kind];return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>h(a),title:a.path,className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent",children:[d?(0,b.jsx)(k.StatusIcon,{status:d,className:"size-3.5 shrink-0"}):(0,b.jsx)(e,{className:"size-3.5 shrink-0 text-muted","aria-hidden":!0}),"doc"!==a.kind&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.id}),(0,b.jsx)("span",{className:"min-w-0 truncate text-txt",children:a.label})]})},a.id)},w=(a,c)=>(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("h4",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted",children:a}),m.map(({kind:a,label:d})=>{let e=c.filter(b=>b.kind===a);return e.length?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"px-2 text-[11px] text-muted",children:d}),(0,b.jsx)("ul",{children:e.map(v)})]},a):null})]});return(0,b.jsxs)("section",{"aria-label":"Related",className:"mt-5 flex flex-col gap-3 border-t border-border pt-4",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-txt",children:"Related"}),null===i?(0,b.jsx)("p",{className:"text-xs text-muted",children:"Loading links…"}):t.length||u.length?(0,b.jsxs)(b.Fragment,{children:[t.length>0&&w("Links to",t),u.length>0&&w("Linked from",u)]}):(0,b.jsx)("p",{className:"text-xs text-muted",children:"No links yet. Mention a task, epic or doc in the entry to link it."})]})},"GROUPS",0,m,"KIND_ICON",0,n,"useOpenNode",0,o],731050);let p=new Set(["doc_updated","doc_created","doc_deleted","doc_renamed","task_created","task_updated","roadmap_updated","memory_updated","decision_logged"]),q=new Set;function r(a){return q.add(a),()=>{q.delete(a)}}function s(){return(0,c.useSyncExternalStore)(r,()=>0,()=>0)}let t=new Map;function u(a){let b=t.get(a);if(!b){let c=b=fetch(a).then(async a=>{let b=await a.json().catch(()=>null);if(!a.ok)throw Error(b?.error??`${a.status} ${a.statusText}`);return b});c.catch(()=>{t.get(a)===c&&t.delete(a)}),t.set(a,c)}return b}a.s(["LINK_EVENTS",0,p,"fetchLinkJson",0,u,"useDocLinks",0,function(a){let{rootParam:b}=(0,j.useApp)(),[d,e]=(0,c.useState)(null),f=s();return(0,c.useEffect)(()=>{if(!a)return;let c=!0;return u(`/api/docs/links${b}&path=${encodeURIComponent(a)}`).then(b=>{c&&e({path:a,links:{out:b.out??[],in:b.in??[],broken:b.broken??[],stale:b.stale??[],targets:b.targets??{}}})}).catch(b=>{console.warn("Loading doc links failed",b),c&&e({path:a,links:{out:[],in:[],broken:[],stale:[],targets:{}}})}),()=>{c=!1}},[a,b,f]),a&&d?.path===a?d.links:null},"useLinkGeneration",0,s],760093)},813722,853775,a=>{"use strict";var b=a.i(662145),c=a.i(795667),d=a.i(892678),e=a.i(368114);function f(a){return"human"===a?"human":a?.startsWith("ai:")?"ai":"none"}function g(a){return"human"===a?"Human":a?.startsWith("ai:")?a.slice(3):"No owner"}a.s(["ownerKind",0,f,"ownerLabel",0,g,"parseOwner",0,function(a){let b=(a??"").trim().toLowerCase();if("human"===b)return"human";let c=b.match(/^ai(?::\s*([a-z0-9._-]+))?$/);return c?`ai:${c[1]??"agent"}`:null}],853775),a.s(["OwnerChip",0,function({owner:a,className:h}){let i=f(a);if("none"===i)return null;let j="ai"===i?c.Bot:d.User;return(0,b.jsxs)("span",{title:`Owner: ${g(a)}`,className:(0,e.cn)("inline-flex items-center gap-1 text-[11px] text-muted",h),children:[(0,b.jsx)(j,{className:(0,e.cn)("size-3.5 shrink-0","ai"===i&&"text-accent"),"aria-hidden":!0}),g(a)]})}],813722)},692938,a=>{"use strict";let b=new Set(["a","b","c","x","y","z","path","name","slug","title","foo","bar","wikilinks","example"]),c=a=>String(Number(a)).padStart(3,"0");function d(a){return a.startsWith("ADR-")?`ADR-${c(a.slice(4))}`:a.startsWith("E")?`E${c(a.slice(1))}`:a}function e(a,b){let c,e=function(a){let b=[];for(let c of a.replace(/\\/g,"/").split("/"))if(c&&"."!==c)if(".."===c){if(!b.length)return null;b.pop()}else b.push(c);return b.join("/")}(a)??a,f=(e.split("/").pop()??e).replace(/\.md$/i,""),g=(/^#\s+(.+?)\s*$/m.exec(b)?.[1]??"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/g,(a,b,c)=>c??b).replace(/(\*\*|\*|~~|`)(\S(?:.*?\S)?)\1/g,"$2").replace(/(^|\W)(__|_)(\S(?:.*?\S)?)\2(?=\W|$)/g,"$1$3").replace(/<[^>]+>/g,"").trim(),h=/[^.][.!]$/.test(g)?"":g,i=a=>h.replace(RegExp(`^${a}\\s*[:—–-]\\s*`),"")||f;return(c=/^plans\/tasks\/(T\d{3,})[^/]*\.md$/.exec(e))?{id:c[1],kind:"task",label:i(c[1]),path:e}:(c=/^plans\/roadmap\/(R\d{3,})[^/]*\.md$/.exec(e))?{id:c[1],kind:"epic",label:i(c[1]),path:e}:(c=/^memory\/entries\/(E\d+)[^/]*\.md$/.exec(e))?{id:d(c[1]),kind:"entry",label:i(c[1]),path:e}:(c=/(?:^|\/)(ADR-\d+)[^/]*\.md$/.exec(e))?{id:d(c[1]),kind:"adr",label:i(c[1]),path:e}:{id:e,kind:"doc",label:h||f,path:e}}new WeakMap;let f=["doc","adr"],g=/^(?:Entry )?(E\d+|T\d{3,}|R\d{3,}|ADR-\d+)\b/,h=new Set(["doc_updated","doc_created"]);a.s(["GRAPH_DEFAULT_KINDS",0,f,"docNode",0,e,"graphHref",0,function(a){let b=new URLSearchParams({node:a,focus:"1"}),c=e(a,"").kind;return f.includes(c)||b.set("kinds",[...f,c].join(",")),`/graph?${b}`},"isExampleTarget",0,function(a){let c=(a.split("/").pop()??"").replace(/\.md$/i,"").replace(/^(?:ADR-\d+|[TRE]\d+)-/,"");return b.has(c.toLowerCase())},"touchedPaths",0,function(a,b,c){let d=new Map;for(let a of b)d.set(a.id,a.path),d.set(a.path,a.path);let e=new Set;for(let b of a){if(!(Date.parse(b.timestamp)>=c))continue;let a=[b.taskId,g.exec(b.title)?.[1]];for(let c of(h.has(b.type)&&a.push(b.detail),"doc_renamed"===b.type&&a.push(b.title.split(" → ")[1]),"memory_updated"!==b.type||b.title.startsWith("Entry ")||a.push("memory/MEMORY.md"),a)){let a=c?d.get(c.trim()):void 0;a&&e.add(a)}}return e}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0ghj-vx._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/book-open.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/flag.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/lightbulb.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/scale.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/unlink.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/user.ts","../../../../src/components/memory/EntryRelated.tsx","../../../../src/components/docs/useDocLinks.ts","../../../../src/components/shared/OwnerChip.tsx","../../../../src/lib/owner.ts","../../../../src/lib/doc-links.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'book-open',\n size: 24,\n node: [\n ['path', { d: 'M12 5v16', key: '1f6ucr' }],\n [\n 'path',\n {\n d: 'M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z',\n key: '1fyvmf',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name BookOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/book-open\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 BookOpen = createLucideIcon(__iconData);\n\nexport default BookOpen;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'flag',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528',\n key: '1jaruq',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Flag\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/flag\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 Flag = createLucideIcon(__iconData);\n\nexport default Flag;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'lightbulb',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5',\n key: '1gvzjb',\n },\n ],\n ['path', { d: 'M9 18h6', key: 'x1upvd' }],\n ['path', { d: 'M10 22h4', key: 'ceow96' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Lightbulb\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lightbulb\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 Lightbulb = createLucideIcon(__iconData);\n\nexport default Lightbulb;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'scale',\n size: 24,\n node: [\n ['path', { d: 'M12 3v18', key: '108xh3' }],\n ['path', { d: 'm19 8 3 8a5 5 0 0 1-6 0zV7', key: 'zcdpyk' }],\n ['path', { d: 'M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1', key: '1yorad' }],\n ['path', { d: 'm5 8 3 8a5 5 0 0 1-6 0zV7', key: 'eua70x' }],\n ['path', { d: 'M7 21h10', key: '1b0cd5' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Scale\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/scale\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 Scale = createLucideIcon(__iconData);\n\nexport default Scale;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'unlink',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71',\n key: 'yqzxt4',\n },\n ],\n [\n 'path',\n {\n d: 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71',\n key: '4qinb0',\n },\n ],\n ['line', { x1: '8', x2: '8', y1: '2', y2: '5', key: '1041cp' }],\n ['line', { x1: '2', x2: '5', y1: '8', y2: '8', key: '14m1p5' }],\n ['line', { x1: '16', x2: '16', y1: '19', y2: '22', key: 'rzdirn' }],\n ['line', { x1: '19', x2: '22', y1: '16', y2: '16', key: 'ox905f' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Unlink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/unlink\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 Unlink = createLucideIcon(__iconData);\n\nexport default Unlink;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'user',\n size: 24,\n node: [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/user\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 User = createLucideIcon(__iconData);\n\nexport default User;\n","\"use client\"\n\nimport { useEffect, useMemo, useState } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { BookOpen, FileText, Flag, Lightbulb, Scale } from \"lucide-react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { StatusIcon } from \"@/components/shared/StatusIcon\"\nimport { displayStatus } from \"@/lib/statuses\"\nimport type { GraphNode, MemoryGraph, NodeKind } from \"@/lib/memory-graph\"\n\nexport const GROUPS: { kind: NodeKind; label: string }[] = [\n { kind: \"task\", label: \"Tasks\" },\n { kind: \"epic\", label: \"Epics\" },\n { kind: \"adr\", label: \"ADRs\" },\n { kind: \"doc\", label: \"Docs\" },\n { kind: \"entry\", label: \"Entries\" },\n]\nexport const KIND_ICON = { epic: Flag, adr: Scale, doc: FileText, entry: Lightbulb, task: BookOpen } as const\n\n/** Open a graph node where it lives: a task on /board, an epic on /roadmap, a doc or ADR in Docs, an entry here. */\nexport function useOpenNode(onOpenEntry: (id: string) => void) {\n const router = useRouter()\n const { openDoc } = useApp()\n return (n: GraphNode) => {\n if (n.kind === \"task\") router.push(`/board?task=${n.id}`)\n else if (n.kind === \"epic\") router.push(`/roadmap?item=${n.id}`)\n else if (n.kind === \"entry\") onOpenEntry(n.id)\n else void openDoc(n.path)\n }\n}\n\n/**\n * What an entry links to and what links back (R053), from GET /api/memory/graph?entry=.\n * Links are inferred from text, so the way to change them is to edit the entry.\n */\nexport function EntryRelated({ entryId, onOpenEntry }: { entryId: string; onOpenEntry: (id: string) => void }) {\n const { rootParam, summary, board } = useApp()\n const open = useOpenNode(onOpenEntry)\n const [graph, setGraph] = useState<MemoryGraph | null>(null)\n\n // refetch when the entry changes and on every memory_updated SSE event (AppContext replaces `summary`)\n useEffect(() => {\n let live = true\n fetch(`/api/memory/graph${rootParam}&entry=${encodeURIComponent(entryId)}`)\n .then((r) => r.json())\n .then((g: MemoryGraph) => { if (live) setGraph(g.nodes ? g : { nodes: [], edges: [] }) })\n .catch((e) => {\n console.warn(\"Loading entry links failed\", e)\n if (live) setGraph({ nodes: [], edges: [] })\n })\n return () => { live = false }\n }, [entryId, rootParam, summary])\n\n const tasks = useMemo(() => new Map(Object.values(board ?? {}).flat().map((t) => [t.id, t])), [board])\n const byId = useMemo(() => new Map((graph?.nodes ?? []).map((n) => [n.id, n])), [graph])\n const pick = (ids: string[]) => ids.map((id) => byId.get(id)).filter((n): n is GraphNode => !!n)\n const linksTo = pick((graph?.edges ?? []).filter((e) => e.from === entryId).map((e) => e.to))\n const linkedFrom = pick((graph?.edges ?? []).filter((e) => e.to === entryId).map((e) => e.from))\n\n // tasks from the live board, epics from the node (their roadmap status): one StatusIcon for both, as in Linked docs\n const row = (n: GraphNode & { status?: string }) => {\n const task = n.kind === \"task\" ? tasks.get(n.id) : undefined\n const status = task ? displayStatus(task) : n.kind === \"epic\" ? n.status : undefined\n const Icon = KIND_ICON[n.kind]\n return (\n <li key={n.id}>\n <button\n type=\"button\"\n onClick={() => open(n)}\n title={n.path}\n className=\"flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm outline-none hover:bg-surface2 focus-visible:ring-2 focus-visible:ring-accent\"\n >\n {status ? <StatusIcon status={status} className=\"size-3.5 shrink-0\" /> : <Icon className=\"size-3.5 shrink-0 text-muted\" aria-hidden />}\n {n.kind !== \"doc\" && <span className=\"shrink-0 font-mono text-[11px] text-muted\">{n.id}</span>}\n <span className=\"min-w-0 truncate text-txt\">{n.label}</span>\n </button>\n </li>\n )\n }\n\n const section = (title: string, nodes: GraphNode[]) => (\n <div className=\"flex flex-col gap-1.5\">\n <h4 className=\"text-[11px] font-semibold uppercase tracking-wider text-muted\">{title}</h4>\n {GROUPS.map(({ kind, label }) => {\n const group = nodes.filter((n) => n.kind === kind)\n if (!group.length) return null\n return (\n <div key={kind}>\n <p className=\"px-2 text-[11px] text-muted\">{label}</p>\n <ul>{group.map(row)}</ul>\n </div>\n )\n })}\n </div>\n )\n\n return (\n <section aria-label=\"Related\" className=\"mt-5 flex flex-col gap-3 border-t border-border pt-4\">\n <h3 className=\"text-xs font-semibold text-txt\">Related</h3>\n {graph === null ? (\n <p className=\"text-xs text-muted\">Loading links…</p>\n ) : !linksTo.length && !linkedFrom.length ? (\n <p className=\"text-xs text-muted\">No links yet. Mention a task, epic or doc in the entry to link it.</p>\n ) : (\n <>\n {linksTo.length > 0 && section(\"Links to\", linksTo)}\n {linkedFrom.length > 0 && section(\"Linked from\", linkedFrom)}\n </>\n )}\n </section>\n )\n}\n","\"use client\"\n\nimport { useEffect, useState, useSyncExternalStore } from \"react\"\nimport { useApp } from \"@/context/AppContext\"\nimport type { LinkRow, TargetRow } from \"@/lib/doc-links\"\n\nexport type DocLinksData = { out: LinkRow[]; in: LinkRow[]; broken: LinkRow[]; stale: LinkRow[]; targets: Record<string, TargetRow> }\n\n/** Events that can change which files exist or what they link to. */\nexport const LINK_EVENTS = new Set([\"doc_updated\", \"doc_created\", \"doc_deleted\", \"doc_renamed\", \"task_created\", \"task_updated\", \"roadmap_updated\", \"memory_updated\", \"decision_logged\"])\n\n// A burst of LINK_EVENTS (an agent moving five tasks) becomes one generation bump, so one refetch per URL\nconst DEBOUNCE_MS = 250\nlet generation = 0\nlet timer: ReturnType<typeof setTimeout> | undefined\nconst subscribers = new Set<() => void>()\nfunction onSse(e: Event) {\n if (!LINK_EVENTS.has((e as CustomEvent<{ type: string }>).detail?.type)) return\n clearTimeout(timer)\n timer = setTimeout(() => {\n generation++\n cache.clear()\n subscribers.forEach((f) => f())\n }, DEBOUNCE_MS)\n}\n// Registered once for the page's life, never removed: the cache must be cleared even while no link view is mounted\n// (a change made while the user is on /board must not be served from a stale promise on the way back).\nif (typeof window !== \"undefined\") window.addEventListener(\"vibedoc:sse\", onSse)\nfunction subscribe(cb: () => void) {\n subscribers.add(cb)\n return () => { subscribers.delete(cb) }\n}\n\n/** Bumps ~250ms after the last file-changing SSE event; use it as an effect dep to refetch link data. */\nexport function useLinkGeneration(): number {\n return useSyncExternalStore(subscribe, () => generation, () => 0)\n}\n\n// One request per URL per generation, shared by every caller (DocViewer + the preview's link handling, strict\n// mode's double effect). A failure is evicted so Retry asks again.\nconst cache = new Map<string, Promise<unknown>>()\nexport function fetchLinkJson<T>(url: string): Promise<T> {\n let p = cache.get(url)\n if (!p) {\n p = fetch(url).then(async (r) => {\n const body = await r.json().catch(() => null)\n if (!r.ok) throw new Error(body?.error ?? `${r.status} ${r.statusText}`)\n return body\n })\n const mine = p\n mine.catch(() => { if (cache.get(url) === mine) cache.delete(url) })\n cache.set(url, mine)\n }\n return p as Promise<T>\n}\n\n/**\n * Resolved links of one .md file (R056), from GET /api/docs/links; null while loading, empty for an unknown file.\n * Refetched on file-changing SSE events. The browser never resolves paths: a clicked link is matched to this data\n * by its raw target string as written in the file (`../b/y.md` without `#h`, `[[DOMAIN_MAP]]` → `DOMAIN_MAP`),\n * looked up in `targets` first, then `broken`.\n */\nexport function useDocLinks(path: string | undefined): DocLinksData | null {\n const { rootParam } = useApp()\n const [data, setData] = useState<{ path: string; links: DocLinksData } | null>(null)\n const gen = useLinkGeneration()\n\n useEffect(() => {\n if (!path) return\n let live = true\n fetchLinkJson<Partial<DocLinksData>>(`/api/docs/links${rootParam}&path=${encodeURIComponent(path)}`)\n .then((d) => {\n if (live) setData({ path, links: { out: d.out ?? [], in: d.in ?? [], broken: d.broken ?? [], stale: d.stale ?? [], targets: d.targets ?? {} } })\n })\n .catch((e) => {\n console.warn(\"Loading doc links failed\", e)\n if (live) setData({ path, links: { out: [], in: [], broken: [], stale: [], targets: {} } })\n })\n return () => { live = false }\n }, [path, rootParam, gen])\n\n // another file's links never show while this one loads\n return path && data?.path === path ? data.links : null\n}\n","import { Bot, User } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { ownerKind, ownerLabel } from \"@/lib/owner\"\n\n/** Who is in charge: a person icon for \"human\", a bot + agent name for \"ai:<agent>\". Nothing when unset. */\nexport function OwnerChip({ owner, className }: { owner: string | null; className?: string }) {\n const kind = ownerKind(owner)\n if (kind === \"none\") return null\n const Icon = kind === \"ai\" ? Bot : User\n return (\n <span title={`Owner: ${ownerLabel(owner)}`} className={cn(\"inline-flex items-center gap-1 text-[11px] text-muted\", className)}>\n <Icon className={cn(\"size-3.5 shrink-0\", kind === \"ai\" && \"text-accent\")} aria-hidden />\n {ownerLabel(owner)}\n </span>\n )\n}\n","// Who is in charge of a task / epic (R055): `**Owner:** human` or `**Owner:** ai:<agent>`.\n// Pure (no React, no fs). Self-check: `node src/lib/owner.check.mts`.\n\nexport type OwnerKind = \"human\" | \"ai\" | \"none\"\n\nconst KNOWN_AGENTS = [\"claude\", \"cursor\", \"codex\", \"copilot\", \"gemini\", \"windsurf\", \"cline\", \"opencode\"]\n\n/** \"human\" | \"ai:<agent>\" (lowercase), or null for empty / \"—\" / anything else. A bare \"ai\" becomes \"ai:agent\". */\nexport function parseOwner(raw: string | null | undefined): string | null {\n const v = (raw ?? \"\").trim().toLowerCase()\n if (v === \"human\") return \"human\"\n const m = v.match(/^ai(?::\\s*([a-z0-9._-]+))?$/)\n return m ? `ai:${m[1] ?? \"agent\"}` : null\n}\n\nexport function ownerKind(owner: string | null): OwnerKind {\n return owner === \"human\" ? \"human\" : owner?.startsWith(\"ai:\") ? \"ai\" : \"none\"\n}\n\n/** \"Human\", \"claude\", \"No owner\". */\nexport function ownerLabel(owner: string | null): string {\n return owner === \"human\" ? \"Human\" : owner?.startsWith(\"ai:\") ? owner.slice(3) : \"No owner\"\n}\n\n/** Agent name from an MCP client's User-Agent (\"claude-code/2.1\" → \"claude\"); \"agent\" when unknown. */\nexport function agentFromUserAgent(ua: string | null | undefined): string {\n const s = (ua ?? \"\").toLowerCase()\n return KNOWN_AGENTS.find((a) => s.includes(a)) ?? \"agent\"\n}\n","// Pure doc link graph (R056, no fs): resolved links between every .md file, derived from text, never stored.\n// Self-check: node src/lib/doc-links.check.mts. Regexes and labels are copied from memory-graph.ts (pure libs\n// never import values from each other), but here relative `./` and `../` targets are resolved.\n\nexport type DocNodeKind = 'doc' | 'adr' | 'task' | 'epic' | 'entry'\n/** `status` / `owner` are set on task and epic nodes by GET /api/docs/graph, never by docNode(). */\nexport type DocNode = { id: string; kind: DocNodeKind; label: string; path: string; status?: string; owner?: string | null }\nexport type LinkKind = 'md' | 'wiki' | 'code' | 'id'\n/** `context`: the sentence around the link (or the heading above it), set only when the link text is just the target. */\nexport type DocLink = { target: string; kind: LinkKind; line: number; text: string; context?: string }\n/** One file as the graph needs it: its node and its raw (unresolved) links. core.ts caches this per file. */\nexport type DocItem = { node: DocNode; links: DocLink[] }\nexport type DocEdge = { from: string; to: string; line: number; text: string; context?: string }\nexport type BrokenLink = { from: string; target: string; line: number; text: string; kind: LinkKind }\n/** Raw link target as written in a file → the file it resolves to (self-links included). Keyed by source path. */\nexport type ResolvedTargets = Record<string, Record<string, string>>\n/** `broken`: md / wiki links that point nowhere. `stale`: backticked paths (`code`) to a file that doesn't exist. */\nexport type DocGraph = { nodes: DocNode[]; edges: DocEdge[]; broken: BrokenLink[]; stale: BrokenLink[]; targets: ResolvedTargets }\n/** `status`: a linked task's or epic's status, set by GET /api/docs/links (as on graph nodes), never by docLinks(). */\nexport type LinkRow = { path: string; kind: string; label: string; line: number; text: string; context?: string; status?: string }\n\n// Upper case only, whole tokens: \"XT0651\", \"e2e\" and \"T0651a\" don't match\nconst ID_RE = /(?<![A-Za-z0-9_-])(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)(?![A-Za-z0-9_])/g\nconst ID_ONLY_RE = /^(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)$/\nconst BACKTICK_MD_RE = /`([^`\\s]+\\.md)`/g\nconst LINK_MD_RE = /\\[([^\\]]*)\\]\\(\\s*<?([^)\\s>#]+\\.md)(?:#[^)\\s]*)?>?(?:\\s+\"[^\"]*\"|\\s+'[^']*')?\\s*\\)/g\nconst FENCE_RE = /^\\s*(`{3,}|~{3,})/\nconst INLINE_CODE_RE = /(`+)[^`]*?\\1/g\n\n/** Targets are keyed decoded (`my%20doc.md` → `my doc.md`), as the client looks them up after marked encodes. */\nconst decode = (t: string) => { try { return decodeURI(t) } catch { return t } }\n/** A source line as plain prose: list / heading / checkbox markers, link syntax, code ticks and emphasis removed. */\nconst plainLine = (l: string) => l\n .replace(/^\\s*(?:#{1,6}|>|[-*+]|\\d+\\.)\\s+(?:\\[[ xX]\\]\\s+)?/, '')\n .replace(/\\[\\[([^\\]|#]+)(?:#[^\\]|]*)?(?:\\|([^\\]]+))?\\]\\]/g, (_, a, b) => b ?? a)\n .replace(/\\[([^\\]]*)\\]\\([^)]*\\)/g, '$1')\n .replace(/`|\\*\\*|__/g, '')\n .trim()\n\n/** The sentence of `line` that holds `text`, minus a leading `text:`; the heading above when the line is only the link. */\nfunction linkContext(line: string, text: string, heading: string): string {\n const sentence = plainLine(line).split(/(?<=[.!?])\\s+/).find(s => s.includes(text)) ?? ''\n const rest = (sentence.startsWith(text) ? sentence.slice(text.length).replace(/^[\\s:,;–—-]+/, '') : sentence).trim()\n return (/[A-Za-z]{3}/.test(rest.replace(text, '')) ? rest : heading).slice(0, 200)\n}\n\n/**\n * A target written as a template, never a file: `<slug>`, `{id}`, globs, `…` / `...`, and `T00N` / `NNN` / `XXX` /\n * `YYYY` tokens (`plans/tasks/T<NNN>-<slug>.md`, `docs/meetings/YYYY-MM-DD.md`). Skipped at extraction.\n */\nconst PLACEHOLDER_RE = /[<>{}*?…]|\\.\\.\\.|(?:^|[^A-Za-z0-9])(?:[A-Z]?0+N|N{2,}|X{3,}|YYYY)(?![A-Za-z0-9])/\n/**\n * Names that teach link syntax in specs (`[text](path.md)`, `[[name]]`, `[[wikilinks]]`, `docs/a/x.md`): the whole\n * file name is one of these, or the rest after an item id (`T001-x.md`, `ADR-001-title.md`). Only ever drops a miss,\n * so a real `x.md` still links. Never a `-` part of a longer name: `user-name.md` and `plan-b.md` are real misses.\n * `missing` is deliberately not here: e2e fixtures use it for a real broken link.\n */\nconst EXAMPLE_NAMES = new Set(['a', 'b', 'c', 'x', 'y', 'z', 'path', 'name', 'slug', 'title', 'foo', 'bar', 'wikilinks', 'example'])\nexport function isExampleTarget(target: string): boolean {\n const name = (target.split('/').pop() ?? '').replace(/\\.md$/i, '').replace(/^(?:ADR-\\d+|[TRE]\\d+)-/, '')\n return EXAMPLE_NAMES.has(name.toLowerCase())\n}\n\nconst WIKI_RE = /\\[\\[([^\\]|#]+)(?:#[^\\]|]*)?(?:\\|([^\\]]+))?\\]\\]/g\nconst EXTERNAL_RE = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i\n\nconst pad3 = (n: string) => String(Number(n)).padStart(3, '0')\n\n/** \"E1\" → \"E001\", \"ADR-4\" → \"ADR-004\"; task and roadmap ids are already padded. */\nfunction normalizeId(id: string): string {\n if (id.startsWith('ADR-')) return `ADR-${pad3(id.slice(4))}`\n if (id.startsWith('E')) return `E${pad3(id.slice(1))}`\n return id\n}\n\n/** Posix-normalize: backslashes, `.` and `..` segments, leading `./` or `/`. Escaping above the root → null. */\nfunction normalizePath(p: string): string | null {\n const out: string[] = []\n for (const seg of p.replace(/\\\\/g, '/').split('/')) {\n if (!seg || seg === '.') continue\n if (seg === '..') { if (!out.length) return null; out.pop() } else out.push(seg)\n }\n return out.join('/')\n}\n\nconst dirOf = (p: string) => p.includes('/') ? p.slice(0, p.lastIndexOf('/')) : ''\nconst baseName = (p: string) => (p.split('/').pop() ?? p).replace(/\\.md$/i, '')\n\n/** The item id a file stands for (T093, R056, E001, ADR-004), from its path; null for a plain doc. */\nfunction idOfPath(p: string): string | null {\n const m = /^plans\\/tasks\\/(T\\d{3,})[^/]*\\.md$/.exec(p) ?? /^plans\\/roadmap\\/(R\\d{3,})[^/]*\\.md$/.exec(p)\n ?? /^memory\\/entries\\/(E\\d+)[^/]*\\.md$/.exec(p) ?? /(?:^|\\/)(ADR-\\d+)[^/]*\\.md$/.exec(p)\n return m ? normalizeId(m[1]) : null\n}\n\n/** Inline markdown → plain text for a label: images and links keep their text, emphasis / code marks go. */\nfunction plainText(md: string): string {\n return md\n .replace(/!?\\[([^\\]]*)\\]\\([^)]*\\)/g, '$1')\n .replace(/\\[\\[([^\\]|]+)(?:\\|([^\\]]+))?\\]\\]/g, (_, t: string, alias?: string) => alias ?? t)\n .replace(/(\\*\\*|\\*|~~|`)(\\S(?:.*?\\S)?)\\1/g, '$2')\n .replace(/(^|\\W)(__|_)(\\S(?:.*?\\S)?)\\2(?=\\W|$)/g, '$1$3') // _em_, never snake_case\n .replace(/<[^>]+>/g, '')\n .trim()\n}\n\n/**\n * Classify a markdown file by path. Label = its H1 without the \"ID: \" prefix, else the file name. An H1 that reads as\n * a sentence (ends in . or !, like AGENTS.md's \"See CLAUDE.md — this file mirrors it…\") is prose, not a title.\n */\nexport function docNode(relPath: string, raw: string): DocNode {\n const p = normalizePath(relPath) ?? relPath\n const name = baseName(p)\n const heading = plainText(/^#\\s+(.+?)\\s*$/m.exec(raw)?.[1] ?? '')\n const h1 = /[^.][.!]$/.test(heading) ? '' : heading\n const label = (id: string) => h1.replace(new RegExp(`^${id}\\\\s*[:—–-]\\\\s*`), '') || name\n let m: RegExpExecArray | null\n if ((m = /^plans\\/tasks\\/(T\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'task', label: label(m[1]), path: p }\n if ((m = /^plans\\/roadmap\\/(R\\d{3,})[^/]*\\.md$/.exec(p))) return { id: m[1], kind: 'epic', label: label(m[1]), path: p }\n if ((m = /^memory\\/entries\\/(E\\d+)[^/]*\\.md$/.exec(p))) return { id: normalizeId(m[1]), kind: 'entry', label: label(m[1]), path: p }\n if ((m = /(?:^|\\/)(ADR-\\d+)[^/]*\\.md$/.exec(p))) return { id: normalizeId(m[1]), kind: 'adr', label: label(m[1]), path: p }\n return { id: p, kind: 'doc', label: h1 || name, path: p }\n}\n\n/**\n * Links in `raw`, in order, with 1-based line numbers. Lines inside ``` / ~~~ fences and external URLs are skipped;\n * md and wiki links inside inline code spans too. Indented code blocks are not detected (nested lists look alike).\n */\nexport function extractLinks(raw: string, _fromPath?: string): DocLink[] {\n const links: DocLink[] = []\n let fence = '' // the opening marker while inside a fence\n let heading = ''\n raw.replace(/\\r\\n/g, '\\n').split('\\n').forEach((l, i) => {\n const f = FENCE_RE.exec(l)?.[1]\n if (f && (!fence || (f[0] === fence[0] && f.length >= fence.length))) { fence = fence ? '' : f; return }\n if (fence) return\n const line = i + 1\n const from = links.length\n const prose = l.replace(INLINE_CODE_RE, m => ' '.repeat(m.length))\n for (const m of prose.matchAll(LINK_MD_RE)) {\n // text from the original line (same offsets): [`code`](x.md) keeps its label\n const text = l.slice(m.index + 1, m.index + 1 + m[1].length)\n if (!EXTERNAL_RE.test(m[2]) && !PLACEHOLDER_RE.test(m[2])) links.push({ target: decode(m[2]), kind: 'md', line, text: text || m[2] })\n }\n for (const m of prose.matchAll(WIKI_RE)) {\n const target = decode(m[1].trim())\n if (target && !EXTERNAL_RE.test(target) && !PLACEHOLDER_RE.test(target)) links.push({ target, kind: 'wiki', line, text: (m[2] ?? target).trim() })\n }\n for (const m of l.matchAll(BACKTICK_MD_RE)) {\n // a glob (`memory/entries/E*.md`) or a template (`E001-<slug>.md`) names a pattern, not a file\n if (!EXTERNAL_RE.test(m[1]) && !PLACEHOLDER_RE.test(m[1])) links.push({ target: decode(m[1]), kind: 'code', line, text: m[1] })\n }\n for (const m of l.matchAll(ID_RE)) {\n if (/^E0+$/.test(m[1])) continue // E0 is not an entry id\n links.push({ target: normalizeId(m[1]), kind: 'id', line, text: m[1] })\n }\n // a bare link (text = target) says nothing by itself: carry the sentence it sits in\n for (const k of links.slice(from)) if (k.text === k.target) {\n const context = linkContext(l, k.text, heading)\n if (context) k.context = context\n }\n if (/^#{1,6}\\s/.test(l)) heading = plainLine(l)\n })\n return links\n}\n\ntype PathIndex = { set: Set<string>; byBase: Map<string, string[]>; byId: Map<string, string> }\nconst indexCache = new WeakMap<readonly string[], PathIndex>()\n\nfunction indexOf(allPaths: readonly string[]): PathIndex {\n let idx = indexCache.get(allPaths)\n if (idx) return idx\n idx = { set: new Set(allPaths), byBase: new Map(), byId: new Map() }\n for (const p of allPaths) {\n const b = baseName(p).toLowerCase()\n idx.byBase.set(b, [...(idx.byBase.get(b) ?? []), p])\n const id = idOfPath(p)\n if (id && !idx.byId.has(id)) idx.byId.set(id, p)\n }\n indexCache.set(allPaths, idx)\n return idx\n}\n\n/** Files named exactly `t` (case-insensitive, `.md` added when missing), anywhere in the repo. */\nfunction bareHits(t: string, idx: PathIndex): string[] {\n const file = (/\\.md$/i.test(t) ? t : `${t}.md`).toLowerCase()\n return (idx.byBase.get(baseName(file)) ?? []).filter(p => (p.split('/').pop() ?? '').toLowerCase() === file)\n}\n\n/**\n * The file a link points at, or null (broken). Paths: relative to the source folder, then root-relative.\n * An explicit `./` or `../` never falls back to the root. Wikilinks: by basename without `.md`, same folder first,\n * then the shortest path; [[T093]] / [[E1]] go to the item's file first. Ids: the item's file.\n * `target` is taken as written, already decoded (extractLinks decodes).\n * `kind` is inferred when left out: an id token → id, no `.md` → wiki, else a path.\n * Paths: a leading `@` (Claude include, `@docs/HLD.md`) is dropped. A backticked bare name (`MEMORY.md`) that is in\n * neither folder resolves when exactly one file in the repo has that name; an md link never does.\n */\nexport function resolveLink(target: string, fromPath: string, allPaths: readonly string[], kind?: LinkKind): string | null {\n const idx = indexOf(allPaths)\n const k = kind ?? (ID_ONLY_RE.test(target) ? 'id' : /\\.md$/i.test(target) ? 'md' : 'wiki')\n if (k === 'id') return idx.byId.get(normalizeId(target)) ?? null\n\n if (k === 'wiki' && ID_ONLY_RE.test(target)) {\n const byId = idx.byId.get(normalizeId(target))\n if (byId) return byId\n }\n const t = k === 'wiki' ? target : target.replace(/^@(?=[^/@])/, '')\n const explicitRel = /^\\.\\.?\\//.test(t)\n const from = normalizePath(fromPath) ?? fromPath\n const tryPath = (p: string) => {\n const cands = [p, /\\.md$/i.test(p) ? null : `${p}.md`].filter((c): c is string => !!c)\n for (const c of cands) {\n const rel = t.startsWith('/') ? null : normalizePath(`${dirOf(from)}/${c}`)\n if (rel !== null && idx.set.has(rel)) return rel\n if (explicitRel) continue\n const abs = normalizePath(c)\n if (abs !== null && idx.set.has(abs)) return abs\n }\n return null\n }\n if (k !== 'wiki') {\n // a link must work as written (it does on GitHub too); a backticked mention only has to name the file\n const hits = k !== 'code' || t.includes('/') ? [] : bareHits(t, idx)\n return tryPath(t) ?? (hits.length === 1 ? hits[0] : null)\n }\n\n // wikilink: an exact path first ([[docs/HLD]]), then by basename\n const exact = t.includes('/') ? tryPath(t) : null\n if (exact) return exact\n const name = baseName(t).toLowerCase()\n const suffix = t.includes('/') ? `/${t.replace(/\\.md$/i, '').toLowerCase()}.md` : null\n const hits = (idx.byBase.get(name) ?? []).filter(p => !suffix || `/${p.toLowerCase()}`.endsWith(suffix))\n if (!hits.length) return null\n const dir = dirOf(from)\n return hits.find(p => dirOf(p) === dir)\n ?? [...hits].sort((a, b) => a.split('/').length - b.split('/').length || a.length - b.length || a.localeCompare(b))[0]\n}\n\n/**\n * Resolve every item's links. One edge per from→to pair (first line wins), self-links dropped. Misses: md / wiki\n * links → broken, backticked paths → stale (a mention of a moved or planned file, not a link).\n * Not misses: a target that exists among `otherPaths` (files outside the graph, e.g. `.claude/**`; no node, no edge),\n * a backticked bare name several files share (it exists, just not one file), and a syntax example (`isExampleTarget`).\n */\nexport function buildDocGraph(items: DocItem[], otherPaths: readonly string[] = []): DocGraph {\n const allPaths = items.map(i => i.node.path)\n const known = [...allPaths, ...otherPaths]\n const exists = (l: DocLink, from: string) => resolveLink(l.target, from, known, l.kind) !== null\n || (l.kind === 'code' && !l.target.includes('/') && bareHits(l.target, indexOf(known)).length > 0)\n const edges = new Map<string, DocEdge>()\n const broken = new Map<string, BrokenLink>()\n const stale = new Map<string, BrokenLink>()\n const targets: ResolvedTargets = {}\n for (const { node, links } of items) {\n for (const l of links) {\n const to = resolveLink(l.target, node.path, allPaths, l.kind)\n if (to !== null) (targets[node.path] ??= {})[l.target] ??= to\n if (to === node.path) continue\n if (to === null) {\n // an id with no file (T999, a typo) is just text, not a broken link\n if (l.kind === 'id' || isExampleTarget(l.target) || exists(l, node.path)) continue\n const key = `${node.path}\\u0000${l.target}`\n const misses = l.kind === 'code' ? stale : broken\n if (!misses.has(key)) misses.set(key, { from: node.path, target: l.target, line: l.line, text: l.text, kind: l.kind })\n continue\n }\n const key = `${node.path}\\u0000${to}`\n if (!edges.has(key)) edges.set(key, { from: node.path, to, line: l.line, text: l.text, ...(l.context && { context: l.context }) })\n }\n }\n return { nodes: items.map(i => i.node), edges: [...edges.values()], broken: [...broken.values()], stale: [...stale.values()], targets }\n}\n\n/** The kinds /graph shows when its URL names none. */\nexport const GRAPH_DEFAULT_KINDS: readonly DocNodeKind[] = ['doc', 'adr']\n\n/** /graph selected on one file with Focus 1 (\"Show in graph\"); a task, epic or entry also turns its kind on. */\nexport function graphHref(path: string): string {\n const p = new URLSearchParams({ node: path, focus: '1' })\n const kind = docNode(path, '').kind\n if (!GRAPH_DEFAULT_KINDS.includes(kind)) p.set('kinds', [...GRAPH_DEFAULT_KINDS, kind].join(','))\n return `/graph?${p}`\n}\n\nexport type TargetRow = { path: string; kind: DocNodeKind; id: string; label: string }\n\n/**\n * Links out of, into, broken and stale paths in one file; null when the path is not in the graph.\n * `targets` maps each raw target written in the file (`../b/y.md`, `DOMAIN_MAP`, `T093`) to its node, so a client\n * can open a clicked link without resolving paths itself. A target in both `targets` and `broken` resolved.\n */\nexport function docLinks(graph: DocGraph, path: string): { out: LinkRow[]; in: LinkRow[]; broken: LinkRow[]; stale: LinkRow[]; targets: Record<string, TargetRow> } | null {\n const p = normalizePath(path) ?? path\n const byPath = new Map(graph.nodes.map(n => [n.path, n]))\n if (!byPath.has(p)) return null\n const row = (other: string, e: DocEdge): LinkRow => {\n const n = byPath.get(other)\n return { path: other, kind: n?.kind ?? 'doc', label: n?.label ?? baseName(other), line: e.line, text: e.text, ...(e.context && { context: e.context }) }\n }\n const miss = (b: BrokenLink): LinkRow => ({ path: b.target, kind: b.kind, label: b.target, line: b.line, text: b.text })\n return {\n out: graph.edges.filter(e => e.from === p).map(e => row(e.to, e)),\n in: graph.edges.filter(e => e.to === p).map(e => row(e.from, e)),\n broken: graph.broken.filter(b => b.from === p).map(miss),\n stale: graph.stale.filter(b => b.from === p).map(miss),\n targets: Object.fromEntries(Object.entries(graph.targets[p] ?? {}).map(([t, to]) => {\n const n = byPath.get(to)\n return [t, { path: to, kind: n?.kind ?? 'doc', id: n?.id ?? to, label: n?.label ?? baseName(to) }]\n })),\n }\n}\n\n/**\n * Footer for vibedoc_read_doc (T096): the files a doc links to and is linked from, each named so an agent can\n * pass it straight to a tool (tasks, epics, entries, ADRs by id; docs by path). Empty string when no links.\n */\nexport function formatRelatedFiles(links: { out: LinkRow[]; in: LinkRow[]; broken: LinkRow[]; stale?: LinkRow[] } | null, cap = 10): string {\n if (!links) return ''\n const name = (r: LinkRow) => idOfPath(r.path) ?? r.path\n const line = (label: string, items: string[]) => {\n if (!items.length) return []\n const more = items.length > cap ? ` (+${items.length - cap} more)` : ''\n return [`${label}: ${items.slice(0, cap).join(' · ')}${more}`]\n }\n const body = [\n ...line('Links to', links.out.map(name)),\n ...line('Linked from', links.in.map(r => `${name(r)} (L${r.line})`)),\n ...line('Broken', links.broken.map(r => `${r.path} (L${r.line})`)),\n ...line('Stale paths', (links.stale ?? []).map(r => `${r.path} (L${r.line})`)),\n ]\n if (!body.length) return ''\n return ['## Related files', ...body, 'Read with vibedoc_read_doc, or several at once with vibedoc_get_context { paths }.'].join('\\n')\n}\n\n/** The parts of an activity event (core's ActivityEvent) that say which file it touched. */\nexport type TouchEvent = { timestamp: string; type: string; title: string; detail?: string; taskId?: string }\nconst TOUCH_ID_RE = /^(?:Entry )?(E\\d+|T\\d{3,}|R\\d{3,}|ADR-\\d+)\\b/\nconst DOC_EVENTS = new Set(['doc_updated', 'doc_created'])\n\n/**\n * Paths of the files an agent or a human changed since `since` (ms), from the activity log (T110 \"Recent\"): task\n * moves and edits (taskId), epics / entries / ADRs (the id leading the title), doc edits and creates (detail = path),\n * a rename's new path and the session handoff (memory/MEMORY.md). Events for files that no longer exist drop out.\n */\nexport function touchedPaths(events: readonly TouchEvent[], nodes: readonly DocNode[], since: number): Set<string> {\n const byKey = new Map<string, string>()\n for (const n of nodes) { byKey.set(n.id, n.path); byKey.set(n.path, n.path) }\n const out = new Set<string>()\n for (const e of events) {\n if (!(Date.parse(e.timestamp) >= since)) continue\n const keys = [e.taskId, TOUCH_ID_RE.exec(e.title)?.[1]]\n if (DOC_EVENTS.has(e.type)) keys.push(e.detail)\n if (e.type === 'doc_renamed') keys.push(e.title.split(' → ')[1])\n if (e.type === 'memory_updated' && !e.title.startsWith('Entry ')) keys.push('memory/MEMORY.md')\n for (const k of keys) {\n const p = k ? byKey.get(k.trim()) : undefined\n if (p) out.add(p)\n }\n }\n return out\n}\n"],"names":["GROUPS","kind","label","KIND_ICON","epic","adr","doc","entry","task","useOpenNode","onOpenEntry","router","openDoc","n","push","id","path","EntryRelated","entryId","rootParam","summary","board","open","graph","setGraph","live","fetch","encodeURIComponent","then","r","json","g","nodes","edges","catch","e","console","warn","tasks","Map","Object","values","flat","map","t","byId","pick","ids","get","filter","linksTo","from","to","linkedFrom","row","undefined","status","Icon","type","onClick","title","className","section","group","length","KNOWN_AGENTS","parseOwner","raw","v","trim","toLowerCase","m","match","ownerKind","owner","startsWith","ownerLabel","slice","agentFromUserAgent","ua","s","find","a","includes","ID_RE","ID_ONLY_RE","BACKTICK_MD_RE","LINK_MD_RE","FENCE_RE","INLINE_CODE_RE","decode","decodeURI","plainLine","l","replace","_","b","linkContext","line","text","heading","sentence","split","rest","test","PLACEHOLDER_RE","EXAMPLE_NAMES","Set","isExampleTarget","target","name","pop","has","WIKI_RE","EXTERNAL_RE","pad3","String","Number","padStart","normalizeId","normalizePath","p","out","seg","join","dirOf","lastIndexOf","baseName","idOfPath","exec","plainText","md","alias","docNode","relPath","h1","RegExp","extractLinks","_fromPath","links","fence","forEach","i","f","prose","repeat","matchAll","index","k","context","indexCache","WeakMap","indexOf","allPaths","idx","set","byBase","bareHits","file","resolveLink","fromPath","explicitRel","tryPath","cands","c","rel","abs","hits","exact","suffix","endsWith","dir","sort","localeCompare","buildDocGraph","items","otherPaths","node","known","exists","broken","stale","targets","key","misses","GRAPH_DEFAULT_KINDS","graphHref","URLSearchParams","focus","docLinks","byPath","other","miss","in","fromEntries","entries","formatRelatedFiles","cap","more","body","TOUCH_ID_RE","DOC_EVENTS","touchedPaths","events","since","byKey","Date","parse","timestamp","keys","taskId","detail","add"],"mappings":"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","ignoreList":[0,1,2,3,4,5]}
|