trybeacon 0.1.65 → 0.1.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +18 -11
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +42 -0
- package/.next/server/app/_global-error/page.js +2 -2
- 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 +11 -11
- package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
- package/.next/server/app/api/board-annotations/route.js +1 -1
- package/.next/server/app/api/board-layout/route.js +1 -1
- package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
- package/.next/server/app/api/bug-flags/route.js +1 -1
- package/.next/server/app/api/code-graph/position/route.js +1 -1
- package/.next/server/app/api/code-graph/route.js +1 -1
- package/.next/server/app/api/context/feature/route.js +1 -1
- package/.next/server/app/api/context/file/route.js +1 -1
- package/.next/server/app/api/context/route.js +1 -1
- package/.next/server/app/api/db/arrange/route.js +1 -1
- package/.next/server/app/api/db/backfill-access/route.js +1 -1
- package/.next/server/app/api/db/position/route.js +1 -1
- package/.next/server/app/api/db/prune-planned/route.js +1 -1
- package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
- package/.next/server/app/api/db/relations/[id]/route.js +1 -1
- package/.next/server/app/api/db/tables/[id]/route.js +1 -1
- package/.next/server/app/api/draft/approve/route.js +1 -1
- package/.next/server/app/api/draft/route.js +1 -1
- package/.next/server/app/api/draft/status/route.js +1 -1
- package/.next/server/app/api/edges/[id]/route.js +1 -1
- package/.next/server/app/api/edges/route.js +1 -1
- package/.next/server/app/api/endpoints/[id]/route.js +1 -1
- package/.next/server/app/api/entities/route.js +1 -1
- package/.next/server/app/api/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/flags/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/lesson/close/route.js +1 -0
- package/.next/server/app/api/lesson/close/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/close/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/lesson/presence/route.js +1 -0
- package/.next/server/app/api/lesson/presence/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/presence/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/lesson/questions/route.js +1 -0
- package/.next/server/app/api/lesson/questions/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/questions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/lesson/route.js +1 -0
- package/.next/server/app/api/lesson/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/lesson/save/route.js +1 -0
- package/.next/server/app/api/lesson/save/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/save/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/lesson/verdict/route.js +1 -0
- package/.next/server/app/api/lesson/verdict/route.js.nft.json +1 -0
- package/.next/server/app/api/lesson/verdict/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/map/describe/route.js +2 -2
- package/.next/server/app/api/map/files/route.js +1 -1
- package/.next/server/app/api/map/finish/route.js +1 -1
- package/.next/server/app/api/map/route.js +1 -1
- package/.next/server/app/api/map/start/route.js +1 -1
- package/.next/server/app/api/map/touch-active/route.js +1 -1
- package/.next/server/app/api/mention-search/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/route.js +1 -1
- package/.next/server/app/api/nodes/positions/route.js +1 -1
- package/.next/server/app/api/nodes/route.js +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js +1 -1
- package/.next/server/app/api/notes/[id]/route.js +1 -1
- package/.next/server/app/api/notes/route.js +1 -1
- package/.next/server/app/api/open/route.js +1 -1
- package/.next/server/app/api/plan/annotations/route.js +3 -3
- 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 +1 -1
- package/.next/server/app/api/preferences/route.js +1 -1
- package/.next/server/app/api/project-meta/route.js +1 -1
- package/.next/server/app/api/reset/route.js +1 -1
- package/.next/server/app/api/scope-guard/check/route.js +1 -1
- package/.next/server/app/api/share/create/route.js +1 -1
- package/.next/server/app/api/share/route.js +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- package/.next/server/app/api/tab/nav/route.js +1 -1
- package/.next/server/app/api/tab/presence/route.js +1 -1
- package/.next/server/app/api/telemetry/route.js +1 -1
- package/.next/server/app/api/telemetry/stats/route.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/workspace/activate/route.js +1 -1
- package/.next/server/app/api/workspace/route.js +1 -1
- package/.next/server/app/apple-icon.png/route.js +1 -1
- package/.next/server/app/docs/page.js +2 -2
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +11 -11
- package/.next/server/app/docs.segments/_full.segment.rsc +11 -11
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +11 -11
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/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 +11 -11
- package/.next/server/app/feedback.segments/_full.segment.rsc +11 -11
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +11 -11
- package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
- 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 +11 -11
- package/.next/server/app/help.segments/_full.segment.rsc +11 -11
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +11 -11
- package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/help.segments/help.segment.rsc +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +12 -12
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +12 -12
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +11 -11
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/learn/page.js +8 -0
- package/.next/server/app/learn/page.js.nft.json +1 -0
- package/.next/server/app/learn/page_client-reference-manifest.js +1 -0
- 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/s/[token]/page.js +2 -2
- package/.next/server/app/s/[token]/page.js.nft.json +1 -1
- package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +18 -11
- package/.next/server/chunks/2025.js +1 -0
- package/.next/server/chunks/2050.js +1 -1
- package/.next/server/chunks/2994.js +2 -2
- package/.next/server/chunks/4046.js +3 -3
- package/.next/server/chunks/4307.js +1 -1
- package/.next/server/chunks/5683.js +1 -0
- package/.next/server/chunks/{3284.js → 7720.js} +3 -3
- package/.next/server/chunks/9338.js +8 -8
- 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/1276-b84f61ec9c0df862.js +1 -0
- package/.next/static/chunks/1a258343-954e0e6619585d3c.js +2 -0
- package/.next/static/chunks/{8915-fa61a860c63a7c85.js → 2059-fba06ba63ba64522.js} +3 -3
- package/.next/static/chunks/4607-a668ea431c41e60e.js +1 -0
- package/.next/static/chunks/4853-6dc402b4ce452fa5.js +1 -0
- package/.next/static/chunks/app/_global-error/page-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/board-layout/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/code-graph/position/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/code-graph/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/context/feature/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/context/file/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/context/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/arrange/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/backfill-access/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/position/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/prune-planned/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/relations/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/db/tables/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/draft/approve/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/draft/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/draft/status/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/edges/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/edges/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/endpoints/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/entities/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/feedback/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/flags/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/init/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/close/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/presence/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/questions/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/save/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/lesson/verdict/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/describe/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/files/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/finish/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/start/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/map/touch-active/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/mention-search/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/position/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/nodes/positions/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/nodes/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/nodes/subtasks/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/notes/[id]/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/notes/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/open/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/annotations/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/approve/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/history/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/markdown/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/presence/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/plan/verdict/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/project-meta/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/reset/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/scope-guard/check/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/share/create/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/share/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/stream/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/tab/nav/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/tab/presence/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/telemetry/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/telemetry/stats/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/version/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/workspace/activate/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/app/layout-9f0f4d8e4534a62e.js +1 -0
- package/.next/static/chunks/app/learn/page-03acad0a37068966.js +7 -0
- package/.next/static/chunks/app/map/{page-66ec4b62a4153de8.js → page-5cfad64d5feea695.js} +1 -1
- package/.next/static/chunks/app/plan/page-5eacb6b83bd4873d.js +1 -0
- package/.next/static/chunks/app/s/[token]/page-1a350cf50a45500c.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-2390ea0e69e5991f.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2390ea0e69e5991f.js +1 -0
- package/.next/static/css/63986592e2be7d62.css +1 -0
- package/.next/static/hkOIw5DQW9WSwBwZrD8_9/_buildManifest.js +1 -0
- package/.next/trace +43 -42
- package/.next/trace-build +1 -1
- package/.next/types/app/api/lesson/close/route.ts +351 -0
- package/.next/types/app/api/lesson/presence/route.ts +351 -0
- package/.next/types/app/api/lesson/questions/route.ts +351 -0
- package/.next/types/app/api/lesson/route.ts +351 -0
- package/.next/types/app/api/lesson/save/route.ts +351 -0
- package/.next/types/app/api/lesson/verdict/route.ts +351 -0
- package/.next/types/app/learn/page.ts +87 -0
- package/.next/types/routes.d.ts +9 -2
- package/.next/types/validator.ts +63 -0
- package/dist/bin/beacon.js +14 -12
- package/dist/bin/doctor.js +97 -24
- package/dist/bin/hook.js +94 -21
- package/dist/bin/mcp.js +110 -35
- package/dist/bin/plan.js +94 -21
- package/dist/bin/uninstall.js +98 -25
- package/dist/lib/assets.js +84 -14
- package/dist/lib/codex-install.js +97 -24
- package/dist/lib/global-install.js +97 -24
- package/package.json +1 -1
- package/plugin/skills/beacon-explain/SKILL.md +70 -0
- package/.next/server/chunks/2813.js +0 -1
- package/.next/static/chunks/1a258343-6baccd9e573fdfaf.js +0 -2
- package/.next/static/chunks/3845-6fe7e66d4bf82eb5.js +0 -1
- package/.next/static/chunks/4491-0cd79f4195f4b111.js +0 -1
- package/.next/static/chunks/app/_global-error/page-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/board-layout/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/code-graph/position/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/code-graph/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/context/feature/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/context/file/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/context/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/arrange/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/backfill-access/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/position/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/prune-planned/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/relations/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/db/tables/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/draft/approve/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/draft/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/draft/status/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/edges/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/edges/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/endpoints/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/entities/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/feedback/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/flags/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/ingest/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/init/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/describe/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/files/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/finish/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/start/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/map/touch-active/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/mention-search/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/position/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/nodes/positions/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/nodes/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/nodes/subtasks/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/notes/[id]/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/notes/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/open/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/annotations/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/approve/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/history/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/markdown/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/presence/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/plan/verdict/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/preferences/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/project-meta/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/reset/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/scope-guard/check/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/share/create/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/share/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/stream/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/tab/nav/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/tab/presence/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/telemetry/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/telemetry/stats/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/version/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/workspace/activate/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-548a84d85e061550.js +0 -1
- package/.next/static/chunks/app/layout-3115f8503ff00902.js +0 -1
- package/.next/static/chunks/app/plan/page-008565f9049d55c9.js +0 -1
- package/.next/static/chunks/app/s/[token]/page-1c10b26b300faffc.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-548a84d85e061550.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-548a84d85e061550.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-548a84d85e061550.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-548a84d85e061550.js +0 -1
- package/.next/static/css/f871d81e526502c1.css +0 -1
- package/.next/static/fwNWsob4GcVUD5_xV0f1h/_buildManifest.js +0 -1
- /package/.next/static/{fwNWsob4GcVUD5_xV0f1h → hkOIw5DQW9WSwBwZrD8_9}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// File: /home/runner/work/beacon/beacon/app/learn/page.tsx
|
|
2
|
+
import * as entry from '../../../../app/learn/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../app/learn/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_instant?: InstantConfigForTypeCheckInternal
|
|
19
|
+
unstable_dynamicStaleTime?: number
|
|
20
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
21
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
22
|
+
dynamicParams?: boolean
|
|
23
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
24
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
25
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
26
|
+
maxDuration?: number
|
|
27
|
+
|
|
28
|
+
metadata?: any
|
|
29
|
+
generateMetadata?: Function
|
|
30
|
+
viewport?: any
|
|
31
|
+
generateViewport?: Function
|
|
32
|
+
|
|
33
|
+
}, TEntry, ''>>()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// Check the prop type of the entry function
|
|
37
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
38
|
+
|
|
39
|
+
// Check the arguments and return type of the generateMetadata function
|
|
40
|
+
if ('generateMetadata' in entry) {
|
|
41
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Check the arguments and return type of the generateViewport function
|
|
46
|
+
if ('generateViewport' in entry) {
|
|
47
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
52
|
+
if ('generateStaticParams' in entry) {
|
|
53
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
54
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface PageProps {
|
|
58
|
+
params?: Promise<SegmentParams>
|
|
59
|
+
searchParams?: Promise<any>
|
|
60
|
+
}
|
|
61
|
+
export interface LayoutProps {
|
|
62
|
+
children?: React.ReactNode
|
|
63
|
+
|
|
64
|
+
params?: Promise<SegmentParams>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// =============
|
|
68
|
+
// Utility types
|
|
69
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
70
|
+
|
|
71
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
72
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
73
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
74
|
+
|
|
75
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
77
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
82
|
+
|
|
83
|
+
// https://github.com/sindresorhus/type-fest
|
|
84
|
+
type Numeric = number | bigint
|
|
85
|
+
type Zero = 0 | 0n
|
|
86
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
87
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
package/.next/types/routes.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// This file is generated automatically by Next.js
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
|
-
type AppRoutes = "/" | "/docs" | "/feedback" | "/help" | "/map" | "/plan" | "/s/[token]" | "/settings"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/board-annotations" | "/api/board-annotations/[id]" | "/api/board-layout" | "/api/bug-flags" | "/api/bug-flags/[id]" | "/api/code-graph" | "/api/code-graph/position" | "/api/context" | "/api/context/feature" | "/api/context/file" | "/api/db/arrange" | "/api/db/backfill-access" | "/api/db/position" | "/api/db/prune-planned" | "/api/db/reconcile-endpoints" | "/api/db/relations/[id]" | "/api/db/tables/[id]" | "/api/draft" | "/api/draft/approve" | "/api/draft/status" | "/api/edges" | "/api/edges/[id]" | "/api/endpoints/[id]" | "/api/entities" | "/api/feedback" | "/api/feedback/[id]" | "/api/feedback/[id]/vote" | "/api/flags" | "/api/ingest" | "/api/init" | "/api/map" | "/api/map/describe" | "/api/map/files" | "/api/map/finish" | "/api/map/start" | "/api/map/touch-active" | "/api/mention-search" | "/api/nodes" | "/api/nodes/[id]" | "/api/nodes/[id]/position" | "/api/nodes/positions" | "/api/nodes/subtasks" | "/api/notes" | "/api/notes/[id]" | "/api/open" | "/api/plan" | "/api/plan/annotations" | "/api/plan/approve" | "/api/plan/history" | "/api/plan/markdown" | "/api/plan/presence" | "/api/plan/verdict" | "/api/preferences" | "/api/project-meta" | "/api/reset" | "/api/scope-guard/check" | "/api/share" | "/api/share/create" | "/api/stream" | "/api/tab/nav" | "/api/tab/presence" | "/api/telemetry" | "/api/telemetry/stats" | "/api/version" | "/api/workspace" | "/api/workspace/activate"
|
|
4
|
+
type AppRoutes = "/" | "/docs" | "/feedback" | "/help" | "/learn" | "/map" | "/plan" | "/s/[token]" | "/settings"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/board-annotations" | "/api/board-annotations/[id]" | "/api/board-layout" | "/api/bug-flags" | "/api/bug-flags/[id]" | "/api/code-graph" | "/api/code-graph/position" | "/api/context" | "/api/context/feature" | "/api/context/file" | "/api/db/arrange" | "/api/db/backfill-access" | "/api/db/position" | "/api/db/prune-planned" | "/api/db/reconcile-endpoints" | "/api/db/relations/[id]" | "/api/db/tables/[id]" | "/api/draft" | "/api/draft/approve" | "/api/draft/status" | "/api/edges" | "/api/edges/[id]" | "/api/endpoints/[id]" | "/api/entities" | "/api/feedback" | "/api/feedback/[id]" | "/api/feedback/[id]/vote" | "/api/flags" | "/api/ingest" | "/api/init" | "/api/lesson" | "/api/lesson/close" | "/api/lesson/presence" | "/api/lesson/questions" | "/api/lesson/save" | "/api/lesson/verdict" | "/api/map" | "/api/map/describe" | "/api/map/files" | "/api/map/finish" | "/api/map/start" | "/api/map/touch-active" | "/api/mention-search" | "/api/nodes" | "/api/nodes/[id]" | "/api/nodes/[id]/position" | "/api/nodes/positions" | "/api/nodes/subtasks" | "/api/notes" | "/api/notes/[id]" | "/api/open" | "/api/plan" | "/api/plan/annotations" | "/api/plan/approve" | "/api/plan/history" | "/api/plan/markdown" | "/api/plan/presence" | "/api/plan/verdict" | "/api/preferences" | "/api/project-meta" | "/api/reset" | "/api/scope-guard/check" | "/api/share" | "/api/share/create" | "/api/stream" | "/api/tab/nav" | "/api/tab/presence" | "/api/telemetry" | "/api/telemetry/stats" | "/api/version" | "/api/workspace" | "/api/workspace/activate"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -42,6 +42,12 @@ interface ParamMap {
|
|
|
42
42
|
"/api/flags": {}
|
|
43
43
|
"/api/ingest": {}
|
|
44
44
|
"/api/init": {}
|
|
45
|
+
"/api/lesson": {}
|
|
46
|
+
"/api/lesson/close": {}
|
|
47
|
+
"/api/lesson/presence": {}
|
|
48
|
+
"/api/lesson/questions": {}
|
|
49
|
+
"/api/lesson/save": {}
|
|
50
|
+
"/api/lesson/verdict": {}
|
|
45
51
|
"/api/map": {}
|
|
46
52
|
"/api/map/describe": {}
|
|
47
53
|
"/api/map/files": {}
|
|
@@ -81,6 +87,7 @@ interface ParamMap {
|
|
|
81
87
|
"/docs": {}
|
|
82
88
|
"/feedback": {}
|
|
83
89
|
"/help": {}
|
|
90
|
+
"/learn": {}
|
|
84
91
|
"/map": {}
|
|
85
92
|
"/plan": {}
|
|
86
93
|
"/s/[token]": { "token": string; }
|
package/.next/types/validator.ts
CHANGED
|
@@ -74,6 +74,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
74
74
|
type __Unused = __Check
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
// Validate ../../app/learn/page.tsx
|
|
78
|
+
{
|
|
79
|
+
type __IsExpected<Specific extends AppPageConfig<"/learn">> = Specific
|
|
80
|
+
const handler = {} as typeof import("../../app/learn/page.js")
|
|
81
|
+
type __Check = __IsExpected<typeof handler>
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
type __Unused = __Check
|
|
84
|
+
}
|
|
85
|
+
|
|
77
86
|
// Validate ../../app/map/page.tsx
|
|
78
87
|
{
|
|
79
88
|
type __IsExpected<Specific extends AppPageConfig<"/map">> = Specific
|
|
@@ -389,6 +398,60 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
389
398
|
type __Unused = __Check
|
|
390
399
|
}
|
|
391
400
|
|
|
401
|
+
// Validate ../../app/api/lesson/close/route.ts
|
|
402
|
+
{
|
|
403
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson/close">> = Specific
|
|
404
|
+
const handler = {} as typeof import("../../app/api/lesson/close/route.js")
|
|
405
|
+
type __Check = __IsExpected<typeof handler>
|
|
406
|
+
// @ts-ignore
|
|
407
|
+
type __Unused = __Check
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// Validate ../../app/api/lesson/presence/route.ts
|
|
411
|
+
{
|
|
412
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson/presence">> = Specific
|
|
413
|
+
const handler = {} as typeof import("../../app/api/lesson/presence/route.js")
|
|
414
|
+
type __Check = __IsExpected<typeof handler>
|
|
415
|
+
// @ts-ignore
|
|
416
|
+
type __Unused = __Check
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Validate ../../app/api/lesson/questions/route.ts
|
|
420
|
+
{
|
|
421
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson/questions">> = Specific
|
|
422
|
+
const handler = {} as typeof import("../../app/api/lesson/questions/route.js")
|
|
423
|
+
type __Check = __IsExpected<typeof handler>
|
|
424
|
+
// @ts-ignore
|
|
425
|
+
type __Unused = __Check
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// Validate ../../app/api/lesson/route.ts
|
|
429
|
+
{
|
|
430
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson">> = Specific
|
|
431
|
+
const handler = {} as typeof import("../../app/api/lesson/route.js")
|
|
432
|
+
type __Check = __IsExpected<typeof handler>
|
|
433
|
+
// @ts-ignore
|
|
434
|
+
type __Unused = __Check
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// Validate ../../app/api/lesson/save/route.ts
|
|
438
|
+
{
|
|
439
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson/save">> = Specific
|
|
440
|
+
const handler = {} as typeof import("../../app/api/lesson/save/route.js")
|
|
441
|
+
type __Check = __IsExpected<typeof handler>
|
|
442
|
+
// @ts-ignore
|
|
443
|
+
type __Unused = __Check
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// Validate ../../app/api/lesson/verdict/route.ts
|
|
447
|
+
{
|
|
448
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/lesson/verdict">> = Specific
|
|
449
|
+
const handler = {} as typeof import("../../app/api/lesson/verdict/route.js")
|
|
450
|
+
type __Check = __IsExpected<typeof handler>
|
|
451
|
+
// @ts-ignore
|
|
452
|
+
type __Unused = __Check
|
|
453
|
+
}
|
|
454
|
+
|
|
392
455
|
// Validate ../../app/api/map/describe/route.ts
|
|
393
456
|
{
|
|
394
457
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/map/describe">> = Specific
|
package/dist/bin/beacon.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
import{execSync as
|
|
4
|
-
\u25C9 Beacon setup \xB7 ${z}`),console.log(` \u2713 skill: ${
|
|
5
|
-
`)}return{initSkill:
|
|
6
|
-
`+" cd into a repo (or run `git init` there) and try again."),process.exit(1);let
|
|
7
|
-
`+" cd into a repo (or run `git init` there) and try again."),process.exit(1);let G=Z(z),M=J(G),
|
|
3
|
+
import{execSync as F,spawn as c}from"child_process";import{existsSync as f,mkdirSync as d,openSync as p,readFileSync as h,writeFileSync as t}from"fs";import{homedir as l,platform as C}from"os";import{basename as a,dirname as v,join as V}from"path";import{fileURLToPath as n}from"url";var T=v(n(import.meta.url)),E=a(v(T))==="dist",j=E?v(v(T)):v(T),O=process.cwd(),R=process.env.BEACON_HOME||V(l(),".beacon"),x=V(R,"server.json"),A=process.env.PORT||"4319",s=/[\\/]\.claude[\\/]plugins[\\/]/.test(T);if(!process.env.CLAUDE_PLUGIN_ROOT&&s&&f(V(j,".claude-plugin","plugin.json")))process.env.CLAUDE_PLUGIN_ROOT=j;if(!process.env.BEACON_MIGRATIONS_DIR)process.env.BEACON_MIGRATIONS_DIR=V(j,"drizzle");function $(z){if(!E)return V(j,z);return V(j,"dist",z.replace(/\.ts$/,".js"))}var q=process.argv[2];if(q==="mcp")await import($("bin/mcp.ts"));else if(q==="hook")await import($("bin/hook.ts"));else if(q==="guard")await import($("bin/guard.ts"));else if(q==="plan")await import($("bin/plan.ts"));else if(q==="prompt")await import($("bin/prompt.ts"));else if(q==="stop-hook")await import($("bin/stop-hook.ts"));else if(q==="stop")u();else if(q==="remove")await import($("bin/remove.ts"));else if(q==="setup")await P(_()||O);else if(q==="ensure")await zz();else if(q==="init-persist")await i(process.argv[3]);else if(q==="doctor")await import($("bin/doctor.ts"));else if(q==="uninstall")await import($("bin/uninstall.ts"));else if(q==="update")await $z(process.argv.includes("--force")||process.argv.includes("-f"));else if(q==="telemetry")await Zz(process.argv[3]);else if(q==="version"||q==="--version"||q==="-v")console.log(S());else await Xz();async function P(z,X=!1){let{installInitSkill:Z,installRefreshSkill:J,installCodexRepoSkills:K,ensureMcp:Y,ensureWorkflowDoc:G}=await import($("lib/assets.ts")),{selfHealGlobal:M,isPluginManaged:B}=await import($("lib/global-install.ts")),{codexDetected:N}=await import($("lib/codex-install.ts")),Q=await M();if(B())return{initSkill:"",refreshSkill:"",mcp:{path:"",added:!1,updated:!1},codexSkills:[],heal:Q};let{isRegistrableWorkspacePath:W}=await import($("lib/workspaces.ts"));if(!W(z))return{initSkill:"",refreshSkill:"",mcp:{path:"",added:!1,updated:!1},codexSkills:[],heal:Q};let H=Z(z),w=J(z);G(z);let I=Y(z),L=N()?K(z):[];if(X){if(I.added||I.updated)console.log(`[beacon] ${I.added?"registered":"updated"} Beacon MCP in ${I.path} \u2014 restart your agent CLI`+(I.updated?" to apply the longer plan-review timeout.":" to use @beacon mentions."))}else{console.log(`
|
|
4
|
+
\u25C9 Beacon setup \xB7 ${z}`),console.log(` \u2713 skill: ${H}`),console.log(` \u2713 skill: ${w}`);for(let y of L)console.log(` \u2713 skill: ${y}`);console.log(` ${I.added?"\u2713 added ":"\xB7 kept "} Beacon MCP in ${I.path}`),console.log(` \u2192 in this repo, run /beacon-init in your agent (Claude Code or Codex) to map the repo.
|
|
5
|
+
`)}return{initSkill:H,refreshSkill:w,mcp:I,codexSkills:L,heal:Q}}async function i(z){let X=_()||O,{idForPath:Z,isRegistrableWorkspacePath:J,BEACON_WS_PATH_HEADER:K}=await import($("lib/workspaces.ts"));if(!J(X))console.error(`[beacon] refusing to init ${X} \u2014 that's your home directory, not a project.
|
|
6
|
+
`+" cd into a repo (or run `git init` there) and try again."),process.exit(1);let Y="";try{Y=h(z??0,"utf8").trim()}catch(Q){console.error(`[beacon] could not read the init analysis ${z?`from ${z}`:"from stdin"}: ${Q instanceof Error?Q.message:Q}`),process.exit(1)}if(!Y)console.error("[beacon] empty init analysis \u2014 pass the JSON as a file argument (`beacon init-persist analysis.json`) or on stdin."),process.exit(1);await P(X,!0);let G=await k(),M=Z(X),B;try{B=await fetch(`http://localhost:${G}/api/init`,{method:"POST",headers:{"content-type":"application/json","x-beacon-workspace":M,[K]:X},body:Y})}catch(Q){console.error(`[beacon] could not reach the Beacon daemon on port ${G}: ${Q instanceof Error?Q.message:Q}`),process.exit(1)}let N=await B.text();if(!B.ok)console.error(`[beacon] init failed (HTTP ${B.status}): ${N}`),process.exit(1);console.log(`[beacon] mapped ${X} into Beacon: ${N}`),console.log(`[beacon] open the panel \u2192 http://localhost:${G}/map`)}function _(){try{return F("git rev-parse --show-toplevel",{cwd:O,stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return""}}function b(z){try{return process.kill(z,0),!0}catch{return!1}}function D(z){try{return JSON.parse(h(z,"utf8"))}catch{return null}}async function m(z){try{return(await fetch(z)).ok}catch{return!1}}async function o(z,X=60){for(let Z=0;Z<X;Z++){if(await m(z))return!0;await new Promise((J)=>setTimeout(J,500))}return!1}function r(z){d(R,{recursive:!0});let X=p(V(R,"server.log"),"a"),Z={...process.env,PORT:z,BEACON_NO_OPEN:"1",BEACON_MIGRATIONS_DIR:V(j,"drizzle")};delete Z.BEACON_REPO,delete Z.BEACON_DATA_DIR,delete Z.DATABASE_URL;let K=c("bun",E?["run","start"]:["run","dev"],{cwd:j,env:Z,detached:!0,stdio:["ignore",X,X]});K.unref();let Y={pid:K.pid??0,port:z};return t(x,JSON.stringify(Y)),Y}async function k(){let z=D(x);if(z&&b(z.pid)&&await m(`http://localhost:${z.port}/api/workspace`))return z.port;let{findAvailablePort:X}=await import($("lib/daemon-port.ts")),Z=String(await X(Number(A)));console.log(Z===A?"[beacon] starting the Beacon server\u2026":`[beacon] port ${A} is busy \u2014 starting the Beacon server on port ${Z}\u2026`);let{port:J}=r(Z);if(!await o(`http://localhost:${J}/api/workspace`))console.log("[beacon] (server is taking a while \u2014 it may still be compiling)");return J}function e(z){if(process.env.BEACON_NO_OPEN)return;let X=C()==="darwin"?"open":C()==="win32"?"start":"xdg-open";try{F(`${X} "${z}"`,{stdio:"ignore"})}catch{}}async function zz(){let z=_()||O,{registerWorkspaceExplicit:X,idForPath:Z,ensureWorkspaceDb:J,isRegistrableWorkspacePath:K}=await import($("lib/workspaces.ts"));if(!K(z))return;let Y=Z(z);await J(Y),X(z);let G=await k();console.log(`[beacon] ready \u2192 http://localhost:${G}/map?ws=${Y}`)}async function Xz(){let z=_()||O,{registerWorkspaceExplicit:X,idForPath:Z,dataDirFor:J,ensureWorkspaceDb:K,isRegistrableWorkspacePath:Y}=await import($("lib/workspaces.ts"));if(!Y(z))console.error(`[beacon] refusing to open Beacon in ${z} \u2014 that's your home directory, not a project.
|
|
7
|
+
`+" cd into a repo (or run `git init` there) and try again."),process.exit(1);let G=Z(z),M=J(G),B=!f(V(M,"db.sqlite"));if(B)console.log(`[beacon] first run for ${z} \u2014 creating database\u2026`);let N=await K(G);if(!N.ok)console.error(`[beacon] failed to provision database: ${N.error}`);if(B)console.log("[beacon] tip: already have code here? run `/beacon-init` in your agent (Claude Code or Codex) to map the project.");let{heal:Q}=await P(z,!0),W=[];if(Q.skillsAdded.length)W.push(`skills ${Q.skillsAdded.join(", ")}`);if(Q.hooksAdded)W.push(`${Q.hooksAdded} Claude Code hook${Q.hooksAdded===1?"":"s"}`);if(Q.claudeMdBlockTouched)W.push("global CLAUDE.md block");if(W.length)console.log(`[beacon] wired into ~/.claude/: ${W.join(" + ")}.`);let H=Q.codex;if(H){let U=[];if(H.skillsAdded.length)U.push(`skills ${H.skillsAdded.join(", ")}`);if(H.hooksAdded)U.push(`${H.hooksAdded} Codex hook${H.hooksAdded===1?"":"s"}`);if(H.agentsMdBlockTouched)U.push("global AGENTS.md block");if(H.mcp.added)U.push("MCP entry in config.toml");if(U.length)console.log(`[beacon] wired into ~/.codex/: ${U.join(" + ")}.`);if(H.mcp.error)console.log(`[beacon] codex MCP not wired: ${H.mcp.error}`)}try{let U=await import($("lib/telemetry.ts"));if(!U.telemetryStatus().machineId){let g=U.telemetryStatus().enabled;console.log(`[beacon] telemetry: Beacon sends an anonymous heartbeat (random machine id, version, OS,
|
|
8
8
|
`+` architecture \u2014 never repo names, paths, or code) at most every 12h to count
|
|
9
9
|
`+` active installs. Opt out: \`beacon telemetry off\`, BEACON_TELEMETRY_DISABLED=1,
|
|
10
|
-
or DO_NOT_TRACK=1. Details: beacon telemetry status.${g?"":" (currently disabled by your env)"}`),U.ensureTelemetryId()}}catch{}X(z);let
|
|
10
|
+
or DO_NOT_TRACK=1. Details: beacon telemetry status.${g?"":" (currently disabled by your env)"}`),U.ensureTelemetryId()}}catch{}X(z);let I=`http://localhost:${await k()}`,L=`/map?ws=${G}`,y=`${I}/api/workspace/activate?id=${G}&redirect=${encodeURIComponent(L)}`;if(console.log(`
|
|
11
11
|
\u25C9 Beacon
|
|
12
12
|
repo: ${z}
|
|
13
13
|
data: ${M}
|
|
14
|
-
url: ${
|
|
15
|
-
`),console.log(" (the server keeps running in the background \u2014 `beacon stop` to stop it)\n"),await fetch(`${
|
|
16
|
-
`);else
|
|
14
|
+
url: ${I}
|
|
15
|
+
`),console.log(" (the server keeps running in the background \u2014 `beacon stop` to stop it)\n"),await fetch(`${I}/api/tab/presence`,{headers:{"x-beacon-workspace":G}}).then((U)=>U.json()).then((U)=>!!U?.live).catch(()=>!1))await fetch(`${I}/api/tab/nav`,{method:"POST",headers:{"content-type":"application/json","x-beacon-workspace":G},body:JSON.stringify({path:L})}).catch(()=>{}),console.log(` \u21BB reusing your open Beacon tab \u2014 switch to your browser.
|
|
16
|
+
`);else e(y)}function S(){return D(V(j,"package.json"))?.version??"0.0.0"}async function Zz(z){let X=await import($("lib/telemetry.ts"));if(z==="on"||z==="off"){X.setTelemetryEnabled(z==="on"),console.log(`[beacon] telemetry ${z==="on"?"enabled":"disabled"}.`);return}if(z&&z!=="status")console.error("usage: beacon telemetry [on|off|status]"),process.exit(1);let Z=X.telemetryStatus(),J=Z.reason==="env:BEACON_TELEMETRY_DISABLED"?" (BEACON_TELEMETRY_DISABLED=1)":Z.reason==="env:DO_NOT_TRACK"?" (DO_NOT_TRACK)":Z.reason==="preference"?" (beacon telemetry off)":"";if(console.log(`
|
|
17
17
|
\u25C9 Beacon telemetry: ${Z.enabled?"enabled":"disabled"}${J}`),console.log(` machine id: ${Z.machineId??"(not generated yet \u2014 created on first `beacon` run)"}`),Z.machineId)console.log(` payload: ${JSON.stringify(X.heartbeatPayload(S()))}`);console.log(` sent at most every 12h while the daemon runs \u2014 never repo names, paths, or code.
|
|
18
|
-
`+" toggle: `beacon telemetry on|off` \xB7 env: BEACON_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1\n")}async function
|
|
19
|
-
npm i -g trybeacon@latest`);return}let K=null;try{let
|
|
20
|
-
${Z}`),process.exitCode=1;return}
|
|
18
|
+
`+" toggle: `beacon telemetry on|off` \xB7 env: BEACON_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1\n")}async function $z(z){let X=S(),{INSTALL_COMMAND:Z,NPM_LATEST_URL:J}=await import($("lib/release.ts"));if(C()==="win32"){console.log(`[beacon] current version v${X}.`),console.log(`[beacon] on Windows, update with your package manager:
|
|
19
|
+
npm i -g trybeacon@latest`);return}let K=null;try{let Y=await fetch(J);if(Y.ok)K=(await Y.json()).version??null}catch{}if(K&&!z){let{isNewerVersion:Y}=await import($("lib/semver.ts"));if(!Y(K,X)){console.log(`[beacon] already on the latest version (v${X}).`),console.log(" run `beacon update --force` to reinstall anyway.");return}}console.log(K?`[beacon] updating Beacon v${X} \u2192 v${K}\u2026`:`[beacon] reinstalling Beacon (current v${X})\u2026`);try{F(Z,{stdio:"inherit"})}catch{console.error(`[beacon] update failed. Run it manually:
|
|
20
|
+
${Z}`),process.exitCode=1;return}try{F("beacon setup",{stdio:"inherit"})}catch{}await Qz(),u(),console.log("[beacon] updated. Run `beacon` to relaunch on the new version.")}async function Qz(){let{installedBeaconPlugin:z}=await import($("lib/global-install.ts")),X=z();if(!X)return;try{F("command -v claude",{stdio:"ignore"})}catch{console.log(`[beacon] Beacon plugin detected \u2014 update it with:
|
|
21
|
+
claude plugin update ${X.key}`);return}console.log(`[beacon] updating the Beacon Claude Code plugin (${X.key})\u2026`);try{if(X.marketplace)F(`claude plugin marketplace update ${X.marketplace}`,{stdio:"inherit"});F(`claude plugin update ${X.key}`,{stdio:"inherit"}),console.log("[beacon] plugin updated \u2014 restart your agent to apply.")}catch{console.log(`[beacon] couldn't auto-update the plugin. Run:
|
|
22
|
+
claude plugin update ${X.key}`)}}function u(){let z=D(x);if(z&&b(z.pid))try{try{process.kill(-z.pid)}catch{process.kill(z.pid)}console.log(`[beacon] stopped the server (pid ${z.pid}).`)}catch{console.log("[beacon] could not stop the server.")}else console.log("[beacon] no server running.")}
|