trybeacon 0.1.72 → 0.1.74
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 +17 -9
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +54 -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.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +23 -22
- package/.next/server/app/_not-found.segments/_full.segment.rsc +23 -22
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +12 -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/ask/answer/route.js +1 -0
- package/.next/server/app/api/ask/answer/route.js.nft.json +1 -0
- package/.next/server/app/api/ask/answer/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/ask/route.js +1 -0
- package/.next/server/app/api/ask/route.js.nft.json +1 -0
- package/.next/server/app/api/ask/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/ask/verdict/route.js +1 -0
- package/.next/server/app/api/ask/verdict/route.js.nft.json +1 -0
- package/.next/server/app/api/ask/verdict/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
- package/.next/server/app/api/board-annotations/route.js +1 -1
- package/.next/server/app/api/board-layout/route.js +1 -1
- package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
- package/.next/server/app/api/bug-flags/route.js +1 -1
- package/.next/server/app/api/changes/comment/answer/route.js +4 -0
- package/.next/server/app/api/changes/comment/answer/route.js.nft.json +1 -0
- package/.next/server/app/api/changes/comment/answer/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/changes/comment/claim/route.js +4 -0
- package/.next/server/app/api/changes/comment/claim/route.js.nft.json +1 -0
- package/.next/server/app/api/changes/comment/claim/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/changes/comment/route.js +4 -0
- package/.next/server/app/api/changes/comment/route.js.nft.json +1 -0
- package/.next/server/app/api/changes/comment/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/changes/quality/route.js +1 -0
- package/.next/server/app/api/changes/quality/route.js.nft.json +1 -0
- package/.next/server/app/api/changes/quality/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/changes/route.js +1 -0
- package/.next/server/app/api/{flags → changes}/route.js.nft.json +1 -1
- package/.next/server/app/api/changes/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/changes/viewed/route.js +1 -0
- package/.next/server/app/api/changes/viewed/route.js.nft.json +1 -0
- package/.next/server/app/api/changes/viewed/route_client-reference-manifest.js +1 -0
- 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 -9
- package/.next/server/app/api/context/route.js.nft.json +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/position/route.js.nft.json +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/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/route.js +1 -1
- package/.next/server/app/api/draft/route.js.nft.json +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/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/ingest/route.js +1 -9
- package/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +1 -9
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/lesson/close/route.js +1 -1
- package/.next/server/app/api/lesson/presence/route.js +1 -1
- package/.next/server/app/api/lesson/questions/route.js +1 -1
- package/.next/server/app/api/lesson/route.js +1 -1
- package/.next/server/app/api/lesson/save/route.js +1 -1
- package/.next/server/app/api/lesson/verdict/route.js +1 -1
- package/.next/server/app/api/map/describe/route.js +1 -9
- 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/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]/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 +1 -9
- package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/history/route.js +1 -1
- package/.next/server/app/api/plan/markdown/route.js +1 -1
- package/.next/server/app/api/plan/markdown/route.js.nft.json +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/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/verdict/route.js +1 -1
- package/.next/server/app/api/plan/verdict/route.js.nft.json +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 +4 -1
- package/.next/server/app/api/scope-guard/check/route.js.nft.json +1 -1
- package/.next/server/app/api/share/create/route.js +1 -1
- package/.next/server/app/api/share/create/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +24 -23
- package/.next/server/app/docs.segments/_full.segment.rsc +24 -23
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +12 -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/help/page.js +2 -2
- package/.next/server/app/help/page.js.nft.json +1 -1
- package/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/server/app/help.html +1 -1
- package/.next/server/app/help.rsc +32 -31
- package/.next/server/app/help.segments/_full.segment.rsc +32 -31
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +12 -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 +22 -21
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +22 -21
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +12 -11
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/learn/page.js +3 -3
- package/.next/server/app/learn/page.js.nft.json +1 -1
- package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
- package/.next/server/app/map/page.js +2 -2
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +12 -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.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +17 -9
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/2031.js +1 -0
- package/.next/server/chunks/230.js +1 -0
- package/.next/server/chunks/2693.js +8 -0
- package/.next/server/chunks/374.js +1 -0
- package/.next/server/chunks/5295.js +1 -0
- package/.next/server/chunks/{4700.js → 5704.js} +2 -2
- package/.next/server/chunks/6469.js +10 -0
- package/.next/server/chunks/6962.js +1 -0
- package/.next/server/chunks/8227.js +1 -0
- package/.next/server/chunks/8674.js +7 -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/3151-861a6caa40f70f79.js +1 -0
- package/.next/static/chunks/3908-80efc60050779adf.js +1 -0
- package/.next/static/chunks/5697-5b9719b81806b4cf.js +1 -0
- package/.next/static/chunks/654-8e68a43e4c589e9c.js +1 -0
- package/.next/static/chunks/7424-d7fa15ef452064dd.js +1 -0
- package/.next/static/chunks/app/_global-error/page-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/ask/answer/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/ask/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/ask/verdict/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/board-layout/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/bug-flags/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/answer/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/claim/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/comment/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/quality/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/changes/viewed/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/code-graph/position/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/code-graph/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/context/feature/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/context/file/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/context/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/arrange/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/backfill-access/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/position/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/prune-planned/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/relations/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/db/tables/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/draft/approve/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/draft/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/draft/status/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/edges/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/edges/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/endpoints/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/entities/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/init/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/close/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/presence/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/questions/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/save/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/lesson/verdict/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/describe/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/files/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/finish/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/start/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/map/touch-active/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/mention-search/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/position/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/nodes/positions/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/nodes/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/nodes/subtasks/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/notes/[id]/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/notes/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/open/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/annotations/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/approve/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/history/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/markdown/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/presence/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/plan/verdict/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/project-meta/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/reset/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/scope-guard/check/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/share/create/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/share/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/stream/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/tab/nav/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/tab/presence/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/telemetry/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/telemetry/stats/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/version/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/workspace/activate/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/app/layout-f908dc26e06f4302.js +1 -0
- package/.next/static/chunks/app/learn/{page-e5bd3257170098e7.js → page-bc40746566d115e5.js} +1 -1
- package/.next/static/chunks/app/map/{page-5ab46e5ea28ecd79.js → page-233ccd830873114b.js} +1 -1
- package/.next/static/chunks/app/plan/page-8ec1e1d8ea40686a.js +11 -0
- package/.next/static/chunks/app/s/[token]/{page-8e4ffccdf7cd0309.js → page-2a3f04bc3f60ec49.js} +1 -1
- package/.next/static/chunks/app/settings/page-a751eabdd933f685.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d54a69e7dc6b4008.js +1 -0
- package/.next/static/chunks/{webpack-de4a0d9611ec2cad.js → webpack-6c27b0ed1ac1459c.js} +1 -1
- package/.next/static/css/60048003a8c96562.css +1 -0
- package/.next/static/css/a5d17568738ef1e9.css +1 -0
- package/.next/static/yescmIM6BeSzGgwZ-Dwpq/_buildManifest.js +1 -0
- package/.next/trace +46 -43
- package/.next/trace-build +1 -1
- package/.next/types/app/api/ask/answer/route.ts +351 -0
- package/.next/types/app/api/{flags → ask}/route.ts +3 -3
- package/.next/types/app/api/ask/verdict/route.ts +351 -0
- package/.next/types/app/api/changes/comment/answer/route.ts +351 -0
- package/.next/types/app/api/changes/comment/claim/route.ts +351 -0
- package/.next/types/app/api/changes/comment/route.ts +351 -0
- package/.next/types/app/api/changes/quality/route.ts +351 -0
- package/.next/types/app/api/changes/route.ts +351 -0
- package/.next/types/app/api/changes/viewed/route.ts +351 -0
- package/.next/types/routes.d.ts +10 -2
- package/.next/types/validator.ts +81 -9
- package/bun.lock +54 -0
- package/dist/bin/answer.js +8 -0
- package/dist/bin/ask.js +5 -0
- package/dist/bin/beacon.js +5 -5
- package/dist/bin/doctor.js +36 -35
- package/dist/bin/guard.js +1 -1
- package/dist/bin/hook.js +33 -32
- package/dist/bin/mcp.js +45 -44
- package/dist/bin/plan.js +36 -35
- package/dist/bin/remove.js +6 -6
- package/dist/bin/stop-hook.js +7 -3
- package/dist/bin/uninstall.js +35 -34
- package/dist/lib/assets.js +25 -24
- package/dist/lib/codex-install.js +32 -31
- package/dist/lib/global-install.js +33 -32
- package/dist/lib/telemetry.js +1 -1
- package/dist/lib/workspaces.js +1 -1
- package/package.json +3 -1
- package/plugin/skills/beacon-plan/SKILL.md +5 -4
- package/.next/server/app/api/flags/route.js +0 -1
- package/.next/server/app/api/flags/route_client-reference-manifest.js +0 -1
- package/.next/server/chunks/3098.js +0 -1
- package/.next/server/chunks/3221.js +0 -5
- package/.next/server/chunks/4307.js +0 -1
- package/.next/server/chunks/5719.js +0 -1
- package/.next/server/chunks/7604.js +0 -1
- package/.next/static/chunks/2231-63ad38ec8fb7cb6f.js +0 -1
- package/.next/static/chunks/2416-dbbbff4e4c9abad1.js +0 -1
- package/.next/static/chunks/766-242213d211df0afd.js +0 -1
- package/.next/static/chunks/8997-78a359d0d238622e.js +0 -1
- package/.next/static/chunks/app/_global-error/page-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/board-annotations/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/board-layout/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/bug-flags/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/code-graph/position/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/code-graph/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/context/feature/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/context/file/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/context/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/arrange/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/backfill-access/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/position/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/prune-planned/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/relations/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/db/tables/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/draft/approve/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/draft/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/draft/status/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/edges/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/edges/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/endpoints/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/entities/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/flags/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/ingest/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/init/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/close/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/presence/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/questions/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/save/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/lesson/verdict/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/describe/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/files/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/finish/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/start/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/map/touch-active/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/mention-search/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/position/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/nodes/positions/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/nodes/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/nodes/subtasks/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/notes/[id]/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/notes/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/open/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/annotations/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/approve/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/history/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/markdown/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/presence/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/plan/verdict/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/preferences/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/project-meta/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/reset/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/scope-guard/check/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/share/create/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/share/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/stream/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/tab/nav/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/tab/presence/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/telemetry/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/telemetry/stats/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/version/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/workspace/activate/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/app/layout-d3b7276f116dce46.js +0 -1
- package/.next/static/chunks/app/plan/page-948f3eca400e746a.js +0 -1
- package/.next/static/chunks/app/settings/page-7e176d120b1effa9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-93569b5eb93a61e9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-93569b5eb93a61e9.js +0 -1
- package/.next/static/css/446974879473fd01.css +0 -1
- package/.next/static/lnOOQsWRymiliRmMEQ95F/_buildManifest.js +0 -1
- /package/.next/static/{lnOOQsWRymiliRmMEQ95F → yescmIM6BeSzGgwZ-Dwpq}/_ssgManifest.js +0 -0
package/bun.lock
CHANGED
|
@@ -38,8 +38,10 @@
|
|
|
38
38
|
"next": "16.2.7",
|
|
39
39
|
"radix-ui": "^1.4.3",
|
|
40
40
|
"react": "19.2.4",
|
|
41
|
+
"react-diff-view": "^3.3.3",
|
|
41
42
|
"react-dom": "19.2.4",
|
|
42
43
|
"react-hook-form": "^7.77.0",
|
|
44
|
+
"refractor": "^5.0.0",
|
|
43
45
|
"server-only": "^0.0.1",
|
|
44
46
|
"shadcn": "^4.10.0",
|
|
45
47
|
"tailwind-merge": "^3.6.0",
|
|
@@ -669,12 +671,16 @@
|
|
|
669
671
|
|
|
670
672
|
"@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="],
|
|
671
673
|
|
|
674
|
+
"@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
|
|
675
|
+
|
|
672
676
|
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
|
|
673
677
|
|
|
674
678
|
"@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="],
|
|
675
679
|
|
|
676
680
|
"@types/node": ["@types/node@20.19.41", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ=="],
|
|
677
681
|
|
|
682
|
+
"@types/prismjs": ["@types/prismjs@1.26.6", "", {}, "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw=="],
|
|
683
|
+
|
|
678
684
|
"@types/react": ["@types/react@19.2.16", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w=="],
|
|
679
685
|
|
|
680
686
|
"@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
|
|
@@ -683,6 +689,8 @@
|
|
|
683
689
|
|
|
684
690
|
"@types/statuses": ["@types/statuses@2.0.6", "", {}, "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA=="],
|
|
685
691
|
|
|
692
|
+
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
|
|
693
|
+
|
|
686
694
|
"@types/use-sync-external-store": ["@types/use-sync-external-store@0.0.6", "", {}, "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg=="],
|
|
687
695
|
|
|
688
696
|
"@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="],
|
|
@@ -859,6 +867,12 @@
|
|
|
859
867
|
|
|
860
868
|
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
|
861
869
|
|
|
870
|
+
"character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="],
|
|
871
|
+
|
|
872
|
+
"character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="],
|
|
873
|
+
|
|
874
|
+
"character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="],
|
|
875
|
+
|
|
862
876
|
"chart.js": ["chart.js@4.5.1", "", { "dependencies": { "@kurkle/color": "^0.3.0" } }, "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw=="],
|
|
863
877
|
|
|
864
878
|
"chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
|
|
@@ -869,6 +883,8 @@
|
|
|
869
883
|
|
|
870
884
|
"classcat": ["classcat@5.0.5", "", {}, "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w=="],
|
|
871
885
|
|
|
886
|
+
"classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="],
|
|
887
|
+
|
|
872
888
|
"cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="],
|
|
873
889
|
|
|
874
890
|
"cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="],
|
|
@@ -887,6 +903,8 @@
|
|
|
887
903
|
|
|
888
904
|
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
|
889
905
|
|
|
906
|
+
"comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="],
|
|
907
|
+
|
|
890
908
|
"commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="],
|
|
891
909
|
|
|
892
910
|
"concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
|
|
@@ -947,6 +965,8 @@
|
|
|
947
965
|
|
|
948
966
|
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
|
949
967
|
|
|
968
|
+
"decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="],
|
|
969
|
+
|
|
950
970
|
"decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="],
|
|
951
971
|
|
|
952
972
|
"dedent": ["dedent@1.7.2", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA=="],
|
|
@@ -983,6 +1003,8 @@
|
|
|
983
1003
|
|
|
984
1004
|
"diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="],
|
|
985
1005
|
|
|
1006
|
+
"diff-match-patch": ["diff-match-patch@1.0.5", "", {}, "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="],
|
|
1007
|
+
|
|
986
1008
|
"doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="],
|
|
987
1009
|
|
|
988
1010
|
"dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="],
|
|
@@ -1189,6 +1211,8 @@
|
|
|
1189
1211
|
|
|
1190
1212
|
"giget": ["giget@3.2.0", "", { "bin": { "giget": "dist/cli.mjs" } }, "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A=="],
|
|
1191
1213
|
|
|
1214
|
+
"gitdiff-parser": ["gitdiff-parser@0.3.1", "", {}, "sha512-YQJnY8aew65id8okGxKCksH3efDCJ9HzV7M9rsvd65habf39Pkh4cgYJ27AaoDMqo1X98pgNJhNMrm/kpV7UVQ=="],
|
|
1215
|
+
|
|
1192
1216
|
"github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="],
|
|
1193
1217
|
|
|
1194
1218
|
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
|
|
@@ -1221,6 +1245,10 @@
|
|
|
1221
1245
|
|
|
1222
1246
|
"hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="],
|
|
1223
1247
|
|
|
1248
|
+
"hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="],
|
|
1249
|
+
|
|
1250
|
+
"hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="],
|
|
1251
|
+
|
|
1224
1252
|
"headers-polyfill": ["headers-polyfill@5.0.1", "", { "dependencies": { "@types/set-cookie-parser": "^2.4.10", "set-cookie-parser": "^3.0.1" } }, "sha512-1TJ6Fih/b8h5TIcv+1+Hw0PDQWJTKDKzFZzcKOiW1wJza3XoAQlkCuXLbymPYB8+ZQyw8mHvdw560e8zVFIWyA=="],
|
|
1225
1253
|
|
|
1226
1254
|
"hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
|
|
@@ -1257,6 +1285,10 @@
|
|
|
1257
1285
|
|
|
1258
1286
|
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
|
|
1259
1287
|
|
|
1288
|
+
"is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="],
|
|
1289
|
+
|
|
1290
|
+
"is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
|
|
1291
|
+
|
|
1260
1292
|
"is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="],
|
|
1261
1293
|
|
|
1262
1294
|
"is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="],
|
|
@@ -1277,6 +1309,8 @@
|
|
|
1277
1309
|
|
|
1278
1310
|
"is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="],
|
|
1279
1311
|
|
|
1312
|
+
"is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="],
|
|
1313
|
+
|
|
1280
1314
|
"is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
|
|
1281
1315
|
|
|
1282
1316
|
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
|
@@ -1289,6 +1323,8 @@
|
|
|
1289
1323
|
|
|
1290
1324
|
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
|
1291
1325
|
|
|
1326
|
+
"is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="],
|
|
1327
|
+
|
|
1292
1328
|
"is-in-ssh": ["is-in-ssh@1.0.0", "", {}, "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw=="],
|
|
1293
1329
|
|
|
1294
1330
|
"is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
|
|
@@ -1415,6 +1451,8 @@
|
|
|
1415
1451
|
|
|
1416
1452
|
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
|
|
1417
1453
|
|
|
1454
|
+
"lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="],
|
|
1455
|
+
|
|
1418
1456
|
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
|
|
1419
1457
|
|
|
1420
1458
|
"log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="],
|
|
@@ -1545,6 +1583,8 @@
|
|
|
1545
1583
|
|
|
1546
1584
|
"parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
|
|
1547
1585
|
|
|
1586
|
+
"parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="],
|
|
1587
|
+
|
|
1548
1588
|
"parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="],
|
|
1549
1589
|
|
|
1550
1590
|
"parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="],
|
|
@@ -1599,6 +1639,8 @@
|
|
|
1599
1639
|
|
|
1600
1640
|
"proper-lockfile": ["proper-lockfile@4.1.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="],
|
|
1601
1641
|
|
|
1642
|
+
"property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="],
|
|
1643
|
+
|
|
1602
1644
|
"prosemirror-changeset": ["prosemirror-changeset@2.4.1", "", { "dependencies": { "prosemirror-transform": "^1.0.0" } }, "sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw=="],
|
|
1603
1645
|
|
|
1604
1646
|
"prosemirror-commands": ["prosemirror-commands@1.7.1", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.10.2" } }, "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w=="],
|
|
@@ -1649,6 +1691,8 @@
|
|
|
1649
1691
|
|
|
1650
1692
|
"react": ["react@19.2.4", "", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="],
|
|
1651
1693
|
|
|
1694
|
+
"react-diff-view": ["react-diff-view@3.3.3", "", { "dependencies": { "classnames": "^2.3.2", "diff-match-patch": "^1.0.5", "gitdiff-parser": "^0.3.1", "lodash": "^4.17.21", "shallow-equal": "^3.1.0", "warning": "^4.0.3" }, "peerDependencies": { "react": ">=16.14.0" } }, "sha512-CPveApk6n7ZbkW7T6PoptR7LWAvD9hohTHZ7WnKnu3GZkTfUB5rvg486apPo94iYVi4fZd3Nt+rtBZ5877exoQ=="],
|
|
1695
|
+
|
|
1652
1696
|
"react-dom": ["react-dom@19.2.4", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.4" } }, "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ=="],
|
|
1653
1697
|
|
|
1654
1698
|
"react-hook-form": ["react-hook-form@7.77.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17 || ^18 || ^19" } }, "sha512-Sslh9YDYc0GDlWT/lxasnIduNo4v3yyvqRGvmGKUre5AFjDs/HV9/OafHGD8d+sB2yoL4UIL9L8X9i0WlZZebg=="],
|
|
@@ -1669,6 +1713,8 @@
|
|
|
1669
1713
|
|
|
1670
1714
|
"reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="],
|
|
1671
1715
|
|
|
1716
|
+
"refractor": ["refractor@5.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/prismjs": "^1.0.0", "hastscript": "^9.0.0", "parse-entities": "^4.0.0" } }, "sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw=="],
|
|
1717
|
+
|
|
1672
1718
|
"regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="],
|
|
1673
1719
|
|
|
1674
1720
|
"remeda": ["remeda@2.33.4", "", {}, "sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ=="],
|
|
@@ -1735,6 +1781,8 @@
|
|
|
1735
1781
|
|
|
1736
1782
|
"shadcn": ["shadcn@4.10.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "@modelcontextprotocol/sdk": "^1.26.0", "@types/validate-npm-package-name": "^4.0.2", "browserslist": "^4.26.2", "commander": "^14.0.0", "cosmiconfig": "^9.0.0", "dedent": "^1.6.0", "deepmerge": "^4.3.1", "diff": "^8.0.2", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "https-proxy-agent": "^7.0.6", "kleur": "^4.1.5", "msw": "^2.10.4", "node-fetch": "^3.3.2", "open": "^11.0.0", "ora": "^8.2.0", "postcss": "^8.5.6", "postcss-selector-parser": "^7.1.0", "prompts": "^2.4.2", "recast": "^0.23.11", "stringify-object": "^5.0.0", "tailwind-merge": "^3.0.1", "ts-morph": "^26.0.0", "tsconfig-paths": "^4.2.0", "validate-npm-package-name": "^7.0.1", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.6" }, "bin": { "shadcn": "dist/index.js" } }, "sha512-84IJhUsK0xqSCRJx3QxyZe2NpUXj2Nwk8Vc8Ow/tCOND3yz4CT6uU4655vqicNXhzG9Q1cyUt+TBl2SiCJwNgg=="],
|
|
1737
1783
|
|
|
1784
|
+
"shallow-equal": ["shallow-equal@3.1.0", "", {}, "sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg=="],
|
|
1785
|
+
|
|
1738
1786
|
"sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="],
|
|
1739
1787
|
|
|
1740
1788
|
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
|
|
@@ -1763,6 +1811,8 @@
|
|
|
1763
1811
|
|
|
1764
1812
|
"source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="],
|
|
1765
1813
|
|
|
1814
|
+
"space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
|
|
1815
|
+
|
|
1766
1816
|
"sqlstring": ["sqlstring@2.3.3", "", {}, "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="],
|
|
1767
1817
|
|
|
1768
1818
|
"stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="],
|
|
@@ -1901,6 +1951,8 @@
|
|
|
1901
1951
|
|
|
1902
1952
|
"w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="],
|
|
1903
1953
|
|
|
1954
|
+
"warning": ["warning@4.0.3", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w=="],
|
|
1955
|
+
|
|
1904
1956
|
"web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
|
|
1905
1957
|
|
|
1906
1958
|
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
|
@@ -2127,6 +2179,8 @@
|
|
|
2127
2179
|
|
|
2128
2180
|
"ora/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
|
|
2129
2181
|
|
|
2182
|
+
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
|
|
2183
|
+
|
|
2130
2184
|
"prebuild-install/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
|
|
2131
2185
|
|
|
2132
2186
|
"prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var d=Object.defineProperty;var o=(Q)=>Q;function a(Q,X){this[Q]=o.bind(null,X)}var t=(Q,X)=>{for(var Z in X)d(Q,Z,{get:X[Z],enumerable:!0,configurable:!0,set:a.bind(X,Z)})};var r=(Q,X)=>()=>(Q&&(X=Q(Q=0)),X);var R={};t(R,{provisionDb:()=>BQ});import{createClient as i}from"@libsql/client";import{drizzle as e}from"drizzle-orm/libsql";import{migrate as QQ}from"drizzle-orm/libsql/migrator";import{readMigrationFiles as XQ}from"drizzle-orm/migrator";import{dirname as u,join as ZQ}from"path";import{fileURLToPath as $Q}from"url";async function z(Q,X){return(await Q.execute({sql:"SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?",args:[X]})).rows.length>0}async function VQ(Q,X){let Z=await Q.execute(`PRAGMA table_info("${X}")`);return new Set(Z.rows.map(($)=>String($.name)))}async function I(Q){if(!await z(Q,"__drizzle_migrations"))return 0;let X=await Q.execute('SELECT count(*) AS n FROM "__drizzle_migrations"');return Number(X.rows[0]?.n??0)}async function KQ(Q){for(let[X,Z]of Object.entries(GQ)){if(!await z(Q,X))continue;let $=await VQ(Q,X);for(let J of Z){if(!$.has(J))continue;await Q.execute(`UPDATE "${X}" SET "${J}" = CAST((julianday("${J}") - 2440587.5) * 86400000 AS INTEGER) WHERE typeof("${J}") = 'text'`)}}}async function BQ(Q,X=YQ){let Z=i({url:Q});try{await Z.execute("PRAGMA journal_mode = WAL;"),await Z.execute("PRAGMA foreign_keys = ON;"),await Z.execute("PRAGMA busy_timeout = 5000;");let $=await z(Z,"__drizzle_migrations"),J=await z(Z,"Node"),Y=!1;if(J&&!$){let B=XQ({migrationsFolder:X})[0];if(B)await Z.execute('CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (id SERIAL PRIMARY KEY, hash text NOT NULL, created_at numeric)'),await Z.execute({sql:'INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES (?, ?)',args:[B.hash,B.folderMillis]}),Y=!0}let V=await I(Z);if(await QQ(e(Z),{migrationsFolder:X}),await I(Z)>V)Y=!0;return await KQ(Z),{migrated:Y}}finally{Z.close()}}var JQ,YQ,GQ;var D=r(async()=>{JQ=u(u(u($Q(import.meta.url)))),YQ=process.env.BEACON_MIGRATIONS_DIR||ZQ(JQ,"drizzle"),GQ={Node:["createdAt","updatedAt"],Note:["createdAt","updatedAt"],DbTable:["createdAt","updatedAt"],Endpoint:["createdAt","updatedAt"],DraftTable:["createdAt"],SyncState:["codeGraphSyncedAt","updatedAt"],AppSetting:["updatedAt"],ProjectMeta:["updatedAt"],CodeFile:["updatedAt"]}});import{AsyncLocalStorage as MQ}from"async_hooks";import{spawnSync as NQ}from"child_process";import{createHash as UQ}from"crypto";import{existsSync as S,mkdirSync as L,readFileSync as T,writeFileSync as x}from"fs";import{homedir as W}from"os";import{basename as LQ,join as K,parse as jQ,resolve as F}from"path";function G(){return process.env.BEACON_HOME||K(W(),".beacon")}function _(){return K(G(),"workspaces.json")}function U(Q){return UQ("sha256").update(Q).digest("hex").slice(0,12)}function zQ(Q=process.cwd()){let X=NQ("git",["rev-parse","--show-toplevel"],{cwd:Q,stdio:["ignore","pipe","ignore"]});if(X.status===0){let Z=X.stdout?.toString().trim();if(Z)return Z}return Q}function f(Q){let X=F(Q);return X!==F(W())&&X!==jQ(X).root}function y(){return K(G(),"deleted.json")}function q(){try{let Q=JSON.parse(T(y(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function P(Q){L(G(),{recursive:!0}),x(y(),JSON.stringify(Q,null,2))}function k(Q){return q().includes(Q)}function hQ(Q){let X=q();if(!X.includes(Q))P([...X,Q])}function CQ(Q){let X=q();if(X.includes(Q))P(X.filter((Z)=>Z!==Q))}function C(Q){return K(G(),Q)}function OQ(Q){return`file:${K(C(Q),"db.sqlite")}`}function j(){try{let Q=JSON.parse(T(_(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function E(Q){L(G(),{recursive:!0}),x(_(),JSON.stringify(Q,null,2))}function b(){return j().sort((Q,X)=>X.lastOpenedAt.localeCompare(Q.lastOpenedAt))}function M(Q){return j().find((X)=>X.id===Q)??null}function g(Q,X,Z=new Date().toISOString()){if(!f(Q))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${Q}`);let $=U(Q);if(k($))throw Error(`beacon: workspace ${$} (${Q}) was deleted \u2014 run \`beacon\` or /beacon-init to re-add it`);let J=j(),Y=J.find((O)=>O.id===$),V={id:$,path:Q,name:X||Y?.name||LQ(Q),lastOpenedAt:Z},B=[V,...J.filter((O)=>O.id!==$)];return L(C($),{recursive:!0}),E(B),V}function pQ(Q,X){return CQ(U(Q)),g(Q,X)}function cQ(Q,X=new Date().toISOString()){let Z=j(),$=Z.find((J)=>J.id===Q);if(!$)return;$.lastOpenedAt=X,E(Z)}function lQ(Q){if(E(j().filter((X)=>X.id!==Q)),v()===Q)uQ(b()[0]?.id??null)}function w(){return K(G(),"active")}function v(){try{return T(w(),"utf8").trim()||null}catch{return null}}function uQ(Q){L(G(),{recursive:!0}),x(w(),Q??"")}function nQ(){let Q=v();return Q?M(Q):null}function sQ(){let Q=TQ()??v();return Q?M(Q):null}function dQ(Q){return M(Q)?.path??null}function oQ(){return S(_())}var m="beacon_ws";function h(Q,X){let Z=Q.headers.get("cookie");if(!Z)return null;for(let $ of Z.split(";")){let J=$.indexOf("=");if(J===-1)continue;if($.slice(0,J).trim()===X)return decodeURIComponent($.slice(J+1).trim())}return null}function aQ(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&M(X))return X;let Z=h(Q,m);if(Z&&M(Z))return Z;return HQ()}function HQ(){let Q=b();return Q.length===1?Q[0].id:null}var p="x-beacon-workspace-path";function c(Q=process.cwd()){let X=zQ(Q);return{"x-beacon-workspace":U(X),[p]:X}}async function tQ(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&M(X))return X;let Z=Q.headers.get(p);if(Z&&f(Z)&&!k(U(Z))&&(!X||U(Z)===X)){let J=g(Z);return await xQ(J.id),J.id}let $=h(Q,m);if($&&M($))return $;return null}var l=new MQ;function rQ(Q,X){return Q?l.run(Q,X):X()}function TQ(){return l.getStore()??null}var H=new Set;function iQ(Q){H.delete(K(C(Q),"db.sqlite"))}async function xQ(Q){let X=C(Q),Z=K(X,"db.sqlite"),$=S(Z);if($&&H.has(Z))return{ok:!0,created:!1,migrated:!1};try{L(X,{recursive:!0});let{provisionDb:J}=await D().then(() => R),Y=await J(OQ(Q));return H.add(Z),{ok:!0,created:!$,migrated:$&&Y.migrated}}catch(J){return{ok:!1,created:!1,migrated:!1,error:J instanceof Error?J.message:String(J)}}}import{connect as _Q}from"net";var n=4319;function qQ(Q,X,Z=400){return new Promise(($)=>{let J=_Q({host:Q,port:X}),Y=!1,V=(B)=>{if(Y)return;Y=!0,J.destroy(),$(B)};J.once("connect",()=>V(!0)),J.once("error",()=>V(!1)),J.setTimeout(Z,()=>V(!1))})}async function EQ(Q){for(let X of["127.0.0.1","::1"])if(await qQ(X,Q))return!1;return!0}async function XX(Q,X=20){for(let Z=Q;Z<Q+X;Z++)if(await EQ(Z))return Z;return Q}import{readFileSync as vQ}from"fs";import{join as AQ}from"path";function IQ(){try{return JSON.parse(vQ(AQ(G(),"server.json"),"utf8"))}catch{return null}}function s(){if(process.env.BEACON_URL)return process.env.BEACON_URL;return`http://localhost:${IQ()?.port||process.env.PORT||n}`}var A=process.argv[3]?.trim();if(!A)process.stderr.write(`usage: beacon answer <question-id> (answer markdown on stdin, or as trailing args)
|
|
4
|
+
`),process.exit(2);var N=process.argv.slice(4).join(" ").trim();if(!N&&!process.stdin.isTTY){for await(let Q of process.stdin)N+=Q;N=N.trim()}if(!N)process.stderr.write(`no answer text \u2014 pass it as trailing arguments or pipe it on stdin (heredoc)
|
|
5
|
+
`),process.exit(2);try{let Q=await fetch(`${s()}/api/changes/comment/answer`,{method:"POST",headers:{"content-type":"application/json",...c()},body:JSON.stringify({id:A,answer:N}),signal:AbortSignal.timeout(5000)});if(!Q.ok){let X=Q.status===404?" (no pending question with that id in this repo)":"";process.stderr.write(`beacon: answer not accepted (${Q.status})${X}
|
|
6
|
+
`),process.exit(1)}process.stdout.write(`\u2713 answer delivered to Beacon for question ${A}
|
|
7
|
+
`)}catch(Q){process.stderr.write(`beacon: could not reach Beacon \u2014 ${Q instanceof Error?Q.message:"error"} (is the daemon running?)
|
|
8
|
+
`),process.exit(1)}process.exit(0);
|
package/dist/bin/ask.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var YQ=Object.defineProperty;var GQ=(Q)=>Q;function VQ(Q,X){this[Q]=GQ.bind(null,X)}var KQ=(Q,X)=>{for(var Z in X)YQ(Q,Z,{get:X[Z],enumerable:!0,configurable:!0,set:VQ.bind(X,Z)})};var x=(Q,X)=>()=>(Q&&(X=Q(Q=0)),X);var f={};KQ(f,{provisionDb:()=>xQ});import{createClient as JQ}from"@libsql/client";import{drizzle as BQ}from"drizzle-orm/libsql";import{migrate as UQ}from"drizzle-orm/libsql/migrator";import{readMigrationFiles as zQ}from"drizzle-orm/migrator";import{dirname as E,join as NQ}from"path";import{fileURLToPath as jQ}from"url";async function C(Q,X){return(await Q.execute({sql:"SELECT 1 FROM sqlite_master WHERE type='table' AND name = ?",args:[X]})).rows.length>0}async function CQ(Q,X){let Z=await Q.execute(`PRAGMA table_info("${X}")`);return new Set(Z.rows.map(($)=>String($.name)))}async function S(Q){if(!await C(Q,"__drizzle_migrations"))return 0;let X=await Q.execute('SELECT count(*) AS n FROM "__drizzle_migrations"');return Number(X.rows[0]?.n??0)}async function TQ(Q){for(let[X,Z]of Object.entries(HQ)){if(!await C(Q,X))continue;let $=await CQ(Q,X);for(let Y of Z){if(!$.has(Y))continue;await Q.execute(`UPDATE "${X}" SET "${Y}" = CAST((julianday("${Y}") - 2440587.5) * 86400000 AS INTEGER) WHERE typeof("${Y}") = 'text'`)}}}async function xQ(Q,X=LQ){let Z=JQ({url:Q});try{await Z.execute("PRAGMA journal_mode = WAL;"),await Z.execute("PRAGMA foreign_keys = ON;"),await Z.execute("PRAGMA busy_timeout = 5000;");let $=await C(Z,"__drizzle_migrations"),Y=await C(Z,"Node"),G=!1;if(Y&&!$){let J=zQ({migrationsFolder:X})[0];if(J)await Z.execute('CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (id SERIAL PRIMARY KEY, hash text NOT NULL, created_at numeric)'),await Z.execute({sql:'INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES (?, ?)',args:[J.hash,J.folderMillis]}),G=!0}let K=await S(Z);if(await UQ(BQ(Z),{migrationsFolder:X}),await S(Z)>K)G=!0;return await TQ(Z),{migrated:G}}finally{Z.close()}}var MQ,LQ,HQ;var I=x(async()=>{MQ=E(E(E(jQ(import.meta.url)))),LQ=process.env.BEACON_MIGRATIONS_DIR||NQ(MQ,"drizzle"),HQ={Node:["createdAt","updatedAt"],Note:["createdAt","updatedAt"],DbTable:["createdAt","updatedAt"],Endpoint:["createdAt","updatedAt"],DraftTable:["createdAt"],SyncState:["codeGraphSyncedAt","updatedAt"],AppSetting:["updatedAt"],ProjectMeta:["updatedAt"],CodeFile:["updatedAt"]}});import{mkdirSync as bQ,renameSync as kQ,rmSync as gQ,writeFileSync as uQ}from"fs";import{dirname as mQ}from"path";function wQ(Q,X){bQ(mQ(Q),{recursive:!0});let Z=`${Q}.tmp`;try{uQ(Z,X),kQ(Z,Q)}catch($){throw gQ(Z,{force:!0}),$}}function hQ(Q,X,Z=!1){wQ(Q,JSON.stringify(X,null,Z?2:void 0))}var r=()=>{};var a=1500,o=480000,kX=1800000,gX=3600000,uX=3000;var A=()=>{};import{AsyncLocalStorage as EQ}from"async_hooks";import{spawnSync as _Q}from"child_process";import{createHash as DQ}from"crypto";import{existsSync as y,mkdirSync as j,readFileSync as D,writeFileSync as O}from"fs";import{homedir as v}from"os";import{basename as OQ,join as z,parse as WQ,resolve as P}from"path";function B(){return process.env.BEACON_HOME||z(v(),".beacon")}function W(){return z(B(),"workspaces.json")}function N(Q){return DQ("sha256").update(Q).digest("hex").slice(0,12)}function FQ(Q=process.cwd()){let X=_Q("git",["rev-parse","--show-toplevel"],{cwd:Q,stdio:["ignore","pipe","ignore"]});if(X.status===0){let Z=X.stdout?.toString().trim();if(Z)return Z}return Q}function b(Q){let X=P(Q);return X!==P(v())&&X!==WQ(X).root}function k(){return z(B(),"deleted.json")}function F(){try{let Q=JSON.parse(D(k(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function g(Q){j(B(),{recursive:!0}),O(k(),JSON.stringify(Q,null,2))}function u(Q){return F().includes(Q)}function CX(Q){let X=F();if(!X.includes(Q))g([...X,Q])}function qQ(Q){let X=F();if(X.includes(Q))g(X.filter((Z)=>Z!==Q))}function M(Q){return z(B(),Q)}function RQ(Q){return`file:${z(M(Q),"db.sqlite")}`}function L(){try{let Q=JSON.parse(D(W(),"utf8"));return Array.isArray(Q)?Q:[]}catch{return[]}}function q(Q){j(B(),{recursive:!0}),O(W(),JSON.stringify(Q,null,2))}function m(){return L().sort((Q,X)=>X.lastOpenedAt.localeCompare(Q.lastOpenedAt))}function U(Q){return L().find((X)=>X.id===Q)??null}function w(Q,X,Z=new Date().toISOString()){if(!b(Q))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${Q}`);let $=N(Q);if(u($))throw Error(`beacon: workspace ${$} (${Q}) was deleted \u2014 run \`beacon\` or /beacon-init to re-add it`);let Y=L(),G=Y.find((V)=>V.id===$),K={id:$,path:Q,name:X||G?.name||OQ(Q),lastOpenedAt:Z},J=[K,...Y.filter((V)=>V.id!==$)];return j(M($),{recursive:!0}),q(J),K}function TX(Q,X){return qQ(N(Q)),w(Q,X)}function xX(Q,X=new Date().toISOString()){let Z=L(),$=Z.find((Y)=>Y.id===Q);if(!$)return;$.lastOpenedAt=X,q(Z)}function EX(Q){if(q(L().filter((X)=>X.id!==Q)),R()===Q)AQ(m()[0]?.id??null)}function h(){return z(B(),"active")}function R(){try{return D(h(),"utf8").trim()||null}catch{return null}}function AQ(Q){j(B(),{recursive:!0}),O(h(),Q??"")}function SQ(){let Q=R();return Q?U(Q):null}function _X(){let Q=n()??R();return Q?U(Q):null}function DX(Q){return U(Q)?.path??null}function OX(){return y(W())}var c="beacon_ws";function l(Q,X){let Z=Q.headers.get("cookie");if(!Z)return null;for(let $ of Z.split(";")){let Y=$.indexOf("=");if(Y===-1)continue;if($.slice(0,Y).trim()===X)return decodeURIComponent($.slice(Y+1).trim())}return null}function WX(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=l(Q,c);if(Z&&U(Z))return Z;return fQ()}function fQ(){let Q=m();return Q.length===1?Q[0].id:null}var p="x-beacon-workspace-path";function FX(Q=process.cwd()){let X=FQ(Q);return{"x-beacon-workspace":N(X),[p]:X}}async function qX(Q){let X=Q.headers.get("x-beacon-workspace");if(X&&U(X))return X;let Z=Q.headers.get(p);if(Z&&b(Z)&&!u(N(Z))&&(!X||N(Z)===X)){let Y=w(Z);return await IQ(Y.id),Y.id}let $=l(Q,c);if($&&U($))return $;return null}var d=new EQ;function RX(Q,X){return Q?d.run(Q,X):X()}function n(){return d.getStore()??null}var _=new Set;function AX(Q){_.delete(z(M(Q),"db.sqlite"))}async function IQ(Q){let X=M(Q),Z=z(X,"db.sqlite"),$=y(Z);if($&&_.has(Z))return{ok:!0,created:!1,migrated:!1};try{j(X,{recursive:!0});let{provisionDb:Y}=await I().then(() => f),G=await Y(RQ(Q));return _.add(Z),{ok:!0,created:!$,migrated:$&&G.migrated}}catch(Y){return{ok:!1,created:!1,migrated:!1,error:Y instanceof Error?Y.message:String(Y)}}}import{connect as PQ}from"net";var s=4319;function yQ(Q,X,Z=400){return new Promise(($)=>{let Y=PQ({host:Q,port:X}),G=!1,K=(J)=>{if(G)return;G=!0,Y.destroy(),$(J)};Y.once("connect",()=>K(!0)),Y.once("error",()=>K(!1)),Y.setTimeout(Z,()=>K(!1))})}async function vQ(Q){for(let X of["127.0.0.1","::1"])if(await yQ(X,Q))return!1;return!0}async function IX(Q,X=20){for(let Z=Q;Z<Q+X;Z++)if(await vQ(Z))return Z;return Q}import{execSync as aQ}from"child_process";import{createHash as oQ}from"crypto";r();A();function i(Q,X){let Z=X.length?X.map((Y)=>`"${Y}"`).join(", "):"(no selection)",$=X.length>1?"these options":"that option";return"ANSWERED_IN_BEACON \u2014 the user answered this in Beacon (not the terminal). "+`For the question "${Q.question}" they selected: ${Z}. `+`This IS their answer \u2014 treat AskUserQuestion as answered with ${$} and continue. Do NOT call AskUserQuestion again for this question.`}function cQ(Q,X={}){let Z=typeof X.file_path==="string"?X.file_path:"",$=(Y)=>Y.length>4000?`${Y.slice(0,4000)}
|
|
4
|
+
\u2026 (truncated)`:Y;switch(Q){case"Bash":return{tool:Q,title:"Run command",preview:$(String(X.command??""))};case"Write":return{tool:Q,title:`Write ${Z}`.trim(),preview:$(String(X.content??""))};case"Edit":return{tool:Q,title:`Edit ${Z}`.trim(),preview:$(`- ${String(X.old_string??"")}
|
|
5
|
+
+ ${String(X.new_string??"")}`)};case"MultiEdit":{let Y=Array.isArray(X.edits)?X.edits.length:0;return{tool:Q,title:`Edit ${Z}`.trim(),preview:`${Y} edit(s) to ${Z}`}}case"NotebookEdit":{let Y=typeof X.notebook_path==="string"?X.notebook_path:"";return{tool:Q,title:`Edit ${Y}`.trim(),preview:$(String(X.new_source??""))}}default:return{tool:Q,title:Q,preview:$(JSON.stringify(X))}}}function t(Q){let X=Q.tool_name??"";if(Q.hook_event_name==="PreToolUse"&&X==="AskUserQuestion"){let $=Q.tool_input?.questions?.[0];if(!$)return null;return{kind:"question",question:{header:String($.header??""),question:String($.question??""),multiSelect:!!$.multiSelect,options:Array.isArray($.options)?$.options.map((Y)=>{let G=Y;return{label:String(G.label??""),description:G.description?String(G.description):void 0}}):[]}}}if(Q.hook_event_name==="PermissionRequest"&&X&&X!=="ExitPlanMode")return{kind:"approval",approval:cQ(X,Q.tool_input??{})};return null}A();import{readFileSync as lQ}from"fs";import{join as pQ}from"path";function dQ(){try{return JSON.parse(lQ(pQ(B(),"server.json"),"utf8"))}catch{return null}}function e(){if(process.env.BEACON_URL)return process.env.BEACON_URL;return`http://localhost:${dQ()?.port||process.env.PORT||s}`}var nQ=["default","acceptEdits","bypassPermissions","auto"];function eX(Q){return typeof Q==="string"&&nQ.includes(Q)}function QQ(Q,X,Z){let $={behavior:"allow"};if(Z&&Object.keys(Z).length>0)$.updatedInput=Z;if(Q)$.updatedPermissions=[{type:"setMode",mode:Q,destination:"session"}];let Y={hookEventName:"PermissionRequest",decision:$};if(X?.trim())Y.additionalContext=X;return{hookSpecificOutput:Y}}import{execSync as sQ}from"child_process";import{platform as XQ}from"os";function rQ(Q){if(process.env.BEACON_NO_OPEN)return;let X=XQ()==="darwin"?"open":XQ()==="win32"?"start":"xdg-open";try{sQ(`${X} "${Q}"`,{stdio:"ignore"})}catch{}}async function ZQ(Q,X){if(await fetch(`${Q}/api/plan/presence`,{headers:{"x-beacon-workspace":X}}).then((Y)=>Y.json()).then((Y)=>!!Y?.live).catch(()=>!1))return;let $=encodeURIComponent(`/plan?ws=${X}`);rQ(`${Q}/api/workspace/activate?id=${X}&redirect=${$}`)}var iQ=(Q)=>new Promise((X)=>setTimeout(X,Q));function T(Q){if(Q!==void 0)process.stdout.write(JSON.stringify(Q));process.exit(0)}function H(){T(void 0)}function tQ(Q){return{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:Q}}}function eQ(Q){return{hookSpecificOutput:{hookEventName:"PermissionRequest",decision:{behavior:"deny",message:Q}}}}async function QX(){if(process.stdin.isTTY)return null;let Q="";for await(let X of process.stdin)Q+=X;if(Q=Q.trim(),!Q)return null;try{return JSON.parse(Q)}catch{return null}}function XX(Q){try{return aQ("git rev-parse --show-toplevel",{cwd:Q||process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim()}catch{return Q||process.cwd()}}var ZX=(Q)=>oQ("sha256").update(Q).digest("hex").slice(0,12);async function $X(Q,X){try{return(await fetch(Q,{headers:X})).ok}catch{return!1}}(async()=>{let Q=await QX();if(!Q)H();let X=t(Q);if(!X)H();let Z=e(),$=ZX(XX(Q.cwd)),Y={"content-type":"application/json","x-beacon-workspace":$};if(!await $X(`${Z}/api/workspace`))H();await fetch(`${Z}/api/workspace/activate?id=${$}`).catch(()=>{});let G=await fetch(`${Z}/api/ask`,{method:"POST",headers:Y,body:JSON.stringify(X)}).then((V)=>V.ok?V.json():null).catch(()=>null);if(!G||G.loop||!G.id)H();let K=G.id;await ZQ(Z,$).catch(()=>{});let J=Date.now()+o;while(Date.now()<J){await iQ(a);let V=await fetch(`${Z}/api/ask/verdict?id=${encodeURIComponent(K)}`,{headers:Y}).then(($Q)=>$Q.json()).catch(()=>null);if(!V||V.status!=="resolved")continue;if(X.kind==="question")T(tQ(i(X.question,V.resolution.selected??[])));if(V.resolution.decision==="deny")T(eQ("The user denied this action in Beacon."));T(QQ())}H()})();
|
package/dist/bin/beacon.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
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
|
|
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==="ask")await import($("bin/ask.ts"));else if(Q==="answer")await import($("bin/answer.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:q,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")),Y=await M();if(B())return{initSkill:"",refreshSkill:"",mcp:{path:"",added:!1,updated:!1},codexSkills:[],heal:Y};let{isRegistrableWorkspacePath:W}=await import($("lib/workspaces.ts"));if(!W(z))return{initSkill:"",refreshSkill:"",mcp:{path:"",added:!1,updated:!1},codexSkills:[],heal:Y};let H=Z(z),w=J(z);G(z);let I=q(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
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:
|
|
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),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:
|
|
5
|
+
`)}return{initSkill:H,refreshSkill:w,mcp:I,codexSkills:L,heal:Y}}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 q="";try{q=h(z??0,"utf8").trim()}catch(Y){console.error(`[beacon] could not read the init analysis ${z?`from ${z}`:"from stdin"}: ${Y instanceof Error?Y.message:Y}`),process.exit(1)}if(!q)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:q})}catch(Y){console.error(`[beacon] could not reach the Beacon daemon on port ${G}: ${Y instanceof Error?Y.message:Y}`),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 q={pid:K.pid??0,port:z};return t(x,JSON.stringify(q)),q}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 q=Z(z);await J(q),X(z);let G=await k();console.log(`[beacon] ready \u2192 http://localhost:${G}/map?ws=${q}`)}async function Xz(){let z=_()||O,{registerWorkspaceExplicit:X,idForPath:Z,dataDirFor:J,ensureWorkspaceDb:K,isRegistrableWorkspacePath:q}=await import($("lib/workspaces.ts"));if(!q(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:Y}=await P(z,!0),W=[];if(Y.skillsAdded.length)W.push(`skills ${Y.skillsAdded.join(", ")}`);if(Y.hooksAdded)W.push(`${Y.hooksAdded} Claude Code hook${Y.hooksAdded===1?"":"s"}`);if(Y.claudeMdBlockTouched)W.push("global CLAUDE.md block");if(W.length)console.log(`[beacon] wired into ~/.claude/: ${W.join(" + ")}.`);let H=Y.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
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(`
|
|
@@ -16,7 +16,7 @@ import{execSync as F,spawn as c}from"child_process";import{existsSync as f,mkdir
|
|
|
16
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
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
|
|
19
|
+
npm i -g trybeacon@latest`);return}let K=null;try{let q=await fetch(J);if(q.ok)K=(await q.json()).version??null}catch{}if(K&&!z){let{isNewerVersion:q}=await import($("lib/semver.ts"));if(!q(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
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
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
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.")}
|