trybeacon 0.1.80 → 0.1.82
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/.claude-plugin/plugin.json +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +22 -21
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +20 -1
- package/.next/server/app/@modal/(.)settings/page.js +2 -0
- package/.next/server/app/@modal/(.)settings/page.js.nft.json +1 -0
- package/.next/server/app/@modal/(.)settings/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/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/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- 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 +27 -25
- package/.next/server/app/_not-found.segments/_full.segment.rsc +27 -25
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +16 -14
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/ask/answer/route.js +1 -1
- package/.next/server/app/api/ask/route.js +1 -1
- package/.next/server/app/api/ask/verdict/route.js +1 -1
- package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
- package/.next/server/app/api/board-annotations/route.js +1 -1
- package/.next/server/app/api/board-layout/route.js +1 -1
- package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
- package/.next/server/app/api/bug-flags/route.js +1 -1
- package/.next/server/app/api/changes/comment/answer/route.js +1 -1
- package/.next/server/app/api/changes/comment/claim/route.js +2 -2
- package/.next/server/app/api/changes/comment/route.js +2 -2
- package/.next/server/app/api/changes/quality/route.js +1 -1
- package/.next/server/app/api/changes/route.js +1 -1
- package/.next/server/app/api/changes/viewed/route.js +1 -1
- package/.next/server/app/api/code-graph/position/route.js +1 -1
- package/.next/server/app/api/code-graph/route.js +1 -1
- package/.next/server/app/api/context/feature/route.js +1 -1
- package/.next/server/app/api/context/file/route.js +1 -1
- package/.next/server/app/api/context/route.js +1 -1
- package/.next/server/app/api/db/arrange/route.js +1 -1
- package/.next/server/app/api/db/backfill-access/route.js +1 -1
- package/.next/server/app/api/db/position/route.js +1 -1
- package/.next/server/app/api/db/prune-planned/route.js +1 -1
- package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
- package/.next/server/app/api/db/relations/[id]/route.js +1 -1
- package/.next/server/app/api/db/tables/[id]/route.js +1 -1
- package/.next/server/app/api/draft/approve/route.js +1 -1
- package/.next/server/app/api/draft/route.js +1 -1
- package/.next/server/app/api/draft/status/route.js +1 -1
- package/.next/server/app/api/edges/[id]/route.js +1 -1
- package/.next/server/app/api/edges/route.js +1 -1
- package/.next/server/app/api/endpoints/[id]/route.js +1 -1
- package/.next/server/app/api/entities/route.js +1 -1
- package/.next/server/app/api/ingest/route.js +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/lesson/close/route.js +1 -1
- package/.next/server/app/api/lesson/presence/route.js +1 -1
- package/.next/server/app/api/lesson/questions/route.js +1 -1
- package/.next/server/app/api/lesson/route.js +1 -1
- package/.next/server/app/api/lesson/save/route.js +1 -1
- package/.next/server/app/api/lesson/verdict/route.js +1 -1
- package/.next/server/app/api/linear/route.js +2 -2
- package/.next/server/app/api/linear/scopes/route.js +1 -1
- package/.next/server/app/api/linear/sync/route.js +2 -2
- package/.next/server/app/api/map/describe/route.js +1 -1
- package/.next/server/app/api/map/files/route.js +1 -1
- package/.next/server/app/api/map/finish/route.js +1 -1
- package/.next/server/app/api/map/route.js +1 -1
- package/.next/server/app/api/map/start/route.js +1 -1
- package/.next/server/app/api/map/touch-active/route.js +1 -1
- package/.next/server/app/api/mention-search/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/route.js +1 -1
- package/.next/server/app/api/nodes/positions/route.js +1 -1
- package/.next/server/app/api/nodes/route.js +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js +1 -1
- package/.next/server/app/api/notes/[id]/route.js +1 -1
- package/.next/server/app/api/notes/route.js +1 -1
- package/.next/server/app/api/open/route.js +1 -1
- package/.next/server/app/api/plan/annotations/route.js +2 -2
- package/.next/server/app/api/plan/approve/route.js +1 -1
- package/.next/server/app/api/plan/history/route.js +1 -1
- package/.next/server/app/api/plan/markdown/route.js +1 -1
- package/.next/server/app/api/plan/presence/route.js +1 -1
- package/.next/server/app/api/plan/route.js +1 -1
- package/.next/server/app/api/plan/verdict/route.js +1 -1
- package/.next/server/app/api/preferences/route.js +1 -1
- package/.next/server/app/api/project-meta/route.js +1 -1
- package/.next/server/app/api/reset/route.js +1 -1
- package/.next/server/app/api/scope-guard/check/route.js +2 -2
- package/.next/server/app/api/share/create/route.js +1 -1
- package/.next/server/app/api/share/route.js +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- package/.next/server/app/api/tab/nav/route.js +1 -1
- package/.next/server/app/api/tab/presence/route.js +1 -1
- package/.next/server/app/api/tab/view/route.js +1 -1
- package/.next/server/app/api/telemetry/route.js +1 -1
- package/.next/server/app/api/telemetry/stats/route.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/workspace/activate/route.js +1 -1
- package/.next/server/app/api/workspace/route.js +1 -1
- package/.next/server/app/apple-icon.png/route.js +1 -1
- package/.next/server/app/docs/page.js +2 -2
- package/.next/server/app/docs/page.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.meta +1 -0
- package/.next/server/app/docs.rsc +31 -27
- package/.next/server/app/docs.segments/@modal/__DEFAULT__.segment.rsc +2 -0
- package/.next/server/app/docs.segments/_full.segment.rsc +31 -27
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +17 -15
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/help/page.js +2 -2
- package/.next/server/app/help/page.js.nft.json +1 -1
- package/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/server/app/help.html +1 -1
- package/.next/server/app/help.meta +1 -0
- package/.next/server/app/help.rsc +40 -35
- package/.next/server/app/help.segments/@modal/__DEFAULT__.segment.rsc +2 -0
- package/.next/server/app/help.segments/_full.segment.rsc +40 -35
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +17 -15
- package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/help.segments/help.segment.rsc +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.meta +1 -0
- package/.next/server/app/index.rsc +30 -25
- package/.next/server/app/index.segments/@modal/__DEFAULT__.segment.rsc +2 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +30 -25
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +17 -15
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/learn/page.js +4 -4
- package/.next/server/app/learn/page.js.nft.json +1 -1
- package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
- package/.next/server/app/map/page.js +2 -2
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +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/plan/page.js +3 -3
- package/.next/server/app/plan/page.js.nft.json +1 -1
- package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
- package/.next/server/app/s/[token]/page.js +2 -2
- package/.next/server/app/s/[token]/page.js.nft.json +1 -1
- package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +22 -21
- package/.next/server/chunks/2025.js +1 -1
- package/.next/server/chunks/2693.js +5 -5
- package/.next/server/chunks/3174.js +1 -1
- package/.next/server/chunks/3237.js +1 -0
- package/.next/server/chunks/3825.js +1 -0
- package/.next/server/chunks/4990.js +1 -0
- package/.next/server/chunks/5081.js +1 -0
- package/.next/server/chunks/6469.js +2 -2
- package/.next/server/chunks/6819.js +2 -0
- package/.next/server/chunks/{7720.js → 7436.js} +4 -4
- package/.next/server/chunks/7999.js +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/32-hn-zWkepUstH6QZVnt/_buildManifest.js +1 -0
- package/.next/static/chunks/1569-ea8e739cccfb69b5.js +1 -0
- package/.next/static/chunks/1909-0f500ebe4df09208.js +1 -0
- package/.next/static/chunks/2114-74736df56930b46c.js +1 -0
- package/.next/static/chunks/4752-81a4fc25de32efa2.js +1 -0
- package/.next/static/chunks/4853-43350f60d0d9135b.js +1 -0
- package/.next/static/chunks/{9887-e8954568a4031ed3.js → 5547-2c07851028a9033a.js} +1 -1
- package/.next/static/chunks/569-b6c0e292fbfa6038.js +1 -0
- package/.next/static/chunks/{2059-fba06ba63ba64522.js → 6283-20a6abe3453496ae.js} +3 -3
- package/.next/static/chunks/6639-f0b63e1e7d03a20a.js +1 -0
- package/.next/static/chunks/6818-85b9a09bb74062ef.js +1 -0
- package/.next/static/chunks/7437-686839cf9b298bd8.js +1 -0
- package/.next/static/chunks/{5957-83f611fcd5a08b45.js → 8710-6b2685272a1e1ff7.js} +1 -1
- package/.next/static/chunks/app/@modal/(.)settings/page-58f068e66bf2fdf6.js +1 -0
- package/.next/static/chunks/app/@modal/default-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/_global-error/page-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/ask/answer/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/ask/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/ask/verdict/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/board-layout/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/answer/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/claim/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/quality/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/changes/viewed/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/code-graph/position/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/code-graph/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/context/feature/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/context/file/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/context/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/arrange/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/backfill-access/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/position/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/prune-planned/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/relations/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/db/tables/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/draft/approve/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/draft/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/draft/status/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/edges/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/edges/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/endpoints/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/entities/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/init/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/close/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/presence/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/questions/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/save/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/lesson/verdict/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/linear/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/linear/scopes/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/linear/sync/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/describe/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/files/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/finish/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/start/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/map/touch-active/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/mention-search/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/position/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/nodes/positions/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/nodes/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/nodes/subtasks/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/notes/[id]/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/notes/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/open/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/annotations/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/approve/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/history/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/markdown/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/presence/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/plan/verdict/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/project-meta/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/reset/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/scope-guard/check/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/share/create/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/share/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/stream/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/tab/nav/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/tab/presence/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/tab/view/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/telemetry/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/telemetry/stats/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/version/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/workspace/activate/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/app/layout-b78f34d56f9d5aea.js +1 -0
- package/.next/static/chunks/app/learn/page-c01e1092ca9135e6.js +7 -0
- package/.next/static/chunks/app/map/page-9075091c6ba84c19.js +1 -0
- package/.next/static/chunks/app/page-62c53092bdab1224.js +1 -0
- package/.next/static/chunks/app/plan/page-6645cae32f5767c2.js +11 -0
- package/.next/static/chunks/app/s/[token]/page-2cf9b4a9b7740e56.js +1 -0
- package/.next/static/chunks/app/settings/page-435bfb2ac6f01744.js +1 -0
- package/.next/static/chunks/main-eef923c08f6b5e3c.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/default-null-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b0a80080b8e8a17d.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b0a80080b8e8a17d.js +1 -0
- package/.next/static/css/95077158c5710c9e.css +1 -0
- package/.next/trace +47 -46
- package/.next/trace-build +1 -1
- package/.next/types/app/@modal/(.)settings/page.ts +87 -0
- package/.next/types/routes.d.ts +1 -1
- package/.next/types/validator.ts +9 -0
- package/dist/bin/beacon.js +16 -15
- package/dist/bin/doctor.js +61 -60
- package/dist/bin/hook.js +58 -57
- package/dist/bin/mcp.js +70 -69
- package/dist/bin/plan.js +61 -60
- package/dist/bin/uninstall.js +59 -58
- package/dist/lib/assets.js +55 -20
- package/dist/lib/codex-install.js +62 -61
- package/dist/lib/daemon-boot.js +37 -0
- package/dist/lib/global-install.js +62 -61
- package/package.json +1 -1
- package/.next/server/chunks/2994.js +0 -2
- package/.next/server/chunks/374.js +0 -1
- package/.next/server/chunks/5295.js +0 -1
- package/.next/server/chunks/7350.js +0 -1
- package/.next/server/chunks/7652.js +0 -1
- package/.next/static/chunks/1909-98243a0473be2aae.js +0 -1
- package/.next/static/chunks/3908-80efc60050779adf.js +0 -1
- package/.next/static/chunks/4477-cda153702c7812d2.js +0 -1
- package/.next/static/chunks/4607-a668ea431c41e60e.js +0 -1
- package/.next/static/chunks/4853-0082a1e1b820a293.js +0 -1
- package/.next/static/chunks/5520-32e29b8bbff59f44.js +0 -1
- package/.next/static/chunks/5697-5b9719b81806b4cf.js +0 -1
- package/.next/static/chunks/7424-d7fa15ef452064dd.js +0 -1
- package/.next/static/chunks/app/_global-error/page-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/ask/answer/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/ask/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/ask/verdict/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/board-layout/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/comment/answer/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/comment/claim/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/comment/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/quality/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/changes/viewed/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/code-graph/position/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/code-graph/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/context/feature/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/context/file/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/context/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/arrange/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/backfill-access/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/position/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/prune-planned/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/relations/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/db/tables/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/draft/approve/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/draft/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/draft/status/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/edges/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/edges/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/endpoints/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/entities/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/ingest/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/init/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/close/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/presence/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/questions/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/save/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/lesson/verdict/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/linear/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/linear/scopes/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/linear/sync/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/describe/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/files/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/finish/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/start/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/map/touch-active/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/mention-search/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/position/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/nodes/positions/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/nodes/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/nodes/subtasks/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/notes/[id]/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/notes/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/open/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/annotations/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/approve/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/history/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/markdown/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/presence/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/plan/verdict/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/preferences/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/project-meta/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/reset/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/scope-guard/check/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/share/create/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/share/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/stream/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/tab/nav/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/tab/presence/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/tab/view/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/telemetry/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/telemetry/stats/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/version/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/workspace/activate/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/app/layout-e728d45f193e3b95.js +0 -1
- package/.next/static/chunks/app/learn/page-fc0bf8bce602526b.js +0 -7
- package/.next/static/chunks/app/map/page-847b374e7dfed924.js +0 -1
- package/.next/static/chunks/app/page-ec00130a7a249f14.js +0 -1
- package/.next/static/chunks/app/plan/page-1108bdf804b8a1bd.js +0 -11
- package/.next/static/chunks/app/s/[token]/page-2fc7806fc2f205a5.js +0 -1
- package/.next/static/chunks/app/settings/page-7e86fd456b92c248.js +0 -1
- package/.next/static/chunks/main-4140465958bbcd36.js +0 -5
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-18eb7d6678dc0ddd.js +0 -1
- package/.next/static/css/6eabb17c2a2081f2.css +0 -1
- package/.next/static/zI2f5SCpeUG4MfjJNbXnf/_buildManifest.js +0 -1
- /package/.next/static/{zI2f5SCpeUG4MfjJNbXnf → 32-hn-zWkepUstH6QZVnt}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,134,204,439,730,763,1108,1145,1235,1288,1361,1403,1570,1617,1662,1805,1918,1929,1979,2079,2113,2442,2449,2681,2752,2821,2922,3087,3185,3290,3519,3688,3979,4039,4284,4360,4480,4505,4636,4637,4816,4852,4896,5022,5152,5190,5412,5545,5807,5819,5884,6426,6568,6595,6600,6630,6714,6760,6805,6819,6886,6950,6988,7137,7317,7423,7612,7691,7705,7851,7914,7973,8167,8235,8617,8650,8696,8773,8906,9140,9363,9560,9725,9751,9826,9861],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{434:(e,t,s)=>{"use strict";s.d(t,{PlanBar:()=>u});var r=s(95155),n=s(98500),a=s.n(n),l=s(73321),i=s(86272),o=s(32133),c=s(65738),d=s(48484);function u(){let{status:e,discard:t}=(0,d.j)(),s=(0,l.usePathname)();return e.pending&&"/plan"!==s?(0,r.jsx)("div",{className:"pointer-events-none fixed inset-x-0 top-14 z-40 flex justify-center px-2",children:(0,r.jsxs)("div",{className:"pointer-events-auto flex max-w-3xl items-center gap-2 rounded-xl border border-emerald-500/30 bg-card/85 px-3 py-1.5 shadow-lg backdrop-blur supports-[backdrop-filter]:bg-card/70",children:[(0,r.jsx)(i.A,{className:"size-3.5 shrink-0 text-emerald-300"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"truncate text-[12px] leading-tight text-foreground",children:[(0,r.jsx)("span",{className:"text-emerald-300/80",children:"Plan ready \xb7 "}),e.description||"(no description)"]}),(0,r.jsxs)("div",{className:"text-[10px] leading-tight text-muted-foreground",children:[e.features," feature(s) \xb7 ",e.tables," table(s) \xb7 ",e.endpoints," ","endpoint(s)"]})]}),(0,r.jsxs)(a(),{href:"/plan",className:"flex shrink-0 items-center gap-1 rounded-md border border-emerald-500/40 bg-emerald-500/15 px-2 py-1 text-[11px] font-semibold text-emerald-300 transition-colors hover:bg-emerald-500/25",title:"Open Plannotator + canvases side by side",children:[(0,r.jsx)(o.A,{className:"size-3"})," Open plan"]}),(0,r.jsxs)("button",{onClick:t,className:"flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-red-500/15 hover:text-red-300",title:"Discard the plan",children:[(0,r.jsx)(c.A,{className:"size-3"})," Discard"]})]})}):null}},10436:(e,t,s)=>{"use strict";s.d(t,{TopNav:()=>b});var r=s(95155),n=s(12115),a=s(98500),l=s.n(a),i=s(73321),o=s(82879),c=s(52965);let d=(0,s(30772).A)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var u=s(26518),h=s(91337),m=s(60292);function x({fallback:e}){let[t,s]=(0,n.useState)([]),[a,l]=(0,n.useState)(null);if((0,n.useEffect)(()=>{let e=!0,t=()=>fetch("/api/workspace").then(e=>e.ok?e.json():null).then(t=>{e&&t&&(s(t.workspaces??[]),l((0,m.fk)()??t.active??null))}).catch(()=>{});t();let r=setInterval(t,5e3);return()=>{e=!1,clearInterval(r)}},[]),0===t.length)return e?(0,r.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:["\xb7 ",e]}):null;async function i(e){l(e),(0,m.aE)(e),await Promise.race([fetch("/api/workspace",{method:"POST",headers:{"content-type":"application/json","x-beacon-workspace":e},body:JSON.stringify({id:e}),signal:AbortSignal.timeout(8e3)}).catch(()=>{}),new Promise(e=>setTimeout(e,2500))]);let t=new URLSearchParams(window.location.search);t.set("ws",e),window.location.href=`${window.location.pathname}?${t.toString()}`}let o=t.find(e=>e.id===a);return(0,r.jsxs)(u.l6,{value:a??"",onValueChange:e=>e&&i(e),children:[(0,r.jsxs)(u.bq,{title:o?.name,className:"h-7 max-w-[180px] gap-1.5 rounded-lg border-white/12 bg-white/[0.04] px-2 text-xs font-medium transition-colors hover:bg-white/[0.07]",children:[(0,r.jsx)(d,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,r.jsx)(u.yv,{children:()=>o?.name??"Project"})]}),(0,r.jsxs)(u.gC,{align:"start",alignItemWithTrigger:!1,sideOffset:6,className:"min-w-[250px] border border-white/10 bg-popover/95 p-1.5 backdrop-blur-xl",children:[(0,r.jsx)("p",{className:"px-2 pt-1 pb-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/70",children:"Workspace"}),t.map(e=>{var t,s;let n,l=e.id===a;return(0,r.jsx)(u.eb,{value:e.id,className:(0,h.cn)("gap-2.5 rounded-lg py-1.5 pr-8 pl-1.5 transition-colors",l&&"bg-white/[0.05]"),children:(0,r.jsxs)("span",{className:"flex items-center gap-2.5",children:[(0,r.jsx)("span",{className:(0,h.cn)("flex size-7 shrink-0 items-center justify-center rounded-md border",l?"border-sky-400/30 bg-sky-400/10 text-sky-300":"border-white/10 bg-white/[0.03] text-muted-foreground"),children:(0,r.jsx)(d,{className:"size-3.5"})}),(0,r.jsxs)("span",{className:"flex min-w-0 flex-col",children:[(0,r.jsx)("span",{className:"truncate text-[13px] font-medium leading-tight text-foreground",children:e.name}),(0,r.jsx)("span",{className:"truncate font-mono text-[10px] leading-tight text-muted-foreground",children:(t=e.path,s=e.name,(n=t.replace(/^\/(Users|home)\/[^/]+/,"~").split("/").filter(Boolean))[n.length-1]===s&&n.pop(),(n.length>3?[n[0],"…",n[n.length-1]]:n).join("/")||"~")})]})]})},e.id)})]})]})}var p=s(81984);let f=[{href:"/plan",label:"Plans"},{href:"/map",label:"Map"},{href:"/learn",label:"Learn"},{href:"/settings",label:"Settings"}];function b({repo:e}){let t=(0,i.usePathname)(),{toggle:s,open:a}=(0,p.b)(),[d,u]=(0,n.useState)(null);return(0,n.useEffect)(()=>{u((0,m.fk)())},[t]),(0,r.jsx)("header",{className:"pointer-events-none fixed left-3 top-3 z-30",children:(0,r.jsxs)("div",{className:"glass pointer-events-auto flex h-10 items-center gap-1 rounded-full pl-3 pr-1.5",children:[(0,r.jsxs)(l(),{href:"/",className:"mr-1 flex items-center gap-2 text-sm font-semibold tracking-tight",children:[(0,r.jsx)(c._,{size:18,className:"text-foreground"}),(0,r.jsx)("span",{className:"hidden lg:inline",children:"Beacon"})]}),(0,r.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,r.jsx)(x,{fallback:e}),(0,r.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,r.jsx)("nav",{className:"flex items-center gap-0.5 text-sm",children:f.map(e=>{let s=t===e.href||t.startsWith(e.href+"/");return(0,r.jsx)(l(),{href:(0,m.Fj)(e.href,d),className:(0,h.cn)("rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors",s?"bg-white/[0.09] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]":"text-muted-foreground hover:bg-white/[0.04] hover:text-foreground"),children:e.label},e.href)})}),(0,r.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,r.jsx)("button",{type:"button",onClick:s,"aria-pressed":a,"aria-label":"Notes",title:"Notes",className:(0,h.cn)("flex items-center justify-center rounded-full p-1.5 transition-colors",a?"bg-white/[0.09] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]":"text-muted-foreground hover:bg-white/[0.04] hover:text-foreground"),children:(0,r.jsx)(o.A,{className:"size-4"})})]})})}},29510:(e,t,s)=>{"use strict";s.d(t,{UpdateBanner:()=>h});var r=s(95155),n=s(12115);let a=(0,s(30772).A)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var l=s(9005),i=s(64577),o=s(99314),c=s(39593);function d(e){if("string"!=typeof e)return null;let t=e.trim().replace(/^v/i,"").match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?/);return t?[Number(t[1]),Number(t[2]??0),Number(t[3]??0)]:null}let u="beacon:update-dismissed";function h({currentVersion:e}){let[t,s]=(0,n.useState)(null),[m,x]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{let t=!1;return(async()=>{try{let r=await fetch(c.kw);if(!r.ok)return;let n=await r.json(),a="string"==typeof n?.version?n.version:"";if(t||!function(e,t){let s=d(e),r=d(t);if(!s||!r)return!1;for(let e=0;e<3;e++){if(s[e]>r[e])return!0;if(s[e]<r[e])break}return!1}(a,e)||localStorage.getItem(u)===a)return;s(a)}catch{}})(),()=>{t=!0}},[e]),!t)return null;let p=async()=>{try{await navigator.clipboard?.writeText(c.EO),x(!0),setTimeout(()=>x(!1),1600)}catch{}};return(0,r.jsx)("div",{className:"pointer-events-none fixed bottom-4 right-4 z-50 flex justify-end",children:(0,r.jsx)("div",{className:"glass pointer-events-auto w-[320px] rounded-xl p-3.5 shadow-xl",children:(0,r.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,r.jsx)(a,{className:"mt-0.5 size-4 shrink-0 text-[#ff7a45]"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-[13px] font-semibold tracking-tight text-foreground",children:"New version available"}),(0,r.jsx)("button",{type:"button",onClick:()=>{try{localStorage.setItem(u,t)}catch{}s(null)},"aria-label":"Dismiss",className:"shrink-0 rounded-md p-0.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:(0,r.jsx)(l.A,{className:"size-3.5"})})]}),(0,r.jsxs)("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:[e," →"," ",(0,r.jsx)("span",{className:"text-foreground",children:t.replace(/^v/i,"")})," \xb7 update Beacon"]}),(0,r.jsxs)("button",{type:"button",onClick:p,title:"Copy the update command",className:"mt-2.5 flex w-full items-center justify-between gap-2 rounded-lg border border-white/10 bg-black/30 px-2.5 py-1.5 text-left font-mono text-[11px] text-muted-foreground transition-colors hover:border-white/20 hover:text-foreground",children:[(0,r.jsx)("span",{className:"truncate",children:c.EO}),m?(0,r.jsx)(i.A,{className:"size-3.5 shrink-0 text-[#ff7a45]"}):(0,r.jsx)(o.A,{className:"size-3.5 shrink-0"})]})]})]})})})}},35353:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_246ccd",variable:"__variable_246ccd"}},38332:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(30772).A)("strikethrough",[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]])},39593:(e,t,s)=>{"use strict";s.d(t,{EO:()=>l,kw:()=>n});var r=s(41463);let n="https://registry.npmjs.org/trybeacon/latest",a=(r.env.NEXT_PUBLIC_BEACON_SITE_URL??"https://www.trybeacon.sh").replace(/\/$/,""),l=`curl -fsSL ${a}/install.sh | sh`},42578:(e,t,s)=>{"use strict";s.d(t,{AskModal:()=>d});var r=s(95155),n=s(12115),a=s(9005),l=s(90467),i=s(4474),o=s(82099),c=s(91337);function d(){let[e,t]=(0,n.useState)(null),[s,d]=(0,n.useState)(new Set),[u,h]=(0,n.useState)(""),[m,x]=(0,n.useState)(!1),p=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=!0,s=async()=>{try{let s=await fetch("/api/ask",{cache:"no-store"});if(!s.ok||!e)return;let{ask:r}=await s.json();if(!e||r&&r.id===p.current)return;t(e=>e?.id===r?.id?e:r)}catch{}};s();let r=setInterval(s,1500);return()=>{e=!1,clearInterval(r)}},[]);let f=e?.id??null,b=(0,n.useRef)(null);f!==b.current&&(b.current=f,s.size&&d(new Set),u&&h(""));let g=(0,n.useCallback)(async s=>{if(e&&!m){x(!0),p.current=e.id,t(null);try{await fetch("/api/ask/answer",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:e.id,...s})})}catch{}finally{x(!1)}}},[e,m]);if(!e)return null;if("mirror"===e.mode&&"question"===e.kind&&e.question)return(0,r.jsx)("div",{className:"fixed right-4 bottom-4 z-[70] w-full max-w-sm",children:(0,r.jsxs)(o.b,{className:"rounded-2xl border border-border/60 p-4 shadow-2xl",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[0.7rem] font-medium text-muted-foreground",children:e.question.header||"The agent is asking"}),(0,r.jsx)("button",{type:"button",onClick:()=>{p.current=e.id,t(null)},className:"text-muted-foreground transition-colors hover:text-foreground","aria-label":"Dismiss",children:(0,r.jsx)(a.A,{className:"size-4"})})]}),(0,r.jsx)("p",{className:"mb-3 text-sm font-medium text-foreground",children:e.question.question}),(0,r.jsx)("div",{className:"flex flex-col gap-1.5",children:e.question.options.map(e=>(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-background/40 px-3 py-1.5",children:[(0,r.jsx)("span",{className:"text-sm text-foreground",children:e.label}),e.description&&(0,r.jsx)("span",{className:"mt-0.5 block text-xs text-muted-foreground",children:e.description})]},e.label))}),(0,r.jsx)("p",{className:"mt-3 text-[0.7rem] text-muted-foreground",children:"Answer in your terminal — this is a mirror."})]})});let v=()=>u.trim()&&g({selected:[u.trim()]});return(0,r.jsx)("div",{className:"fixed inset-0 z-[70] flex items-center justify-center bg-black/40 p-4 backdrop-blur-sm",children:(0,r.jsx)(o.b,{className:"w-full max-w-lg rounded-2xl border border-border/60 p-5 shadow-2xl",children:"question"===e.kind&&e.question?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,r.jsx)("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[0.7rem] font-medium text-muted-foreground",children:e.question.header||"The agent is asking"}),e.question.multiSelect&&(0,r.jsx)("span",{className:"text-[0.7rem] text-muted-foreground",children:"select all that apply"})]}),(0,r.jsx)("p",{className:"mb-4 text-sm font-medium text-foreground",children:e.question.question}),(0,r.jsx)("div",{className:"flex flex-col gap-2",children:e.question.options.map(t=>{let n=s.has(t.label);return(0,r.jsxs)("button",{type:"button",disabled:m,onClick:()=>{let s;return e.question.multiSelect?(s=t.label,d(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})):g({selected:[t.label]})},className:(0,c.cn)("rounded-lg border border-border bg-background/40 px-3 py-2 text-left transition-colors hover:bg-muted disabled:opacity-50",n&&"border-primary bg-primary/10"),children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t.label}),t.description&&(0,r.jsx)("span",{className:"mt-0.5 block text-xs text-muted-foreground",children:t.description})]},t.label)})}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,r.jsx)("input",{value:u,disabled:m,onChange:e=>h(e.target.value),onKeyDown:t=>"Enter"===t.key&&!e.question.multiSelect&&v(),placeholder:"Other…",className:"h-8 flex-1 rounded-lg border border-border bg-background/40 px-2.5 text-sm outline-none focus:border-primary"}),e.question.multiSelect?(0,r.jsx)(i.$,{size:"sm",onClick:()=>{let e=[...s,...u.trim()?[u.trim()]:[]];e.length&&g({selected:e})},disabled:m,children:"Submit"}):(0,r.jsx)(i.$,{size:"icon-sm",variant:"outline",onClick:v,disabled:m||!u.trim(),"aria-label":"Submit other",children:(0,r.jsx)(l.A,{})})]})]}):e.approval?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,r.jsxs)("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[0.7rem] font-medium text-muted-foreground",children:["Approve ",e.approval.tool]})}),(0,r.jsx)("p",{className:"mb-3 text-sm font-medium text-foreground",children:e.approval.title}),e.approval.preview&&(0,r.jsx)("pre",{className:"mb-4 max-h-64 overflow-auto rounded-lg border border-border bg-background/40 p-3 text-xs whitespace-pre-wrap text-muted-foreground",children:e.approval.preview}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(i.$,{variant:"destructive",onClick:()=>g({decision:"deny"}),disabled:m,children:"Deny"}),(0,r.jsx)(i.$,{onClick:()=>g({decision:"allow"}),disabled:m,children:"Allow"})]})]}):null})})}},48484:(e,t,s)=>{"use strict";s.d(t,{PlanProvider:()=>d,j:()=>u});var r=s(95155),n=s(12115),a=s(73321),l=s(60292),i=s(99979);let o={pending:!1,proposedAt:0,tables:0,endpoints:0,features:0},c=(0,n.createContext)(null);function d({children:e}){let t=(0,a.useRouter)(),[s,u]=(0,n.useState)(o),h=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/plan",{method:"GET",cache:"no-store",headers:(0,l.dh)((0,i.X0)())});if(!e.ok)return;let t=await e.json();u(t)}catch{}},[]);(0,n.useEffect)(()=>{h();let e=setInterval(()=>void h(),4e3);return()=>clearInterval(e)},[h]);let m=(0,n.useCallback)(async()=>{await fetch("/api/plan",{method:"DELETE",headers:(0,l.dh)((0,i.X0)())}).catch(()=>{}),u(o),t.refresh()},[t]),x=(0,n.useCallback)(async()=>{await fetch("/api/plan/approve",{method:"POST",headers:(0,l.dh)((0,i.X0)())}).catch(()=>{}),u(o),t.refresh()},[t]);return(0,r.jsx)(c.Provider,{value:{status:s,discard:m,approvePlan:x,refresh:h},children:e})}function u(){let e=(0,n.useContext)(c);if(!e)throw Error("usePlan must be used inside PlanProvider");return e}},52174:(e,t,s)=>{"use strict";s.d(t,{MainRegion:()=>n});var r=s(95155);function n({children:e}){return(0,r.jsx)("main",{className:"flex flex-1 flex-col",children:e})}},52965:(e,t,s)=>{"use strict";s.d(t,{_:()=>n});var r=s(95155);function n({size:e=18,className:t}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"20 22 56 56",fill:"none",className:t,"aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M48 33 L72.5 73 L23.5 73 Z",fill:"none",stroke:"var(--accent-2, #ff7a45)",strokeWidth:7,strokeLinejoin:"round",strokeLinecap:"round"}),(0,r.jsx)("circle",{cx:"48",cy:"29.5",r:"7",fill:"var(--accent-2, #ff7a45)"})]})}},59089:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,66872,23)),Promise.resolve().then(s.bind(s,52174)),Promise.resolve().then(s.bind(s,42578)),Promise.resolve().then(s.bind(s,81998)),Promise.resolve().then(s.bind(s,81984)),Promise.resolve().then(s.bind(s,71886)),Promise.resolve().then(s.bind(s,434)),Promise.resolve().then(s.bind(s,48484)),Promise.resolve().then(s.bind(s,77242)),Promise.resolve().then(s.bind(s,10436)),Promise.resolve().then(s.bind(s,29510)),Promise.resolve().then(s.t.bind(s,35353,23)),Promise.resolve().then(s.t.bind(s,63494,23))},63494:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_c29908",variable:"__variable_c29908"}},66872:()=>{},71886:(e,t,s)=>{"use strict";s.d(t,{NotesDrawer:()=>P});var r=s(95155),n=s(12115),a=s(82879),l=s(2125),i=s(9005),o=s(30772);let c=(0,o.A)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),d=(0,o.A)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var u=s(65738),h=s(82099),m=s(13439),x=s(95112),p=s(67357);let f=(0,o.A)("underline",[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]]);var b=s(38332),g=s(8143),v=s(58309),j=s(5497),w=s(54682),N=s(93492);function k({value:e,onChange:t}){let s=(0,m.hG)({extensions:w.II,content:e?(0,w.Gd)(e):void 0,immediatelyRender:!1,editorProps:{attributes:{class:"note-prose focus:outline-none"}},onUpdate:({editor:e})=>t((0,w.Z2)(e.getJSON()))});return s?(0,r.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,r.jsx)(y,{editor:s}),(0,r.jsx)(m.$Z,{editor:s,className:"min-h-0 flex-1 overflow-y-auto px-1 py-2 text-[14px] leading-relaxed"})]}):null}function y({editor:e}){(0,N.U)(e);let t=()=>e.chain().focus();return(0,r.jsxs)("div",{className:"flex items-center gap-0.5 border-b border-white/10 pb-2",children:[(0,r.jsx)(N.I,{label:"Bold",active:e.isActive("bold"),onClick:()=>t().toggleBold().run(),children:(0,r.jsx)(x.A,{className:"size-4"})}),(0,r.jsx)(N.I,{label:"Italic",active:e.isActive("italic"),onClick:()=>t().toggleItalic().run(),children:(0,r.jsx)(p.A,{className:"size-4"})}),(0,r.jsx)(N.I,{label:"Underline",active:e.isActive("underline"),onClick:()=>t().toggleUnderline().run(),children:(0,r.jsx)(f,{className:"size-4"})}),(0,r.jsx)(N.I,{label:"Strikethrough",active:e.isActive("strike"),onClick:()=>t().toggleStrike().run(),children:(0,r.jsx)(b.A,{className:"size-4"})}),(0,r.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,r.jsx)(N.I,{label:"Checklist",active:e.isActive("taskList"),onClick:()=>t().toggleTaskList().run(),children:(0,r.jsx)(g.A,{className:"size-4"})}),(0,r.jsx)(N.I,{label:"Bullet list",active:e.isActive("bulletList"),onClick:()=>t().toggleBulletList().run(),children:(0,r.jsx)(v.A,{className:"size-4"})}),(0,r.jsx)(N.I,{label:"Numbered list",active:e.isActive("orderedList"),onClick:()=>t().toggleOrderedList().run(),children:(0,r.jsx)(j.A,{className:"size-4"})})]})}var S=s(81984),C=s(91337);function A(e){return[...e].sort((e,t)=>e.pinned!==t.pinned?Number(t.pinned)-Number(e.pinned):t.updatedAt.localeCompare(e.updatedAt))}function P(){let{open:e,close:t}=(0,S.b)(),[s,o]=(0,n.useState)([]),[m,x]=(0,n.useState)(null),p=(0,n.useRef)({}),f=(0,n.useRef)({}),b=(0,n.useCallback)(e=>{clearTimeout(p.current[e]);let t=f.current[e];t&&(delete f.current[e],fetch(`/api/notes/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)}).catch(()=>{}))},[]),g=(0,n.useCallback)((e,t)=>{f.current[e]={...f.current[e],...t},clearTimeout(p.current[e]),p.current[e]=setTimeout(()=>b(e),500)},[b]),v=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/notes",{cache:"no-store"});if(!e.ok)return;let t=await e.json();o(A(t)),x(e=>e??t[0]?.id??null)}catch{}},[]);(0,n.useEffect)(()=>{e?v():Object.keys(f.current).forEach(b)},[e,v,b]);let j=(0,n.useCallback)(async()=>{let e=await fetch("/api/notes",{method:"POST"}).catch(()=>null);if(!e?.ok)return;let t=await e.json();o(e=>A([t,...e])),x(t.id)},[]),w=(0,n.useCallback)(async e=>{clearTimeout(p.current[e]),delete f.current[e],o(t=>{let s=t.filter(t=>t.id!==e);return x(t=>t===e?s[0]?.id??null:t),s}),await fetch(`/api/notes/${e}`,{method:"DELETE"}).catch(()=>{})},[]),N=(0,n.useCallback)((e,t)=>{o(s=>A(s.map(s=>s.id===e?{...s,...t,updatedAt:new Date().toISOString()}:s))),g(e,t)},[g]),y=(0,n.useCallback)(e=>N(e.id,{pinned:!e.pinned}),[N]),P=s.find(e=>e.id===m)??null;return(0,r.jsx)("div",{"aria-hidden":!e,className:(0,C.cn)("fixed inset-y-0 right-0 z-40 flex transition-transform duration-300 ease-out",e?"translate-x-0":"pointer-events-none translate-x-full"),children:(0,r.jsxs)(h.b,{className:"flex h-full w-[420px] flex-col rounded-l-2xl border-l border-white/10",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 border-b border-white/10 px-3 py-2.5",children:[(0,r.jsx)(a.A,{className:"size-4 text-[var(--accent-2,#ff7a45)]"}),(0,r.jsx)("span",{className:"text-sm font-semibold tracking-tight",children:"Notes"}),(0,r.jsx)("span",{className:"ml-auto"}),(0,r.jsx)("button",{type:"button",onClick:j,"aria-label":"New note",title:"New note",className:"rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:(0,r.jsx)(l.A,{className:"size-4"})}),(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Close notes",title:"Close",className:"rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:(0,r.jsx)(i.A,{className:"size-4"})})]}),(0,r.jsx)("div",{className:"max-h-44 shrink-0 overflow-y-auto border-b border-white/10 p-1.5",children:0===s.length?(0,r.jsxs)("p",{className:"px-2 py-3 text-[13px] text-muted-foreground",children:["No notes yet. Hit ",(0,r.jsx)("span",{className:"text-foreground",children:"+"})," to start one."]}):s.map(e=>(0,r.jsxs)("div",{className:(0,C.cn)("group flex items-center gap-1 rounded-md px-2 py-1.5 text-[13px]",e.id===m?"bg-white/[0.09] text-foreground":"text-muted-foreground hover:bg-white/[0.04]"),children:[(0,r.jsxs)("button",{type:"button",onClick:()=>x(e.id),className:"min-w-0 flex-1 truncate text-left",children:[e.pinned&&(0,r.jsx)(c,{className:"mr-1 inline size-3 -translate-y-px"}),e.title||"Untitled"]}),(0,r.jsx)("button",{type:"button",onClick:()=>y(e),"aria-label":e.pinned?"Unpin":"Pin",title:e.pinned?"Unpin":"Pin",className:"rounded p-1 opacity-0 transition hover:bg-white/[0.08] hover:text-foreground group-hover:opacity-100",children:e.pinned?(0,r.jsx)(d,{className:"size-3.5"}):(0,r.jsx)(c,{className:"size-3.5"})}),(0,r.jsx)("button",{type:"button",onClick:()=>w(e.id),"aria-label":"Delete note",title:"Delete",className:"rounded p-1 opacity-0 transition hover:bg-white/[0.08] hover:text-red-300 group-hover:opacity-100",children:(0,r.jsx)(u.A,{className:"size-3.5"})})]},e.id))}),P?(0,r.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-2 p-3",children:[(0,r.jsx)("input",{value:P.title,onChange:e=>N(P.id,{title:e.target.value}),placeholder:"Untitled",className:"w-full bg-transparent text-base font-semibold tracking-tight text-foreground placeholder:text-muted-foreground/60 focus:outline-none"}),(0,r.jsx)(k,{value:P.body,onChange:e=>N(P.id,{body:e})},P.id)]}):(0,r.jsxs)("div",{className:"flex flex-1 items-center justify-center p-6 text-center text-[13px] text-muted-foreground",children:["Select a note, or create one. Then ",(0,r.jsx)("span",{className:"px-1 text-foreground",children:"@"}),"-mention it in your terminal to turn it into features."]})]})})}},77242:(e,t,s)=>{"use strict";s.d(t,{TabWorkspace:()=>l});var r=s(12115),n=s(73321),a=s(60292);function l(){let e=(0,n.useRouter)(),t=(0,n.usePathname)();return(0,r.useEffect)(()=>{let e=window.fetch;if(e.__beaconPinned)return;let t=(t,s)=>{try{let r=(0,a.fk)();if(r){let n=window.location.origin;if(t instanceof Request){if((0,a.q0)(t.url,n)&&!t.headers.has("x-beacon-workspace")){let n=new Headers(t.headers);return n.set("x-beacon-workspace",r),e(new Request(t,{headers:n}),s)}}else{let l="string"==typeof t?t:t.href;if((0,a.q0)(l,n)){let n=new Headers(s?.headers);if(!n.has("x-beacon-workspace"))return n.set("x-beacon-workspace",r),e(t,{...s,headers:n})}}}}catch{}return e(t,s)};return t.__beaconPinned=!0,window.fetch=t,()=>{window.fetch=e}},[]),(0,r.useEffect)(()=>{let s=new URLSearchParams(window.location.search).get("ws");if(s){try{sessionStorage.setItem(a.Bz,s)}catch{}return}let r=null;try{r=sessionStorage.getItem(a.Bz)}catch{}if(!r)return;let n=new URLSearchParams(window.location.search);n.set("ws",r),e.replace(`${t}?${n.toString()}`)},[t,e]),null}},81984:(e,t,s)=>{"use strict";s.d(t,{NotesProvider:()=>l,b:()=>i});var r=s(95155),n=s(12115);let a=(0,n.createContext)(null);function l({children:e}){let[t,s]=(0,n.useState)(!1),i=(0,n.useCallback)(()=>s(!0),[]),o=(0,n.useCallback)(()=>s(!1),[]),c=(0,n.useCallback)(()=>s(e=>!e),[]),d=(0,n.useMemo)(()=>({open:t,openDrawer:i,close:o,toggle:c}),[t,i,o,c]);return(0,r.jsx)(a.Provider,{value:d,children:e})}function i(){let e=(0,n.useContext)(a);if(!e)throw Error("useNotes must be used inside NotesProvider");return e}},81998:(e,t,s)=>{"use strict";s.d(t,{LiveRefresh:()=>i});var r=s(12115),n=s(73321);let a={primed:!1,lastV:-1,lastNavSeq:-1};var l=s(60292);function i(){let e=(0,n.useRouter)();return(0,r.useEffect)(()=>{let t=(0,l.fk)(),s=new EventSource(t?`/api/stream?ws=${encodeURIComponent(t)}`:"/api/stream"),r=a;return s.onopen=()=>{r=a},s.onmessage=t=>{var s,n;let a;try{a=JSON.parse(t.data)}catch{e.refresh();return}let{state:l,action:i}=(s=r,n={v:"number"==typeof a.v?a.v:0,navSeq:a.nav?.seq??0,navPath:a.nav?.path??""},s.primed?n.navSeq!==s.lastNavSeq?{state:{primed:!0,lastV:n.v,lastNavSeq:n.navSeq},action:{kind:"push",path:n.navPath}}:n.v!==s.lastV?{state:{...s,lastV:n.v},action:{kind:"refresh"}}:{state:s,action:{kind:"none"}}:{state:{primed:!0,lastV:n.v,lastNavSeq:n.navSeq},action:{kind:"none"}});if(r=l,"refresh"===i.kind)e.refresh();else if("push"===i.kind&&i.path){e.push(i.path);try{window.focus()}catch{}}},()=>s.close()},[e]),(0,r.useEffect)(()=>{let e=(0,l.fk)(),t=()=>{"visible"===document.visibilityState&&document.hasFocus()&&fetch("/api/tab/view",{method:"POST",headers:e?{"x-beacon-workspace":e}:void 0}).catch(()=>{})};t();let s=setInterval(t,3e3);return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{clearInterval(s),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}},[]),null}},82879:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(30772).A)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]])},90467:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(30772).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},99979:(e,t,s)=>{"use strict";function r(){return new URLSearchParams(window.location.search).get("ws")}function n(){return new URLSearchParams(window.location.search).get("plan")}function a(e){let t=new URLSearchParams,s=r();s&&t.set("ws",s);let a=n();for(let[s,r]of(a&&t.set("plan",a),Object.entries(e??{})))""===r?t.delete(s):t.set(s,r);let l=t.toString();return l?`/plan?${l}`:"/plan"}s.d(t,{X0:()=>r,d8:()=>n,rc:()=>a})}},e=>{e.O(0,[7513,7352,5004,277,8500,4888,7424,9887,3908,8441,3794,7358],()=>e(e.s=59089)),_N_E=e.O()}]);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[459],{9383:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(30772).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},25494:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(30772).A)("message-square",[["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"}]])},31966:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(30772).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},36925:(e,t,s)=>{"use strict";s.d(t,{I:()=>r});var n=s(29813);function r(e){let t=e.tables??[],s=new Map(t.map(e=>[e.id,e.name])),r=t.flatMap(e=>e.columns.filter(e=>e.fkTo&&s.has(e.fkTo)).map(t=>({id:`fk-${e.id}-${t.name}`,fromId:e.id,toId:t.fkTo}))),a=(0,n.to)([...e.nodes.map(e=>({id:e.id,group:e.group??"—"})),...t.map(e=>{let t,s,n,r;return{id:e.id,group:e.group??e.domain??"—",h:(t=(e,t)=>e?Math.ceil(e.length/t):0,n=(s=(e.columns??[]).slice(0,5)).reduce((e,s)=>e+25+14*t(s.note,42),0),r=28*!!((e.columns??[]).length>s.length||(e.sample?.length??0)>0),36+(e.note?12+15*t(e.note,45):0)+n+r+30)}})],[...e.edges.map(e=>({fromId:e.toId,toId:e.fromId})),...r.map(e=>({fromId:e.toId,toId:e.fromId}))]),l=new Map;for(let t of e.questions)if("node"===t.anchor.kind){let e=l.get(t.anchor.nodeId)??[];e.push(t),l.set(t.anchor.nodeId,e)}let o=e.nodes.map(e=>{let t=a.get(e.id)??{x:e.x,y:e.y},s=l.get(e.id)??[],n=s.length?"\n\n**Q&A**\n"+s.map(e=>`
|
|
2
|
-
_${e.question}_
|
|
3
|
-
${e.answer??"_(waiting for the agent…)_"}`).join("\n"):"",r=`${e.detail||""}${n}`.trim();return{id:e.id,view:"ARCHITECTURE",kind:"FEATURE",cluster:e.group??null,layer:null,title:e.title,role:e.summary||null,plain:r||null,status:"KEEP",priority:2,x:t.x,y:t.y,source:"MANUAL",sourceRef:null,parentId:null,isCriterion:!1,files:e.files,bugFlags:[]}}),i=t.map(e=>{let t=a.get(e.id)??{x:0,y:0};return{id:e.id,x:t.x,y:t.y,group:e.group??e.domain??"—",data:{name:e.name,domain:e.domain??null,note:e.note,columns:e.columns.map(e=>({name:e.name,type:e.type,isPk:e.isPk,isFk:e.isFk,note:e.note,fkTo:e.fkTo?s.get(e.fkTo)??e.fkTo:void 0})),sample:e.sample}}});return{nodes:o,edges:[...e.edges.map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,kind:"RELATES",label:e.verb,sourceHandle:null,targetHandle:null})),...r.map(e=>({id:e.id,fromId:e.fromId,toId:e.toId,kind:"RELATES",label:"FK",sourceHandle:null,targetHandle:null}))],tableNodes:i}}},37665:(e,t,s)=>{"use strict";s.d(t,{LearnWorkspace:()=>z});var n=s(95155),r=s(12115),a=s(73321),l=s(38096),o=s(25494),i=s(9383);let d=(0,s(30772).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);var c=s(9005),u=s(92571),x=s(40557),m=s(64577),f=s(91337),h=s(60292),p=s(51909),g=s(17356);let v="u">typeof CSS&&"highlights"in CSS&&"u">typeof Highlight,b="lesson-pending",w="lesson-ask",j="lesson-answered";function k(){return v?CSS.highlights:null}function y(...e){return new globalThis.Highlight(...e)}function N(e,t){if(!t)return null;let s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.parentElement?.closest("pre, table")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),n=[],r="";for(let e=s.nextNode();e;e=s.nextNode())n.push({node:e,start:r.length}),r+=e.nodeValue??"";let a=r.indexOf(t);if(a<0)return null;let l=e=>{for(let t=n.length-1;t>=0;t--)if(n[t].start<=e)return{node:n[t].node,offset:e-n[t].start};return null},o=l(a),i=l(a+t.length);if(!o||!i)return null;let d=document.createRange();return d.setStart(o.node,o.offset),d.setEnd(i.node,i.offset),d}function A({narrative:e,round:t,answered:s=[],onApi:a}){let[l,o]=(0,r.useState)([]),[i,d]=(0,r.useState)(null),[c,u]=(0,r.useState)(null),x=(0,r.useRef)(null),m=(0,r.useRef)(null);(0,r.useEffect)(()=>{o([])},[t]);let f=(0,r.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed)return d(null);let t=e.toString().trim();if(!t||!x.current?.contains(e.anchorNode))return d(null);let s=e.getRangeAt(0).getBoundingClientRect();d({x:s.right+window.scrollX,y:s.top+window.scrollY,excerpt:t})},[]);(0,r.useEffect)(()=>{let e=()=>setTimeout(f,0);return document.addEventListener("mouseup",e),document.addEventListener("selectionchange",e),()=>{document.removeEventListener("mouseup",e),document.removeEventListener("selectionchange",e)}},[f]),(0,r.useEffect)(()=>{let e=e=>{let t=window.getSelection();if(!t||t.isCollapsed)return;let s=t.toString().trim();if(!s||!x.current?.contains(t.anchorNode))return;let n=document.activeElement;if(n&&/^(TEXTAREA|INPUT)$/.test(n.tagName)||1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault(),e.stopPropagation();let r=t.getRangeAt(0);m.current=r.cloneRange();let a=r.getBoundingClientRect();u({x:a.right+window.scrollX,y:a.top+window.scrollY,excerpt:s,seed:e.key}),d(null),t.removeAllRanges()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let h=(0,r.useCallback)((e,t)=>{o(s=>[...s,{id:`tq-${Date.now()}-${Math.floor(1e6*Math.random())}`,excerpt:e,question:t}])},[]),p=(0,r.useCallback)(e=>o(t=>t.filter(t=>t.id!==e)),[]),v=(0,r.useCallback)(()=>o([]),[]);(0,r.useEffect)(()=>{let e=k();if(!c||!e)return;let t=m.current;if(t)return e.set(b,y(t)),()=>{e.delete(b)}},[c]),(0,r.useEffect)(()=>{let e=k();if(!e||!x.current)return;let t=[],n=[];for(let e of l){let s=N(x.current,e.excerpt);s&&t.push(s)}for(let e of s){let t=N(x.current,e.excerpt);t&&n.push(t)}let r=(t,s)=>s.length?e.set(t,y(...s)):e.delete(t);return r(w,t),r(j,n),()=>{e.delete(w),e.delete(j)}},[l,s,e]);let S=(0,r.useMemo)(()=>l.filter(e=>e.question.trim()).length,[l]);return(0,r.useEffect)(()=>{a?.({textQuestions:l,count:S,removeQuestion:p,clearAll:v})},[l,S,p,v,a]),(0,n.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,n.jsx)("div",{ref:x,className:"min-h-0 flex-1 overflow-y-auto px-5 pb-5 pt-16 text-[15px] leading-[1.6] selection:bg-[var(--accent-2,#ff7a45)]/30",children:(0,n.jsx)(E,{markdown:e})}),i&&(0,n.jsx)("div",{style:{position:"fixed",left:i.x+4,top:i.y-34,zIndex:60},className:"rounded-md border border-white/15 bg-card/95 p-0.5 shadow-lg backdrop-blur",children:(0,n.jsxs)("button",{onClick:()=>{let e=window.getSelection();m.current=e&&e.rangeCount?e.getRangeAt(0).cloneRange():null,u({...i,seed:""}),d(null),e?.removeAllRanges()},title:"Ask the agent about this",className:"flex items-center gap-1 rounded px-2 py-1 text-[11px] font-semibold text-[var(--accent-2,#ff7a45)] hover:bg-[var(--accent-2,#ff7a45)]/15",children:[(0,n.jsx)(g.A,{className:"size-3.5"})," Ask"]})}),c&&(0,n.jsx)(C,{excerpt:c.excerpt,x:c.x,y:c.y,seed:c.seed,onConfirm:e=>{h(c.excerpt,e),u(null)},onCancel:()=>u(null)})]})}function C({excerpt:e,x:t,y:s,seed:a,onConfirm:l,onCancel:o}){let[i,d]=(0,r.useState)(a),u=(0,r.useRef)(null),x=()=>i.trim()?l(i.trim()):o();return(0,n.jsxs)("div",{ref:u,style:{position:"fixed",left:t+4,top:s-6,zIndex:60},className:"w-72 rounded-md border border-white/15 bg-card/95 p-1.5 shadow-xl backdrop-blur",onBlur:e=>{u.current?.contains(e.relatedTarget)||x()},children:[(0,n.jsxs)("div",{className:"mb-1 line-clamp-1 text-[10px] text-muted-foreground",children:["“",e,"”"]}),(0,n.jsx)("textarea",{autoFocus:!0,value:i,onChange:e=>d(e.target.value),onFocus:e=>e.currentTarget.setSelectionRange(i.length,i.length),placeholder:"Ask the agent… (Enter to ask \xb7 Esc to discard)",onKeyDown:e=>{e.stopPropagation(),"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&(e.preventDefault(),o()):(e.preventDefault(),x())},className:"h-16 w-full resize-none rounded bg-white/[0.05] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]"}),(0,n.jsxs)("div",{className:"mt-1 flex items-center justify-end gap-1",children:[(0,n.jsxs)("button",{type:"button",onClick:o,className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground hover:bg-red-500/15 hover:text-red-300",children:[(0,n.jsx)(c.A,{className:"size-3"})," Discard"]}),(0,n.jsxs)("button",{type:"button",onClick:x,disabled:!i.trim(),className:"flex items-center gap-1 rounded bg-[var(--accent-2,#ff7a45)]/15 px-1.5 py-0.5 text-[10px] font-semibold text-[var(--accent-2,#ff7a45)] hover:bg-[var(--accent-2,#ff7a45)]/25 disabled:opacity-40",children:[(0,n.jsx)(m.A,{className:"size-3"})," Ask"]})]})]})}function E({markdown:e}){let t=(0,r.useMemo)(()=>(0,p.n$)(e),[e]);return(0,n.jsxs)("div",{className:"mx-auto w-full max-w-[66ch] space-y-4",children:[(0,n.jsx)("style",{children:`
|
|
4
|
-
::highlight(${b}) { background: color-mix(in srgb, var(--accent-2,#ff7a45) 30%, transparent); }
|
|
5
|
-
::highlight(${w}) { background: color-mix(in srgb, var(--accent-2,#ff7a45) 18%, transparent); }
|
|
6
|
-
::highlight(${j}) { background: color-mix(in srgb, #34d399 16%, transparent); }
|
|
7
|
-
`}),t.map((e,t)=>(0,n.jsx)(S,{block:e,index:t},t))]})}function S({block:e,index:t}){if("code"===e.kind)return(0,n.jsx)(p.NG,{text:e.text});if("table"===e.kind)return(0,n.jsx)(p.QH,{block:e});let s=(0,p.Vq)(e.kind)?`lesson-h-${t}`:void 0;return(0,n.jsx)(n.Fragment,{children:(0,p.aM)(e,(0,n.jsx)(p.cV,{text:e.text}),"reading",s)})}var I=s(45520),q=s(36925);function z({initialLesson:e,repoFiles:t=[]}){let s=(0,a.useRouter)(),[u,x]=(0,r.useState)(e),[m,g]=(0,r.useState)(null),[v,b]=(0,r.useState)([]),[w,j]=(0,r.useState)(null),[k,y]=(0,r.useState)(""),[N,C]=(0,r.useState)(!1),[E,S]=(0,r.useState)(!1),[O,F]=(0,r.useState)(!1),[H,P]=(0,r.useState)(null),[D,_]=(0,r.useState)(null),K=u?.updatedAt??0,U=(0,r.useRef)(K);(0,r.useEffect)(()=>{U.current=K},[K]),(0,r.useEffect)(()=>{let e=()=>void fetch("/api/lesson/presence",{method:"POST",cache:"no-store",headers:(0,h.dh)((0,h.fk)())}).catch(()=>{});e();let t=setInterval(e,5e3);return()=>clearInterval(t)},[]);let V=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/lesson",{cache:"no-store",headers:(0,h.dh)((0,h.fk)())});if(!e.ok)return;let t=(await e.json()).lesson;t&&t.updatedAt>U.current?(x(t),b([]),j(null),y(""),F(!1)):!t&&U.current>0&&x(null)}catch{}},[]);(0,r.useEffect)(()=>{if(H)return;let e=setInterval(()=>void V(),3e3),t=()=>{"visible"===document.visibilityState&&V()};return document.addEventListener("visibilitychange",t),window.addEventListener("focus",t),()=>{clearInterval(e),document.removeEventListener("visibilitychange",t),window.removeEventListener("focus",t)}},[H,V]);let Q=(0,r.useCallback)(()=>{let e=Date.now(),t=(m?.textQuestions??[]).filter(e=>e.question.trim()).map(t=>({id:t.id,anchor:{kind:"text",excerpt:t.excerpt},question:t.question,askedAt:e})),s=v.filter(e=>e.question.trim()).map(t=>({id:t.id,anchor:{kind:"node",nodeId:t.nodeId},question:t.question,askedAt:e}));return[...k.trim()?[{id:`oq-${e}`,anchor:{kind:"overall"},question:k.trim(),askedAt:e}]:[],...s,...t]},[m,v,k]),B=(m?.count??0)+v.filter(e=>e.question.trim()).length+ +!!k.trim(),Y=(0,r.useCallback)(async()=>{if(!E&&0!==B){S(!0);try{(await fetch("/api/lesson/questions",{method:"POST",headers:{"content-type":"application/json",...(0,h.dh)((0,h.fk)())},body:JSON.stringify({questions:Q()})})).ok&&(F(!0),C(!1),j(null))}finally{S(!1)}}},[E,B,Q]),X=(0,r.useCallback)(async()=>{let e=await fetch("/api/lesson/save",{method:"POST",headers:(0,h.dh)((0,h.fk)())});e.ok&&(_((await e.json()).lessonId??u?.id??null),P("saved"))},[u]),W=(0,r.useCallback)(async()=>{await fetch("/api/lesson/close",{method:"POST",headers:(0,h.dh)((0,h.fk)())}).catch(()=>{}),P("closed")},[]),J=(0,r.useCallback)((e,t)=>{b(s=>[...s,{id:`nq-${Date.now()}-${Math.floor(1e6*Math.random())}`,nodeId:e,question:t}])},[]),G=(0,r.useCallback)(e=>{let t=e.replace(/^[^:]+:\s*/,"").trim(),s=u?.nodes.find(e=>e.title===t);s&&j(s.id)},[u]),Z=(0,r.useMemo)(()=>(u?.questions??[]).filter(e=>"text"===e.anchor.kind&&e.answer).map(e=>({excerpt:"text"===e.anchor.kind?e.anchor.excerpt:"",answer:e.answer??""})),[u]),ee=(0,r.useMemo)(()=>(u?.questions??[]).filter(e=>"overall"===e.anchor.kind),[u]),et=(0,r.useMemo)(()=>u?(0,q.I)(u):{nodes:[],edges:[],tableNodes:[]},[u]);if(H)return(0,n.jsx)($,{ended:H,savedId:D,onBrowse:()=>s.push("/learn?view=library")});if(!u)return(0,n.jsx)(L,{});let es=w?u.nodes.find(e=>e.id===w)?.title??"":"";return(0,n.jsx)(p.Ue,{files:t,children:(0,n.jsxs)("div",{className:"relative flex h-screen flex-col",children:[O&&(0,n.jsx)(M,{onDismiss:()=>F(!1)}),(0,n.jsx)("div",{className:"pointer-events-none fixed right-3 top-3 z-30 flex items-center gap-2",children:(0,n.jsxs)("div",{className:"glass pointer-events-auto flex h-10 items-center gap-0.5 rounded-full px-1",children:[(0,n.jsx)("button",{onClick:()=>s.push("/learn?view=library"),title:"Saved lessons",className:"flex size-8 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:(0,n.jsx)(l.A,{className:"size-3.5"})}),(0,n.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,n.jsxs)("button",{onClick:()=>C(e=>!e),title:"Ask an overall question",className:(0,f.cn)("relative flex size-8 items-center justify-center rounded-full transition-colors",N?"bg-white/10 text-foreground":k.trim()?"text-[var(--accent-2,#ff7a45)]":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,n.jsx)(o.A,{className:"size-3.5"}),k.trim()&&(0,n.jsx)("span",{className:"absolute -right-0.5 -top-0.5 size-2 rounded-full bg-[var(--accent-2,#ff7a45)]"})]}),(0,n.jsx)("span",{"aria-hidden":!0,className:"mx-1 h-5 w-px bg-white/10"}),(0,n.jsxs)("button",{onClick:()=>void Y(),disabled:E||0===B,title:0===B?"Highlight text or a node to ask, then send":"Send your questions to the agent",className:(0,f.cn)("flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-semibold transition-colors",0===B?"text-muted-foreground opacity-50":"text-[var(--accent-2,#ff7a45)] hover:bg-[var(--accent-2,#ff7a45)]/15"),children:[(0,n.jsx)(i.A,{className:"size-3"})," Send",B>0?` (${B})`:""]}),(0,n.jsxs)("button",{onClick:()=>void X(),title:"Save this lesson to your library",className:"flex items-center gap-1 rounded-full border border-emerald-500/40 bg-emerald-500/15 px-2.5 py-1 text-[11px] font-semibold text-emerald-300 transition-colors hover:bg-emerald-500/25",children:[(0,n.jsx)(d,{className:"size-3"})," Save"]}),(0,n.jsxs)("button",{onClick:()=>void W(),title:"Close without saving",className:"flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-red-500/15 hover:text-red-300",children:[(0,n.jsx)(c.A,{className:"size-3"})," Close"]})]})}),N&&(0,n.jsx)(T,{label:"Overall question",placeholder:"A question about the whole topic…",value:k,onChange:y,onClose:()=>C(!1)}),w&&(0,n.jsx)(T,{label:`Ask about “${es}”`,placeholder:"Your question about this node…",value:"",submitLabel:"Add question",onSubmit:e=>{J(w,e),j(null)},onClose:()=>j(null)}),(0,n.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,n.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col bg-background",style:{width:"50%"},children:[(0,n.jsx)("div",{className:"min-h-0 flex-1",children:(0,n.jsx)(A,{narrative:u.narrative,round:K,answered:Z,onApi:g})}),ee.length>0&&(0,n.jsx)(R,{questions:ee})]}),(0,n.jsx)("div",{className:"w-px shrink-0 bg-white/5"}),(0,n.jsx)("div",{className:"relative min-w-0 flex-1 bg-background",style:{width:"50%"},children:(0,n.jsx)(I.MapClient,{view:"ARCHITECTURE",nodes:et.nodes,edges:et.edges,tableNodes:et.tableNodes,embedded:!0,readOnly:!0,minimap:!0,staticEdgeLabels:!0,hasFrontend:!1,onAskAgent:G})})]})]})})}function T({label:e,placeholder:t,value:s,submitLabel:a,onChange:l,onSubmit:o,onClose:i}){let[d,u]=(0,r.useState)(s),x=l?s:d;return(0,n.jsxs)("div",{className:"fixed right-3 top-16 z-30 w-80 rounded-xl border border-white/10 bg-card p-3 shadow-xl",children:[(0,n.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wide text-muted-foreground [overflow-wrap:anywhere]",children:e}),(0,n.jsx)("button",{onClick:i,title:"Close",className:"rounded p-0.5 text-muted-foreground hover:text-foreground",children:(0,n.jsx)(c.A,{className:"size-3.5"})})]}),(0,n.jsx)("textarea",{autoFocus:!0,value:x,onChange:e=>{let t;return t=e.target.value,l?l(t):u(t)},onKeyDown:e=>{o&&"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),x.trim()&&o(x.trim()))},placeholder:t,rows:3,className:"w-full resize-y rounded border border-white/5 bg-background px-2 py-1.5 text-[12px] leading-snug outline-none focus:border-[var(--accent-2,#ff7a45)]/40"}),o&&(0,n.jsx)("button",{onClick:()=>x.trim()&&o(x.trim()),disabled:!x.trim(),className:"mt-1.5 w-full rounded-md bg-[var(--accent-2,#ff7a45)]/15 px-2 py-1 text-[11px] font-semibold text-[var(--accent-2,#ff7a45)] transition-colors hover:bg-[var(--accent-2,#ff7a45)]/25 disabled:opacity-40",children:a??"Add"})]})}function R({questions:e}){return(0,n.jsxs)("div",{className:"max-h-44 shrink-0 space-y-1.5 overflow-y-auto border-t border-white/10 bg-background/60 px-5 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,n.jsx)(o.A,{className:"size-3"}),"Overall Q&A"]}),e.map(e=>(0,n.jsxs)("div",{className:"rounded-md border border-white/10 bg-background/40 p-2",children:[(0,n.jsx)("div",{className:"text-[12px] font-medium text-foreground",children:e.question}),e.answer?(0,n.jsx)("div",{className:"mt-1 text-[12px] leading-relaxed text-foreground/85",children:(0,n.jsx)(p.pO,{markdown:e.answer,variant:"compact"})}):(0,n.jsxs)("div",{className:"mt-1 flex items-center gap-1 text-[11px] text-muted-foreground/70",children:[(0,n.jsx)(u.A,{className:"size-3 animate-spin"})," waiting for the agent…"]})]},e.id))]})}function M({onDismiss:e}){return(0,n.jsxs)("div",{className:"absolute inset-0 z-40 flex flex-col items-center justify-center gap-4 bg-background/95 px-6 text-center backdrop-blur-sm",children:[(0,n.jsx)("div",{className:"flex size-12 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)]/15",children:(0,n.jsx)(u.A,{className:"size-6 animate-spin text-[var(--accent-2,#ff7a45)]"})}),(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Questions sent"}),(0,n.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:"Your terminal session is answering. The updated lesson will appear here automatically — if the session finished its turn, nudge it in the terminal."})]}),(0,n.jsx)("button",{onClick:e,className:"rounded-full border border-white/12 px-3 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:"Keep reading meanwhile"})]})}function L(){return(0,n.jsxs)("div",{className:"flex h-screen flex-col items-center justify-center gap-3 px-6 text-center",children:[(0,n.jsx)(x.A,{className:"size-8 text-muted-foreground/60"}),(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"No lesson open"}),(0,n.jsxs)("p",{className:"max-w-md text-sm text-muted-foreground",children:["Ask your terminal session to ",(0,n.jsx)("em",{children:"explain"})," or ",(0,n.jsx)("em",{children:"teach"})," you part of the codebase — it opens an interactive lesson here. You highlight text to ask questions; it answers on the board."]})]})}function $({ended:e,savedId:t,onBrowse:s}){return(0,n.jsxs)("div",{className:"flex h-screen flex-col items-center justify-center gap-5 px-6 text-center",children:[(0,n.jsx)("div",{className:(0,f.cn)("flex size-12 items-center justify-center rounded-full","saved"===e?"bg-emerald-500/15":"bg-white/10"),children:"saved"===e?(0,n.jsx)(m.A,{className:"size-6 text-emerald-300"}):(0,n.jsx)(c.A,{className:"size-6 text-muted-foreground"})}),(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"saved"===e?"Lesson saved":"Lesson closed"}),(0,n.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:"saved"===e?"It's in your library — reopen it anytime.":"Closed without saving."})]}),(0,n.jsxs)("button",{onClick:s,className:"rounded-full border border-white/12 px-3 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,n.jsx)(l.A,{className:"mr-1 inline size-3.5"})," ",t?"Browse the library":"Open the library"]})]})}},38096:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(30772).A)("library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]])},38464:(e,t,s)=>{"use strict";s.d(t,{LessonLibraryView:()=>f});var n=s(95155),r=s(12115),a=s(73321),l=s(38096),o=s(40557),i=s(31966),d=s(60292),c=s(51909),u=s(45520),x=s(36925);function m(e){let t=new URLSearchParams,s=(0,d.fk)();for(let[n,r]of(s&&t.set("ws",s),Object.entries(e)))t.set(n,r);return`/learn?${t.toString()}`}function f({lessons:e,selected:t,repoFiles:s=[]}){return t?(0,n.jsx)(p,{lesson:t,repoFiles:s}):(0,n.jsx)(h,{lessons:e})}function h({lessons:e}){let t=(0,a.useRouter)();return(0,n.jsxs)("div",{className:"mx-auto flex h-screen w-full max-w-3xl flex-col px-6 pt-20",children:[(0,n.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,n.jsxs)("h1",{className:"flex items-center gap-2 text-lg font-semibold text-foreground",children:[(0,n.jsx)(l.A,{className:"size-5 text-[var(--accent-2,#ff7a45)]"})," Lessons"]}),(0,n.jsx)("button",{onClick:()=>t.push(m({})),className:"rounded-full border border-white/12 px-3 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:"Back to current lesson"})]}),0===e.length?(0,n.jsxs)("div",{className:"rounded-lg border border-dashed border-white/10 px-4 py-12 text-center text-sm text-muted-foreground",children:["No saved lessons yet. Ask your terminal session to explain something, then click ",(0,n.jsx)("b",{children:"Save"}),"."]}):(0,n.jsx)("div",{className:"min-h-0 flex-1 space-y-2 overflow-y-auto pb-6",children:e.map(e=>(0,n.jsxs)("button",{onClick:()=>t.push(m({view:"library",id:e.id})),className:"block w-full rounded-lg border border-white/10 bg-white/[0.02] p-3 text-left transition-colors hover:border-white/20 hover:bg-white/[0.04]",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-[14px] font-semibold text-foreground",children:[(0,n.jsx)(o.A,{className:"size-4 text-[var(--accent-2,#ff7a45)]"})," ",e.title]}),e.topic&&e.topic!==e.title&&(0,n.jsx)("div",{className:"mt-0.5 truncate text-[12px] text-muted-foreground",children:e.topic}),(0,n.jsxs)("div",{className:"mt-1 text-[11px] text-muted-foreground/70",children:[e.nodeCount," node",1===e.nodeCount?"":"s"," \xb7 ",e.questionCount," question",1===e.questionCount?"":"s"," \xb7 saved ",new Date(e.updatedAt).toLocaleDateString()]})]},e.id))})]})}function p({lesson:e,repoFiles:t}){let s=(0,a.useRouter)(),l=(0,r.useMemo)(()=>new Map(e.nodes.map(e=>[e.id,e.title])),[e.nodes]),o=(0,r.useMemo)(()=>(0,x.I)(e),[e]);return(0,n.jsx)(c.Ue,{files:t,children:(0,n.jsxs)("div",{className:"relative flex h-screen flex-col",children:[(0,n.jsx)("div",{className:"pointer-events-none fixed right-3 top-3 z-30",children:(0,n.jsxs)("button",{onClick:()=>s.push(m({view:"library"})),className:"glass pointer-events-auto flex h-10 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,n.jsx)(i.A,{className:"size-3.5"})," Library"]})}),(0,n.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto bg-background px-5 pb-6 pt-16",style:{width:"50%"},children:[(0,n.jsx)(c.pO,{markdown:e.narrative,variant:"reading"}),e.questions.length>0&&(0,n.jsxs)("div",{className:"mx-auto mt-6 w-full max-w-[66ch] space-y-2",children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Q&A"}),e.questions.map(e=>(0,n.jsx)(g,{q:e,nodeTitle:"node"===e.anchor.kind?l.get(e.anchor.nodeId):void 0},e.id))]})]}),(0,n.jsx)("div",{className:"w-px shrink-0 bg-white/5"}),(0,n.jsx)("div",{className:"min-w-0 flex-1 bg-background",style:{width:"50%"},children:(0,n.jsx)(u.MapClient,{view:"ARCHITECTURE",nodes:o.nodes,edges:o.edges,tableNodes:o.tableNodes,embedded:!0,readOnly:!0,minimap:!0,staticEdgeLabels:!0,hasFrontend:!1})})]})]})})}function g({q:e,nodeTitle:t}){let s="overall"===e.anchor.kind?"Overall":"node"===e.anchor.kind?t??"Node":`“${e.anchor.excerpt.slice(0,48)}…”`;return(0,n.jsxs)("div",{className:"rounded-md border border-white/10 bg-background/40 p-2",children:[(0,n.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/80",children:s}),(0,n.jsx)("div",{className:"mt-0.5 text-[12px] font-medium text-foreground",children:e.question}),e.answer&&(0,n.jsx)("div",{className:"mt-1 text-[12px] leading-relaxed text-foreground/85",children:(0,n.jsx)(c.pO,{markdown:e.answer,variant:"compact"})})]})}},40557:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(30772).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},73206:(e,t,s)=>{Promise.resolve().then(s.bind(s,37665)),Promise.resolve().then(s.bind(s,38464))}},e=>{e.O(0,[2574,3862,5004,277,8500,4888,7424,9887,5957,5697,2059,3908,5520,1909,8441,3794,7358],()=>e(e.s=73206)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5823],{27950:(e,t,o)=>{Promise.resolve().then(o.bind(o,44853)),Promise.resolve().then(o.bind(o,62079)),Promise.resolve().then(o.bind(o,45520)),Promise.resolve().then(o.bind(o,77260))},62079:(e,t,o)=>{"use strict";o.d(t,{FilesMapClient:()=>U});var s=o(95155),n=o(12115),r=o(80277),l=o(81750),a=o(6266),i=o(7679),d=o(98766),c=o(15629),u=o(79176),p=o(2982),h=o(64385);o(53255);var f=o(17356),m=o(24413),x=o(18986),g=o(9005),b=o(25583),y=o(82099),w=o(62311),j=o(9991),k=o(47409),N=o(91157),v=o(56895),M=o(16607),S=o(14983);let C=/(^|\/)tests?\/|\.(test|spec)\.[jt]sx?$/i;var A=o(44267),$=o(70947),z=o(98238),E=o(56614),D=o(28161);let I=/\.(py|go|rb|rs|java|php|ex|exs)$/i,R=/(^|\/)(app\/api|pages\/api|migrations|bin)\/|(^|\/)instrumentation\.[^/]+$/,O=e=>e.includes("/")?e.slice(0,e.indexOf("/")):"(root)";function T(e){let t=Math.max(14,.35*e.length),o=new Map;for(let t of e)o.set(t,O(t));for(let e=0;e<6;e++){let e=new Map;for(let t of o.values())e.set(t,(e.get(t)??0)+1);let s=!1;for(let[n,r]of o){if((e.get(r)??0)<=t||!n.startsWith(`${r}/`))continue;let l=n.slice(r.length+1);l.includes("/")&&(o.set(n,`${r}/${l.slice(0,l.indexOf("/"))}`),s=!0)}if(!s)break}return o}var P=o(29523),Z=o(70221),F=o(12410),L=o(91337);function _(e){return 5+.5*Math.min(e,26)}let W={file:(0,n.memo)(function({data:e}){let t=(0,P.k)(Z.kz),o=!!e.touched,n=e.recency??0,r=e.inDegree??0,i=_(r),d=e.layer??null,c=2*!!d,u=r>0?` \xb7 imported by ${r}`:"",p=d?` \xb7 ${"fullstack"===d?"shared (used by frontend + backend)":D.YG[d].label.toLowerCase()}`:"",h=o?`${e.tooltip} \xb7 edited ${e.count??0}\xd7 this session${u}${p}`:e.untested?`${e.tooltip} \xb7 no test imports this file${u}${p}`:`${e.tooltip}${u}${p}`;return(0,s.jsxs)("div",{title:h,className:"relative flex flex-col items-center",children:[(0,s.jsx)(l.h7,{type:"target",position:a.yX.Top,isConnectable:!1,className:"!h-0 !w-0 !min-w-0 !border-0 !bg-transparent",style:{top:i+c,left:"50%"}}),(0,s.jsx)("span",{"aria-hidden":!0,className:(0,L.cn)("rounded-full",e.isNewest&&"animate-touch-pulse"),style:{padding:c,background:d?(0,D.A6)(d):void 0,boxShadow:o?`0 0 ${8+Math.round(14*n)}px ${2+Math.round(3*n)}px rgba(45,212,191,${(.35+.45*n).toFixed(2)})`:e.untested?"0 0 0 2px rgba(251,191,36,0.65)":"none"},children:(0,s.jsx)("span",{"aria-hidden":!0,className:"block rounded-full",style:{width:2*i,height:2*i,backgroundColor:e.dirColor}})}),o&&(e.count??0)>0&&(0,s.jsx)("span",{"aria-hidden":!0,className:"absolute -right-2 -top-2 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-teal-400 px-0.5 text-[8px] font-bold text-background ring-1 ring-background",children:e.count}),("full"===t||"mid"===t&&r>=4)&&(0,s.jsx)("span",{className:(0,L.cn)("pointer-events-none mt-1 max-w-44 truncate text-[10px] leading-tight",o?"font-semibold text-teal-100":"text-foreground/75"),children:e.label}),(0,s.jsx)(l.h7,{type:"source",position:a.yX.Bottom,isConnectable:!1,className:"!h-0 !w-0 !min-w-0 !border-0 !bg-transparent",style:{top:i+c,bottom:"auto",left:"50%"}})]})})};function B({regions:e,dominant:t}){return(0,s.jsx)(l.DX,{children:e.map(e=>{let o=t.get(e.key);return o&&"fullstack"!==o?(0,s.jsx)("div",{style:{position:"absolute",transform:`translate(${e.x-.15*e.w}px, ${e.y-.15*e.h}px)`,width:1.3*e.w,height:1.3*e.h,pointerEvents:"none",zIndex:0,background:`radial-gradient(closest-side, ${D.ZD[o]} 0%, transparent 72%)`,opacity:.1}},e.key):null})})}function U({files:e,edges:t,touched:o,hasFrontend:a=!1,classificationRoots:O=[]}){let H,X=(0,n.useMemo)(()=>(function(e,t){let o=function(e){if(!e?.length)return[];let t=new Set;for(let o of e){let e=o.trim().replace(/^\/+|\/+$/g,"");e&&t.add(e)}return[...t]}(t);if(!o.length)return T(e);let s=new Map,n=[];for(let t of e){let e=function(e,t){let o=null;for(let s of t)(e===s||e.startsWith(`${s}/`))&&(!o||s.length>o.length)&&(o=s);return o}(t,o);e?s.set(t,function(e,t){if(e===t||!e.startsWith(`${t}/`))return t;let o=e.slice(t.length+1);return o.includes("/")?`${t}/${o.slice(0,o.indexOf("/"))}`:t}(t,e)):n.push(t)}for(let[e,t]of T(n))s.set(e,t);return s})(e.map(e=>e.path),O),[e,O]),G=(0,n.useMemo)(()=>(function(e,t,o){let s=function(e){let t=new Map;for(let o of e.values())t.set(o,(t.get(o)??0)+1);let o=Array.from(t.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])),s=Math.max(1,Math.ceil(Math.sqrt(2.5*o.length))),n=new Map;return o.forEach(([e],t)=>{n.set(e,{x:t%s*1250,y:950*Math.floor(t/s)})}),n}(o),n=e=>s.get(o.get(e)??"(root)"),r=e.map(e=>{let t=function(e){let t=0x811c9dc5;for(let o=0;o<e.length;o++)t=(t^e.charCodeAt(o))*0x1000193>>>0;return{x:(t%10007/10007-.5)*900,y:((t>>>13)%10007/10007-.5)*900}}(e.path),o=n(e.path);return{id:e.path,x:o.x+.5*t.x,y:o.y+.5*t.y,pinned:!1,radius:_(e.inDegree??0)+22}}),l=t.filter(e=>e.from!==e.to).map(e=>({source:e.from,target:e.to})),a=(0,i.A)(r).force("link",(0,d.A)(l).id(e=>e.id).distance(100).strength(e=>{let t="object"==typeof e.source?e.source.id:String(e.source),s="object"==typeof e.target?e.target.id:String(e.target);return o.get(t)===o.get(s)?.5:.02})).force("charge",(0,c.A)().strength(-260).distanceMax(800)).force("collide",(0,u.A)().radius(e=>e.radius).strength(.6)).force("clusterX",(0,p.A)(e=>n(e.id).x).strength(.1)).force("clusterY",(0,h.A)(e=>n(e.id).y).strength(.115)).stop();for(let e=0;e<500;e++)a.tick();let f=new Map;for(let e of r)f.set(e.id,{x:e.x??0,y:e.y??0});return f})(e,t,X),[e,t,X]),q=(0,n.useMemo)(()=>(function(e,t){var o;let s=new Set;for(let e of t)o=e.from,C.test(o)&&s.add(e.to);let n=new Set;for(let t of e)C.test(t)||s.has(t)||n.add(t);return n})(e.map(e=>e.path),t),[e,t]),J=(0,n.useMemo)(()=>a?function(e,t){let o=new Map,s=new Map;for(let e of t){let t=s.get(e.from);t?t.push(e.to):s.set(e.from,[e.to])}let n=new Map;for(let t of e){let e=R.test(t)?"backend":D.An.test(t)?"frontend":I.test(t)?"backend":null;o.set(t,e),e&&n.set(t,e)}let r=e=>{let t=new Set,o=[];for(let[t,s]of n)s===e&&o.push(t);for(;o.length;){let e=o.pop();for(let n of s.get(e)??[])t.has(n)||(t.add(n),o.push(n))}return t},l=r("frontend"),a=r("backend");for(let t of e){if(o.get(t))continue;let e=l.has(t),s=a.has(t);e&&s?o.set(t,"fullstack"):e?o.set(t,"frontend"):s&&o.set(t,"backend")}return o}(e.map(e=>e.path),t):null,[a,e,t]),K=(0,n.useMemo)(()=>{let e=new Map,t=Object.entries(o??{});if(!t.length)return e;let s=t.map(([,e])=>e.lastAt),n=Math.max(...s),r=Math.min(...s),l=n-r||1,a=t[0][0],i=t[0][1].lastAt;for(let[e,o]of t)o.lastAt>=i&&(a=e,i=o.lastAt);for(let[o,s]of t)e.set(o,{count:s.count,recency:(s.lastAt-r)/l,isNewest:o===a});return e},[o]),Q=K.size>0,Y=(0,n.useMemo)(()=>Array.from(K.entries()).map(([e,t])=>({path:e,count:t.count})),[K]),ee=(0,n.useMemo)(()=>e.map(e=>{let t=G.get(e.path)??{x:e.x,y:e.y},o=e.path.lastIndexOf("/"),s=o>=0?e.path.slice(o+1):e.path,n=K.get(e.path);return{id:e.path,type:"file",position:t,data:{label:s,tooltip:e.path,untested:q.has(e.path),inDegree:e.inDegree??0,dirColor:(0,F.i3)(X.get(e.path)??"(root)"),layer:J?.get(e.path)??null,touched:!!n,count:n?.count??0,recency:n?.recency??0,isNewest:n?.isNewest??!1}}}),[e,G,q,K,J,X]),et=(0,n.useMemo)(()=>t.map(e=>({id:`${e.from}|${e.to}`,source:e.from,target:e.to,type:"straight",selectable:!1,focusable:!1,style:{pointerEvents:"none",...e.circular?{stroke:"#f87171",strokeDasharray:"5 3",strokeWidth:1.5,opacity:.6}:{stroke:"#8b8b94",strokeWidth:1,opacity:.3}}})),[t]),[eo,es]=(0,n.useState)(ee),[en,er]=(0,n.useState)(et),[el,ea]=(0,n.useState)(null),[ei,ed]=(0,n.useState)(null),[ec,eu]=(0,n.useState)(null),[ep,eh]=(0,n.useState)(!1),[ef,em]=(0,n.useState)(!1),[ex,eg]=(0,n.useState)(null),[eb,ey]=(0,n.useState)(!1),[ew,ej]=(0,n.useState)(""),[ek,eN]=(0,n.useState)(!1),[ev,eM]=(0,n.useState)("full"),eS=(0,n.useRef)(null),{tool:eC,setTool:eA,flowProps:e$}=(0,r.e)(),ez=(0,n.useCallback)(e=>{ea(e),eu(null);let t=eS.current?.getNode(e);t&&eS.current&&eS.current.setCenter(t.position.x+40,t.position.y+12,{zoom:1.4,duration:600})},[]),eE=(0,n.useCallback)(()=>{ea(null),eu(null);let e=!ef;if(em(e),ey(e),e&&eS.current){let e=Array.from(K.keys()).map(e=>({id:e}));e.length&&eS.current.fitView({nodes:e,duration:600,padding:.4})}},[ef,K]),eD=(0,n.useMemo)(()=>(0,N.b)(e,t,X),[e,t,X]),eI=(0,n.useCallback)(e=>{eS.current&&(e.focusIds.length?eS.current.fitView({nodes:e.focusIds.map(e=>({id:e})),duration:700,padding:.3,maxZoom:1.1}):eS.current.fitView({duration:700,padding:.1}))},[]),eR=(0,v.W)(eD,eI);(0,n.useEffect)(()=>eN(!0),[]),(0,n.useEffect)(()=>es(ee),[ee]),(0,n.useEffect)(()=>er(et),[et]);let eO=(0,n.useCallback)(e=>es(t=>(0,l._0)(e,t)),[]),eT=(0,n.useCallback)(e=>er(t=>(0,l.zW)(e,t)),[]),eP=(0,n.useCallback)((e,t,o)=>{fetch("/api/code-graph/position",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({path:e,x:t,y:o})})},[]),eZ=(0,n.useMemo)(()=>new Set(t.filter(e=>e.circular).map(e=>`${e.from}|${e.to}`)),[t]),eF=(0,n.useMemo)(()=>{let e=new Set;for(let o of t)o.circular&&(e.add(o.from),e.add(o.to));return e},[t]),eL=el??ei,e_=ew.trim().length>0,eW=(0,n.useMemo)(()=>{if(!e_)return null;let t=new Set;for(let o of e)(0,S.Qk)((0,S.zn)(o),ew)&&t.add(o.path);return t},[e,ew,e_]),eB=(0,n.useMemo)(()=>e_?(0,S.r2)(e,ew,e=>(0,S.zn)(e),e=>({id:e.path,label:e.path,sublabel:e.lang??void 0,kind:"file"})):[],[e,ew,e_]),eU=(0,n.useMemo)(()=>{if(ec){let e=en.find(e=>e.id===ec);return e?new Set([e.source,e.target]):null}if(eL){let e=new Set([eL]);for(let o of t)o.from===eL&&e.add(o.to),o.to===eL&&e.add(o.from);return e}return ep?eF:ef&&Q?new Set(K.keys()):null},[eL,ec,ep,eF,t,en,ef,Q,K]),eV=eR.focusIds,eH=eV??eW??eU,eX=eW??eV,eG=(0,n.useMemo)(()=>{if(!ex||!J)return null;let t=new Set;for(let o of e)(0,z.F)(ex,J.get(o.path)??null)||t.add(o.path);return t},[ex,J,e]),eq=(0,n.useMemo)(()=>eH?eo.map(e=>{let t=eH.has(e.id);return{...e,zIndex:t&&eX?10:e.zIndex,style:{...e.style,opacity:t?1:.15,boxShadow:t&&eX?S.RU:e.style?.boxShadow,borderRadius:t&&eX?9999:e.style?.borderRadius,transition:"opacity 120ms, box-shadow 120ms"}}}):eG?eo.map(e=>eG.has(e.id)?{...e,style:{...e.style,opacity:.15,transition:"opacity 120ms"}}:e):eo,[eo,eH,eX,eG]),eJ=(0,n.useMemo)(()=>eV?en.map(e=>eV.has(e.source)&&eV.has(e.target)?{...e,style:{...e.style,stroke:"#e4e4e7",opacity:.9,strokeWidth:1.4}}:{...e,style:{...e.style,opacity:.05}}):eW?en.map(e=>eW.has(e.source)&&eW.has(e.target)?{...e,style:{...e.style,stroke:"#e4e4e7",opacity:.95,strokeWidth:1.6}}:{...e,style:{...e.style,opacity:.05}}):eL||ec||ep||ef?en.map(e=>{let t=!1;return ec?t=e.id===ec:eL?t=e.source===eL||e.target===eL:ep?t=eZ.has(e.id):ef&&(t=K.has(e.source)&&K.has(e.target)),t?{...e,style:{...e.style,stroke:"#e4e4e7",opacity:.95,strokeWidth:1.6}}:{...e,style:{...e.style,opacity:.05}}}):eG?en.map(e=>eG.has(e.source)||eG.has(e.target)?{...e,style:{...e.style,opacity:.05}}:e):en,[en,eL,ec,ep,eZ,ef,K,eW,eG,eV]),eK=(0,n.useMemo)(()=>{let e=eo.map(e=>{let t=_(e.data.inDegree??0);return{id:e.id,group:X.get(e.id)??"(root)",x:e.position.x,y:e.position.y,w:2*t,h:2*t}});return(0,A.S)(e,{pad:60})},[eo,X]),eQ=(0,n.useMemo)(()=>{let t=new Map;if(!J)return t;let o=new Map;for(let t of e){let e=J.get(t.path);if(!e)continue;let s=X.get(t.path)??"(root)",n=o.get(s)??new Map;n.set(e,(n.get(e)??0)+1),o.set(s,n)}for(let[e,s]of o){let o=null,n=0,r=!1;for(let[e,t]of s)t>n?(o=e,n=t,r=!1):t===n&&(r=!0);t.set(e,r?null:o)}return t},[J,e,X]),eY=(0,n.useMemo)(()=>{let e=new Map;for(let t of X.values())e.set(t,(e.get(t)??0)+1);return Array.from(e.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e,t])=>({group:e,count:t,color:(0,F.i3)(e)}))},[X]),e0=t.filter(e=>e.circular).length,e1=(0,n.useMemo)(()=>el?t.filter(e=>e.from===el).map(e=>e.to):[],[el,t]),e5=(0,n.useMemo)(()=>el?t.filter(e=>e.to===el).map(e=>e.from):[],[el,t]),e2=null!==el||eb&&Q,e4=(0,n.useCallback)(()=>{ea(null),ey(!1),em(!1)},[]);return ek?(0,s.jsxs)("div",{className:"canvas-dots relative h-screen w-full",children:[(0,s.jsxs)(l.Gc,{...e$,nodes:eq,edges:eJ,nodeTypes:W,onNodesChange:eO,onEdgesChange:eT,onNodeClick:(e,t)=>{ea(t.id),eu(null)},onEdgeClick:(e,t)=>{eu(t.id),ea(null)},onPaneClick:()=>{ea(null),eu(null)},onNodeMouseEnter:(e,t)=>ed(t.id),onNodeMouseLeave:()=>ed(null),onInit:e=>{eS.current=e},onNodeDragStop:(e,t)=>eP(t.id,t.position.x,t.position.y),deleteKeyCode:null,colorMode:"dark",fitView:!0,fitViewOptions:{padding:.1,minZoom:.18,maxZoom:.9},minZoom:.05,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,s.jsx)($.Z,{regions:"far"===ev?eK:[],tone:"category",lod:ev}),a&&(0,s.jsx)(B,{regions:"far"===ev?[]:eK,dominant:eQ}),(0,s.jsx)(P.J,{onLod:eM,thresholds:Z.kz}),(0,s.jsx)(l.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),(0,s.jsx)(l.Zk,{position:"bottom-left",style:{marginBottom:118},children:(0,s.jsx)(r.H,{tool:eC,onChange:eA})}),(0,s.jsx)(l.Zk,{position:"bottom-right",style:{marginBottom:152},children:(0,s.jsx)(E.er,{title:"Legend",trigger:(e,t)=>(0,s.jsx)("button",{type:"button",onClick:t,title:"Legend",className:(0,L.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,s.jsx)(f.A,{className:"size-4"})}),children:(0,s.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"inline-block size-2.5 shrink-0 rounded-full bg-zinc-400"}),(0,s.jsx)("span",{children:"a file \xb7 bigger dot = more files import it"})]}),a&&(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"inline-block size-2.5 shrink-0 rounded-full",style:{boxShadow:`inset 0 0 0 2px ${D.ZD.frontend}`}}),(0,s.jsx)("span",{children:"colored ring \xb7 frontend / backend layer"})]}),(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#4a4a52]"}),(0,s.jsx)("span",{children:"line \xb7 imports another file"})]}),(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-red-400"}),(0,s.jsx)("span",{children:"red \xb7 part of an import cycle"})]}),(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsxs)("span",{"aria-hidden":!0,className:"inline-flex shrink-0 gap-0.5",children:[(0,s.jsx)("span",{className:"inline-block size-2 rounded-full bg-violet-400"}),(0,s.jsx)("span",{className:"inline-block size-2 rounded-full bg-amber-400"})]}),(0,s.jsx)("span",{children:"dot color \xb7 its directory (chips, top-right)"})]})]})})}),(0,s.jsx)(l.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!overflow-hidden !rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:()=>"#555"}),eD.length>0&&!eR.active&&(0,s.jsx)(l.Zk,{position:"top-left",className:"!mt-14",children:(0,s.jsxs)("button",{type:"button",onClick:eR.start,title:"Guided, dependency-ordered walkthrough of the codebase",className:"glass flex items-center gap-1.5 rounded-xl px-3 py-1.5 text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:[(0,s.jsx)(m.A,{className:"size-3.5"}),"Start tour"]})}),(0,s.jsx)(l.Zk,{position:"top-right",className:(0,L.cn)("glass rounded-full px-1 py-0.5 transition-[margin] duration-200",e2&&"!mr-[300px]"),children:(0,s.jsx)(w.Z,{active:"FILES",tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"},{value:"FILES",label:"Files",href:"/map?view=FILES"}]})}),(0,s.jsx)(l.Zk,{position:"top-right",className:(0,L.cn)("glass !mt-24 flex max-w-[300px] flex-wrap items-center justify-end gap-x-2.5 gap-y-1 rounded-xl px-3 py-1.5 transition-[margin] duration-200",e2&&"!mr-[300px]"),children:eY.map(t=>(0,s.jsxs)("button",{type:"button",onClick:()=>{let o=e.filter(e=>(X.get(e.path)??"(root)")===t.group).map(e=>({id:e.path}));o.length&&eS.current?.fitView({nodes:o,duration:600,padding:.3,maxZoom:1})},title:`${t.count} files — click to zoom to ${t.group}`,className:"flex items-center gap-1.5 rounded px-1 py-0.5 text-[10px] text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"size-2 shrink-0 rounded-full",style:{backgroundColor:t.color}}),t.group]},t.group))}),(0,s.jsxs)(l.Zk,{position:"top-right",className:(0,L.cn)("!mt-14 flex items-center gap-2 transition-[margin] duration-200",e2&&"!mr-[300px]"),children:[(0,s.jsx)(j.X,{query:ew,onQuery:ej,hits:eB,placeholder:"Find a file…",onPick:e=>{ej(""),ez(e)},onZoomToMatches:()=>{eW?.size&&eS.current?.fitView({nodes:[...eW].map(e=>({id:e})),duration:600,padding:.3})}}),a&&(0,s.jsx)(z.o,{value:ex,onChange:eg,options:["frontend","backend"]}),(0,s.jsxs)("div",{className:"glass flex items-center gap-3 rounded-xl px-3 py-1.5 text-[11px]",children:[(0,s.jsxs)("span",{className:"text-muted-foreground",children:[e.length," files \xb7 ",t.length," imports"]}),e0>0&&(0,s.jsxs)("button",{type:"button",onClick:()=>{eh(e=>!e),ea(null),eu(null)},title:ep?"Show all imports":"Show only files involved in import cycles",className:(0,L.cn)("flex items-center gap-1.5 rounded-md px-1.5 py-0.5 transition-colors",ep?"bg-red-500/15 text-red-200 ring-1 ring-red-400/40":"text-red-300 hover:bg-red-500/10"),children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-5 border-t border-dashed",style:{borderColor:"#ef4444"}}),e0," circular"]}),Q&&(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("button",{type:"button",onClick:eE,title:ef?"Show all files again":"Focus + zoom to the files edited this session",className:(0,L.cn)("flex items-center gap-1.5 rounded-md px-1.5 py-0.5 transition-colors",ef?"bg-teal-500/15 text-teal-200 ring-1 ring-teal-400/40":"text-teal-300 hover:bg-teal-500/10"),children:[(0,s.jsx)(x.A,{className:"size-3"}),K.size," edited"]})})]})]})]}),e2&&(0,s.jsxs)(y.b,{className:"absolute bottom-3 right-3 top-16 z-10 flex w-72 flex-col rounded-2xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,s.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:el?"File":"Edited this session"}),(0,s.jsx)("button",{onClick:e4,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,s.jsx)(g.A,{className:"size-4"})})]}),(0,s.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-3",children:el?(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(b.A,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}),(0,s.jsx)("h2",{className:"break-all text-sm font-semibold leading-tight",children:el.slice(el.lastIndexOf("/")+1)})]}),(0,s.jsx)("div",{className:"mt-0.5 break-all font-mono text-[10px] text-muted-foreground",children:el})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(H=K.get(el))?(0,s.jsxs)("span",{className:"rounded bg-teal-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-teal-300",children:["edited ",H.count,"\xd7"]}):null,q.has(el)&&(0,s.jsx)("span",{className:"rounded bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-amber-300",children:"untested"})]}),(0,s.jsx)("button",{onClick:()=>fetch(`/api/open?path=${encodeURIComponent(el)}`).catch(()=>{}),className:"w-full rounded-md border border-white/10 px-2 py-1.5 text-[11px] text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:"Open in editor"}),(0,s.jsx)(V,{label:"Imports",paths:e1,onPick:ez}),(0,s.jsx)(V,{label:"Imported by",paths:e5,onPick:ez})]}):(0,s.jsx)(k.h,{files:Y.map(e=>({path:e.path,meta:`${e.count}\xd7`})),emptyLabel:"No files edited this session yet."})})]}),eR.active&&eR.step&&(0,s.jsx)(M.d,{steps:eD,index:eR.index,onPrev:eR.prev,onNext:eR.next,onExit:eR.stop,onGoto:eR.goto})]}):(0,s.jsx)("div",{className:"flex h-screen w-full items-center justify-center text-sm text-muted-foreground",children:"Loading graph…"})}function V({label:e,paths:t,onPick:o}){return t.length?(0,s.jsxs)("div",{children:[(0,s.jsxs)("h3",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",children:[e," (",t.length,")"]}),(0,s.jsx)(k.h,{files:t.map(e=>({path:e})),onSelect:o})]}):null}},77260:(e,t,o)=>{"use strict";o.d(t,{MapTabsShell:()=>a});var s=o(95155),n=o(12115),r=o(75514);let l=["ROADMAP","ARCHITECTURE","DATABASE"];function a({initialView:e,roadmap:t,architecture:o,database:i}){let[d,c]=(0,n.useState)(e),[u,p]=(0,n.useState)(()=>new Set([e])),h=(0,n.useCallback)(e=>{c(e),p(t=>t.has(e)?t:new Set(t).add(e));try{let t=new URL(window.location.href);t.searchParams.set("view",e),window.history.replaceState(window.history.state,"",t)}catch{}},[]),f={ROADMAP:t,ARCHITECTURE:o,DATABASE:i};return(0,s.jsx)(r.no.Provider,{value:{views:r.a4,switchTo:h},children:l.map(e=>u.has(e)?(0,s.jsx)("div",{className:d===e?"contents":"hidden",children:f[e]},e):null)})}}},e=>{e.O(0,[2574,3862,5004,277,8500,4888,7424,9887,5957,5697,2059,4607,3908,5520,4853,8441,3794,7358],()=>e(e.s=27950)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{12410:(e,a,s)=>{"use strict";s.d(a,{a2:()=>r,i3:()=>o,xZ:()=>n});let t=["bg-emerald-500/15 text-emerald-300","bg-sky-500/15 text-sky-300","bg-violet-500/15 text-violet-300","bg-amber-500/15 text-amber-200","bg-rose-500/15 text-rose-300","bg-cyan-500/15 text-cyan-300","bg-fuchsia-500/15 text-fuchsia-300","bg-lime-500/15 text-lime-300","bg-orange-500/15 text-orange-300","bg-teal-500/15 text-teal-300","bg-indigo-500/15 text-indigo-300","bg-pink-500/15 text-pink-300"],l=["border-emerald-500/20 bg-emerald-500/[0.04]","border-sky-500/20 bg-sky-500/[0.04]","border-violet-500/20 bg-violet-500/[0.04]","border-amber-500/20 bg-amber-500/[0.04]","border-rose-500/20 bg-rose-500/[0.04]","border-cyan-500/20 bg-cyan-500/[0.04]","border-fuchsia-500/20 bg-fuchsia-500/[0.04]","border-lime-500/20 bg-lime-500/[0.04]","border-orange-500/20 bg-orange-500/[0.04]","border-teal-500/20 bg-teal-500/[0.04]","border-indigo-500/20 bg-indigo-500/[0.04]","border-pink-500/20 bg-pink-500/[0.04]"];function i(e){let a=(e??"").trim().toUpperCase();if(!a)return null;let s=0;for(let e=0;e<a.length;e++)s=31*s+a.charCodeAt(e)>>>0;return s%t.length}function r(e){let a=i(e);return null===a?"bg-white/[0.06] text-muted-foreground":t[a]}function n(e){let a=i(e);return null===a?"border-white/10 bg-white/[0.02]":l[a]}let d=["#34d399","#38bdf8","#a78bfa","#fbbf24","#fb7185","#22d3ee","#e879f9","#a3e635","#fb923c","#2dd4bf","#818cf8","#f472b6"];function o(e){let a=i(e);return null===a?"#9ca3af":d[a]}},18874:(e,a,s)=>{"use strict";s.d(a,{F1:()=>n,e6:()=>i,qA:()=>l,ru:()=>r});let t={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function l(e){return e&&t[e]||"#8a8a8a"}let i={GET:"#7bd389",POST:"#4ea1ff",PUT:"#ffb86b",PATCH:"#ffb86b",DELETE:"#ff3860"},r={read:"#4ea1ff",write:"#ffb86b","read-write":"#c792ea"};function n(e,a){let s=new Set([e]);for(let t of a)t.source===e&&s.add(t.target),t.target===e&&s.add(t.source);return s}},21904:(e,a,s)=>{"use strict";let t;s.d(a,{Landing:()=>ex});var l=s(95155),i=s(12115),r=s(98500),n=s.n(r),d=s(81499),o=s(51128),c=s(86272),m=s(64577),p=s(32133),x=s(65738),b=s(99314),h=s(52965),g=s(6266),u=s(81750),f=s(70299),y=s(22200),w=s(12363),j=s(68319),N=s(84824),v=s(5736),k=s(50981),E=s(34306),z=s(49960),A=s(55737),D=s(83599),I=s(52750),C=s(29450),R=s(36483),B=s(86659),P=s(9751),_=s(91337),L=s(43137),T=s(12410),S=s(18874);s(53255),s(93340),s(86901);let F={contains:{stroke:"#7c7c8a",arrow:!0},relates:{stroke:"#8a8a95",dash:"4 4",arrow:!0},fk:{stroke:"#6b6b6b",arrow:!0},depends:{stroke:"#f5b942",dash:"6 4",arrow:!0},uses:{stroke:"#4ea1ff",dash:"4 4",opacity:.7},usesW:{stroke:"#ffb86b",dash:"4 4",opacity:.7},file:{stroke:"#ffffff",opacity:.16}};function O(e,a,s,t,l,i){let r=F[i];return{id:e,source:a,sourceHandle:s,target:t,targetHandle:l,style:{stroke:r.stroke,strokeWidth:1.5,strokeDasharray:r.dash,opacity:r.opacity??1},markerEnd:r.arrow?{type:g.TG.ArrowClosed,color:r.stroke,width:16,height:16}:void 0}}let M="!h-0 !w-0 !min-w-0 !border-0 !bg-transparent";function G(){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.h7,{type:"target",position:g.yX.Top,id:"tt",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"source",position:g.yX.Top,id:"st",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"target",position:g.yX.Right,id:"tr",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"source",position:g.yX.Right,id:"sr",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"target",position:g.yX.Bottom,id:"tb",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"source",position:g.yX.Bottom,id:"sb",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"target",position:g.yX.Left,id:"tl",className:M,isConnectable:!1}),(0,l.jsx)(u.h7,{type:"source",position:g.yX.Left,id:"sl",className:M,isConnectable:!1})]})}function $({layer:e}){return e?(0,l.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-white/10 px-1.5 py-0 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:["BE"!==e&&(0,l.jsx)(f.A,{className:"size-2.5"}),"FE"!==e&&(0,l.jsx)(y.A,{className:"size-2.5"}),e]}):null}function q({status:e}){let a=L.nR[e];return(0,l.jsxs)("span",{className:(0,_.cn)("flex h-5 shrink-0 items-center gap-0.5 rounded border px-1.5 text-[10px] font-medium",a.className),children:[a.label,(0,l.jsx)(w.A,{className:"size-3 opacity-60"})]})}let K=["border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]","border-[#ff7a45]/50","border-amber-400/35","border-border"],W=["#ff3860","#ff7a45","#fbbf24","#a1a1aa"];function U({priority:e,rank:a}){let s=W[e]??W[3];return(0,l.jsxs)("div",{className:"flex w-5 shrink-0 flex-col items-center gap-1 self-stretch border-r border-white/[0.06] py-1.5",children:[null!=a&&(0,l.jsx)("span",{className:(0,_.cn)("flex size-4 shrink-0 items-center justify-center rounded text-[10px] font-bold leading-none",1===a?"bg-emerald-400 text-black":"bg-white/10 text-muted-foreground"),children:a}),(0,l.jsx)("span",{className:"w-[3px] flex-1 rounded-full",style:{background:s,opacity:.9}})]})}let V=[[/AUTH|SECURIT/,k.A],[/DATA|\bDB\b|SQL|STORE|STORAGE/,E.A],[/\bUI\b|FRONT|VIEW|CANVAS|BOARD|DESIGN/,z.A],[/MCP|\bAPI\b|INTEGRAT/,A.A],[/INTEL|GRAPH|\bCODE\b|SYMBOL|SEARCH/,D.A],[/PLAN|ROADMAP|REVIEW/,I.A]];function X({value:e,label:a,Icon:s,danger:t}){return(0,l.jsxs)("div",{className:"text-center",children:[(0,l.jsx)("div",{className:(0,_.cn)("text-[13px] font-semibold leading-none tracking-tight tabular-nums",t&&"text-rose-300"),children:e}),(0,l.jsxs)("div",{className:"mt-0.5 flex items-center justify-center gap-0.5 text-[8px] font-medium uppercase tracking-wide text-muted-foreground",children:[(0,l.jsx)(s,{className:"size-2.5"}),a]})]})}function H({importsIn:e}){let a=e>=16?5:e>=8?4:e>=4?3:e>=2?2:+(e>=1);return(0,l.jsxs)("span",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground",children:[(0,l.jsx)("span",{className:"flex items-center gap-0.5",children:[0,1,2,3,4].map(e=>(0,l.jsx)("span",{className:"size-1 rounded-full bg-sky-400",style:{opacity:e<a?.7:.18}},e))}),e>=8?"core dependency":e>=3?"shared":e>=1?"leaf":"isolated"]})}let Z="!h-0 !w-0 !min-w-0 !border-0 !bg-transparent",Q={road:function({data:e}){let a="bug"===e.kind,s="next"===e.ring?"border-emerald-400/70 shadow-[0_0_0_2px_rgba(52,211,153,0.35)]":"next2"===e.ring?"border-emerald-400/25":a?"border-rose-400/50 bg-rose-500/[0.05]":e.working?"border-sky-400/60 shadow-[0_0_0_1px_rgba(56,160,255,0.25)]":K[e.priority]??"border-border",t=a?"bg-rose-500/15 text-rose-300":"sub-task"===e.kind?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300";return(0,l.jsxs)("div",{className:(0,_.cn)("relative flex rounded-lg border bg-card text-card-foreground shadow-sm",s),style:{width:e.w},children:[(0,l.jsx)(U,{priority:e.priority,rank:e.rank}),(0,l.jsxs)("div",{className:"min-w-0 flex-1 px-2.5 py-2.5",children:[(0,l.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1",children:[e.working&&(0,l.jsx)("span",{className:"mt-1.5 inline-block size-2 shrink-0 animate-pulse rounded-full bg-sky-400"}),(0,l.jsx)("span",{className:"text-sm font-medium leading-snug",children:e.title})]}),(0,l.jsx)(q,{status:e.status})]}),(0,l.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[(0,l.jsxs)("span",{className:(0,_.cn)("flex shrink-0 items-center gap-1 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",t),children:[a&&(0,l.jsx)(j.A,{className:"size-2.5"}),e.kind]}),(0,l.jsx)($,{layer:e.layer}),e.category&&(0,l.jsx)("span",{className:(0,_.cn)("rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide",(0,T.a2)(e.category)),children:e.category})]}),e.role&&(0,l.jsx)("div",{className:"mt-1.5 line-clamp-1 text-[10px] leading-snug text-muted-foreground",children:e.role}),(e.signals?.bugs||e.signals?.untested||e.signals?.auth)&&(0,l.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-1",children:[e.signals?.bugs?(0,l.jsxs)("span",{className:"flex items-center gap-1 rounded bg-rose-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:[(0,l.jsx)(j.A,{className:"size-2.5"})," ",e.signals.bugs]}):null,e.signals?.untested?(0,l.jsxs)("span",{className:"flex items-center gap-1 rounded bg-amber-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-amber-300",children:[(0,l.jsx)(N.A,{className:"size-2.5"})," ",e.signals.untested]}):null,e.signals?.auth?(0,l.jsxs)("span",{className:"flex items-center gap-1 rounded bg-red-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:[(0,l.jsx)(v.A,{className:"size-2.5"})," auth"]}):null]})]}),(0,l.jsx)(G,{})]})},dbtable:function({data:e}){return(0,l.jsxs)("div",{className:"relative overflow-hidden rounded-xl border bg-[#161618]/95 text-card-foreground shadow-[0_18px_50px_-22px_rgba(0,0,0,0.9)] backdrop-blur",style:{width:e.w,borderColor:`${e.accent}59`},children:[(0,l.jsxs)("div",{className:"flex items-center gap-1.5 rounded-t-[11px] px-3 py-2",style:{background:`${e.accent}14`},children:[(0,l.jsx)("span",{className:"min-w-0 flex-1 font-mono text-[13px] font-semibold tracking-tight",children:e.name}),(0,l.jsx)("span",{className:"shrink-0 rounded-md border px-1.5 py-px font-mono text-[9px] font-semibold uppercase tracking-[0.14em]",style:{background:`${e.accent}1f`,borderColor:`${e.accent}55`,color:e.accent},children:e.diffLabel})]}),(0,l.jsx)("div",{className:"divide-y divide-white/[0.05]",children:e.columns.map(e=>{let a="added"===e.diff?{background:"#7bd38914",boxShadow:"inset 2px 0 0 #7bd389"}:"modified"===e.diff?{background:"#ffb86b14",boxShadow:"inset 2px 0 0 #ffb86b"}:void 0;return(0,l.jsxs)("div",{className:"flex items-center gap-2 px-3 py-[7px] text-[12px]",style:a,children:[e.pk?(0,l.jsx)(d.A,{className:"size-3 shrink-0 text-amber-300/90"}):e.fk?(0,l.jsx)(o.A,{className:"size-3 shrink-0 text-sky-400/80"}):(0,l.jsx)("span",{className:"size-3 shrink-0"}),(0,l.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono",children:e.name}),(0,l.jsx)("span",{className:"ml-auto min-w-0 truncate font-mono text-[11px] text-muted-foreground/80",children:e.type})]},e.name)})}),(0,l.jsx)(G,{})]})},endpoint:function({data:e}){let a=S.e6[e.method]??"#8a8a8a",s="#7bd389";return(0,l.jsxs)("div",{className:(0,_.cn)("relative flex items-center gap-2 rounded-lg border bg-[#161618]/95 px-2.5 py-1.5 text-card-foreground shadow-[0_12px_36px_-18px_rgba(0,0,0,0.9)] backdrop-blur",e.isNew?"border-dashed":"border-white/10"),style:{width:e.w,...e.isNew?{borderColor:`${s}66`,background:`${s}0f`}:{}},children:[(0,l.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] font-bold",style:{background:`${a}22`,color:a},children:e.method}),(0,l.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:e.path}),e.isNew&&(0,l.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[8px] font-semibold uppercase",style:{background:`${s}26`,color:s},children:"new"}),(0,l.jsx)(G,{})]})},arch:function({data:e}){let a=(0,T.i3)(e.domain),s=e.bugs??0;return(0,l.jsxs)("div",{className:"relative rounded-lg border border-border bg-card px-3 py-2.5 text-card-foreground shadow-sm",style:{width:e.w},children:[(0,l.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,l.jsx)("span",{className:"mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg",style:{background:`color-mix(in oklab, ${a} 18%, transparent)`,color:a},children:(0,i.createElement)(function(e){let a=e.toUpperCase();for(let[e,s]of V)if(e.test(a))return s;return C.A}(e.domain),{className:"size-4"})}),(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsx)("div",{className:"text-sm font-medium leading-snug",children:e.title}),(0,l.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[(0,l.jsx)("span",{className:(0,_.cn)("rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide",(0,T.a2)(e.domain)),children:e.domain}),(0,l.jsx)($,{layer:e.layer})]})]}),(0,l.jsx)(q,{status:e.status})]}),e.role&&(0,l.jsx)("div",{className:"mt-2 line-clamp-1 text-[10.5px] leading-snug text-muted-foreground",children:e.role}),(0,l.jsxs)("div",{className:"mt-2.5 grid grid-cols-4 gap-1 border-t border-white/[0.07] pt-2",children:[(0,l.jsx)(X,{value:e.files??0,label:"files",Icon:R.A}),(0,l.jsx)(X,{value:e.in??"—",label:"in",Icon:B.A}),(0,l.jsx)(X,{value:e.out??"—",label:"out",Icon:P.A}),(0,l.jsx)(X,{value:s,label:"bug",Icon:j.A,danger:s>0})]}),null!=e.in&&(0,l.jsx)("div",{className:"mt-2",children:(0,l.jsx)(H,{importsIn:e.in})}),(0,l.jsx)(G,{})]})},file:function({data:e}){let a=5+.5*Math.min(e.inDegree,26),s=2*!!e.layer,t="FE"===e.layer?"#5AC8FA":"BE"===e.layer?"#3ECF8E":void 0;return(0,l.jsxs)("div",{className:"relative flex flex-col items-center",children:[(0,l.jsx)(u.h7,{type:"target",position:g.yX.Top,id:"tt",isConnectable:!1,className:Z,style:{top:a+s,left:"50%"}}),(0,l.jsx)("span",{"aria-hidden":!0,className:"rounded-full",style:{padding:s,background:t,boxShadow:e.untested?"0 0 0 2px rgba(251,191,36,0.65)":"none"},children:(0,l.jsx)("span",{"aria-hidden":!0,className:"block rounded-full",style:{width:2*a,height:2*a,backgroundColor:e.dirColor}})}),(0,l.jsx)("span",{className:"pointer-events-none mt-1 max-w-44 truncate text-[10px] leading-tight text-foreground/75",children:e.label}),(0,l.jsx)(u.h7,{type:"source",position:g.yX.Bottom,id:"sb",isConnectable:!1,className:Z,style:{top:a+s,bottom:"auto",left:"50%"}})]})},lane:function({data:e}){return(0,l.jsx)("div",{className:(0,_.cn)("pointer-events-none rounded-2xl border",e.colored?(0,T.xZ)(e.label):"border-white/[0.08] bg-white/[0.015]"),style:{width:e.w,height:e.h},children:(0,l.jsxs)("div",{className:"flex items-baseline gap-2 px-3 py-1",children:[(0,l.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:e.label}),null!=e.count&&(0,l.jsx)("span",{className:"text-[10px] tabular-nums text-muted-foreground/50",children:e.count})]})})}};function Y({label:e,height:a,nodes:s,edges:t}){return(0,l.jsxs)("div",{className:"bm-window glass",children:[(0,l.jsxs)("div",{className:"bm-tabs",children:[(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"#ff7a45",boxShadow:"0 0 7px rgba(255,122,69,.7)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"w-mono ml-3 text-[0.72rem] w-muted",children:e}),(0,l.jsx)("span",{className:"w-mono ml-auto hidden text-[0.66rem] text-muted-foreground/70 sm:block",children:"drag the cards →"})]}),(0,l.jsx)("div",{className:"bm-rf",style:{height:a},children:(0,l.jsx)(u.Gc,{defaultNodes:s,defaultEdges:t,nodeTypes:Q,colorMode:"dark",fitView:!0,fitViewOptions:{padding:.06},minZoom:.4,maxZoom:1.6,nodesConnectable:!1,elementsSelectable:!1,nodesFocusable:!1,edgesFocusable:!1,zoomOnScroll:!1,panOnScroll:!1,preventScrolling:!1,zoomOnDoubleClick:!1,proOptions:{hideAttribution:!0},children:(0,l.jsx)(u.VS,{variant:u._5.Dots,gap:20,size:1,color:"rgba(255,255,255,0.10)"})})})]})}let J=[O("e1","magic","sb","verify","tt","contains"),O("e2","rate","sb","audit","tt","contains"),O("e3","billing","sl","magic","tr","depends")],ee=[{id:"users",type:"dbtable",position:{x:0,y:40},data:{w:300,name:"users",accent:"#ffb86b",diffLabel:"modify",columns:[{name:"id",type:"uuid",pk:!0},{name:"email",type:"text"},{name:"last_login_at",type:"timestamp",diff:"modified"},{name:"created_at",type:"timestamp"}]}},{id:"magic",type:"dbtable",position:{x:380,y:16},data:{w:320,name:"magic_links",accent:"#7bd389",diffLabel:"new",columns:[{name:"id",type:"uuid",pk:!0,diff:"added"},{name:"token_hash",type:"text",diff:"added"},{name:"user_id",type:"→ users",fk:!0,diff:"added"},{name:"expires_at",type:"timestamp",diff:"added"}]}},{id:"sessions",type:"dbtable",position:{x:790,y:52},data:{w:300,name:"sessions",accent:"#7bd389",diffLabel:"new",columns:[{name:"id",type:"uuid",pk:!0,diff:"added"},{name:"user_id",type:"→ users",fk:!0,diff:"added"},{name:"expires_at",type:"timestamp",diff:"added"}]}},{id:"ep-me",type:"endpoint",position:{x:16,y:252},data:{w:268,method:"GET",path:"/api/users/me"}},{id:"ep-login",type:"endpoint",position:{x:396,y:236},data:{w:298,method:"POST",path:"/api/auth/login",isNew:!0}},{id:"ep-del",type:"endpoint",position:{x:806,y:256},data:{w:268,method:"DELETE",path:"/api/auth/session"}}],ea=[O("f1","magic","sl","users","tr","fk"),O("f2","sessions","sl","users","tr","fk"),O("u1","ep-me","st","users","tb","uses"),O("u2","ep-login","st","magic","tb","usesW"),O("u3","ep-del","st","sessions","tb","usesW")],es=[O("a1","daemon","sb","codegraph","tt","contains"),O("a2","mcp","sr","plan","tl","relates"),O("a3","plan","sl","draft","tb","relates"),O("a4","dbcanvas","sr","draft","tl","relates"),O("a5","daemon","sl","prisma","tr","relates"),O("a6","mapcanvas","sr","prisma","tl","relates")],et={lib:{color:"#7bd389",cx:220,cy:170},graph:{color:"#c792ea",cx:720,cy:150},plan:{color:"#7dd3fc",cx:1200,cy:180},api:{color:"#ffb86b",cx:220,cy:580},intel:{color:"#2dd4bf",cx:720,cy:560},notes:{color:"#ff9ec7",cx:1200,cy:580},bin:{color:"#ff8a5b",cx:220,cy:980},drizzle:{color:"#5eead4",cx:720,cy:980},tests:{color:"#9aa6b2",cx:1200,cy:980}},el=(t={},[{id:"db",label:"lib/db.ts",dir:"lib",deg:18,layer:"BE"},{id:"utils",label:"lib/utils.ts",dir:"lib",deg:12},{id:"ws",label:"lib/workspaces.ts",dir:"lib",deg:8,layer:"BE"},{id:"consts",label:"lib/constants.ts",dir:"lib",deg:6},{id:"layer",label:"lib/layer.ts",dir:"lib",deg:5},{id:"mut",label:"lib/mutations.ts",dir:"lib",deg:3,layer:"BE",untested:!0},{id:"catcolor",label:"lib/category-color.ts",dir:"lib",deg:3},{id:"ncard",label:"node-card.tsx",dir:"graph",deg:7,layer:"FE"},{id:"handles",label:"handles.tsx",dir:"graph",deg:6,layer:"FE"},{id:"dbtable",label:"db-table-node.tsx",dir:"graph",deg:3,layer:"FE"},{id:"mapc",label:"map-client.tsx",dir:"graph",deg:2,layer:"FE"},{id:"dbmapc",label:"db-map-client.tsx",dir:"graph",deg:2,layer:"FE"},{id:"epnode",label:"endpoint-node.tsx",dir:"graph",deg:2,layer:"FE"},{id:"dsidebar",label:"detail-sidebar.tsx",dir:"graph",deg:2,layer:"FE"},{id:"mdview",label:"markdown-view.tsx",dir:"plan",deg:4,layer:"FE"},{id:"planws",label:"plan-workspace.tsx",dir:"plan",deg:2,layer:"FE"},{id:"annop",label:"annotation-panel.tsx",dir:"plan",deg:2,layer:"FE"},{id:"planbar",label:"plan-bar.tsx",dir:"plan",deg:2,layer:"FE"},{id:"planhist",label:"plan-history-view.tsx",dir:"plan",deg:1,layer:"FE"},{id:"ingR",label:"api/ingest/route.ts",dir:"api",deg:1,layer:"BE"},{id:"draftR",label:"api/draft/route.ts",dir:"api",deg:1,layer:"BE"},{id:"planR",label:"api/plan/route.ts",dir:"api",deg:1,layer:"BE"},{id:"streamR",label:"api/stream/route.ts",dir:"api",deg:1,layer:"BE"},{id:"nodesR",label:"api/nodes/route.ts",dir:"api",deg:1,layer:"BE"},{id:"baR",label:"api/board-annotations/route.ts",dir:"api",deg:1,layer:"BE"},{id:"cgraph",label:"intel/code-graph.ts",dir:"intel",deg:6,layer:"BE"},{id:"iingest",label:"intel/ingest.ts",dir:"intel",deg:3,layer:"BE"},{id:"pipe",label:"intel/pipeline.ts",dir:"intel",deg:2,layer:"BE"},{id:"merge",label:"intel/merge.ts",dir:"intel",deg:2,layer:"BE"},{id:"watch",label:"intel/watch-inline.ts",dir:"intel",deg:2,layer:"BE",untested:!0},{id:"iconfig",label:"intel/config.ts",dir:"intel",deg:2,layer:"BE"},{id:"notes",label:"lib/notes.ts",dir:"notes",deg:3,layer:"BE"},{id:"neditor",label:"note-editor.tsx",dir:"notes",deg:2,layer:"FE"},{id:"ndrawer",label:"notes-drawer.tsx",dir:"notes",deg:2,layer:"FE"},{id:"nmark",label:"note-markdown.ts",dir:"notes",deg:2},{id:"mcp",label:"bin/mcp.ts",dir:"bin",deg:1,layer:"BE"},{id:"beacon",label:"bin/beacon.ts",dir:"bin",deg:1,layer:"BE"},{id:"hook",label:"bin/hook.ts",dir:"bin",deg:1,layer:"BE"},{id:"stophook",label:"bin/stop-hook.ts",dir:"bin",deg:1,layer:"BE"},{id:"doctor",label:"bin/doctor.ts",dir:"bin",deg:1,layer:"BE"},{id:"schema",label:"drizzle/schema.ts",dir:"drizzle",deg:3,layer:"BE"},{id:"provision",label:"drizzle/provision.ts",dir:"drizzle",deg:2,layer:"BE"},{id:"tmapops",label:"map-ops.test.ts",dir:"tests",deg:0},{id:"tingest",label:"ingest.test.ts",dir:"tests",deg:0},{id:"tdbdiff",label:"db-diff.test.ts",dir:"tests",deg:0},{id:"trisk",label:"risk-badges.test.ts",dir:"tests",deg:0}].map(e=>{let a=t[e.dir]=(t[e.dir]??-1)+1,s=et[e.dir],l=2.399963*a,i=0===a?0:52+20*a;return{id:e.id,type:"file",position:{x:Math.round(s.cx+Math.cos(l)*i),y:Math.round(s.cy+Math.sin(l)*i)},data:{label:e.label,inDegree:e.deg,dirColor:s.color,layer:e.layer,untested:e.untested}}})),ei=[["mut","db"],["mut","utils"],["ws","utils"],["layer","utils"],["db","ws"],["db","schema"],["ncard","handles"],["ncard","consts"],["ncard","layer"],["ncard","catcolor"],["mapc","ncard"],["mapc","utils"],["dbmapc","dbtable"],["dbmapc","db"],["dbtable","handles"],["dbtable","consts"],["epnode","handles"],["dsidebar","ncard"],["planws","ncard"],["planws","mdview"],["planws","utils"],["annop","mdview"],["planbar","utils"],["planhist","mdview"],["ndrawer","neditor"],["ndrawer","notes"],["neditor","nmark"],["notes","db"],["ingR","db"],["ingR","ws"],["draftR","db"],["planR","ws"],["streamR","ws"],["nodesR","db"],["baR","db"],["iingest","db"],["iingest","cgraph"],["pipe","cgraph"],["merge","cgraph"],["watch","cgraph"],["cgraph","utils"],["iconfig","utils"],["mcp","db"],["mcp","ws"],["beacon","ws"],["hook","ws"],["stophook","ws"],["doctor","ws"],["provision","schema"],["tmapops","db"],["tingest","iingest"],["tdbdiff","db"],["trisk","ncard"]].map(([e,a],s)=>O(`g${s}`,e,"sb",a,"tt","file")),er=[{key:"Roadmap",route:"/map",title:"Steer the agent's work order",body:"Features, sub-tasks and dependencies as a graph — priority on the border, a layer stripe for frontend or backend, and the work-on-next ring marking the agent's next move.",board:(0,l.jsx)(Y,{label:"/map \xb7 roadmap",height:600,nodes:[{id:"lane-a",type:"lane",position:{x:0,y:0},data:{w:360,h:580,label:"auth",count:3,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"lane-b",type:"lane",position:{x:390,y:0},data:{w:360,h:580,label:"billing",count:3,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"lane-c",type:"lane",position:{x:780,y:0},data:{w:360,h:580,label:"search",count:3,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"magic",type:"road",position:{x:30,y:54},zIndex:1,data:{w:300,title:"Magic-link sign-in",role:"Email a one-time link, no passwords",kind:"feature",category:"auth",status:"IN_PROGRESS",priority:1,layer:"FE",ring:"next",rank:1,working:!0}},{id:"verify",type:"road",position:{x:52,y:250},zIndex:1,data:{w:268,title:"Issue + verify token",kind:"sub-task",status:"PENDING",priority:2,layer:"FE"}},{id:"pwreset",type:"road",position:{x:30,y:392},zIndex:1,data:{w:300,title:"Password reset",role:"Reuse the magic-link issuer",kind:"feature",category:"auth",status:"DONE",priority:2,layer:"FE"}},{id:"billing",type:"road",position:{x:420,y:54},zIndex:1,data:{w:300,title:"Billing portal",role:"Stripe customer portal + invoices",kind:"feature",category:"billing",status:"PENDING",priority:0,layer:"FS",signals:{untested:2,auth:!0}}},{id:"webhook",type:"road",position:{x:442,y:286},zIndex:1,data:{w:288,title:"Webhook handler",kind:"feature",category:"billing",status:"PENDING",priority:2,layer:"BE",ring:"next2",rank:2}},{id:"invoices",type:"road",position:{x:420,y:432},zIndex:1,data:{w:300,title:"Invoice PDF export",kind:"feature",category:"billing",status:"DONE",priority:2,layer:"BE"}},{id:"rate",type:"road",position:{x:810,y:54},zIndex:1,data:{w:300,title:"Rate limiter",role:"Token bucket on the public API",kind:"feature",category:"search",status:"PENDING",priority:2,layer:"BE"}},{id:"audit",type:"road",position:{x:832,y:250},zIndex:1,data:{w:268,title:"Write audit log rows",kind:"sub-task",status:"DONE",priority:3,layer:"BE"}},{id:"bug",type:"road",position:{x:810,y:392},zIndex:1,data:{w:300,title:"Token leaks into request logs",kind:"bug",category:"search",status:"PENDING",priority:0,layer:"BE",signals:{auth:!0}}}],edges:J})},{key:"Database",route:"/db",title:"Schema as a draft, diffed",body:"Proposed tables and endpoints diffed against your live schema — new in green, changed in amber. Foreign keys and endpoint→table usage draw themselves.",board:(0,l.jsx)(Y,{label:"/db \xb7 plan vs. repo",height:520,nodes:ee,edges:ea})},{key:"Architecture",route:"/map",title:"The subsystems, mapped",body:"Real architecture components grouped into domain regions, each with the role it plays — the high-level map the agent keeps current as the codebase grows.",board:(0,l.jsx)(Y,{label:"/map \xb7 architecture",height:760,nodes:[{id:"r-ui",type:"lane",position:{x:0,y:0},data:{w:348,h:548,label:"UI",count:3,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"r-data",type:"lane",position:{x:392,y:0},data:{w:348,h:548,label:"DATA",count:3,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"r-intel",type:"lane",position:{x:784,y:0},data:{w:348,h:372,label:"INTEL",count:2,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"r-plan",type:"lane",position:{x:784,y:404},data:{w:348,h:196,label:"PLAN",count:1,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"r-mcp",type:"lane",position:{x:392,y:580},data:{w:348,h:196,label:"MCP",count:1,colored:!0},draggable:!1,selectable:!1,zIndex:0},{id:"planui",type:"arch",position:{x:20,y:44},zIndex:1,data:{w:308,title:"Plan UI (/plan)",domain:"UI",status:"KEEP",layer:"FE",role:"Split-screen review page: annotation panel + roadmap / database canvases, tabbed.",files:5,in:0,out:6}},{id:"mapcanvas",type:"arch",position:{x:20,y:210},zIndex:1,data:{w:308,title:"Roadmap canvas (/map)",domain:"UI",status:"KEEP",layer:"FE",role:"React Flow roadmap / architecture canvases — node cards, detail sidebar, edge editing.",files:6,in:1,out:9}},{id:"dbcanvas",type:"arch",position:{x:20,y:376},zIndex:1,data:{w:308,title:"DB design canvas",domain:"UI",status:"KEEP",layer:"FE",role:"Tables + endpoints board with a distinct draft layer and approve / discard actions.",files:6,in:0,out:7}},{id:"ws",type:"arch",position:{x:412,y:44},zIndex:1,data:{w:308,title:"Workspaces (multi-repo)",domain:"DATA",status:"KEEP",layer:"BE",role:"Per-repo registry + data dir + sqlite, the active workspace, request-pin, db self-heal.",files:1,in:12,out:4}},{id:"prisma",type:"arch",position:{x:412,y:210},zIndex:1,data:{w:308,title:"Drizzle data layer",domain:"DATA",status:"KEEP",layer:"BE",role:"Workspace-resolving libSQL client plus node/edge mutations and the roadmap read-model.",files:6,in:18,out:5}},{id:"draft",type:"arch",position:{x:412,y:376},zIndex:1,data:{w:308,title:"Draft store",domain:"DATA",status:"KEEP",layer:"BE",role:"The proposed-schema draft layer; approve → promote into the real DB tables.",files:4,in:3,out:4}},{id:"daemon",type:"arch",position:{x:808,y:44},zIndex:1,data:{w:308,title:"Code-intelligence daemon",domain:"INTEL",status:"KEEP",layer:"BE",bugs:1,role:"Per-workspace watchers → polyglot, multi-root, incremental code-graph build → ingest.",files:6,in:2,out:9}},{id:"codegraph",type:"arch",position:{x:808,y:210},zIndex:1,data:{w:308,title:"Code graph & files canvas",domain:"INTEL",status:"KEEP",layer:"BE",role:"Polyglot import-edge index with blast-radius; the hub/lang-aware files canvas.",files:6,in:4,out:6}},{id:"plan",type:"arch",position:{x:808,y:448},zIndex:1,data:{w:308,title:"Plan review loop",domain:"PLAN",status:"KEEP",layer:"BE",role:"Receives proposed plans, blocks for the verdict, bundles annotations + board edits.",files:6,in:1,out:6}},{id:"mcp",type:"arch",position:{x:412,y:624},zIndex:1,data:{w:308,title:"MCP server",domain:"MCP",status:"KEEP",layer:"BE",role:"stdio server exposing beacon_propose_plan / context_for_feature; pins every request.",files:1,in:0,out:9}}],edges:es})},{key:"Files",route:"code-graph",title:"See your codebase, live",body:"A polyglot import graph, Obsidian-style: every file a dot sized by how many files import it, colored by directory, with a layer ring and an amber ring on anything no test imports.",board:(0,l.jsx)(Y,{label:"code-graph \xb7 46 files \xb7 52 imports",height:720,nodes:el,edges:ei})}];function en(){let[e,a]=(0,i.useState)("Roadmap"),s=er.find(a=>a.key===e);return(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"mb-9 flex flex-wrap items-center justify-center gap-2",children:er.map(s=>(0,l.jsx)("button",{className:"tour-tab","data-active":e===s.key,onClick:()=>a(s.key),children:s.key},s.key))}),(0,l.jsx)("div",{className:"tour-fade mx-auto w-full max-w-[1360px]",children:s.board},`${s.key}-board`),(0,l.jsxs)("div",{className:"tour-fade mx-auto mt-6 max-w-2xl text-center",children:[(0,l.jsxs)("p",{className:"text-[1.02rem] font-semibold tracking-tight",children:[(0,l.jsx)("span",{className:"w-mono text-[0.9rem] w-signal",children:s.route}),(0,l.jsx)("span",{className:"mx-2 w-muted",children:"\xb7"}),s.title]}),(0,l.jsx)("p",{className:"w-muted mt-1.5 text-[0.92rem] leading-relaxed",children:s.body})]},s.key)]})}let ed=s(39593).EO;function eo({d:e,color:a}){return(0,l.jsx)("svg",{width:15,height:15,viewBox:"0 0 24 24",fill:a??"currentColor","aria-hidden":!0,children:(0,l.jsx)("path",{d:e})})}let ec=[{n:"01",title:"Propose",body:(0,l.jsxs)(l.Fragment,{children:["Ask the session in your terminal to plan a feature. It calls"," ",(0,l.jsx)("span",{className:"w-mono text-foreground",children:"beacon_propose_plan"})," and blocks until you decide. No fire-and-forget."]}),code:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"w-signal",children:"›"})," plan: magic-link sign-in"]})},{n:"02",title:"Review",body:"The plan renders as feature nodes, tables, and endpoints. Select any passage to annotate it, mark it for deletion, or edit the boards directly.",code:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"text-foreground",children:"/plan"})," \xb7 2 features \xb7 1 table"]})},{n:"03",title:"Verdict",body:"Approve persists the drafts. Feedback sends your notes back and the agent re-plans. Discard throws it away. Every plan is archived either way.",code:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{style:{color:"#6ee7b7"},children:"✓ approved"})," \xb7 drafts persisted"]})}],em=[{label:"Reuse first",body:"Beacon blocks duplicate features. Check the map before you create."},{label:"Design data first",body:(0,l.jsxs)(l.Fragment,{children:["Tables and endpoints before code. Review the schema as a draft on"," ",(0,l.jsx)("span",{className:"text-foreground",children:"/db"}),"."]})},{label:"Close every loop",body:"Register finished work so the map stays accurate next session."}];function ep(){let e=(0,i.useRef)(null),[a,s]=(0,i.useState)(1);return(0,i.useEffect)(()=>{let a=e.current;if(!a)return;let t=new ResizeObserver(()=>s(Math.min(1,a.clientWidth/620)));return t.observe(a),()=>t.disconnect()},[]),(0,l.jsxs)("div",{className:"bm-window glass",children:[(0,l.jsxs)("div",{className:"bm-tabs",children:[(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"#ff7a45",boxShadow:"0 0 7px rgba(255,122,69,.7)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"bm-tab active ml-2",children:"Roadmap"}),(0,l.jsx)("span",{className:"bm-tab",children:"Database"}),(0,l.jsx)("span",{className:"w-mono ml-auto hidden text-[0.66rem] w-muted min-[400px]:block",children:"/plan \xb7 review"})]}),(0,l.jsx)("div",{className:"bm-canvas",ref:e,style:{aspectRatio:"620 / 392"},children:(0,l.jsxs)("div",{className:"bm-stage",style:{width:620,height:392,transform:`scale(${a})`},children:[(0,l.jsxs)("svg",{className:"bm-edges",width:620,height:392,viewBox:"0 0 620 392","aria-hidden":!0,children:[(0,l.jsx)("path",{className:"bm-edge",style:{animationDelay:"1s"},pathLength:1,d:"M 135 111 C 135 148 165 168 165 210"}),(0,l.jsx)("path",{className:"bm-edge",style:{animationDelay:"1.15s"},pathLength:1,d:"M 244 78 C 300 78 320 150 374 150"}),(0,l.jsx)("path",{className:"bm-edge bm-edge-tail",style:{animationDelay:"1.7s"},pathLength:1,d:"M 596 205 C 596 230 576 242 558 252"})]}),(0,l.jsxs)("div",{className:"bm-node bm-node-draft",style:{left:26,top:38,width:218,animationDelay:".45s"},children:[(0,l.jsx)("div",{className:"bm-title",children:"Magic-link sign-in"}),(0,l.jsx)("div",{className:"bm-role",children:"Email a one-time link, no passwords"}),(0,l.jsxs)("div",{className:"bm-chiprow",children:[(0,l.jsx)("span",{className:"chip chip-sky",children:"feature"}),(0,l.jsx)("span",{className:"chip chip-violet",children:"auth"}),(0,l.jsx)("span",{className:"chip chip-amber",style:{marginLeft:"auto"},children:"Pending"})]})]}),(0,l.jsxs)("div",{className:"bm-node bm-node-draft",style:{left:70,top:210,width:190,animationDelay:".75s"},children:[(0,l.jsx)("div",{className:"bm-title",children:"Issue + verify token"}),(0,l.jsxs)("div",{className:"bm-chiprow",children:[(0,l.jsx)("span",{className:"chip chip-zinc",children:"sub-task"}),(0,l.jsx)("span",{className:"chip chip-amber",style:{marginLeft:"auto"},children:"Pending"})]})]}),(0,l.jsxs)("div",{className:"bm-table",style:{left:374,top:96,width:222,animationDelay:".6s"},children:[(0,l.jsxs)("div",{className:"bm-table-head",children:[(0,l.jsx)("span",{children:"auth_tokens"}),(0,l.jsx)("span",{className:"chip chip-green",children:"new"})]}),(0,l.jsxs)("div",{className:"bm-trow",children:[(0,l.jsx)(d.A,{size:9,style:{color:"#fde68a"}}),(0,l.jsx)("span",{children:"id"}),(0,l.jsx)("span",{className:"t",children:"uuid"})]}),(0,l.jsxs)("div",{className:"bm-trow",children:[(0,l.jsx)("span",{style:{width:9}}),(0,l.jsx)("span",{children:"token_hash"}),(0,l.jsx)("span",{className:"t",children:"text"})]}),(0,l.jsxs)("div",{className:"bm-trow",children:[(0,l.jsx)(o.A,{size:9,style:{color:"#7dd3fc"}}),(0,l.jsx)("span",{children:"user_id"}),(0,l.jsx)("span",{className:"t",children:"→ users"})]}),(0,l.jsxs)("div",{className:"bm-trow",children:[(0,l.jsx)("span",{style:{width:9}}),(0,l.jsx)("span",{children:"expires_at"}),(0,l.jsx)("span",{className:"t",children:"timestamp"})]})]}),(0,l.jsx)("span",{className:"bm-dot",style:{left:135,top:111,animationDelay:"1s"}}),(0,l.jsx)("span",{className:"bm-dot",style:{left:165,top:210,animationDelay:"1.3s"}}),(0,l.jsx)("span",{className:"bm-dot",style:{left:244,top:78,animationDelay:"1.15s"}}),(0,l.jsx)("span",{className:"bm-dot",style:{left:374,top:150,animationDelay:"1.45s"}}),(0,l.jsx)("span",{className:"bm-pin",style:{left:596,top:201,animationDelay:"1.55s"},children:"1"}),(0,l.jsxs)("div",{className:"bm-bubble",style:{left:356,top:252,width:226,animationDelay:"1.85s"},children:[(0,l.jsx)("div",{className:"lab",children:"annotation \xb7 you"}),(0,l.jsx)("div",{className:"txt",children:"Expire links after 15 min, not 24 h."})]}),(0,l.jsxs)("div",{className:"bm-bar",style:{animationDelay:"2.15s"},children:[(0,l.jsx)(c.A,{size:11,style:{color:"#6ee7b7"}}),(0,l.jsx)("span",{className:"ready",children:"plan ready \xb7 waiting for your verdict"}),(0,l.jsxs)("span",{className:"bm-btn bm-btn-approve",children:[(0,l.jsx)(m.A,{size:10})," Approve"]}),(0,l.jsxs)("span",{className:"bm-btn bm-btn-ghost",children:[(0,l.jsx)(p.A,{size:10})," Feedback"]}),(0,l.jsxs)("span",{className:"bm-btn bm-btn-ghost",children:[(0,l.jsx)(x.A,{size:10})," Discard"]})]})]})})]})}function ex(){let e=(0,i.useRef)(null),[a,s]=(0,i.useState)(null);(0,i.useEffect)(()=>{let a=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add("in"),a.unobserve(e.target))})},{threshold:.12});return e.current?.querySelectorAll(".w-reveal").forEach(e=>a.observe(e)),()=>a.disconnect()},[]);let t=e=>(0,l.jsx)("button",{onClick:()=>{navigator.clipboard?.writeText(ed),s(e),setTimeout(()=>s(null),1600)},className:"glass-soft w-hover grid h-8 w-8 shrink-0 place-items-center rounded-md","aria-label":"Copy install command",children:a===e?(0,l.jsx)(m.A,{size:13,style:{color:"#ff7a45"}}):(0,l.jsx)(b.A,{size:13,className:"w-muted"})});return(0,l.jsxs)("div",{className:"welcome",ref:e,children:[(0,l.jsx)("div",{className:"welcome-bg","aria-hidden":!0}),(0,l.jsx)("header",{className:"fixed inset-x-0 top-0 z-50",children:(0,l.jsx)("div",{className:"mx-auto max-w-6xl px-6",children:(0,l.jsxs)("div",{className:"w-load mt-4 glass flex items-center justify-between rounded-full py-2.5 pl-5 pr-3",style:{animationDelay:".05s"},children:[(0,l.jsxs)(n(),{href:"#top",className:"flex items-center gap-2.5",children:[(0,l.jsx)(h._,{size:20,className:"text-foreground"}),(0,l.jsx)("span",{className:"font-semibold tracking-tight",children:"Beacon"})]}),(0,l.jsxs)("nav",{className:"flex items-center gap-4 text-sm w-muted sm:gap-6",children:[(0,l.jsx)("a",{href:"#how",className:"transition-colors hover:text-foreground",children:"The loop"}),(0,l.jsx)("a",{href:"#quickstart",className:"hidden transition-colors hover:text-foreground sm:block",children:"Quickstart"}),(0,l.jsx)("a",{href:"/docs",className:"transition-colors hover:text-foreground",children:"Docs"}),(0,l.jsxs)("a",{href:"https://github.com/wenzorithelly/beacon",target:"_blank",rel:"noreferrer",className:"glass-soft w-hover inline-flex items-center gap-2 rounded-full py-1.5 pl-3 pr-3.5 text-foreground","aria-label":"Beacon on GitHub",children:[(0,l.jsx)(eo,{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"}),(0,l.jsx)("span",{className:"hidden sm:inline",children:"GitHub"})]})]})]})})}),(0,l.jsx)("span",{id:"top"}),(0,l.jsxs)("section",{className:"px-6 pb-16 pt-20 md:pt-24",children:[(0,l.jsxs)("div",{className:"mx-auto grid max-w-6xl items-center gap-12 lg:grid-cols-[1fr_1.1fr]",children:[(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"w-load glass-soft mb-6 inline-flex items-center gap-2 rounded-full px-3.5 py-1.5",style:{animationDelay:".12s"},children:[(0,l.jsx)("span",{className:"w-live h-1.5 w-1.5 rounded-full",style:{background:"#ff7a45",boxShadow:"0 0 8px #ff7a45"}}),(0,l.jsx)("span",{className:"w-mono w-eyebrow w-muted",children:"See your codebase \xb7 steer your agent"})]}),(0,l.jsxs)("h1",{className:"w-load font-semibold text-[clamp(2.2rem,4.6vw,3.4rem)]",style:{letterSpacing:"-0.025em",lineHeight:1.06,animationDelay:".18s"},children:["Give your coding agent ",(0,l.jsx)("span",{className:"w-signal",children:"eyes"})," and hands."]}),(0,l.jsx)("p",{className:"w-load w-muted mt-5 max-w-md text-[1.02rem] leading-relaxed",style:{animationDelay:".26s"},children:"The session in your terminal is the brain. Beacon is where its plans become visible: features, tables, and endpoints on a canvas you annotate, edit, and approve with one click."}),(0,l.jsxs)("div",{className:"w-load mt-8",style:{animationDelay:".34s"},children:[(0,l.jsxs)("div",{className:"glass flex max-w-lg items-center gap-3 rounded-lg py-2.5 pl-4 pr-2",children:[(0,l.jsxs)("code",{className:"w-mono w-scrollbar-none min-w-0 flex-1 overflow-x-auto whitespace-nowrap text-[0.85rem]",children:[(0,l.jsx)("span",{className:"w-signal select-none",children:"$"}),(0,l.jsx)("span",{className:"ml-2",children:ed}),(0,l.jsx)("span",{className:"w-caret ml-1 inline-block h-3.5 w-1.5 align-middle",style:{background:"#ff7a45"}})]}),t("hero")]}),(0,l.jsxs)("p",{className:"w-mono w-muted mt-3 text-[0.78rem]",children:["then run ",(0,l.jsx)("span",{className:"text-foreground",children:"beacon"})," inside any repo"]})]}),(0,l.jsxs)("div",{className:"w-load mt-9 flex flex-wrap items-center gap-x-5 gap-y-2",style:{animationDelay:".42s"},children:[(0,l.jsx)("span",{className:"w-mono w-eyebrow w-muted",children:"Works with"}),(0,l.jsxs)("span",{className:"flex items-center gap-2 text-sm text-foreground/90",children:[(0,l.jsx)(eo,{d:"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z",color:"#D97757"})," Claude Code"]}),(0,l.jsxs)("span",{className:"flex items-center gap-2 text-sm text-foreground/90",children:[(0,l.jsx)(eo,{d:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"})," Codex"]})]})]}),(0,l.jsx)("div",{className:"w-load min-w-0",style:{animationDelay:".3s"},children:(0,l.jsx)(ep,{})})]}),(0,l.jsxs)("a",{href:"#how",className:"w-load mx-auto mt-12 flex w-fit flex-col items-center gap-2 w-muted transition-colors hover:text-foreground md:mt-20",style:{animationDelay:".6s"},children:[(0,l.jsx)("span",{className:"w-mono w-eyebrow",children:"The loop"}),(0,l.jsx)("svg",{className:"w-cue",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,l.jsx)("path",{d:"m6 9 6 6 6-6"})})]})]}),(0,l.jsx)("section",{id:"how",className:"px-6 py-16 md:py-24",children:(0,l.jsxs)("div",{className:"mx-auto max-w-5xl",children:[(0,l.jsxs)("div",{className:"w-reveal mb-14 text-center",children:[(0,l.jsx)("p",{className:"w-mono w-eyebrow w-signal mb-4",children:"The loop"}),(0,l.jsx)("h2",{className:"text-[clamp(1.9rem,4vw,2.75rem)] font-semibold tracking-tight",children:"Propose. Review. Verdict. Repeat."}),(0,l.jsx)("div",{className:"w-accent-line mx-auto mt-6 h-px w-40"})]}),(0,l.jsx)("div",{className:"grid gap-10 md:grid-cols-3",children:ec.map(e=>(0,l.jsxs)("div",{className:"loop-card w-reveal glass w-hover rounded-lg p-6",children:[(0,l.jsx)("p",{className:"w-mono w-eyebrow w-signal mb-3",children:e.n}),(0,l.jsx)("h3",{className:"mb-2 font-semibold",children:e.title}),(0,l.jsx)("p",{className:"w-muted mb-4 text-[0.92rem] leading-relaxed",children:e.body}),(0,l.jsx)("code",{className:"w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]",children:e.code})]},e.n))}),(0,l.jsxs)("p",{className:"w-reveal w-mono w-muted mt-10 text-center text-[0.78rem]",children:["feedback sends the agent back to ",(0,l.jsx)("span",{className:"w-signal",children:"01"})," \xb7 approval persists the drafts"]})]})}),(0,l.jsx)("section",{className:"px-6 py-16 md:py-20",children:(0,l.jsxs)("div",{className:"mx-auto max-w-[88rem]",children:[(0,l.jsxs)("div",{className:"w-reveal mb-12 text-center",children:[(0,l.jsx)("p",{className:"w-mono w-eyebrow w-signal mb-4",children:"The surfaces"}),(0,l.jsx)("h2",{className:"text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight",children:"Everything the agent plans, drawn"})]}),(0,l.jsx)("div",{className:"w-reveal",children:(0,l.jsx)(en,{})})]})}),(0,l.jsxs)("section",{id:"quickstart",className:"px-6 py-16 md:py-24",children:[(0,l.jsxs)("div",{className:"mx-auto max-w-3xl",children:[(0,l.jsxs)("div",{className:"w-reveal mb-12 text-center",children:[(0,l.jsx)("p",{className:"w-mono w-eyebrow w-signal mb-4",children:"Quickstart"}),(0,l.jsx)("h2",{className:"text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight",children:"Five lines to your first approved plan"})]}),(0,l.jsxs)("div",{className:"w-reveal glass overflow-hidden rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 border-b px-4 py-3",style:{borderColor:"var(--border)"},children:[(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"#ff7a45",boxShadow:"0 0 7px rgba(255,122,69,.7)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"h-3 w-3 rounded-full",style:{background:"oklch(1 0 0 / .16)"}}),(0,l.jsx)("span",{className:"w-mono ml-2 text-[0.72rem] w-muted",children:"your-repo — terminal"})]}),(0,l.jsxs)("div",{className:"px-5 py-4",children:[(0,l.jsxs)("div",{className:"ql",children:[(0,l.jsxs)("code",{className:"cmd w-scrollbar-none",children:[(0,l.jsx)("span",{className:"w-signal select-none",children:"$ "}),ed]}),(0,l.jsx)("span",{className:"note",children:"01 \xb7 one binary, nothing to configure"}),t("qs")]}),(0,l.jsxs)("div",{className:"ql",children:[(0,l.jsxs)("code",{className:"cmd",children:[(0,l.jsx)("span",{className:"w-signal select-none",children:"$ "}),"cd your-repo && beacon"]}),(0,l.jsx)("span",{className:"note",children:"02 \xb7 registers the repo, opens the panel"})]}),(0,l.jsxs)("div",{className:"ql",children:[(0,l.jsxs)("code",{className:"cmd",children:[(0,l.jsx)("span",{className:"w-signal select-none",children:"› "}),"/beacon-init"]}),(0,l.jsx)("span",{className:"note",children:"03 \xb7 maps architecture, schema, roadmap"})]}),(0,l.jsxs)("div",{className:"ql",children:[(0,l.jsxs)("code",{className:"cmd",children:[(0,l.jsx)("span",{className:"w-signal select-none",children:"› "}),"plan: magic-link sign-in"]}),(0,l.jsx)("span",{className:"note",children:"04 \xb7 the plan streams onto /plan"})]}),(0,l.jsxs)("div",{className:"ql",children:[(0,l.jsxs)("code",{className:"cmd",children:[(0,l.jsxs)("span",{className:"select-none",style:{color:"#6ee7b7"},children:["✓"," "]}),"approve \xb7 feedback \xb7 discard"]}),(0,l.jsx)("span",{className:"note",children:"05 \xb7 the verdict returns to your session"})]})]})]})]}),(0,l.jsx)("div",{className:"mx-auto mt-16 max-w-5xl",children:(0,l.jsx)("div",{className:"w-reveal glass grid overflow-hidden rounded-lg md:grid-cols-3 md:divide-x md:divide-y-0 divide-y",style:{borderColor:"var(--border)"},children:em.map(e=>(0,l.jsxs)("div",{className:"p-6",style:{borderColor:"oklch(1 0 0 / 0.07)"},children:[(0,l.jsx)("p",{className:"w-mono w-eyebrow w-signal mb-2.5",children:e.label}),(0,l.jsx)("p",{className:"w-muted text-[0.9rem] leading-relaxed",children:e.body})]},e.label))})})]}),(0,l.jsx)("footer",{className:"px-6 pb-12 pt-8",children:(0,l.jsxs)("div",{className:"mx-auto max-w-5xl",children:[(0,l.jsx)("div",{className:"w-accent-line mb-8 h-px w-full opacity-60"}),(0,l.jsxs)("div",{className:"flex flex-col items-center justify-between gap-5 md:flex-row",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,l.jsx)(h._,{size:26,className:"text-foreground"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"font-semibold leading-tight",children:"Beacon"}),(0,l.jsx)("p",{className:"w-mono w-muted text-[0.72rem]",children:"the visual planning surface for your terminal"})]})]}),(0,l.jsxs)("nav",{className:"flex items-center gap-6 text-sm w-muted",children:[(0,l.jsx)("a",{href:"/docs",className:"transition-colors hover:text-foreground",children:"Docs"}),(0,l.jsx)("a",{href:"#",className:"transition-colors hover:text-foreground",children:"Changelog"}),(0,l.jsx)("a",{href:"https://github.com/wenzorithelly/beacon/blob/main/LICENSE",target:"_blank",rel:"noreferrer",className:"transition-colors hover:text-foreground",children:"Apache 2.0"})]}),(0,l.jsxs)("p",{className:"w-mono w-muted text-[0.72rem]",children:["Created by"," ",(0,l.jsxs)("a",{href:"https://www.instagram.com/wenzorithelly/",target:"_blank",rel:"noreferrer",className:"w-signal inline-flex items-center gap-1 underline decoration-dotted underline-offset-2 transition-opacity hover:opacity-80",children:[(0,l.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,l.jsx)("rect",{x:"2",y:"2",width:"20",height:"20",rx:"5",ry:"5"}),(0,l.jsx)("path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"}),(0,l.jsx)("line",{x1:"17.5",y1:"6.5",x2:"17.51",y2:"6.5"})]}),"Wenzo"]}),(0,l.jsx)("span",{className:"mx-2 opacity-40",children:"\xb7"}),"\xa9 2026 Beacon"]})]})]})})]})}},32133:(e,a,s)=>{"use strict";s.d(a,{A:()=>t});let t=(0,s(30772).A)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]])},39593:(e,a,s)=>{"use strict";s.d(a,{EO:()=>r,kw:()=>l});var t=s(41463);let l="https://registry.npmjs.org/trybeacon/latest",i=(t.env.NEXT_PUBLIC_BEACON_SITE_URL??"https://www.trybeacon.sh").replace(/\/$/,""),r=`curl -fsSL ${i}/install.sh | sh`},43137:(e,a,s)=>{"use strict";s.d(a,{TT:()=>i,Xf:()=>n,m6:()=>l,nR:()=>r,yl:()=>t});let t=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],l=["KEEP","REBUILD","REPLACE","DROP"],i=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],r={DONE:{label:"Done",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},IN_PROGRESS:{label:"In progress",className:"border-sky-500/30 bg-sky-500/15 text-sky-300"},PENDING:{label:"Pending",className:"border-amber-500/30 bg-amber-500/10 text-amber-200"},BLOCKED:{label:"Blocked",className:"border-orange-500/30 bg-orange-500/15 text-orange-300"},CANCELLED:{label:"Cancelled",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"},DEPRIORITIZED:{label:"Deprioritized",className:"border-zinc-600/40 bg-zinc-600/10 text-zinc-400"},KEEP:{label:"Keep",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},REBUILD:{label:"Rebuild",className:"border-violet-500/30 bg-violet-500/15 text-violet-300"},REPLACE:{label:"Replace",className:"border-rose-500/30 bg-rose-500/15 text-rose-300"},DROP:{label:"Drop",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"}};function n(e){return e?.trim()||"—"}},50814:(e,a,s)=>{Promise.resolve().then(s.bind(s,21904))},52965:(e,a,s)=>{"use strict";s.d(a,{_:()=>l});var t=s(95155);function l({size:e=18,className:a}){return(0,t.jsxs)("svg",{width:e,height:e,viewBox:"20 22 56 56",fill:"none",className:a,"aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M48 33 L72.5 73 L23.5 73 Z",fill:"none",stroke:"var(--accent-2, #ff7a45)",strokeWidth:7,strokeLinejoin:"round",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"48",cy:"29.5",r:"7",fill:"var(--accent-2, #ff7a45)"})]})}},86272:(e,a,s)=>{"use strict";s.d(a,{A:()=>t});let t=(0,s(30772).A)("sparkles",[["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"}]])},86901:()=>{},91337:(e,a,s)=>{"use strict";s.d(a,{cn:()=>i});var t=s(29722),l=s(622);function i(...e){return(0,l.QP)((0,t.$)(e))}},93340:()=>{},99314:(e,a,s)=>{"use strict";s.d(a,{A:()=>t});let t=(0,s(30772).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])}},e=>{e.O(0,[2574,1477,4868,3862,8500,4888,5957,8441,3794,7358],()=>e(e.s=50814)),_N_E=e.O()}]);
|