trybeacon 0.1.3 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -4
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +0 -6
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +9 -9
- package/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- 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 +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/feature/route.js.nft.json +1 -1
- package/.next/server/app/api/context/file/route.js +1 -1
- package/.next/server/app/api/context/route.js +2 -2
- 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/position/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/draft/route.js +2 -2
- 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/edges/route.js.nft.json +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/feedback/[id]/route.js +1 -1
- package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
- package/.next/server/app/api/feedback/route.js +1 -1
- package/.next/server/app/api/ingest/route.js +2 -2
- package/.next/server/app/api/init/route.js +2 -2
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/map/describe/route.js +2 -2
- package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
- package/.next/server/app/api/map/files/route.js +1 -1
- package/.next/server/app/api/map/files/route.js.nft.json +1 -1
- package/.next/server/app/api/map/finish/route.js +1 -1
- package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
- package/.next/server/app/api/map/route.js +1 -1
- package/.next/server/app/api/map/route.js.nft.json +1 -1
- package/.next/server/app/api/map/start/route.js +1 -1
- package/.next/server/app/api/map/start/route.js.nft.json +1 -1
- package/.next/server/app/api/map/touch-active/route.js +1 -1
- package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/[id]/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/positions/route.js +1 -1
- package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/route.js +1 -1
- package/.next/server/app/api/nodes/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js.nft.json +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 +2 -2
- 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 +2 -2
- package/.next/server/app/api/preferences/route.js +1 -1
- package/.next/server/app/api/reset/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +9 -9
- package/.next/server/app/docs.segments/_full.segment.rsc +9 -9
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +9 -9
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- 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/feedback/page.js +2 -2
- package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
- package/.next/server/app/feedback.html +1 -1
- package/.next/server/app/feedback.rsc +9 -9
- package/.next/server/app/feedback.segments/_full.segment.rsc +9 -9
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +9 -9
- package/.next/server/app/feedback.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
- package/.next/server/app/help/page.js +2 -2
- 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.rsc +27 -26
- package/.next/server/app/help.segments/_full.segment.rsc +27 -26
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +9 -9
- package/.next/server/app/help.segments/_tree.segment.rsc +1 -1
- 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.rsc +9 -9
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +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_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +2 -2
- 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/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -4
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/333.js +1 -1
- package/.next/server/chunks/389.js +1 -0
- 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/chunks/5916-65b61f02167fdaa0.js +1 -0
- package/.next/static/chunks/app/_global-error/page-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/code-graph/position/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/code-graph/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/context/feature/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/context/file/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/context/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/db/backfill-access/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/db/position/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/db/relations/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/db/tables/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/draft/approve/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/draft/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/draft/status/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/edges/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/edges/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/endpoints/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/entities/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/feedback/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/init/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/describe/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/files/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/finish/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/start/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/map/touch-active/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/position/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/nodes/positions/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/nodes/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/nodes/subtasks/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/notes/[id]/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/notes/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/open/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/annotations/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/approve/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/history/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/markdown/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/presence/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/plan/verdict/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/reset/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/settings/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/stream/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/version/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/workspace/activate/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/app/{layout-2a51aad13d2ead37.js → layout-d4b764b7fd4ec5c6.js} +1 -1
- package/.next/static/chunks/app/map/{page-372190c290ac7c11.js → page-621463528037d2d0.js} +1 -1
- package/.next/static/chunks/app/plan/{page-33f773c27042a370.js → page-95a91a84bb930fc3.js} +1 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c1b5e3c2b2451a38.js +1 -0
- package/.next/static/gRhUG5vdhfWUACit2_jxj/_buildManifest.js +1 -0
- package/.next/trace +37 -37
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +1 -2
- package/.next/types/validator.ts +0 -9
- package/dist/bin/doctor.js +1 -1
- package/dist/bin/hook.js +1 -1
- package/dist/bin/mcp.js +3 -3
- package/dist/bin/plan.js +1 -1
- package/dist/bin/uninstall.js +1 -1
- package/dist/lib/assets.js +1 -1
- package/dist/lib/global-install.js +1 -1
- package/package.json +1 -2
- package/.next/server/app/api/context/embed-backfill/route.js +0 -1
- package/.next/server/app/api/context/embed-backfill/route.js.nft.json +0 -1
- package/.next/server/app/api/context/embed-backfill/route_client-reference-manifest.js +0 -1
- package/.next/server/chunks/6537.js +0 -1
- package/.next/server/chunks/6636.js +0 -1
- package/.next/server/chunks/6911.js +0 -1
- package/.next/server/chunks/8216.js +0 -1
- package/.next/server/chunks/9353.js +0 -1
- package/.next/static/0iRi3qaAhwRK-PeUsJDYf/_buildManifest.js +0 -1
- package/.next/static/chunks/3578-63ae773de1f640f9.js +0 -1
- package/.next/static/chunks/app/_global-error/page-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/code-graph/position/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/code-graph/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/context/embed-backfill/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/context/feature/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/context/file/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/context/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/db/backfill-access/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/db/position/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/db/relations/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/db/tables/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/draft/approve/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/draft/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/draft/status/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/edges/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/edges/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/endpoints/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/entities/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/feedback/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/ingest/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/init/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/describe/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/files/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/finish/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/start/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/map/touch-active/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/position/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/nodes/positions/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/nodes/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/nodes/subtasks/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/notes/[id]/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/notes/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/open/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/annotations/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/approve/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/history/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/markdown/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/presence/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/plan/verdict/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/preferences/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/reset/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/settings/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/stream/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/version/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/workspace/activate/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-4081e232089c9f2e.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-4081e232089c9f2e.js +0 -1
- package/.next/types/app/api/context/embed-backfill/route.ts +0 -351
- /package/.next/static/{0iRi3qaAhwRK-PeUsJDYf → gRhUG5vdhfWUACit2_jxj}/_ssgManifest.js +0 -0
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[30165,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
3
|
-
3:I[81984,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
4
|
-
4:I[48484,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
5
|
-
5:I[96848,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
6
|
-
6:I[52174,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
2
|
+
2:I[30165,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"LiveRefresh"]
|
|
3
|
+
3:I[81984,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"NotesProvider"]
|
|
4
|
+
4:I[48484,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"PlanProvider"]
|
|
5
|
+
5:I[96848,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"TopNav"]
|
|
6
|
+
6:I[52174,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"MainRegion"]
|
|
7
7
|
7:I[57121,[],""]
|
|
8
8
|
8:I[74581,[],""]
|
|
9
|
-
9:I[434,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
10
|
-
a:I[1494,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
11
|
-
b:I[33082,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
9
|
+
9:I[434,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"PlanBar"]
|
|
10
|
+
a:I[1494,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"NotesDrawer"]
|
|
11
|
+
b:I[33082,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"UpdateBanner"]
|
|
12
12
|
c:I[98500,["8500","static/chunks/8500-f62a38ff68ab7f42.js","728","static/chunks/app/help/page-7ece210a72cf4a67.js"],""]
|
|
13
13
|
d:I[71265,["8500","static/chunks/8500-f62a38ff68ab7f42.js","728","static/chunks/app/help/page-7ece210a72cf4a67.js"],"default"]
|
|
14
|
-
|
|
14
|
+
16:I[27123,[],"default",1]
|
|
15
15
|
:HL["/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
16
16
|
:HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
17
17
|
:HL["/_next/static/css/fb92764fca78149e.css","style"]
|
|
18
18
|
:HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
|
|
19
|
-
0:{"P":null,"c":["","help"],"q":"","i":false,"f":[[["",{"children":["help",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fb92764fca78149e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","$L2",null,{}],["$","$L3",null,{"children":[["$","$L4",null,{"children":[["$","$L5",null,{"repo":"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
e:["$","
|
|
25
|
-
f:["$","
|
|
26
|
-
10:["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"
|
|
27
|
-
11:["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"
|
|
28
|
-
12:["$","$
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
14:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
19
|
+
0:{"P":null,"c":["","help"],"q":"","i":false,"f":[[["",{"children":["help",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fb92764fca78149e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","$L2",null,{}],["$","$L3",null,{"children":[["$","$L4",null,{"children":[["$","$L5",null,{"repo":"juriscan_v2"}],["$","$L6",null,{"children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L9",null,{}]]}],["$","$La",null,{}]]}],["$","$Lb",null,{"currentVersion":"0.1.6"}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto w-full max-w-3xl px-6 pb-16 pt-20","children":[["$","$Lc",null,{"href":"/settings","className":"inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground","children":[["$","$Ld",null,{"ref":"$undefined","iconNode":[["path",{"d":"m12 19-7-7 7-7","key":"1l729n"}],["path",{"d":"M19 12H5","key":"x3x0zl"}]],"className":"lucide-arrow-left size-4"}],"Settings"]}],["$","h1",null,{"className":"mt-4 text-2xl font-semibold tracking-tight","children":"How to use Beacon"}],["$","p",null,{"className":"mt-1 text-sm text-muted-foreground","children":"What you can ask the agent to do, what it does on its own, and what happens automatically while you work."}],["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"Skills — type these in your terminal session"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"Slash commands that tell the agent to do something Beacon-shaped. You type them."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","/beacon-init",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-init"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":[["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]," ","First time you point Beacon at a repo."]}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent reads the codebase and fills Beacon's map: the main components, the rough roadmap themes, the database schema, and the endpoints. Run this once per repo to bootstrap the picture."}]]}],["$","li","/beacon-refresh",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-refresh"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":["$Le"," ","Every few weeks, or after a big set of changes."]}],"$Lf"]}]]}]]}],"$L10","$L11","$L12"]}],null,"$L13"]}],{},null,false,null]},null,false,"$@14"]},null,false,null],"$L15",false]],"m":"$undefined","G":["$16",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"gRhUG5vdhfWUACit2_jxj"}
|
|
20
|
+
17:I[90484,[],"OutletBoundary"]
|
|
21
|
+
18:"$Sreact.suspense"
|
|
22
|
+
1b:I[90484,[],"ViewportBoundary"]
|
|
23
|
+
1d:I[90484,[],"MetadataBoundary"]
|
|
24
|
+
e:["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]
|
|
25
|
+
f:["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent re-surveys the repo and updates what /beacon-init already produced — adds new components, drops removed ones, picks up new tables and routes. Anything you added by hand on the canvas survives the refresh."}]
|
|
26
|
+
10:["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"MCP tools — the agent calls these on its own"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"You don't run these. The agent reaches for them whenever they fit the task — knowing they exist helps you understand what the agent is doing."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","beacon_context_for_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_context_for_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Before touching code for a feature, the agent uses this to pull the files attached to it plus their imports, the endpoints in that domain, the tables those endpoints touch, and the surrounding components — one round-trip instead of a blind Glob/Grep scan."}]]}],["$","li","beacon_blast_radius",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_blast_radius"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Mid-feature, the agent uses this on a file it's about to edit to see what imports it and what it imports — so it can judge whether the change is safe."}]]}],["$","li","beacon_propose_plan",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_propose_plan"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"When the agent has a feature plan (tables + relations + endpoints), this opens the plan on Beacon's /plan page and BLOCKS the session. You review, annotate, then Approve / Discard / Submit feedback — and the agent only continues after you've decided."}]]}],["$","li","beacon_describe_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_describe_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"When a feature is done, the agent calls this with a short markdown summary and the files it touched. That keeps the next session's beacon_context_for_feature accurate."}]]}],["$","li","beacon_entities",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_entities"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Generic readout of what's currently mapped — features, architecture, tables, endpoints. The agent uses it when it just needs raw planning data."}]]}],["$","li","beacon_map",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_map"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Quick list of features on the roadmap. The agent calls this near the start of work to see what's already planned."}]]}],["$","li","beacon_start_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_start_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Optional: the agent flags which feature it's working on. The /map view shows it as in-progress while edits happen."}]]}],["$","li","beacon_add_subtasks",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_add_subtasks"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Breaks a feature into smaller child nodes on the /map view. Useful when one feature naturally splits into several pieces."}]]}],["$","li","beacon_init_persist",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_init_persist"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The write side of /beacon-init and /beacon-refresh — you never call it directly; the skills do."}]]}]]}]]}]
|
|
27
|
+
11:["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"Automatic hooks — these run without you"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"Wired into Claude Code globally. You don't trigger them; they react to what the session is already doing."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","Plan mode (ExitPlanMode)",{"children":[["$","div",null,{"className":"text-sm font-medium text-foreground","children":"Plan mode (ExitPlanMode)"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"When the agent shows you a plan, Beacon intercepts it and renders the markdown on /plan with a native annotation panel. Select text and type → it becomes a comment. Approve / Discard / Submit feedback flows back to the session as the agent's next instruction. No prompt walls of text in the terminal."}]]}],["$","li","File edits (PostToolUse)",{"children":[["$","div",null,{"className":"text-sm font-medium text-foreground","children":"File edits (PostToolUse)"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Every Edit/Write/MultiEdit the agent runs is reported to Beacon, and the file is automatically attached to whichever feature the session is currently working on. The /map view gradually fills in with the real files behind each feature, without you tagging anything."}]]}],["$","li","Inline code-graph watcher",{"children":[["$","div",null,{"className":"text-sm font-medium text-foreground","children":"Inline code-graph watcher"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"While the panel is open, a background watcher rebuilds the /map → Files view as you save code. No clicking required — it just stays current with the repo it's watching."}]]}]]}]]}]
|
|
28
|
+
12:["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"Typical loop, end to end"}],["$","ol",null,{"className":"mt-4 ml-4 list-decimal space-y-2 text-sm text-muted-foreground","children":[["$","li",null,{"children":["First time in a repo: run ",["$","span",null,{"className":"font-mono text-foreground","children":"beacon"}]," in the terminal, then ",["$","span",null,{"className":"font-mono text-foreground","children":"/beacon-init"}]," in your session."]}],["$","li",null,{"children":["Ask the agent to plan a feature. It calls"," ",["$","span",null,{"className":"font-mono text-foreground","children":"beacon_propose_plan"}],"; you review on /plan; you Approve."]}],["$","li",null,{"children":"The agent implements. File edits land on the canvas automatically via the PostToolUse hook."}],["$","li",null,{"children":["When done, the agent calls"," ",["$","span",null,{"className":"font-mono text-foreground","children":"beacon_describe_feature"}]," so the next session has accurate context."]}],["$","li",null,{"children":["Every few weeks, run ",["$","span",null,{"className":"font-mono text-foreground","children":"/beacon-refresh"}]," ","to keep the architecture map honest as the code grows."]}]]}]]}]
|
|
29
|
+
13:["$","$L17",null,{"children":["$","$18",null,{"name":"Next.MetadataOutlet","children":"$@19"}]}]
|
|
30
|
+
1a:[]
|
|
31
|
+
14:"$W1a"
|
|
32
|
+
15:["$","$1","h",{"children":[null,["$","$L1b",null,{"children":"$L1c"}],["$","div",null,{"hidden":true,"children":["$","$L1d",null,{"children":["$","$18",null,{"name":"Next.Metadata","children":"$L1e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
|
33
|
+
1c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
34
|
+
1f:I[86869,[],"IconMark"]
|
|
35
|
+
19:null
|
|
36
|
+
1e:[["$","title","0",{"children":"Beacon"}],["$","meta","1",{"name":"description","content":"A local control panel for the repository you're working in"}],["$","link","2",{"rel":"icon","href":"/icon.svg?ae28182cec326ab8","type":"image/svg+xml","sizes":"any"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.png?f9d64651576bd776","type":"image/png","sizes":"180x180"}],["$","$L1f","4",{}]]
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[90484,[],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[86869,[],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Beacon"}],["$","meta","1",{"name":"description","content":"A local control panel for the repository you're working in"}],["$","link","2",{"rel":"icon","href":"/icon.svg?ae28182cec326ab8","type":"image/svg+xml","sizes":"any"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.png?f9d64651576bd776","type":"image/png","sizes":"180x180"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Beacon"}],["$","meta","1",{"name":"description","content":"A local control panel for the repository you're working in"}],["$","link","2",{"rel":"icon","href":"/icon.svg?ae28182cec326ab8","type":"image/svg+xml","sizes":"any"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.png?f9d64651576bd776","type":"image/png","sizes":"180x180"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"gRhUG5vdhfWUACit2_jxj"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[30165,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
3
|
-
3:I[81984,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
4
|
-
4:I[48484,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
5
|
-
5:I[96848,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
6
|
-
6:I[52174,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
2
|
+
2:I[30165,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"LiveRefresh"]
|
|
3
|
+
3:I[81984,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"NotesProvider"]
|
|
4
|
+
4:I[48484,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"PlanProvider"]
|
|
5
|
+
5:I[96848,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"TopNav"]
|
|
6
|
+
6:I[52174,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"MainRegion"]
|
|
7
7
|
7:I[57121,[],""]
|
|
8
8
|
8:I[74581,[],""]
|
|
9
|
-
9:I[434,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
10
|
-
a:I[1494,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
11
|
-
b:I[33082,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-
|
|
9
|
+
9:I[434,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"PlanBar"]
|
|
10
|
+
a:I[1494,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"NotesDrawer"]
|
|
11
|
+
b:I[33082,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"UpdateBanner"]
|
|
12
12
|
:HL["/_next/static/css/fb92764fca78149e.css","style"]
|
|
13
13
|
:HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
|
|
14
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fb92764fca78149e.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","$L2",null,{}],["$","$L3",null,{"children":[["$","$L4",null,{"children":[["$","$L5",null,{"repo":"
|
|
14
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fb92764fca78149e.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","$L2",null,{}],["$","$L3",null,{"children":[["$","$L4",null,{"children":[["$","$L5",null,{"repo":"juriscan_v2"}],["$","$L6",null,{"children":["$","$L7",null,{"parallelRouterKey":"children","template":["$","$L8",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","$L9",null,{}]]}],["$","$La",null,{}]]}],["$","$Lb",null,{"currentVersion":"0.1.6"}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"gRhUG5vdhfWUACit2_jxj"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
:HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/css/fb92764fca78149e.css","style"]
|
|
4
4
|
:HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
|
|
5
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"help","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
5
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"help","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"gRhUG5vdhfWUACit2_jxj"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
3:I[71265,["8500","static/chunks/8500-f62a38ff68ab7f42.js","728","static/chunks/app/help/page-7ece210a72cf4a67.js"],"default"]
|
|
4
4
|
e:I[90484,[],"OutletBoundary"]
|
|
5
5
|
f:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto w-full max-w-3xl px-6 pb-16 pt-20","children":[["$","$L2",null,{"href":"/settings","className":"inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground","children":[["$","$L3",null,{"iconNode":[["path",{"d":"m12 19-7-7 7-7","key":"1l729n"}],["path",{"d":"M19 12H5","key":"x3x0zl"}]],"className":"lucide-arrow-left size-4"}],"Settings"]}],["$","h1",null,{"className":"mt-4 text-2xl font-semibold tracking-tight","children":"How to use Beacon"}],["$","p",null,{"className":"mt-1 text-sm text-muted-foreground","children":"What you can ask the agent to do, what it does on its own, and what happens automatically while you work."}],["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"Skills — type these in your terminal session"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"Slash commands that tell the agent to do something Beacon-shaped. You type them."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","/beacon-init",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-init"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":[["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]," ","First time you point Beacon at a repo."]}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent reads the codebase and fills Beacon's map: the main components, the rough roadmap themes, the database schema, and the endpoints. Run this once per repo to bootstrap the picture."}]]}],["$","li","/beacon-refresh",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-refresh"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":[["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]," ","Every few weeks, or after a big set of changes."]}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent re-surveys the repo and updates what /beacon-init already produced — adds new components, drops removed ones, picks up new tables and routes. Anything you added by hand on the canvas survives the refresh."}]]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"MCP tools — the agent calls these on its own"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"You don't run these. The agent reaches for them whenever they fit the task — knowing they exist helps you understand what the agent is doing."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","beacon_context_for_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_context_for_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Before touching code for a feature, the agent uses this to pull the files attached to it plus their imports, the endpoints in that domain, the tables those endpoints touch, and the surrounding components — one round-trip instead of a blind Glob/Grep scan."}]]}],["$","li","beacon_blast_radius",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_blast_radius"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Mid-feature, the agent uses this on a file it's about to edit to see what imports it and what it imports — so it can judge whether the change is safe."}]]}],["$","li","beacon_propose_plan",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_propose_plan"}],"$L4"]}],"$L5","$L6","$L7","$L8","$L9","$La"]}]]}],"$Lb","$Lc"]}],null,"$Ld"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"mx-auto w-full max-w-3xl px-6 pb-16 pt-20","children":[["$","$L2",null,{"href":"/settings","className":"inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground","children":[["$","$L3",null,{"iconNode":[["path",{"d":"m12 19-7-7 7-7","key":"1l729n"}],["path",{"d":"M19 12H5","key":"x3x0zl"}]],"className":"lucide-arrow-left size-4"}],"Settings"]}],["$","h1",null,{"className":"mt-4 text-2xl font-semibold tracking-tight","children":"How to use Beacon"}],["$","p",null,{"className":"mt-1 text-sm text-muted-foreground","children":"What you can ask the agent to do, what it does on its own, and what happens automatically while you work."}],["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"Skills — type these in your terminal session"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"Slash commands that tell the agent to do something Beacon-shaped. You type them."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","/beacon-init",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-init"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":[["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]," ","First time you point Beacon at a repo."]}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent reads the codebase and fills Beacon's map: the main components, the rough roadmap themes, the database schema, and the endpoints. Run this once per repo to bootstrap the picture."}]]}],["$","li","/beacon-refresh",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"/beacon-refresh"}],["$","div",null,{"className":"mt-1 text-sm text-muted-foreground","children":[["$","span",null,{"className":"font-medium text-foreground","children":"When:"}]," ","Every few weeks, or after a big set of changes."]}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"The agent re-surveys the repo and updates what /beacon-init already produced — adds new components, drops removed ones, picks up new tables and routes. Anything you added by hand on the canvas survives the refresh."}]]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"mt-10 border-b border-white/10 pb-1.5 text-lg font-semibold text-foreground","children":"MCP tools — the agent calls these on its own"}],["$","p",null,{"className":"mt-2 text-sm text-muted-foreground","children":"You don't run these. The agent reaches for them whenever they fit the task — knowing they exist helps you understand what the agent is doing."}],["$","ul",null,{"className":"mt-4 space-y-4","children":[["$","li","beacon_context_for_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_context_for_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Before touching code for a feature, the agent uses this to pull the files attached to it plus their imports, the endpoints in that domain, the tables those endpoints touch, and the surrounding components — one round-trip instead of a blind Glob/Grep scan."}]]}],["$","li","beacon_blast_radius",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_blast_radius"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Mid-feature, the agent uses this on a file it's about to edit to see what imports it and what it imports — so it can judge whether the change is safe."}]]}],["$","li","beacon_propose_plan",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_propose_plan"}],"$L4"]}],"$L5","$L6","$L7","$L8","$L9","$La"]}]]}],"$Lb","$Lc"]}],null,"$Ld"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"gRhUG5vdhfWUACit2_jxj"}
|
|
7
7
|
4:["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"When the agent has a feature plan (tables + relations + endpoints), this opens the plan on Beacon's /plan page and BLOCKS the session. You review, annotate, then Approve / Discard / Submit feedback — and the agent only continues after you've decided."}]
|
|
8
8
|
5:["$","li","beacon_describe_feature",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_describe_feature"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"When a feature is done, the agent calls this with a short markdown summary and the files it touched. That keeps the next session's beacon_context_for_feature accurate."}]]}]
|
|
9
9
|
6:["$","li","beacon_entities",{"children":[["$","div",null,{"className":"font-mono text-sm text-foreground","children":"beacon_entities"}],["$","div",null,{"className":"mt-0.5 text-sm text-muted-foreground","children":"Generic readout of what's currently mapped — features, architecture, tables, endpoints. The agent uses it when it just needs raw planning data."}]]}]
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[57121,[],""]
|
|
3
3
|
3:I[74581,[],""]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"gRhUG5vdhfWUACit2_jxj"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=3822,a.ids=[3822],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=3822,a.ids=[3822],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{a.exports=c(44870)},23050:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>x,dynamic:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211);let w=Buffer.from("PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIyMCAyMiA1NiA1NiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0iTTQ4IDMzIEw3Mi41IDczIEwyMy41IDczIFoiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmN2E0NSIgc3Ryb2tlLXdpZHRoPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KICA8Y2lyY2xlIGN4PSI0OCIgY3k9IjMwLjUiIHI9IjUuNCIgZmlsbD0iI2ZmN2E0NSIvPgo8L3N2Zz4K","base64");function x(){return new v.NextResponse(w,{headers:{"Content-Type":"image/svg+xml","Cache-Control":"public, max-age=0, must-revalidate"}})}let y="force-static",z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/icon.svg/route",pathname:"/icon.svg",filename:"icon",bundlePath:"app/icon.svg/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2FUsers%2Fwenzorithelly%2FDesktop%2Fbeacon%2Fapp%2Ficon.svg&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/icon.svg/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592],()=>b(b.s=23050));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark __variable_246ccd __variable_c29908 h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/fb92764fca78149e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e02ab5db9ff2dca2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5f11ad1787eeef64.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3dc11ff04fc155e6.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-cef5038dc7aa126a.js" async=""></script><script src="/_next/static/chunks/main-app-cb1a040ffaced80b.js" async=""></script><script src="/_next/static/chunks/70e0d97a-bbb0ec05083da54f.js" async=""></script><script src="/_next/static/chunks/54a60aa6-407808fee210eca2.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4294-0e5034f9c5643c3f.js" async=""></script><script src="/_next/static/chunks/7886-46eaf3a9533310f7.js" async=""></script><script src="/_next/static/chunks/app/layout-2a51aad13d2ead37.js" async=""></script><script src="/_next/static/chunks/app/page-e0a78bc449569419.js" async=""></script><meta name="next-size-adjust" content=""/><title>Beacon — the visual planning surface for the coding agent in your terminal</title><meta name="description" content="Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local, no account, no API key."/><link rel="icon" href="/icon.svg?ae28182cec326ab8" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?f9d64651576bd776" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><header class="pointer-events-none fixed left-3 top-3 z-30"><div class="glass pointer-events-auto flex h-10 items-center gap-1 rounded-full pl-3 pr-1.5"><a class="mr-1 flex items-center gap-2 text-sm font-semibold tracking-tight" href="/"><svg width="18" height="18" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg>Beacon</a><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><span class="font-mono text-xs text-muted-foreground">· <!-- -->beacon</span><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><nav class="flex items-center gap-0.5 text-sm"><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/plan">Plans</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/map">Map</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/settings">Settings</a></nav><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><button type="button" aria-pressed="false" aria-label="Notes" title="Notes" class="flex items-center justify-center rounded-full p-1.5 transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4" aria-hidden="true"><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"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg></button></div></header><main class="flex flex-1 flex-col"><div class="welcome"><div class="welcome-bg" aria-hidden="true"></div><header class="fixed inset-x-0 top-0 z-50"><div class="mx-auto max-w-6xl px-6"><div class="w-load mt-4 glass flex items-center justify-between rounded-full py-2.5 pl-5 pr-3" style="animation-delay:.05s"><a class="flex items-center gap-2.5" href="#top"><svg width="20" height="20" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg><span class="font-semibold tracking-tight">Beacon</span></a><nav class="flex items-center gap-6 text-sm w-muted"><a href="#start" class="transition-colors hover:text-foreground">How it works</a><a href="/docs" class="transition-colors hover:text-foreground">Docs</a></nav></div></div></header><span id="top"></span><section class="flex min-h-screen flex-col items-center px-6 pb-12 pt-20 text-center"><div class="w-load glass-soft mb-6 flex items-center gap-2 rounded-full px-3.5 py-1.5" style="animation-delay:.12s"><span class="w-live h-1.5 w-1.5 rounded-full" style="background:#ff7a45;box-shadow:0 0 8px #ff7a45"></span><span class="w-mono w-eyebrow w-muted">Local · no account · no API key</span></div><h1 class="w-load max-w-4xl font-semibold text-[clamp(2.25rem,5vw,3.6rem)]" style="letter-spacing:-0.025em;line-height:1.06;animation-delay:.18s">Plan features on a canvas,<br/>not in a wall of text.</h1><p class="w-load w-muted mt-5 max-w-xl text-[1.02rem] leading-relaxed" style="animation-delay:.26s">Beacon is the visual planning surface for the coding agent in your terminal. Your session proposes the plan — you review, annotate, and approve with a click.</p><div class="w-load mt-8 w-full max-w-2xl" style="animation-delay:.34s"><div class="glass overflow-hidden rounded-lg text-left" style="box-shadow:0 24px 70px -22px rgba(0,0,0,.85), inset 0 1px 0 oklch(1 0 0 /.08), 0 18px 60px -30px rgba(255,122,69,.4)"><div class="flex items-center gap-2 border-b px-4 py-3" style="border-color:var(--border)"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-2 text-[0.72rem] w-muted">install — bash</span></div><div class="flex items-center gap-4 px-5 py-5"><code class="w-mono w-scrollbar-none flex-1 overflow-x-auto whitespace-nowrap text-[0.95rem]"><span class="w-signal select-none">$</span><span class="ml-2">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span><span class="w-caret ml-1 inline-block h-4 w-2 align-middle" style="background:#ff7a45"></span></code><button class="glass-soft w-hover grid h-10 w-10 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button></div></div><p class="w-mono w-muted mt-4 text-[0.8rem]">then run <span class="text-foreground">beacon</span> inside any repo</p></div><a href="#start" class="w-load mt-auto pt-16 flex flex-col items-center gap-2 w-muted transition-colors hover:text-foreground" style="animation-delay:.6s"><span class="w-mono w-eyebrow">How it works</span><svg class="w-cue" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></a></section><section id="start" class="px-6 py-28"><div class="mx-auto max-w-2xl"><div class="w-reveal mb-16 text-center"><p class="w-mono w-eyebrow w-signal mb-4">Get the best out of Beacon</p><h2 class="text-[clamp(1.9rem,4vw,2.75rem)] font-semibold tracking-tight">From install to your first approved plan</h2><div class="w-accent-line mx-auto mt-6 h-px w-40"></div></div><ol class="relative"><span class="w-beam absolute bottom-7 left-[1.45rem] top-5 w-px" aria-hidden="true"></span><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">01</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Install</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">One binary. No account, nothing to configure.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="text-foreground">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">02</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Run it in your repo</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">Registers the repo, starts one shared local server, and opens the panel in your browser.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="w-signal">$</span> <span class="text-foreground">beacon</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">03</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Map your codebase</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">In your terminal session, run <span class="w-mono text-foreground">/beacon-init</span>. Beacon reads the repo and draws its architecture, schema, and roadmap.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="text-foreground">/beacon-init</span> <span class="w-muted">· beacon doctor</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">04</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Propose your first plan</h3><p class="w-muted text-[0.92rem] leading-relaxed ">Ask the agent to plan a feature. It calls <span class="w-mono text-foreground">beacon_propose_plan</span> <!-- -->and the plan renders live on the <span class="text-foreground">/plan</span> canvas — features, tables, and endpoints.</p></div></li><li class="w-reveal relative pl-[4.75rem] "><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">05</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Review & close the loop</h3><p class="w-muted text-[0.92rem] leading-relaxed ">Annotate inline, edit the boards, then <span class="text-foreground">Approve</span>,<!-- --> <span class="text-foreground">Submit feedback</span>, or <span class="text-foreground">Discard</span>. Your verdict flows straight back to your terminal session.</p></div></li></ol></div><div class="mx-auto mt-28 grid max-w-5xl gap-5 md:grid-cols-3"><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Reuse first</p><p class="w-muted text-[0.95rem] leading-relaxed">Beacon blocks duplicate features — check the map before you create.</p></div><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Design data first</p><p class="w-muted text-[0.95rem] leading-relaxed">Plan tables and endpoints before code; review the schema as a draft on<!-- --> <span class="text-foreground">/db</span>.</p></div><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Close every loop</p><p class="w-muted text-[0.95rem] leading-relaxed">Register finished work so the map and context stay accurate next session.</p></div></div></section><footer class="px-6 pb-12 pt-8"><div class="mx-auto max-w-5xl"><div class="w-accent-line mb-8 h-px w-full opacity-60"></div><div class="flex flex-col items-center justify-between gap-5 md:flex-row"><div class="flex items-center gap-2.5"><svg width="26" height="26" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg><div><p class="font-semibold leading-tight">Beacon</p><p class="w-mono w-muted text-[0.72rem]">the visual planning surface for your terminal</p></div></div><nav class="flex items-center gap-6 text-sm w-muted"><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="#" class="transition-colors hover:text-foreground">Changelog</a></nav><p class="w-mono w-muted text-[0.72rem]">Created by<!-- --> <a href="https://www.instagram.com/wenzorithelly/" target="_blank" rel="noreferrer" class="w-signal inline-flex items-center gap-1 underline decoration-dotted underline-offset-2 transition-opacity hover:opacity-80"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>Wenzo</a><span class="mx-2 opacity-40">·</span>© 2026 Beacon</p></div></div></footer></div><!--$--><!--/$--></main><div aria-hidden="true" class="fixed inset-y-0 right-0 z-40 flex transition-transform duration-300 ease-out pointer-events-none translate-x-full"><div class="glass relative isolate overflow-hidden flex h-full w-[420px] flex-col rounded-l-2xl border-l border-white/10"><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit]" style="background:radial-gradient(90% 60% at 0% 0%, oklch(1 0 0 / 0.04), transparent 42%)"></span><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit] opacity-[0.035] mix-blend-overlay" style="background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:120px 120px"></span><div class="flex items-center gap-2 border-b border-white/10 px-3 py-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4 text-[var(--accent-2,#ff7a45)]" aria-hidden="true"><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"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg><span class="text-sm font-semibold tracking-tight">Notes</span><span class="ml-auto"></span><button type="button" aria-label="New note" title="New note" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button type="button" aria-label="Close notes" title="Close" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x size-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div class="max-h-44 shrink-0 overflow-y-auto border-b border-white/10 p-1.5"><p class="px-2 py-3 text-[13px] text-muted-foreground">No notes yet. Hit <span class="text-foreground">+</span> to start one.</p></div><div class="flex flex-1 items-center justify-center p-6 text-center text-[13px] text-muted-foreground">Select a note, or create one. Then <span class="px-1 text-foreground">@</span>-mention it in your terminal to turn it into features.</div></div></div><script src="/_next/static/chunks/webpack-3dc11ff04fc155e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[30165,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"LiveRefresh\"]\n3:I[81984,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"NotesProvider\"]\n4:I[48484,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"PlanProvider\"]\n5:I[96848,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"TopNav\"]\n6:I[52174,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"MainRegion\"]\n7:I[57121,[],\"\"]\n8:I[74581,[],\"\"]\n9:I[434,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"PlanBar\"]\na:I[1494,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"NotesDrawer\"]\nb:I[33082,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-2a51aad13d2ead37.js\"],\"UpdateBanner\"]\nc:I[31698,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"8974\",\"static/chunks/app/page-e0a78bc449569419.js\"],\"Landing\"]\nd:I[90484,[],\"OutletBoundary\"]\ne:\"$Sreact.suspense\"\n10:I[90484,[],\"ViewportBoundary\"]\n12:I[90484,[],\"MetadataBoundary\"]\n14:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/fb92764fca78149e.css\",\"style\"]\n:HL[\"/_next/static/css/e02ab5db9ff2dca2.css\",\"style\"]\n:HL[\"/_next/static/css/5f11ad1787eeef64.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fb92764fca78149e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e02ab5db9ff2dca2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{\"repo\":\"beacon\"}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L9\",null,{}]]}],[\"$\",\"$La\",null,{}]]}],[\"$\",\"$Lb\",null,{\"currentVersion\":\"0.1.3\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lc\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5f11ad1787eeef64.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@f\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"0iRi3qaAhwRK-PeUsJDYf\"}\n"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"15:I[86869,[],\"IconMark\"]\nf:null\n13:[[\"$\",\"title\",\"0\",{\"children\":\"Beacon — the visual planning surface for the coding agent in your terminal\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local, no account, no API key.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?ae28182cec326ab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?f9d64651576bd776\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L15\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark __variable_246ccd __variable_c29908 h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/fb92764fca78149e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e02ab5db9ff2dca2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5f11ad1787eeef64.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3dc11ff04fc155e6.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-cef5038dc7aa126a.js" async=""></script><script src="/_next/static/chunks/main-app-cb1a040ffaced80b.js" async=""></script><script src="/_next/static/chunks/70e0d97a-bbb0ec05083da54f.js" async=""></script><script src="/_next/static/chunks/54a60aa6-407808fee210eca2.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4294-0e5034f9c5643c3f.js" async=""></script><script src="/_next/static/chunks/7886-46eaf3a9533310f7.js" async=""></script><script src="/_next/static/chunks/app/layout-d4b764b7fd4ec5c6.js" async=""></script><script src="/_next/static/chunks/app/page-e0a78bc449569419.js" async=""></script><meta name="next-size-adjust" content=""/><title>Beacon — the visual planning surface for the coding agent in your terminal</title><meta name="description" content="Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local, no account, no API key."/><link rel="icon" href="/icon.svg?ae28182cec326ab8" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?f9d64651576bd776" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><header class="pointer-events-none fixed left-3 top-3 z-30"><div class="glass pointer-events-auto flex h-10 items-center gap-1 rounded-full pl-3 pr-1.5"><a class="mr-1 flex items-center gap-2 text-sm font-semibold tracking-tight" href="/"><svg width="18" height="18" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg>Beacon</a><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><span class="font-mono text-xs text-muted-foreground">· <!-- -->juriscan_v2</span><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><nav class="flex items-center gap-0.5 text-sm"><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/plan">Plans</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/map">Map</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground" href="/settings">Settings</a></nav><span aria-hidden="true" class="mx-1 h-5 w-px bg-white/10"></span><button type="button" aria-pressed="false" aria-label="Notes" title="Notes" class="flex items-center justify-center rounded-full p-1.5 transition-colors text-muted-foreground hover:bg-white/[0.04] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4" aria-hidden="true"><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"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg></button></div></header><main class="flex flex-1 flex-col"><div class="welcome"><div class="welcome-bg" aria-hidden="true"></div><header class="fixed inset-x-0 top-0 z-50"><div class="mx-auto max-w-6xl px-6"><div class="w-load mt-4 glass flex items-center justify-between rounded-full py-2.5 pl-5 pr-3" style="animation-delay:.05s"><a class="flex items-center gap-2.5" href="#top"><svg width="20" height="20" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg><span class="font-semibold tracking-tight">Beacon</span></a><nav class="flex items-center gap-6 text-sm w-muted"><a href="#start" class="transition-colors hover:text-foreground">How it works</a><a href="/docs" class="transition-colors hover:text-foreground">Docs</a></nav></div></div></header><span id="top"></span><section class="flex min-h-screen flex-col items-center px-6 pb-12 pt-20 text-center"><div class="w-load glass-soft mb-6 flex items-center gap-2 rounded-full px-3.5 py-1.5" style="animation-delay:.12s"><span class="w-live h-1.5 w-1.5 rounded-full" style="background:#ff7a45;box-shadow:0 0 8px #ff7a45"></span><span class="w-mono w-eyebrow w-muted">Local · no account · no API key</span></div><h1 class="w-load max-w-4xl font-semibold text-[clamp(2.25rem,5vw,3.6rem)]" style="letter-spacing:-0.025em;line-height:1.06;animation-delay:.18s">Plan features on a canvas,<br/>not in a wall of text.</h1><p class="w-load w-muted mt-5 max-w-xl text-[1.02rem] leading-relaxed" style="animation-delay:.26s">Beacon is the visual planning surface for the coding agent in your terminal. Your session proposes the plan — you review, annotate, and approve with a click.</p><div class="w-load mt-8 w-full max-w-2xl" style="animation-delay:.34s"><div class="glass overflow-hidden rounded-lg text-left" style="box-shadow:0 24px 70px -22px rgba(0,0,0,.85), inset 0 1px 0 oklch(1 0 0 /.08), 0 18px 60px -30px rgba(255,122,69,.4)"><div class="flex items-center gap-2 border-b px-4 py-3" style="border-color:var(--border)"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-2 text-[0.72rem] w-muted">install — bash</span></div><div class="flex items-center gap-4 px-5 py-5"><code class="w-mono w-scrollbar-none flex-1 overflow-x-auto whitespace-nowrap text-[0.95rem]"><span class="w-signal select-none">$</span><span class="ml-2">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span><span class="w-caret ml-1 inline-block h-4 w-2 align-middle" style="background:#ff7a45"></span></code><button class="glass-soft w-hover grid h-10 w-10 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button></div></div><p class="w-mono w-muted mt-4 text-[0.8rem]">then run <span class="text-foreground">beacon</span> inside any repo</p></div><a href="#start" class="w-load mt-auto pt-16 flex flex-col items-center gap-2 w-muted transition-colors hover:text-foreground" style="animation-delay:.6s"><span class="w-mono w-eyebrow">How it works</span><svg class="w-cue" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></a></section><section id="start" class="px-6 py-28"><div class="mx-auto max-w-2xl"><div class="w-reveal mb-16 text-center"><p class="w-mono w-eyebrow w-signal mb-4">Get the best out of Beacon</p><h2 class="text-[clamp(1.9rem,4vw,2.75rem)] font-semibold tracking-tight">From install to your first approved plan</h2><div class="w-accent-line mx-auto mt-6 h-px w-40"></div></div><ol class="relative"><span class="w-beam absolute bottom-7 left-[1.45rem] top-5 w-px" aria-hidden="true"></span><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">01</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Install</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">One binary. No account, nothing to configure.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="text-foreground">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">02</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Run it in your repo</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">Registers the repo, starts one shared local server, and opens the panel in your browser.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="w-signal">$</span> <span class="text-foreground">beacon</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">03</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Map your codebase</h3><p class="w-muted text-[0.92rem] leading-relaxed mb-3">In your terminal session, run <span class="w-mono text-foreground">/beacon-init</span>. Beacon reads the repo and draws its architecture, schema, and roadmap.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.78rem]"><span class="text-foreground">/beacon-init</span> <span class="w-muted">· beacon doctor</span></code></div></li><li class="w-reveal relative pl-[4.75rem] pb-6"><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">04</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Propose your first plan</h3><p class="w-muted text-[0.92rem] leading-relaxed ">Ask the agent to plan a feature. It calls <span class="w-mono text-foreground">beacon_propose_plan</span> <!-- -->and the plan renders live on the <span class="text-foreground">/plan</span> canvas — features, tables, and endpoints.</p></div></li><li class="w-reveal relative pl-[4.75rem] "><span class="w-mono glass absolute left-0 top-0 grid h-[2.9rem] w-[2.9rem] place-items-center rounded-lg text-[0.82rem] font-semibold text-foreground" style="box-shadow:0 0 0 1px var(--border), 0 0 24px -9px rgba(255,122,69,0.75)">05</span><div class="glass w-hover rounded-lg p-5"><h3 class="mb-1.5 font-semibold">Review & close the loop</h3><p class="w-muted text-[0.92rem] leading-relaxed ">Annotate inline, edit the boards, then <span class="text-foreground">Approve</span>,<!-- --> <span class="text-foreground">Submit feedback</span>, or <span class="text-foreground">Discard</span>. Your verdict flows straight back to your terminal session.</p></div></li></ol></div><div class="mx-auto mt-28 grid max-w-5xl gap-5 md:grid-cols-3"><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Reuse first</p><p class="w-muted text-[0.95rem] leading-relaxed">Beacon blocks duplicate features — check the map before you create.</p></div><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Design data first</p><p class="w-muted text-[0.95rem] leading-relaxed">Plan tables and endpoints before code; review the schema as a draft on<!-- --> <span class="text-foreground">/db</span>.</p></div><div class="w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">Close every loop</p><p class="w-muted text-[0.95rem] leading-relaxed">Register finished work so the map and context stay accurate next session.</p></div></div></section><footer class="px-6 pb-12 pt-8"><div class="mx-auto max-w-5xl"><div class="w-accent-line mb-8 h-px w-full opacity-60"></div><div class="flex flex-col items-center justify-between gap-5 md:flex-row"><div class="flex items-center gap-2.5"><svg width="26" height="26" viewBox="11 1.5 74 74" fill="none" class="text-foreground" aria-hidden="true"><defs><linearGradient id="beacon-mark-beam" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#ffb27a" stop-opacity="0.9"></stop><stop offset="0.55" stop-color="#ff7a45" stop-opacity="0.3"></stop><stop offset="1" stop-color="#ff7a45" stop-opacity="0"></stop></linearGradient></defs><path d="M48 30 L40 4 L56 4 Z" fill="url(#beacon-mark-beam)"></path><path d="M48 33 L72.5 73 L23.5 73 Z" fill="currentColor" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"></path><circle cx="48" cy="31" r="5.2" fill="var(--accent-2, #ff7a45)" style="filter:drop-shadow(0 0 4px var(--accent-2, #ff7a45))"></circle><circle cx="48" cy="31" r="2" fill="#ffd9c2"></circle></svg><div><p class="font-semibold leading-tight">Beacon</p><p class="w-mono w-muted text-[0.72rem]">the visual planning surface for your terminal</p></div></div><nav class="flex items-center gap-6 text-sm w-muted"><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="#" class="transition-colors hover:text-foreground">Changelog</a></nav><p class="w-mono w-muted text-[0.72rem]">Created by<!-- --> <a href="https://www.instagram.com/wenzorithelly/" target="_blank" rel="noreferrer" class="w-signal inline-flex items-center gap-1 underline decoration-dotted underline-offset-2 transition-opacity hover:opacity-80"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>Wenzo</a><span class="mx-2 opacity-40">·</span>© 2026 Beacon</p></div></div></footer></div><!--$--><!--/$--></main><div aria-hidden="true" class="fixed inset-y-0 right-0 z-40 flex transition-transform duration-300 ease-out pointer-events-none translate-x-full"><div class="glass relative isolate overflow-hidden flex h-full w-[420px] flex-col rounded-l-2xl border-l border-white/10"><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit]" style="background:radial-gradient(90% 60% at 0% 0%, oklch(1 0 0 / 0.04), transparent 42%)"></span><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit] opacity-[0.035] mix-blend-overlay" style="background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:120px 120px"></span><div class="flex items-center gap-2 border-b border-white/10 px-3 py-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4 text-[var(--accent-2,#ff7a45)]" aria-hidden="true"><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"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg><span class="text-sm font-semibold tracking-tight">Notes</span><span class="ml-auto"></span><button type="button" aria-label="New note" title="New note" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button type="button" aria-label="Close notes" title="Close" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x size-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div class="max-h-44 shrink-0 overflow-y-auto border-b border-white/10 p-1.5"><p class="px-2 py-3 text-[13px] text-muted-foreground">No notes yet. Hit <span class="text-foreground">+</span> to start one.</p></div><div class="flex flex-1 items-center justify-center p-6 text-center text-[13px] text-muted-foreground">Select a note, or create one. Then <span class="px-1 text-foreground">@</span>-mention it in your terminal to turn it into features.</div></div></div><script src="/_next/static/chunks/webpack-3dc11ff04fc155e6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[30165,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"LiveRefresh\"]\n3:I[81984,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"NotesProvider\"]\n4:I[48484,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"PlanProvider\"]\n5:I[96848,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"TopNav\"]\n6:I[52174,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"MainRegion\"]\n7:I[57121,[],\"\"]\n8:I[74581,[],\"\"]\n9:I[434,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"PlanBar\"]\na:I[1494,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"NotesDrawer\"]\nb:I[33082,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-407808fee210eca2.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4294\",\"static/chunks/4294-0e5034f9c5643c3f.js\",\"7886\",\"static/chunks/7886-46eaf3a9533310f7.js\",\"7177\",\"static/chunks/app/layout-d4b764b7fd4ec5c6.js\"],\"UpdateBanner\"]\nc:I[31698,[\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"8974\",\"static/chunks/app/page-e0a78bc449569419.js\"],\"Landing\"]\nd:I[90484,[],\"OutletBoundary\"]\ne:\"$Sreact.suspense\"\n10:I[90484,[],\"ViewportBoundary\"]\n12:I[90484,[],\"MetadataBoundary\"]\n14:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/fb92764fca78149e.css\",\"style\"]\n:HL[\"/_next/static/css/e02ab5db9ff2dca2.css\",\"style\"]\n:HL[\"/_next/static/css/5f11ad1787eeef64.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fb92764fca78149e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e02ab5db9ff2dca2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$L4\",null,{\"children\":[[\"$\",\"$L5\",null,{\"repo\":\"juriscan_v2\"}],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L9\",null,{}]]}],[\"$\",\"$La\",null,{}]]}],[\"$\",\"$Lb\",null,{\"currentVersion\":\"0.1.6\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lc\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5f11ad1787eeef64.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@f\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"gRhUG5vdhfWUACit2_jxj\"}\n"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"15:I[86869,[],\"IconMark\"]\nf:null\n13:[[\"$\",\"title\",\"0\",{\"children\":\"Beacon — the visual planning surface for the coding agent in your terminal\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local, no account, no API key.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?ae28182cec326ab8\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?f9d64651576bd776\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L15\",\"4\",{}]]\n"])</script></body></html>
|