trybeacon 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +17 -15
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +14 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- 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 -0
- package/.next/server/app/api/board-annotations/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/board-annotations/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/board-annotations/route.js +1 -0
- package/.next/server/app/api/board-annotations/route.js.nft.json +1 -0
- package/.next/server/app/api/board-annotations/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/code-graph/route.js.nft.json +1 -1
- package/.next/server/app/api/context/feature/route.js +1 -1
- package/.next/server/app/api/context/feature/route.js.nft.json +1 -1
- package/.next/server/app/api/context/file/route.js +1 -1
- package/.next/server/app/api/context/file/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js +2 -2
- package/.next/server/app/api/db/backfill-access/route.js +1 -1
- package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -1
- package/.next/server/app/api/db/position/route.js +1 -1
- package/.next/server/app/api/db/position/route.js.nft.json +1 -1
- package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
- package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -1
- package/.next/server/app/api/db/relations/[id]/route.js +1 -1
- package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/db/tables/[id]/route.js +1 -1
- package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/approve/route.js +2 -2
- package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/route.js +2 -2
- 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/draft/status/route.js.nft.json +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/endpoints/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/entities/route.js +1 -1
- package/.next/server/app/api/feedback/[id]/route.js +1 -1
- package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
- package/.next/server/app/api/feedback/route.js +1 -1
- package/.next/server/app/api/ingest/route.js +2 -2
- package/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +2 -2
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/map/describe/route.js +2 -2
- package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
- package/.next/server/app/api/map/files/route.js +1 -1
- package/.next/server/app/api/map/files/route.js.nft.json +1 -1
- package/.next/server/app/api/map/finish/route.js +1 -1
- package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
- package/.next/server/app/api/map/route.js +1 -1
- package/.next/server/app/api/map/route.js.nft.json +1 -1
- package/.next/server/app/api/map/start/route.js +1 -1
- package/.next/server/app/api/map/start/route.js.nft.json +1 -1
- package/.next/server/app/api/map/touch-active/route.js +1 -1
- package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/[id]/route.js +1 -1
- package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/positions/route.js +1 -1
- package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/route.js +1 -1
- package/.next/server/app/api/nodes/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js +1 -1
- package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -1
- package/.next/server/app/api/notes/[id]/route.js +1 -1
- package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notes/route.js +1 -1
- package/.next/server/app/api/notes/route.js.nft.json +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/annotations/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/approve/route.js +2 -2
- 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 +2 -2
- 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/reset/route.js +1 -1
- package/.next/server/app/api/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- package/.next/server/app/api/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/activate/route.js +1 -1
- package/.next/server/app/api/workspace/activate/route.js.nft.json +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/apple-icon.png/route.js.nft.json +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 +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
- 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 +19 -20
- package/.next/server/app/help.segments/_full.segment.rsc +19 -20
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +2 -2
- 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/icon.svg/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/map/page.js +2 -2
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +2 -2
- package/.next/server/app/plan/page.js.nft.json +1 -1
- package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +2 -2
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +17 -15
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/249.js +1 -1
- package/.next/server/chunks/{299.js → 29.js} +3 -3
- package/.next/server/chunks/2933.js +3 -3
- package/.next/server/chunks/3349.js +1 -0
- package/.next/server/chunks/4046.js +3 -3
- package/.next/server/chunks/5330.js +1 -0
- package/.next/server/chunks/9683.js +1 -1
- package/.next/server/chunks/9734.js +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/Wg1DNN1mWNEn51gRWvvOz/_buildManifest.js +1 -0
- package/.next/static/chunks/1a258343-248e24606fc4ca54.js +2 -0
- package/.next/static/chunks/8317-8603ef575e9af04a.js +1 -0
- package/.next/static/chunks/8319-67498a0aab3f714f.js +1 -0
- package/.next/static/chunks/app/_global-error/page-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/board-annotations/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/code-graph/position/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/code-graph/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/context/feature/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/context/file/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/context/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/db/backfill-access/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/db/position/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/db/relations/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/db/tables/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/draft/approve/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/draft/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/draft/status/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/edges/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/edges/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/endpoints/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/entities/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/feedback/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/init/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/describe/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/files/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/finish/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/start/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/map/touch-active/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/position/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/nodes/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/nodes/positions/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/nodes/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/nodes/subtasks/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/notes/[id]/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/notes/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/open/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/annotations/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/approve/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/history/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/markdown/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/presence/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/plan/verdict/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/preferences/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/reset/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/settings/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/stream/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/version/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/workspace/activate/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/app/map/page-816b66667be8f94b.js +1 -0
- package/.next/static/chunks/app/page-ccb55081f850db63.js +1 -0
- package/.next/static/chunks/app/plan/page-8a3f6f889a981436.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-fedcca5f9349ab93.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fedcca5f9349ab93.js +1 -0
- package/.next/static/css/e63457bec0b3ee27.css +1 -0
- package/.next/static/css/f3cfcfba0b79bb6d.css +1 -0
- package/.next/trace +37 -37
- package/.next/trace-build +1 -1
- package/.next/types/app/api/board-annotations/[id]/route.ts +351 -0
- package/.next/types/app/api/board-annotations/route.ts +351 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/dist/bin/mcp.js +17 -17
- package/drizzle/0001_fluffy_venus.sql +13 -0
- package/drizzle/meta/0001_snapshot.json +1671 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +1 -1
- package/.next/server/chunks/1093.js +0 -1
- package/.next/server/chunks/2996.js +0 -1
- package/.next/server/chunks/3530.js +0 -1
- package/.next/server/chunks/4490.js +0 -1
- package/.next/server/chunks/5592.js +0 -1
- package/.next/server/chunks/814.js +0 -1
- package/.next/server/chunks/9252.js +0 -1
- package/.next/static/chunks/1a258343-152a68da2b250652.js +0 -2
- package/.next/static/chunks/598-236d8c7f0c45d79c.js +0 -1
- package/.next/static/chunks/6946-4322e809b92dc543.js +0 -1
- package/.next/static/chunks/app/_global-error/page-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/code-graph/position/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/code-graph/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/context/feature/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/context/file/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/context/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/db/backfill-access/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/db/position/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/db/reconcile-endpoints/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/db/relations/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/db/tables/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/draft/approve/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/draft/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/draft/status/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/edges/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/edges/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/endpoints/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/entities/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/feedback/[id]/vote/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/feedback/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/ingest/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/init/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/describe/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/files/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/finish/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/start/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/map/touch-active/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/position/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/nodes/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/nodes/positions/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/nodes/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/nodes/subtasks/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/notes/[id]/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/notes/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/open/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/annotations/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/approve/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/history/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/markdown/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/presence/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/plan/verdict/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/preferences/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/reset/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/settings/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/stream/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/version/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/workspace/activate/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/app/map/page-a0095fd5d001a673.js +0 -1
- package/.next/static/chunks/app/page-e0a78bc449569419.js +0 -1
- package/.next/static/chunks/app/plan/page-ba750d6f084811fa.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c1b5e3c2b2451a38.js +0 -1
- package/.next/static/css/5f11ad1787eeef64.css +0 -1
- package/.next/static/css/fb92764fca78149e.css +0 -1
- package/.next/static/xrzeVVXRkKHe2ydUkBd70/_buildManifest.js +0 -1
- /package/.next/static/{xrzeVVXRkKHe2ydUkBd70 → Wg1DNN1mWNEn51gRWvvOz}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"434":{"*":{"id":"41616","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"42337","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"70813","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"25623","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"19276","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"86925","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"33161","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"54728","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"59953","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"81166","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"18718","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"95151","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"10549","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"81281","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"88264","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"1237","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"69370","name":"*","chunks":[],"async":false}},"84787":{"*":{"id":"34206","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"67344","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"41164","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/globals.css":{"id":66872,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/ai/main-region.tsx":{"id":52174,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/live-refresh.tsx":{"id":30165,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-context.tsx":{"id":81984,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-drawer.tsx":{"id":1494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-bar.tsx":{"id":434,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-context.tsx":{"id":48484,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/top-nav.tsx":{"id":96848,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/update-banner.tsx":{"id":33082,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":35353,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":63494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/feedback/page.tsx":{"id":90546,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":71265,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/docs/docs.tsx":{"id":73954,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/landing/landing.tsx":{"id":31698,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-e0a78bc449569419.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/db-map-client.tsx":{"id":26856,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/files-map-client.tsx":{"id":15373,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/map-client.tsx":{"id":84787,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-workspace.tsx":{"id":10396,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/context-card.tsx":{"id":81453,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/danger-card.tsx":{"id":71423,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/permission-mode-card.tsx":{"id":67787,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/@base-ui/react/esm/button/Button.js":{"id":6539,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false}},"entryCSSFiles":{"/Users/wenzorithelly/Desktop/beacon/":[],"/Users/wenzorithelly/Desktop/beacon/app/layout":[{"inlined":false,"path":"static/css/fb92764fca78149e.css"},{"inlined":false,"path":"static/css/e02ab5db9ff2dca2.css"}],"/Users/wenzorithelly/Desktop/beacon/app/page":[{"inlined":false,"path":"static/css/5f11ad1787eeef64.css"}],"/Users/wenzorithelly/Desktop/beacon/app/settings/page":[]},"rscModuleMapping":{"434":{"*":{"id":"81974","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"30818","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"2739","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"478","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"42696","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"7239","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"60867","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"67878","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"17017","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"48136","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"7572","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"74069","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"47613","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"44919","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"42590","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"13255","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"71412","name":"*","chunks":[],"async":false}},"84787":{"*":{"id":"56030","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"64549","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"77946","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"23318","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"434":{"*":{"id":"41616","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"42337","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"70813","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"25623","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"19276","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"86925","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"33161","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"54728","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"59953","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"81166","name":"*","chunks":[],"async":false}},"51960":{"*":{"id":"53020","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"18718","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"95151","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"10549","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"81281","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"88264","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"1237","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"69370","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"67344","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"41164","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/globals.css":{"id":66872,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/ai/main-region.tsx":{"id":52174,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/live-refresh.tsx":{"id":30165,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-context.tsx":{"id":81984,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-drawer.tsx":{"id":1494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-bar.tsx":{"id":434,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-context.tsx":{"id":48484,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/top-nav.tsx":{"id":96848,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/update-banner.tsx":{"id":33082,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":35353,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":63494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/feedback/page.tsx":{"id":90546,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":71265,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/docs/docs.tsx":{"id":73954,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/landing/landing.tsx":{"id":31698,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-ccb55081f850db63.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/context-card.tsx":{"id":81453,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/danger-card.tsx":{"id":71423,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/permission-mode-card.tsx":{"id":67787,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/@base-ui/react/esm/button/Button.js":{"id":6539,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-workspace.tsx":{"id":10396,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/db-map-client.tsx":{"id":26856,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/files-map-client.tsx":{"id":15373,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/map-client.tsx":{"id":51960,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/wenzorithelly/Desktop/beacon/":[],"/Users/wenzorithelly/Desktop/beacon/app/layout":[{"inlined":false,"path":"static/css/f3cfcfba0b79bb6d.css"},{"inlined":false,"path":"static/css/e02ab5db9ff2dca2.css"}],"/Users/wenzorithelly/Desktop/beacon/app/page":[{"inlined":false,"path":"static/css/e63457bec0b3ee27.css"}],"/Users/wenzorithelly/Desktop/beacon/app/settings/page":[]},"rscModuleMapping":{"434":{"*":{"id":"81974","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"30818","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"2739","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"478","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"42696","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"7239","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"60867","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"67878","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"17017","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"48136","name":"*","chunks":[],"async":false}},"51960":{"*":{"id":"56030","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"7572","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"74069","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"47613","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"44919","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"42590","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"13255","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"71412","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"64549","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"77946","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"23318","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
@@ -9,28 +9,30 @@
|
|
|
9
9
|
"/api/nodes/subtasks/route": "app/api/nodes/subtasks/route.js",
|
|
10
10
|
"/apple-icon.png/route": "app/apple-icon.png/route.js",
|
|
11
11
|
"/icon.svg/route": "app/icon.svg/route.js",
|
|
12
|
-
"/api/
|
|
13
|
-
"/api/
|
|
12
|
+
"/api/board-annotations/route": "app/api/board-annotations/route.js",
|
|
13
|
+
"/api/board-annotations/[id]/route": "app/api/board-annotations/[id]/route.js",
|
|
14
|
+
"/api/code-graph/position/route": "app/api/code-graph/position/route.js",
|
|
14
15
|
"/api/context/route": "app/api/context/route.js",
|
|
16
|
+
"/api/db/backfill-access/route": "app/api/db/backfill-access/route.js",
|
|
15
17
|
"/api/db/position/route": "app/api/db/position/route.js",
|
|
18
|
+
"/api/db/reconcile-endpoints/route": "app/api/db/reconcile-endpoints/route.js",
|
|
19
|
+
"/api/db/relations/[id]/route": "app/api/db/relations/[id]/route.js",
|
|
20
|
+
"/api/db/tables/[id]/route": "app/api/db/tables/[id]/route.js",
|
|
16
21
|
"/api/draft/approve/route": "app/api/draft/approve/route.js",
|
|
17
|
-
"/api/draft/route": "app/api/draft/route.js",
|
|
18
22
|
"/api/draft/status/route": "app/api/draft/status/route.js",
|
|
19
|
-
"/api/
|
|
20
|
-
"/api/edges/route": "app/api/edges/route.js",
|
|
23
|
+
"/api/draft/route": "app/api/draft/route.js",
|
|
21
24
|
"/api/edges/[id]/route": "app/api/edges/[id]/route.js",
|
|
22
|
-
"/api/
|
|
25
|
+
"/api/edges/route": "app/api/edges/route.js",
|
|
23
26
|
"/api/endpoints/[id]/route": "app/api/endpoints/[id]/route.js",
|
|
24
|
-
"/api/db/relations/[id]/route": "app/api/db/relations/[id]/route.js",
|
|
25
|
-
"/api/ingest/route": "app/api/ingest/route.js",
|
|
26
27
|
"/api/feedback/[id]/route": "app/api/feedback/[id]/route.js",
|
|
27
|
-
"/api/map/describe/route": "app/api/map/describe/route.js",
|
|
28
28
|
"/api/entities/route": "app/api/entities/route.js",
|
|
29
|
+
"/api/feedback/route": "app/api/feedback/route.js",
|
|
30
|
+
"/api/ingest/route": "app/api/ingest/route.js",
|
|
31
|
+
"/api/map/describe/route": "app/api/map/describe/route.js",
|
|
29
32
|
"/api/map/files/route": "app/api/map/files/route.js",
|
|
30
33
|
"/api/map/finish/route": "app/api/map/finish/route.js",
|
|
31
34
|
"/api/map/route": "app/api/map/route.js",
|
|
32
35
|
"/api/map/start/route": "app/api/map/start/route.js",
|
|
33
|
-
"/api/feedback/route": "app/api/feedback/route.js",
|
|
34
36
|
"/api/map/touch-active/route": "app/api/map/touch-active/route.js",
|
|
35
37
|
"/api/nodes/[id]/position/route": "app/api/nodes/[id]/position/route.js",
|
|
36
38
|
"/api/nodes/[id]/route": "app/api/nodes/[id]/route.js",
|
|
@@ -42,22 +44,22 @@
|
|
|
42
44
|
"/api/plan/approve/route": "app/api/plan/approve/route.js",
|
|
43
45
|
"/api/plan/history/route": "app/api/plan/history/route.js",
|
|
44
46
|
"/api/plan/markdown/route": "app/api/plan/markdown/route.js",
|
|
45
|
-
"/api/plan/annotations/route": "app/api/plan/annotations/route.js",
|
|
46
47
|
"/api/plan/presence/route": "app/api/plan/presence/route.js",
|
|
47
48
|
"/api/plan/verdict/route": "app/api/plan/verdict/route.js",
|
|
48
|
-
"/api/plan/route": "app/api/plan/route.js",
|
|
49
|
+
"/api/plan/annotations/route": "app/api/plan/annotations/route.js",
|
|
49
50
|
"/api/preferences/route": "app/api/preferences/route.js",
|
|
50
51
|
"/api/reset/route": "app/api/reset/route.js",
|
|
51
52
|
"/api/settings/route": "app/api/settings/route.js",
|
|
52
|
-
"/api/stream/route": "app/api/stream/route.js",
|
|
53
53
|
"/api/version/route": "app/api/version/route.js",
|
|
54
|
+
"/api/stream/route": "app/api/stream/route.js",
|
|
54
55
|
"/api/workspace/activate/route": "app/api/workspace/activate/route.js",
|
|
56
|
+
"/api/plan/route": "app/api/plan/route.js",
|
|
55
57
|
"/api/workspace/route": "app/api/workspace/route.js",
|
|
56
58
|
"/feedback/page": "app/feedback/page.js",
|
|
57
59
|
"/help/page": "app/help/page.js",
|
|
58
60
|
"/docs/page": "app/docs/page.js",
|
|
59
61
|
"/page": "app/page.js",
|
|
60
|
-
"/
|
|
62
|
+
"/settings/page": "app/settings/page.js",
|
|
61
63
|
"/plan/page": "app/plan/page.js",
|
|
62
|
-
"/
|
|
64
|
+
"/map/page": "app/map/page.js"
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=1130,exports.ids=[1130],exports.modules={13560:(a,b,c)=>{c.d(b,{$Y:()=>h,gY:()=>g,hj:()=>j,tI:()=>i});var d=c(44046);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let g=d.Ik({view:e,title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),h=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()}),i=d.Ik({x:d.ai(),y:d.ai()}),j=d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},29833:(a,b,c)=>{c.d(b,{mk:()=>i});let d=new Set(["a","an","the","of","for","to","and","or","in","on","with","via","by","using","use","add","adds","support","implement","implementation","feature","new","build","create","o","os","as","um","uma","de","da","do","das","dos","para","por","com","e","ou","no","na","nos","nas","ao","aos","adicionar","implementar","suporte","suportar","nova","novo","funcionalidade","usar","usando","criar"]);function e(a){return a.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}function f(a){return e(a).split(" ").filter(a=>a&&!d.has(a))}function g(a,b){if(!a.size||!b.size)return 0;let c=0;for(let d of a)b.has(d)&&c++;return 2*c/(a.size+b.size)}function h(a){let b=e(a).replace(/ /g,""),c=new Set;for(let a=0;a<b.length-1;a++)c.add(b.slice(a,a+2));return c}function i(a,b,c={}){let d=c.confident??.72,j=c.consider??.5,k=c.margin??.1,l=b.map(b=>{var c,d;let i,j;return{...b,score:Math.round(100*(c=a,d=b.title,i=e(c),j=e(d),i&&j?i===j?1:Math.min(1,.7*g(new Set(f(c)),new Set(f(d)))+.4*g(h(c),h(d))):0))/100}}).sort((a,b)=>b.score-a.score),m=l[0];if(!m||m.score<j)return{best:null,candidates:[]};let n=l[1]?.score??0,o=1===l.length||m.score-n>=k;return m.score>=d&&o?{best:m,candidates:[]}:{best:null,candidates:l.filter(a=>a.score>=j).slice(0,4)}}},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},38356:(a,b,c)=>{c.d(b,{AG:()=>g,Ey:()=>h,Kn:()=>e,oA:()=>f});var d=c(29833);function e(a){let b=a.map(a=>{let b=[],c=a.cluster??a.category??a.domain??null;return c&&c.trim()||b.push("category"),null==a.priority&&b.push("priority"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===b.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand. Missing:\n"+b.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low). Set BOTH on EVERY feature; don't rely on defaults."}function f(a){let b=(a.title??"").trim();if(!b)return"⛔ A feature needs a non-empty title.";if(!(a.category??"").trim()){let c=function(a){let b=new Set;for(let c of a){let a=(c.cluster??"").trim();a&&b.add(a)}return[...b].sort()}(a.existing),d=c.length?` Reuse an existing category where it fits: ${c.join(", ")}.`:"";return`⛔ Feature "${b}" has no category. Every roadmap feature needs one — it drives grouping and color on the board.${d} Pass it as \`category\` (e.g. AUTH, SEARCH, DATA, INTEL, BILLING, INFRA …); don't rely on a default.`}let c=(0,d.mk)(b,a.existing.map(a=>({id:a.id,title:a.title})));if(c.best){let d=a.existing.find(a=>a.id===c.best.id),e=d?.status?` (${d.status})`:"";return`⛔ "${b}" already exists as the feature "${d?.title??c.best.title}"${e}. Don't create a duplicate — mark progress on it with \`beacon_start_feature({ id })\`, add sub-tasks with \`beacon_add_subtasks\`, or finish it with \`beacon_describe_feature\`.`}return null}function g(a,b){let c=b.map(a=>({id:a.id,title:a.title})),e=a.map(a=>{let e=(0,d.mk)(a.title??"",c);return e.best?{title:a.title,hit:b.find(a=>a.id===e.best.id)}:null}).filter(a=>null!==a);return e.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+e.map(a=>` • "${a.title}" → existing "${a.hit.title}"${a.hit.status?` (${a.hit.status})`:""}`).join("\n")+"\n\nDrop the duplicate(s) from the plan; to add work to an existing feature, ship sub-tasks or update it via beacon_describe_feature. Keep only genuinely new features in the proposal.":null}function h(a,b){let c=(a??"").trim();if(!c)return null;let e=(0,d.mk)(c,b);if(e.best)return null;let f=e.candidates.length?` Did you mean: ${e.candidates.map(a=>`"${a.title}"`).join(", ")}?`:"";return`⛔ front "${c}" doesn't match an existing feature.${f} \`front\` nests a feature UNDER an existing parent feature — it is NOT a domain tag. If "${c}" is a domain, pass it as \`category\` instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`}},70299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AS:()=>C,Nh:()=>w,Ol:()=>E,P_:()=>x,Pq:()=>y,hL:()=>D,nV:()=>u,y2:()=>z});var e=c(44046),f=c(34216),g=c(40377),h=c(56727),i=c(30046),j=c(19734),k=c(29833),l=c(38356),m=c(71584),n=c(90497),o=c(90435),p=c(89908),q=c(45301),r=c(76223),s=a([h,j,p,r]);async function t(a){await (0,r.Z)({currentFeatureId:a})}async function u(){let a=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{asc:b})=>b(a.createdAt)});return{fronts:a.filter(a=>!a.parentId).map(b=>({id:b.id,title:b.title,status:b.status,tasks:a.filter(a=>a.parentId===b.id).map(a=>({id:a.id,title:a.title,status:a.status,workingOn:"IN_PROGRESS"===a.status}))}))}}async function v(a,b){await h.db.update(i.node).set({status:b}).where((0,f.eq)(i.node.id,a)),await w(a),await (0,j.Bx)()}[h,j,p,r]=s.then?(await s)():s;let F=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),G=new Set(["IN_PROGRESS","BLOCKED"]),H=new Set(["CANCELLED","DEPRIORITIZED"]);async function w(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||H.has(e.status))return;let g=(d=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>F.has(a))?"DONE":d.some(a=>G.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===g)return;await h.db.update(i.node).set({status:g}).where((0,f.eq)(i.node.id,e.id)),c=e.id}}async function x(){let a=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,source:!0,x:!0,y:!0}})).filter(a=>"DRAFT"!==a.source);if(a.length<2)return;let b=a.map(a=>a.id),c=await h.db.query.edge.findMany({where:(a,{and:c,eq:d})=>c(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,b),(0,f.RV)(a.toId,b)),columns:{fromId:!0,toId:!0}}),d=(0,o.cA)(b,c);if((0,o.wU)()===d)return;let e=(0,n.u)(a.map(a=>({id:a.id,parentId:a.parentId})),c),g=[];for(let b of a){let a=e.get(b.id);a&&(Math.round(a.x)!==Math.round(b.x)||Math.round(a.y)!==Math.round(b.y))&&g.push(h.db.update(i.node).set({x:a.x,y:a.y}).where((0,f.eq)(i.node.id,b.id)))}await Promise.all(g),(0,o.hd)(d)}async function y(a){let b=a.title.trim();if(!b)throw Error("title required");let c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let b=c.find(b=>b.id===a.id);if(b)return await v(b.id,"IN_PROGRESS"),await t(b.id),{action:"flagged",id:b.id,title:b.title,via:"id"}}let{best:d,candidates:e}=(0,k.mk)(b,c.map(a=>({id:a.id,title:a.title})));if(d)return await v(d.id,"IN_PROGRESS"),await t(d.id),{action:"flagged",id:d.id,title:d.title,via:"match",score:d.score};if(e.length)return{action:"ambiguous",candidates:e};let f=c.filter(a=>!a.parentId),g=a.front?.trim()||"",n=g?(0,l.Ey)(g,f.map(a=>({id:a.id,title:a.title}))):null;if(n)return{action:"rejected",message:n};let o=null,p=null,q=null;if(g){let a=(0,k.mk)(g,f.map(a=>({id:a.id,title:a.title}))).best;o=a.id,p=a.title,q=c.find(b=>b.id===a.id)?.cluster??null}let r=(a.cluster?.trim()||q)??null,s=(0,l.oA)({title:b,category:r,existing:c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status}))});if(s)return{action:"rejected",message:s};let u=o?c.filter(a=>a.parentId===o).length:f.length,y=(0,m.B)(c.map(a=>({x:a.x,y:a.y})),{x:o?f.find(a=>a.id===o)?.x??0:300*u,y:o?160+110*u:0}),[z]=await h.db.insert(i.node).values({view:"ROADMAP",title:b,plain:a.detail??null,cluster:r,status:"IN_PROGRESS",source:"SESSION",parentId:o,x:y.x,y:y.y}).returning();return await w(z.id),await x(),await (0,j.Bx)(),await t(z.id),{action:"created",id:z.id,title:b,front:p}}async function z(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let c=b.find(b=>b.id===a.id);if(c)return await v(c.id,"DONE"),{ok:!0,id:c.id}}if(!a.title)return{ok:!1};let{best:c,candidates:d}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));return c?(await v(c.id,"DONE"),{ok:!0,id:c.id}):{ok:!1,candidates:d.length?d:void 0}}function A(a){let b=a.trim(),c=(0,q.jv)();return b.startsWith(c)&&(b=b.slice(c.length)),b.replace(/^[./]+/,"").trim()}let I=new Set(["KEEP","REBUILD","REPLACE","DROP"]),J=e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional()});async function B(a){let b=e.YO(J).parse(a),c=new Map;for(let a of b)c.set(a.title.toLowerCase(),a);let d=Array.from(c.values());if(!d.length)return 0;let g=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ARCHITECTURE")}),j=new Map(g.map(a=>[a.title.toLowerCase(),a])),k=new Map(g.map(a=>[a.title.toLowerCase(),a.id])),l=new Map,m=new Map;for(let a of g){let b=(a.cluster??"").trim()||"—";l.has(b)||l.set(b,a.x),m.set(b,Math.max(m.get(b)??-150,a.y))}let n=g.length?Math.max(...g.map(a=>a.x))+320:0;for(let a of d){let b=a.title.toLowerCase(),c=a.status&&I.has(a.status)?a.status:"KEEP",d=j.get(b);if(d)await h.db.update(i.node).set({cluster:a.domain,role:a.role??d.role,plain:a.plain??d.plain,status:c}).where((0,f.eq)(i.node.id,d.id)),a.files?.length&&(await h.db.delete(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)),await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:d.id,path:a}))));else{let d=a.domain.trim()||"—",e=l.get(d);void 0===e&&(e=n,n+=320,l.set(d,e));let f=(m.get(d)??-150)+150;m.set(d,f);let[g]=await h.db.insert(i.node).values({view:"ARCHITECTURE",source:"MANUAL",cluster:a.domain,title:a.title,role:a.role??null,plain:a.plain??null,status:c,x:e,y:f}).returning();a.files?.length&&await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:g.id,path:a}))),k.set(b,g.id)}}for(let a of d){let b=k.get(a.title.toLowerCase());if(b)for(let c of a.depends??[]){let a=k.get(c.trim().toLowerCase());a&&a!==b&&(await h.db.query.edge.findFirst({where:(c,{and:d,eq:e})=>d(e(c.fromId,b),e(c.toId,a),e(c.kind,"DEPENDS"))})||await h.db.insert(i.edge).values({fromId:b,toId:a,kind:"DEPENDS"}).catch(()=>{}))}}return d.length}async function C(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),c=a.id?b.find(b=>b.id===a.id):void 0;if(!c&&a.title){let{best:d,candidates:e}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));if(d)c=b.find(a=>a.id===d.id);else if(e.length)return{ok:!1,candidates:e}}if(!c)return{ok:!1};if(await h.db.update(i.node).set({plain:a.description,status:"DONE"}).where((0,f.eq)(i.node.id,c.id)),await w(c.id),a.files?.length)for(let b of Array.from(new Set(a.files.map(A).filter(Boolean))))await h.db.insert(i.nodeFile).values({nodeId:c.id,path:b}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});return await h.db.update(i.appSetting).set({currentFeatureId:null}).where((0,f.eq)(i.appSetting.currentFeatureId,c.id)),a.architecture?.length&&await B(a.architecture),await (0,j.Bx)(),{ok:!0,id:c.id}}async function D(a){let b=Array.from(new Set((a.files??[]).map(A).filter(Boolean))),c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),d=a.id?c.find(b=>b.id===a.id):void 0;if(!d&&a.title){let{best:b,candidates:e}=(0,k.mk)(a.title,c.map(a=>({id:a.id,title:a.title})));if(b)d=c.find(a=>a.id===b.id);else if(e.length)return{ok:!1,candidates:e}}if(!d)return{ok:!1};for(let a of b)await h.db.insert(i.nodeFile).values({nodeId:d.id,path:a}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});await (0,j.Bx)();let e=(await h.db.select({n:(0,g.U9)()}).from(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)))[0].n;return{ok:!0,id:d.id,count:e}}async function E(a){let b,c=a.items.filter(a=>a.title.trim());if(!c.length)return{ok:!1,reason:"no_items"};if(a.parentId)b=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId)});else if(a.parentTitle&&a.parentTitle.trim()){let c=await h.db.query.node.findMany({where:(a,{isNull:b})=>b(a.parentId),columns:{id:!0,title:!0,cluster:!0,status:!0}}),{best:d,candidates:e}=(0,k.mk)(a.parentTitle.trim(),c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status})));if(d)b=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,d.id)});else if(e.length)return{ok:!1,reason:"ambiguous",candidates:e}}if(!b)return{ok:!1,reason:"parent_not_found"};let d=b,e=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,d.id),columns:{id:!0,title:!0}}),f=c.filter(a=>(0,k.mk)(a.title.trim(),e).best);if(f.length)return{ok:!1,reason:"duplicate",message:`⛔ These sub-tasks already exist under "${d.title}": ${f.map(a=>`"${a.title.trim()}"`).join(", ")}. Drop the duplicates — only add genuinely new sub-tasks.`};let g=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,d.view),columns:{x:!0,y:!0}})).map(a=>({x:a.x,y:a.y})),i=[];for(let a=0;a<c.length;a++){let b=c[a],e=(0,m.B)(g,{x:d.x+240*a,y:d.y+200});g.push(e);let f=await (0,p.RM)({view:d.view,title:b.title.trim(),plain:b.plain??null,cluster:d.cluster??null,parentId:d.id,x:e.x,y:e.y});i.push({id:f.id,title:f.title})}return i.length&&await w(i[0].id),await (0,j.Bx)(),{ok:!0,parent:{id:d.id,title:d.title},created:i}}d()}catch(a){d(a)}})},71584:(a,b,c)=>{c.d(b,{B:()=>d});function d(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}},76223:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,t:()=>h});var e=c(56727),f=c(30046),g=a([e]);async function h(a=e.db){let[b]=await a.insert(f.appSetting).values({id:"singleton"}).onConflictDoUpdate({target:f.appSetting.id,set:{id:"singleton"}}).returning();return b}async function i(a,b=e.db){let[c]=await b.insert(f.appSetting).values({id:"singleton",...a}).onConflictDoUpdate({target:f.appSetting.id,set:a}).returning();return c}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>n,B2:()=>q,CB:()=>r,OK:()=>m,Qd:()=>l,RM:()=>k,jO:()=>o,k5:()=>p});var e=c(34216),f=c(56727),g=c(30046),h=c(70299),i=c(13560),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({view:b.view,title:b.title,cluster:b.cluster??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a){let b=i.hj.parse(a);if(b.fromId===b.toId)throw Error("Self-edge not allowed");let c=b.kind??"DEPENDS",d=await f.db.query.edge.findFirst({where:(a,{and:d,eq:e})=>d(e(a.fromId,b.fromId),e(a.toId,b.toId),e(a.kind,c))});if(d)return d;let[e]=await f.db.insert(g.edge).values({fromId:b.fromId,toId:b.toId,kind:c,label:b.label??null,sourceHandle:b.sourceHandle??null,targetHandle:b.targetHandle??null}).returning();return e}async function m(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}async function o(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.node).set(d).where((0,e.eq)(g.node.id,a)).returning();return h}async function p(a){return await Promise.all(a.map(a=>{let b=i.tI.parse({x:a.x,y:a.y});return f.db.update(g.node).set(b).where((0,e.eq)(g.node.id,a.id))})),a.length}async function q(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.dbTable).set(d).where((0,e.eq)(g.dbTable.id,a)).returning();return h}async function r(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.endpoint).set(d).where((0,e.eq)(g.endpoint.id,a)).returning();return h}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},90435:(a,b,c)=>{c.d(b,{cA:()=>h,hd:()=>k,wU:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(a,b){let c=[...a].sort().join(","),d=b.map(a=>`${a.fromId}>${a.toId}`).sort().join(",");return`force-2|${a.length}|${c}|${d}`}function i(){return(0,e.join)((0,f.KS)(),"roadmap-layout-sig.json")}function j(){try{return JSON.parse((0,d.readFileSync)(i(),"utf8")).sig??null}catch{return null}}function k(a){(0,g.q)(i(),{sig:a})}}};
|
|
1
|
+
"use strict";exports.id=1130,exports.ids=[1130],exports.modules={13560:(a,b,c)=>{c.d(b,{$Y:()=>h,gY:()=>g,hj:()=>j,tI:()=>i});var d=c(44046);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let g=d.Ik({id:d.Yj().trim().min(1).max(64).optional(),view:e,title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),h=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()}),i=d.Ik({x:d.ai(),y:d.ai()}),j=d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},29833:(a,b,c)=>{c.d(b,{mk:()=>i});let d=new Set(["a","an","the","of","for","to","and","or","in","on","with","via","by","using","use","add","adds","support","implement","implementation","feature","new","build","create","o","os","as","um","uma","de","da","do","das","dos","para","por","com","e","ou","no","na","nos","nas","ao","aos","adicionar","implementar","suporte","suportar","nova","novo","funcionalidade","usar","usando","criar"]);function e(a){return a.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}function f(a){return e(a).split(" ").filter(a=>a&&!d.has(a))}function g(a,b){if(!a.size||!b.size)return 0;let c=0;for(let d of a)b.has(d)&&c++;return 2*c/(a.size+b.size)}function h(a){let b=e(a).replace(/ /g,""),c=new Set;for(let a=0;a<b.length-1;a++)c.add(b.slice(a,a+2));return c}function i(a,b,c={}){let d=c.confident??.72,j=c.consider??.5,k=c.margin??.1,l=b.map(b=>{var c,d;let i,j;return{...b,score:Math.round(100*(c=a,d=b.title,i=e(c),j=e(d),i&&j?i===j?1:Math.min(1,.7*g(new Set(f(c)),new Set(f(d)))+.4*g(h(c),h(d))):0))/100}}).sort((a,b)=>b.score-a.score),m=l[0];if(!m||m.score<j)return{best:null,candidates:[]};let n=l[1]?.score??0,o=1===l.length||m.score-n>=k;return m.score>=d&&o?{best:m,candidates:[]}:{best:null,candidates:l.filter(a=>a.score>=j).slice(0,4)}}},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},38356:(a,b,c)=>{c.d(b,{AG:()=>g,Ey:()=>h,Kn:()=>e,oA:()=>f});var d=c(29833);function e(a){let b=a.map(a=>{let b=[],c=a.cluster??a.category??a.domain??null;return c&&c.trim()||b.push("category"),null==a.priority&&b.push("priority"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===b.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand. Missing:\n"+b.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low). Set BOTH on EVERY feature; don't rely on defaults."}function f(a){let b=(a.title??"").trim();if(!b)return"⛔ A feature needs a non-empty title.";if(!(a.category??"").trim()){let c=function(a){let b=new Set;for(let c of a){let a=(c.cluster??"").trim();a&&b.add(a)}return[...b].sort()}(a.existing),d=c.length?` Reuse an existing category where it fits: ${c.join(", ")}.`:"";return`⛔ Feature "${b}" has no category. Every roadmap feature needs one — it drives grouping and color on the board.${d} Pass it as \`category\` (e.g. AUTH, SEARCH, DATA, INTEL, BILLING, INFRA …); don't rely on a default.`}let c=(0,d.mk)(b,a.existing.map(a=>({id:a.id,title:a.title})));if(c.best){let d=a.existing.find(a=>a.id===c.best.id),e=d?.status?` (${d.status})`:"";return`⛔ "${b}" already exists as the feature "${d?.title??c.best.title}"${e}. Don't create a duplicate — mark progress on it with \`beacon_start_feature({ id })\`, add sub-tasks with \`beacon_add_subtasks\`, or finish it with \`beacon_describe_feature\`.`}return null}function g(a,b){let c=b.map(a=>({id:a.id,title:a.title})),e=a.map(a=>{let e=(0,d.mk)(a.title??"",c);return e.best?{title:a.title,hit:b.find(a=>a.id===e.best.id)}:null}).filter(a=>null!==a);return e.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+e.map(a=>` • "${a.title}" → existing "${a.hit.title}"${a.hit.status?` (${a.hit.status})`:""}`).join("\n")+"\n\nDrop the duplicate(s) from the plan; to add work to an existing feature, ship sub-tasks or update it via beacon_describe_feature. Keep only genuinely new features in the proposal.":null}function h(a,b){let c=(a??"").trim();if(!c)return null;let e=(0,d.mk)(c,b);if(e.best)return null;let f=e.candidates.length?` Did you mean: ${e.candidates.map(a=>`"${a.title}"`).join(", ")}?`:"";return`⛔ front "${c}" doesn't match an existing feature.${f} \`front\` nests a feature UNDER an existing parent feature — it is NOT a domain tag. If "${c}" is a domain, pass it as \`category\` instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`}},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},70299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AS:()=>C,Nh:()=>w,Ol:()=>E,P_:()=>x,Pq:()=>y,hL:()=>D,nV:()=>u,y2:()=>z});var e=c(44046),f=c(34216),g=c(40377),h=c(56727),i=c(30046),j=c(19734),k=c(29833),l=c(38356),m=c(71584),n=c(90497),o=c(90435),p=c(89908),q=c(45301),r=c(76223),s=a([h,j,p,r]);async function t(a){await (0,r.Z)({currentFeatureId:a})}async function u(){let a=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{asc:b})=>b(a.createdAt)});return{fronts:a.filter(a=>!a.parentId).map(b=>({id:b.id,title:b.title,status:b.status,tasks:a.filter(a=>a.parentId===b.id).map(a=>({id:a.id,title:a.title,status:a.status,workingOn:"IN_PROGRESS"===a.status}))}))}}async function v(a,b){await h.db.update(i.node).set({status:b}).where((0,f.eq)(i.node.id,a)),await w(a),await (0,j.Bx)()}[h,j,p,r]=s.then?(await s)():s;let F=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),G=new Set(["IN_PROGRESS","BLOCKED"]),H=new Set(["CANCELLED","DEPRIORITIZED"]);async function w(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||H.has(e.status))return;let g=(d=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>F.has(a))?"DONE":d.some(a=>G.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===g)return;await h.db.update(i.node).set({status:g}).where((0,f.eq)(i.node.id,e.id)),c=e.id}}async function x(){let a=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,source:!0,x:!0,y:!0}})).filter(a=>"DRAFT"!==a.source);if(a.length<2)return;let b=a.map(a=>a.id),c=await h.db.query.edge.findMany({where:(a,{and:c,eq:d})=>c(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,b),(0,f.RV)(a.toId,b)),columns:{fromId:!0,toId:!0}}),d=(0,o.cA)(b,c);if((0,o.wU)()===d)return;let e=(0,n.u)(a.map(a=>({id:a.id,parentId:a.parentId})),c),g=[];for(let b of a){let a=e.get(b.id);a&&(Math.round(a.x)!==Math.round(b.x)||Math.round(a.y)!==Math.round(b.y))&&g.push(h.db.update(i.node).set({x:a.x,y:a.y}).where((0,f.eq)(i.node.id,b.id)))}await Promise.all(g),(0,o.hd)(d)}async function y(a){let b=a.title.trim();if(!b)throw Error("title required");let c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let b=c.find(b=>b.id===a.id);if(b)return await v(b.id,"IN_PROGRESS"),await t(b.id),{action:"flagged",id:b.id,title:b.title,via:"id"}}let{best:d,candidates:e}=(0,k.mk)(b,c.map(a=>({id:a.id,title:a.title})));if(d)return await v(d.id,"IN_PROGRESS"),await t(d.id),{action:"flagged",id:d.id,title:d.title,via:"match",score:d.score};if(e.length)return{action:"ambiguous",candidates:e};let f=c.filter(a=>!a.parentId),g=a.front?.trim()||"",n=g?(0,l.Ey)(g,f.map(a=>({id:a.id,title:a.title}))):null;if(n)return{action:"rejected",message:n};let o=null,p=null,q=null;if(g){let a=(0,k.mk)(g,f.map(a=>({id:a.id,title:a.title}))).best;o=a.id,p=a.title,q=c.find(b=>b.id===a.id)?.cluster??null}let r=(a.cluster?.trim()||q)??null,s=(0,l.oA)({title:b,category:r,existing:c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status}))});if(s)return{action:"rejected",message:s};let u=o?c.filter(a=>a.parentId===o).length:f.length,y=(0,m.B)(c.map(a=>({x:a.x,y:a.y})),{x:o?f.find(a=>a.id===o)?.x??0:300*u,y:o?160+110*u:0}),[z]=await h.db.insert(i.node).values({view:"ROADMAP",title:b,plain:a.detail??null,cluster:r,status:"IN_PROGRESS",source:"SESSION",parentId:o,x:y.x,y:y.y}).returning();return await w(z.id),await x(),await (0,j.Bx)(),await t(z.id),{action:"created",id:z.id,title:b,front:p}}async function z(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let c=b.find(b=>b.id===a.id);if(c)return await v(c.id,"DONE"),{ok:!0,id:c.id}}if(!a.title)return{ok:!1};let{best:c,candidates:d}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));return c?(await v(c.id,"DONE"),{ok:!0,id:c.id}):{ok:!1,candidates:d.length?d:void 0}}function A(a){let b=a.trim(),c=(0,q.jv)();return b.startsWith(c)&&(b=b.slice(c.length)),b.replace(/^[./]+/,"").trim()}let I=new Set(["KEEP","REBUILD","REPLACE","DROP"]),J=e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional()});async function B(a){let b=e.YO(J).parse(a),c=new Map;for(let a of b)c.set(a.title.toLowerCase(),a);let d=Array.from(c.values());if(!d.length)return 0;let g=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ARCHITECTURE")}),j=new Map(g.map(a=>[a.title.toLowerCase(),a])),k=new Map(g.map(a=>[a.title.toLowerCase(),a.id])),l=new Map,m=new Map;for(let a of g){let b=(a.cluster??"").trim()||"—";l.has(b)||l.set(b,a.x),m.set(b,Math.max(m.get(b)??-150,a.y))}let n=g.length?Math.max(...g.map(a=>a.x))+320:0;for(let a of d){let b=a.title.toLowerCase(),c=a.status&&I.has(a.status)?a.status:"KEEP",d=j.get(b);if(d)await h.db.update(i.node).set({cluster:a.domain,role:a.role??d.role,plain:a.plain??d.plain,status:c}).where((0,f.eq)(i.node.id,d.id)),a.files?.length&&(await h.db.delete(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)),await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:d.id,path:a}))));else{let d=a.domain.trim()||"—",e=l.get(d);void 0===e&&(e=n,n+=320,l.set(d,e));let f=(m.get(d)??-150)+150;m.set(d,f);let[g]=await h.db.insert(i.node).values({view:"ARCHITECTURE",source:"MANUAL",cluster:a.domain,title:a.title,role:a.role??null,plain:a.plain??null,status:c,x:e,y:f}).returning();a.files?.length&&await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:g.id,path:a}))),k.set(b,g.id)}}for(let a of d){let b=k.get(a.title.toLowerCase());if(b)for(let c of a.depends??[]){let a=k.get(c.trim().toLowerCase());a&&a!==b&&(await h.db.query.edge.findFirst({where:(c,{and:d,eq:e})=>d(e(c.fromId,b),e(c.toId,a),e(c.kind,"DEPENDS"))})||await h.db.insert(i.edge).values({fromId:b,toId:a,kind:"DEPENDS"}).catch(()=>{}))}}return d.length}async function C(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),c=a.id?b.find(b=>b.id===a.id):void 0;if(!c&&a.title){let{best:d,candidates:e}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));if(d)c=b.find(a=>a.id===d.id);else if(e.length)return{ok:!1,candidates:e}}if(!c)return{ok:!1};if(await h.db.update(i.node).set({plain:a.description,status:"DONE"}).where((0,f.eq)(i.node.id,c.id)),await w(c.id),a.files?.length)for(let b of Array.from(new Set(a.files.map(A).filter(Boolean))))await h.db.insert(i.nodeFile).values({nodeId:c.id,path:b}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});return await h.db.update(i.appSetting).set({currentFeatureId:null}).where((0,f.eq)(i.appSetting.currentFeatureId,c.id)),a.architecture?.length&&await B(a.architecture),await (0,j.Bx)(),{ok:!0,id:c.id}}async function D(a){let b=Array.from(new Set((a.files??[]).map(A).filter(Boolean))),c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),d=a.id?c.find(b=>b.id===a.id):void 0;if(!d&&a.title){let{best:b,candidates:e}=(0,k.mk)(a.title,c.map(a=>({id:a.id,title:a.title})));if(b)d=c.find(a=>a.id===b.id);else if(e.length)return{ok:!1,candidates:e}}if(!d)return{ok:!1};for(let a of b)await h.db.insert(i.nodeFile).values({nodeId:d.id,path:a}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});await (0,j.Bx)();let e=(await h.db.select({n:(0,g.U9)()}).from(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)))[0].n;return{ok:!0,id:d.id,count:e}}async function E(a){let b,c=a.items.filter(a=>a.title.trim());if(!c.length)return{ok:!1,reason:"no_items"};if(a.parentId)b=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId)});else if(a.parentTitle&&a.parentTitle.trim()){let c=await h.db.query.node.findMany({where:(a,{isNull:b})=>b(a.parentId),columns:{id:!0,title:!0,cluster:!0,status:!0}}),{best:d,candidates:e}=(0,k.mk)(a.parentTitle.trim(),c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status})));if(d)b=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,d.id)});else if(e.length)return{ok:!1,reason:"ambiguous",candidates:e}}if(!b)return{ok:!1,reason:"parent_not_found"};let d=b,e=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,d.id),columns:{id:!0,title:!0}}),f=c.filter(a=>(0,k.mk)(a.title.trim(),e).best);if(f.length)return{ok:!1,reason:"duplicate",message:`⛔ These sub-tasks already exist under "${d.title}": ${f.map(a=>`"${a.title.trim()}"`).join(", ")}. Drop the duplicates — only add genuinely new sub-tasks.`};let g=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,d.view),columns:{x:!0,y:!0}})).map(a=>({x:a.x,y:a.y})),i=[];for(let a=0;a<c.length;a++){let b=c[a],e=(0,m.B)(g,{x:d.x+240*a,y:d.y+200});g.push(e);let f=await (0,p.RM)({view:d.view,title:b.title.trim(),plain:b.plain??null,cluster:d.cluster??null,parentId:d.id,x:e.x,y:e.y});i.push({id:f.id,title:f.title})}return i.length&&await w(i[0].id),await (0,j.Bx)(),{ok:!0,parent:{id:d.id,title:d.title},created:i}}d()}catch(a){d(a)}})},71584:(a,b,c)=>{c.d(b,{B:()=>d});function d(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}},76223:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,t:()=>h});var e=c(56727),f=c(30046),g=a([e]);async function h(a=e.db){let[b]=await a.insert(f.appSetting).values({id:"singleton"}).onConflictDoUpdate({target:f.appSetting.id,set:{id:"singleton"}}).returning();return b}async function i(a,b=e.db){let[c]=await b.insert(f.appSetting).values({id:"singleton",...a}).onConflictDoUpdate({target:f.appSetting.id,set:a}).returning();return c}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>n,B2:()=>q,CB:()=>r,OK:()=>m,Qd:()=>l,RM:()=>k,jO:()=>o,k5:()=>p});var e=c(34216),f=c(56727),g=c(30046),h=c(70299),i=c(13560),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({...b.id?{id:b.id}:{},view:b.view,title:b.title,cluster:b.cluster??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a){let b=i.hj.parse(a);if(b.fromId===b.toId)throw Error("Self-edge not allowed");let c=b.kind??"DEPENDS",d=await f.db.query.edge.findFirst({where:(a,{and:d,eq:e})=>d(e(a.fromId,b.fromId),e(a.toId,b.toId),e(a.kind,c))});if(d)return d;let[e]=await f.db.insert(g.edge).values({fromId:b.fromId,toId:b.toId,kind:c,label:b.label??null,sourceHandle:b.sourceHandle??null,targetHandle:b.targetHandle??null}).returning();return e}async function m(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}async function o(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.node).set(d).where((0,e.eq)(g.node.id,a)).returning();return h}async function p(a){return await Promise.all(a.map(a=>{let b=i.tI.parse({x:a.x,y:a.y});return f.db.update(g.node).set(b).where((0,e.eq)(g.node.id,a.id))})),a.length}async function q(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.dbTable).set(d).where((0,e.eq)(g.dbTable.id,a)).returning();return h}async function r(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.endpoint).set(d).where((0,e.eq)(g.endpoint.id,a)).returning();return h}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},90435:(a,b,c)=>{c.d(b,{cA:()=>h,hd:()=>k,wU:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(a,b){let c=[...a].sort().join(","),d=b.map(a=>`${a.fromId}>${a.toId}`).sort().join(",");return`force-2|${a.length}|${c}|${d}`}function i(){return(0,e.join)((0,f.KS)(),"roadmap-layout-sig.json")}function j(){try{return JSON.parse((0,d.readFileSync)(i(),"utf8")).sig??null}catch{return null}}function k(a){(0,g.q)(i(),{sig:a})}},90497:(a,b,c)=>{c.d(b,{u:()=>i});var d=c(61661),e=c(52648),f=c(61639),g=c(62088),h=c(19125);function i(a,b,c={}){let j,k=c.linkDistance??210,l=c.charge??-450,m=c.collideRadius??132,n=c.ticks??500,o=[...a].sort((a,b)=>a.id<b.id?-1:+(a.id>b.id)),p=new Set(o.map(a=>a.id)),q=o.map(a=>({id:a.id})),r=[];for(let a of b)a.fromId!==a.toId&&p.has(a.fromId)&&p.has(a.toId)&&r.push({source:a.fromId,target:a.toId});for(let a of o)a.parentId&&p.has(a.parentId)&&r.push({source:a.id,target:a.parentId});let s=(0,d.A)(q).randomSource((j=0x9e3779b9,()=>{let a=j=j+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000})).force("link",(0,e.A)(r).id(a=>a.id).distance(k).strength(.6)).force("charge",(0,f.A)().strength(l).distanceMax(1200)).force("collide",(0,g.A)().radius(m).strength(1)).force("center",(0,h.A)(0,0).strength(.08)).stop();for(let a=0;a<n;a++)s.tick();let t=new Map;for(let a of q)t.set(a.id,{x:Math.round(a.x??0),y:Math.round(a.y??0)});return t}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=1813,exports.ids=[1813],exports.modules={4782:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"connection",{enumerable:!0,get:function(){return k}});let d=c(29294),e=c(63033),f=c(23445),g=c(15693),h=c(48894),i=c(92305);c(65934);let j=c(72339);function k(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(b&&"after"===b.phase&&!(0,i.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E827",enumerable:!1,configurable:!0});if(a.forceStatic)return Promise.resolve(void 0);if(a.dynamicShouldError)throw Object.defineProperty(new g.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(b)switch(b.type){case"cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"private-cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1125",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(b.renderSignal,a.route,"`connection()`");case"validation-client":{let a="`connection`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1063",enumerable:!1,configurable:!0})}case"prerender-ppr":return(0,f.postponeWithTracking)(a.route,"connection",b.dynamicTracking);case"prerender-legacy":return(0,f.throwToInterruptStaticGeneration)("connection",a,b);case"request":if((0,f.trackDynamicDataInDynamicRender)(b),b.asyncApiPromises)return b.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,e.throwForMissingRequestStore)("connection")}},7909:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"after",{enumerable:!0,get:function(){return e}});let d=c(29294);function e(a){let b=d.workAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:c}=b;return c.after(a)}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},22688:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},23211:(a,b,c)=>{"use strict";var d=c(51703);c.o(d,"NextResponse")&&c.d(b,{NextResponse:function(){return d.NextResponse}})},30240:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(42399))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},34327:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),d=c(7909),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})})},38293:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"URLPattern",{enumerable:!0,get:function(){return c}});let c="u"<typeof URLPattern?void 0:URLPattern},42399:(a,b,c)=>{var d,e={226:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},U=function(a,b){return typeof a===k&&-1!==V(b).indexOf(V(a))},V=function(a){return a.toLowerCase()},W=function(a,b){if(typeof a===k)return a=a.replace(/^\s\s*/,""),typeof b===i?a:a.substring(0,350)},X=function(a,b){for(var c,d,e,f,g,i,k=0;k<b.length&&!g;){var l=b[k],m=b[k+1];for(c=d=0;c<l.length&&!g&&l[c];)if(g=l[c++].exec(a))for(e=0;e<m.length;e++)i=g[++d],typeof(f=m[e])===j&&f.length>0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(U(b[c][d],a))return"?"===c?void 0:c}else if(U(b[c],a))return"?"===c?void 0:c;return a},Z={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},$={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[n,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[n,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[n,q],[/opios[\/ ]+([\w\.]+)/i],[q,[n,J+" Mini"]],[/\bopr\/([\w\.]+)/i],[q,[n,J]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[n,q],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[n,"UC"+C]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[q,[n,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[q,[n,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[n,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[n,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[n,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[n,/(.+)/,"$1 Secure "+C],q],[/\bfocus\/([\w\.]+)/i],[q,[n,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[n,J+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[n,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[n,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[n,J+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[n,"MIUI "+C]],[/fxios\/([-\w\.]+)/i],[q,[n,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[n,"360 "+C]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[n,/(.+)/,"$1 "+C],q],[/(comodo_dragon)\/([\w\.]+)/i],[[n,/_/g," "],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[n,q],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[n],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[n,P],q],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[n,q],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[n,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[n,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[n,D+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[n,D+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[n,"Android "+C]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[n,q],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[q,[n,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[q,n],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[n,[q,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[n,q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[n,"Netscape"],q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[n,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[n,q],[/(cobalt)\/([\w\.]+)/i],[n,[q,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[r,"amd64"]],[/(ia32(?=;))/i],[[r,V]],[/((?:i[346]|x)86)[;\)]/i],[[r,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[r,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[r,"armhf"]],[/windows (ce|mobile); ppc;/i],[[r,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[r,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[r,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[r,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[p,K],[o,u]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[m,[p,K],[o,t]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[m,[p,z],[o,t]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[m,[p,z],[o,u]],[/(macintosh);/i],[m,[p,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[p,L],[o,t]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[m,[p,G],[o,u]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[m,[p,G],[o,t]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,t]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,u]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[p,"OPPO"],[o,t]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[p,"Vivo"],[o,t]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[m,[p,"Realme"],[o,t]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[m,[p,I],[o,t]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[p,I],[o,u]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[p,"LG"],[o,u]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[p,"LG"],[o,t]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[m,[p,"Lenovo"],[o,u]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[m,/_/g," "],[p,"Nokia"],[o,t]],[/(pixel c)\b/i],[m,[p,F],[o,u]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[m,[p,F],[o,t]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[p,M],[o,t]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[p,M],[o,u]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[p,"OnePlus"],[o,t]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[p,y],[o,u]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[p,y],[o,t]],[/(playbook);[-\w\),; ]+(rim)/i],[m,p,[o,u]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[m,[p,B],[o,t]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[p,A],[o,u]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[p,A],[o,t]],[/(nexus 9)/i],[m,[p,"HTC"],[o,u]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[p,[m,/_/g," "],[o,t]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[p,"Acer"],[o,u]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[p,"Meizu"],[o,t]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,m,[o,t]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,m,[o,u]],[/(surface duo)/i],[m,[p,H],[o,u]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[p,"Fairphone"],[o,t]],[/(u304aa)/i],[m,[p,"AT&T"],[o,t]],[/\bsie-(\w*)/i],[m,[p,"Siemens"],[o,t]],[/\b(rct\w+) b/i],[m,[p,"RCA"],[o,u]],[/\b(venue[\d ]{2,7}) b/i],[m,[p,"Dell"],[o,u]],[/\b(q(?:mv|ta)\w+) b/i],[m,[p,"Verizon"],[o,u]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[m,[p,"Barnes & Noble"],[o,u]],[/\b(tm\d{3}\w+) b/i],[m,[p,"NuVision"],[o,u]],[/\b(k88) b/i],[m,[p,"ZTE"],[o,u]],[/\b(nx\d{3}j) b/i],[m,[p,"ZTE"],[o,t]],[/\b(gen\d{3}) b.+49h/i],[m,[p,"Swiss"],[o,t]],[/\b(zur\d{3}) b/i],[m,[p,"Swiss"],[o,u]],[/\b((zeki)?tb.*\b) b/i],[m,[p,"Zeki"],[o,u]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],m,[o,u]],[/\b(ns-?\w{0,9}) b/i],[m,[p,"Insignia"],[o,u]],[/\b((nxa|next)-?\w{0,9}) b/i],[m,[p,"NextBook"],[o,u]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],m,[o,t]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],m,[o,t]],[/\b(ph-1) /i],[m,[p,"Essential"],[o,t]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[m,[p,"Envizen"],[o,u]],[/\b(trio[-\w\. ]+) b/i],[m,[p,"MachSpeed"],[o,u]],[/\btu_(1491) b/i],[m,[p,"Rotor"],[o,u]],[/(shield[\w ]+) b/i],[m,[p,"Nvidia"],[o,u]],[/(sprint) (\w+)/i],[p,m,[o,t]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[p,H],[o,t]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[p,O],[o,u]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[p,O],[o,t]],[/smart-tv.+(samsung)/i],[p,[o,v]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[p,K],[o,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,"LG"],[o,v]],[/(apple) ?tv/i],[p,[m,z+" TV"],[o,v]],[/crkey/i],[[m,D+"cast"],[p,F],[o,v]],[/droid.+aft(\w)( bui|\))/i],[m,[p,y],[o,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[p,L],[o,v]],[/(bravia[\w ]+)( bui|\))/i],[m,[p,M],[o,v]],[/(mitv-\w{5}) bui/i],[m,[p,N],[o,v]],[/Hbbtv.*(technisat) (.*);/i],[p,m,[o,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[p,W],[m,W],[o,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[o,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,m,[o,s]],[/droid.+; (shield) bui/i],[m,[p,"Nvidia"],[o,s]],[/(playstation [345portablevi]+)/i],[m,[p,M],[o,s]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[p,H],[o,s]],[/((pebble))app/i],[p,m,[o,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[p,z],[o,w]],[/droid.+; (glass) \d/i],[m,[p,F],[o,w]],[/droid.+; (wt63?0{2,3})\)/i],[m,[p,O],[o,w]],[/(quest( 2| pro)?)/i],[m,[p,P],[o,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[o,x]],[/(aeobc)\b/i],[m,[p,y],[o,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[m,[o,t]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[m,[o,u]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[o,u]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[o,t]],[/(android[-\w\. ]{0,9});.+buil/i],[m,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[n,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[n,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[n,q],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,n]],os:[[/microsoft (windows) (vista|xp)/i],[n,q],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[n,[q,Y,Z]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[n,"Windows"],[q,Y,Z]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[n,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[n,R],[q,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[q,n],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[n,q],[/\(bb(10);/i],[q,[n,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[q,[n,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[n,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[q,[n,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[n,"watchOS"]],[/crkey\/([\d\.]+)/i],[q,[n,D+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[n,Q],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[n,q],[/(sunos) ?([\w\.\d]*)/i],[[n,"Solaris"],q],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[n,q]]},_=function(a,b){if(typeof a===j&&(b=a,a=void 0),!(this instanceof _))return new _(a,b).getResult();var c=typeof g!==i&&g.navigator?g.navigator:void 0,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:void 0,f=b?S($,b):$,s=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[n]=void 0,b[q]=void 0,X.call(b,d,f.browser),b[l]=typeof(a=b[q])===k?a.replace(/[^\d\.]/g,"").split(".")[0]:void 0,s&&c&&c.brave&&typeof c.brave.isBrave==h&&(b[n]="Brave"),b},this.getCPU=function(){var a={};return a[r]=void 0,X.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[p]=void 0,a[m]=void 0,a[o]=void 0,X.call(a,d,f.device),s&&!a[o]&&e&&e.mobile&&(a[o]=t),s&&"Macintosh"==a[m]&&c&&typeof c.standalone!==i&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(226)},51703:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(22688),g=c(43690),h=c(70176),i=c(30240),j=c(38293),k=c(34327),l=c(4782)},70176:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextResponse",{enumerable:!0,get:function(){return l}});let d=c(91488),e=c(72642),f=c(62018),g=c(20445),h=c(91488),i=Symbol("internal response"),j=new Set([301,302,303,307,308]);function k(a,b){var c;if(null==a||null==(c=a.request)?void 0:c.headers){if(!(a.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let c=[];for(let[d,e]of a.request.headers)b.set("x-middleware-request-"+d,e),c.push(d);b.set("x-middleware-override-headers",c.join(","))}}class l extends Response{constructor(a,b={}){super(a,b);const c=this.headers,j=new Proxy(new h.ResponseCookies(c),{get(a,e,f){switch(e){case"delete":case"set":return(...f)=>{let g=Reflect.apply(a[e],a,f),i=new Headers(c);return g instanceof h.ResponseCookies&&c.set("x-middleware-set-cookie",g.getAll().map(a=>(0,d.stringifyCookie)(a)).join(",")),k(b,i),g};default:return g.ReflectAdapter.get(a,e,f)}}});this[i]={cookies:j,url:b.url?new e.NextURL(b.url,{headers:(0,f.toNodeOutgoingHttpHeaders)(c),nextConfig:b.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[i].cookies}static json(a,b){let c=Response.json(a,b);return new l(c.body,c)}static redirect(a,b){let c="number"==typeof b?b:(null==b?void 0:b.status)??307;if(!j.has(c))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let d="object"==typeof b?b:{},e=new Headers(null==d?void 0:d.headers);return e.set("Location",(0,f.validateURL)(a)),new l(null,{...d,headers:e,status:c})}static rewrite(a,b){let c=new Headers(null==b?void 0:b.headers);return c.set("x-middleware-rewrite",(0,f.validateURL)(a)),k(b,c),new l(null,{...b,headers:c})}static next(a){let b=new Headers(null==a?void 0:a.headers);return b.set("x-middleware-next","1"),k(a,b),new l(null,{...a,headers:b})}}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=249,exports.ids=[249],exports.modules={6324:(a,b,c)=>{c.d(b,{Jd:()=>i,SF:()=>h,Xg:()=>j,_A:()=>g});var d=c(44046),e=c(86548);let f=d.vk(a=>{if("string"==typeof a){let[b,...c]=a.trim().split(/\s+/);return{name:b,type:c.join(" ")||"text"}}return a},d.Ik({name:d.Yj().trim().min(1),type:d.Yj().trim().min(1),isPk:d.zM().optional(),isFk:d.zM().optional(),nullable:d.zM().optional(),note:d.Yj().nullish()})),g=d.Ik({name:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),columns:d.YO(f).default([])}),h=d.Ik({fromTable:d.Yj(),fromColumn:d.Yj(),toTable:d.Yj(),toColumn:d.Yj(),label:d.Yj().nullish()}),i=d.Ik({method:d.Yj().trim().min(1),path:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),uses:d.YO(d.Ik({table:d.Yj().trim().min(1),access:d.Yj().optional()})).default([])}).transform(a=>({...a,uses:a.uses.map(b=>({...b,access:b.access??(0,e.P)(a.method)}))})),j=d.Ik({tables:d.YO(g).default([]),relations:d.YO(h).default([]),endpoints:d.YO(i).default([])})},24433:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{J:()=>i});var e=c(6324),f=c(50101),g=a([f]);f=(g.then?(await g)():g)[0];let j=/^[ \t]*```beacon[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*```[ \t]*$/im;function h(a,b){if(!Array.isArray(a))return[];let c=[];for(let d of a){let a=b.safeParse(d);a.success&&c.push(a.data)}return c}function i(a){let b,c=a.match(j);if(!c)return{prose:a};try{b=JSON.parse(c[1])}catch{return{prose:a}}let d=b&&"object"==typeof b?b:{},g=h(d.tables,e._A),i=h(d.relations,e.SF),k=h(d.endpoints,e.Jd),l=h(d.features,f.te),m=g.length||k.length||i.length?{tables:g,relations:i,endpoints:k}:void 0,n=l.length?l:void 0;return m||n?{prose:a.replace(j,"").replace(/\n{3,}/g,"\n\n").trim(),draft:m,features:n}:{prose:a}}d()}catch(a){d(a)}})},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},50101:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C5:()=>m,KR:()=>l,Qy:()=>o,t7:()=>k,te:()=>n});var e=c(44046),f=c(34216),g=c(56727),h=c(30046),i=c(90497),j=a([g]);g=(j.then?(await j)():j)[0];let n=e.Ik({title:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),cluster:e.Yj().nullish(),category:e.Yj().nullish(),domain:e.Yj().nullish(),priority:e.ai().nullish(),dependsOn:e.YO(e.Yj()).nullish()}).transform(({category:a,domain:b,priority:c,...d})=>({...d,cluster:d.cluster??a??b??null,priority:null==c?null:Math.max(0,Math.min(3,Math.round(c)))})),o=e.Ik({features:e.YO(n).default([])});async function k(a=g.db){await a.delete(h.node).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP")))}async function l(a,b=g.db){let c=o.parse(a);await k(b);let d=await b.query.node.findFirst({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{desc:b})=>b(a.y)}),e=(d?.y??0)+200,f=new Set(c.features.map(a=>a.title.trim())),j=c.features.map(a=>({id:a.title.trim()})),m=c.features.flatMap(a=>(a.dependsOn??[]).map(a=>a.trim()).filter(b=>f.has(b)&&b!==a.title.trim()).map(b=>({fromId:a.title.trim(),toId:b}))),n=(0,i.u)(j,m),p=new Map;for(let a of c.features){let c=n.get(a.title.trim())??{x:0,y:0},[d]=await b.insert(h.node).values({view:"ROADMAP",source:"DRAFT",status:"PENDING",title:a.title,role:a.role??null,plain:a.plain??null,cluster:a.cluster??null,priority:a.priority??2,x:c.x,y:c.y+e}).returning();p.set(a.title.trim(),d.id)}for(let a of c.features){let c=p.get(a.title.trim());if(c&&a.dependsOn)for(let d of a.dependsOn){let a=p.get(d.trim());a&&a!==c&&(await b.query.edge.findFirst({where:(b,{and:d,eq:e})=>d(e(b.fromId,c),e(b.toId,a),e(b.kind,"DEPENDS"))})||await b.insert(h.edge).values({fromId:c,toId:a,kind:"DEPENDS"}))}}}async function m(a=g.db){let b=await a.query.node.findMany({where:(a,{and:b,eq:c})=>b(c(a.source,"DRAFT"),c(a.view,"ROADMAP")),orderBy:(a,{asc:b})=>b(a.createdAt)}),c=b.map(a=>a.id),d=c.length?await a.query.edge.findMany({where:(a,{and:b,eq:d})=>b(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,c),(0,f.RV)(a.toId,c))}):[],e=new Map(b.map(a=>[a.id,a.title])),h=new Map;for(let a of d){let b=e.get(a.toId);if(!b)continue;let c=h.get(a.fromId)??[];c.push(b),h.set(a.fromId,c)}return{features:b.map(a=>({title:a.title,role:a.role,plain:a.plain,cluster:a.cluster,priority:a.priority,dependsOn:h.get(a.id)}))}}d()}catch(a){d(a)}})},72179:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BK:()=>B,CW:()=>D,Gf:()=>u,NK:()=>y,Vs:()=>v,XF:()=>C,iL:()=>t,mk:()=>A,rw:()=>w,zO:()=>x});var e=c(77598),f=c(73024),g=c(76760),h=c(44046),i=c(34216),j=c(56727),k=c(30046),l=c(45301),m=c(32213),n=c(19734),o=c(86548),p=c(24983),q=a([j,n,p]);function r(){return(0,g.join)((0,l.KS)(),"draft.json")}function s(){return(0,g.join)((0,l.KS)(),"draft-verdict.json")}function t(){try{return JSON.parse((0,f.readFileSync)(r(),"utf8"))}catch{return null}}function u(a,b=0,c=Date.now()){let d=function(a,b,c=0){let d=new Map,f=(0,p.wx)(a.tables.map(a=>({key:a.name,columnCount:a.columns.length}))),g=0,h=a.tables.map(a=>{let b=(0,e.randomUUID)();d.set(a.name,b);let h=f.get(a.name)??{x:0,y:0};return g=Math.max(g,h.y+(0,p.mn)(a.columns.length)),{id:b,name:a.name,domain:a.domain??null,description:a.description??null,x:h.x,y:c+h.y,columns:a.columns.map(a=>({name:a.name,type:a.type,isPk:a.isPk??!1,isFk:a.isFk??!1,nullable:a.nullable??!0,note:a.note??null}))}}),i=a.relations.flatMap(a=>{let b=d.get(a.fromTable),c=d.get(a.toTable);return b&&c?[{id:(0,e.randomUUID)(),fromTableId:b,toTableId:c,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label??`${a.fromColumn} → ${a.toTable}.${a.toColumn}`}]:[]}),j=c+g+280,k=a.endpoints.map((a,b)=>({id:(0,e.randomUUID)(),method:a.method,path:a.path,domain:a.domain??null,description:a.description??null,x:b%3*320+40,y:j+120*Math.floor(b/3),links:a.uses.flatMap(a=>{let b=d.get(a.table);return b?[{tableId:b,access:a.access}]:[]})}));return{proposedAt:b,status:"pending",tables:h,relations:i,endpoints:k}}(a,c,b);return(0,m.q)(r(),d),(0,f.rmSync)(s(),{force:!0}),d}function v(){(0,f.rmSync)(r(),{force:!0})}function w(){(0,f.rmSync)(r(),{force:!0}),(0,f.rmSync)(s(),{force:!0})}function x(a){let b=new Map(a.tables.map(a=>[a.id,a.name])),c=["## Approved schema","","### Tables"];for(let b of a.tables)for(let a of(c.push(`- **${b.name}**${b.domain?` (${b.domain})`:""}`),b.columns)){let b=[a.isPk&&"PK",a.isFk&&"FK",a.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");c.push(` - ${a.name} ${a.type}${b?` ${b}`:""}${a.note?` — ${a.note}`:""}`)}if(a.relations.length)for(let d of(c.push("","### Relations (FKs)"),a.relations)){let a=b.get(d.fromTableId)??d.fromTableId,e=b.get(d.toTableId)??d.toTableId;c.push(`- ${a}.${d.fromColumn} → ${e}.${d.toColumn}`)}if(a.endpoints.length)for(let d of(c.push("","### Endpoints"),a.endpoints)){let a=d.links.map(a=>`${b.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`- ${d.method} ${d.path}${a?` — ${a}`:""}`)}return c.join("\n")}function y(a,b){let c=[],d=new Map(a.tables.map(a=>[a.name,a])),e=new Map(b.tables.map(a=>[a.name,a]));for(let a of b.tables)d.has(a.name)||c.push(`added table **${a.name}**`);for(let b of a.tables)e.has(b.name)||c.push(`removed table **${b.name}**`);for(let a of b.tables){let b=d.get(a.name);if(!b)continue;let e=new Map(b.columns.map(a=>[a.name,a])),f=new Map(a.columns.map(a=>[a.name,a]));for(let b of a.columns){let d=e.get(b.name);if(!d){c.push(`added column **${a.name}.${b.name}** (${b.type})`);continue}let f=[];d.type!==b.type&&f.push(`type ${d.type} → ${b.type}`),d.isPk!==b.isPk&&f.push(b.isPk?"now PK":"no longer PK"),d.isFk!==b.isFk&&f.push(b.isFk?"now FK":"no longer FK"),d.nullable!==b.nullable&&f.push(b.nullable?"now accepts NULL":"now NOT NULL"),(d.note??"")!==(b.note??"")&&f.push(`note: "${b.note??""}"`),f.length&&c.push(`changed **${a.name}.${b.name}** — ${f.join("; ")}`)}for(let d of b.columns)f.has(d.name)||c.push(`removed column **${a.name}.${d.name}** (was ${d.type})`)}let f=(a,b)=>`${b.get(a.fromTableId)??a.fromTableId}.${a.fromColumn}→${b.get(a.toTableId)??a.toTableId}.${a.toColumn}`,g=new Map(a.tables.map(a=>[a.id,a.name])),h=new Map(b.tables.map(a=>[a.id,a.name])),i=new Set(a.relations.map(a=>f(a,g))),j=new Set(b.relations.map(a=>f(a,h)));for(let a of j)i.has(a)||c.push(`added relation ${a}`);for(let a of i)j.has(a)||c.push(`removed relation ${a}`);let k=a=>`${a.method} ${a.path}`,l=new Map(a.endpoints.map(a=>[k(a),a])),m=new Map(b.endpoints.map(a=>[k(a),a]));for(let[a,b]of m)if(!l.has(a)){let d=b.links.map(a=>`${h.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`added endpoint **${a}**${d?` — ${d}`:""}`)}for(let[a]of l)m.has(a)||c.push(`removed endpoint **${a}**`);return c}function z(a){(0,m.q)(s(),a)}function A(){let a=t();a&&z({proposedAt:a.proposedAt,status:"discarded",summary:"The user discarded the draft."}),v()}function B(){let a=t();if(a)return{state:"pending",proposedAt:a.proposedAt};let b=function(){try{return JSON.parse((0,f.readFileSync)(s(),"utf8"))}catch{return null}}();return b?{state:b.status,proposedAt:b.proposedAt,summary:b.summary,detail:b.detail}:{state:"none"}}[j,n,p]=q.then?(await q)():q;let E=h.Ik({proposedAt:h.ai(),status:h.Yj(),tables:h.YO(h.Ik({id:h.Yj(),name:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),columns:h.YO(h.Ik({name:h.Yj().trim().min(1),type:h.Yj(),isPk:h.zM(),isFk:h.zM(),nullable:h.zM(),note:h.Yj().nullable()}))})),relations:h.YO(h.Ik({id:h.Yj(),fromTableId:h.Yj(),toTableId:h.Yj(),fromColumn:h.Yj(),toColumn:h.Yj(),label:h.Yj().nullable()})),endpoints:h.YO(h.Ik({id:h.Yj(),method:h.Yj().trim().min(1),path:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),links:h.YO(h.Ik({tableId:h.Yj(),access:h.Yj()}))}))});async function C(a,b=j.db){let c=E.parse(a),d=new Map(c.tables.map(a=>[a.id,a.name])),e=new Map;for(let a of c.tables){let[c]=await b.insert(k.dbTable).values({name:a.name,domain:a.domain,description:a.description,source:"MANUAL",x:a.x,y:a.y}).onConflictDoUpdate({target:k.dbTable.name,set:{domain:a.domain,description:a.description}}).returning();e.set(a.name,c.id),await b.delete(k.dbColumn).where((0,i.eq)(k.dbColumn.tableId,c.id)),a.columns.length&&await b.insert(k.dbColumn).values(a.columns.map((a,b)=>({tableId:c.id,name:a.name,type:a.type,isPk:a.isPk,isFk:a.isFk,nullable:a.nullable,note:a.note,ord:b})))}let f=async a=>{let c=d.get(a);if(c)return e.get(c)??null;let f=await b.query.dbTable.findFirst({where:(b,{eq:c})=>c(b.id,a)}).catch(()=>null);return f?f.id:null};for(let a of c.relations){let c=await f(a.fromTableId),d=await f(a.toTableId);c&&d&&(await b.query.dbRelation.findFirst({where:(b,{and:e,eq:f})=>e(f(b.fromTableId,c),f(b.toTableId,d),f(b.fromColumn,a.fromColumn),f(b.toColumn,a.toColumn))})||await b.insert(k.dbRelation).values({fromTableId:c,toTableId:d,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label}))}for(let a of c.endpoints){let[c]=await b.insert(k.endpoint).values({method:a.method,path:a.path,domain:a.domain,description:a.description,source:"MANUAL",x:a.x,y:a.y}).onConflictDoUpdate({target:[k.endpoint.method,k.endpoint.path],set:{domain:a.domain,description:a.description}}).returning();for(let d of(await b.delete(k.endpointTable).where((0,i.eq)(k.endpointTable.endpointId,c.id)),a.links)){let a=await f(d.tableId);a&&await b.insert(k.endpointTable).values({endpointId:c.id,tableId:a,access:d.access}).catch(()=>{})}}let g=`${c.tables.length} table(s), ${c.relations.length} relation(s) and ${c.endpoints.length} endpoint(s) approved and persisted to the schema.`;return z({proposedAt:c.proposedAt,status:"approved",summary:g,detail:x(c)}),v(),await (0,n.Bx)(b),{tables:c.tables.length,relations:c.relations.length,endpoints:c.endpoints.length}}async function D(a=j.db){let b=await a.query.endpoint.findMany({with:{tables:!0}}),c=0;for(let d of b)if("write"===(0,o.P)(d.method))for(let b of d.tables)"read"===b.access&&(await a.update(k.endpointTable).set({access:"write"}).where((0,i.eq)(k.endpointTable.id,b.id)),c++);return c}d()}catch(a){d(a)}})},79935:(a,b,c)=>{c.d(b,{j:()=>d});function d(a,b,c){let d=[`# Plan: ${a}`,""],e=c?.features??[];if(e.length)for(let a of(d.push("## Features",""),e))d.push(`### ${a.title}`),a.cluster&&d.push(`*Domain:* \`${a.cluster}\``),a.role&&d.push(`*Role:* ${a.role}`),a.plain&&d.push("",a.plain),d.push("");let f=b?.tables??[];if(f.length)for(let a of(d.push("## Database — Tables",""),f)){for(let b of(d.push(`### Table \`${a.name}\``),a.domain&&d.push(`*Domain:* \`${a.domain}\``),a.description&&d.push("",a.description,""),a.columns)){let a=[b.isPk&&"PK",b.isFk&&"FK",b.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");d.push(`- \`${b.name}\` ${b.type}${a?` *${a}*`:""}${b.note?` — ${b.note}`:""}`)}d.push("")}let g=b?.relations??[];if(g.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Database — Relations (FKs)",""),g)){let c=a.get(b.fromTableId)??b.fromTableId,e=a.get(b.toTableId)??b.toTableId;d.push(`- \`${c}.${b.fromColumn}\` → \`${e}.${b.toColumn}\``)}d.push("")}let h=b?.endpoints??[];if(h.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Endpoints",""),h)){if(d.push(`### ${b.method} ${b.path}`),b.domain&&d.push(`*Domain:* \`${b.domain}\``),b.description&&d.push("",b.description),b.links.length){let c=b.links.map(b=>`\`${a.get(b.tableId)??b.tableId}\` (${b.access})`).join(", ");d.push("",`Touches: ${c}`)}d.push("")}}return d.join("\n")}},86548:(a,b,c)=>{c.d(b,{P:()=>e});let d=new Set(["GET","HEAD","OPTIONS"]);function e(a){return d.has(a.trim().toUpperCase())?"read":"write"}}};
|
|
1
|
+
"use strict";exports.id=249,exports.ids=[249],exports.modules={6324:(a,b,c)=>{c.d(b,{Jd:()=>i,SF:()=>h,Xg:()=>j,_A:()=>g});var d=c(44046),e=c(86548);let f=d.vk(a=>{if("string"==typeof a){let[b,...c]=a.trim().split(/\s+/);return{name:b,type:c.join(" ")||"text"}}return a},d.Ik({name:d.Yj().trim().min(1),type:d.Yj().trim().min(1),isPk:d.zM().optional(),isFk:d.zM().optional(),nullable:d.zM().optional(),note:d.Yj().nullish()})),g=d.Ik({name:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),columns:d.YO(f).default([])}),h=d.Ik({fromTable:d.Yj(),fromColumn:d.Yj(),toTable:d.Yj(),toColumn:d.Yj(),label:d.Yj().nullish()}),i=d.Ik({method:d.Yj().trim().min(1),path:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),uses:d.YO(d.Ik({table:d.Yj().trim().min(1),access:d.Yj().optional()})).default([])}).transform(a=>({...a,uses:a.uses.map(b=>({...b,access:b.access??(0,e.P)(a.method)}))})),j=d.Ik({tables:d.YO(g).default([]),relations:d.YO(h).default([]),endpoints:d.YO(i).default([])})},24433:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{J:()=>i});var e=c(6324),f=c(50101),g=a([f]);f=(g.then?(await g)():g)[0];let j=/^[ \t]*```beacon[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*```[ \t]*$/im;function h(a,b){if(!Array.isArray(a))return[];let c=[];for(let d of a){let a=b.safeParse(d);a.success&&c.push(a.data)}return c}function i(a){let b,c=a.match(j);if(!c)return{prose:a};try{b=JSON.parse(c[1])}catch{return{prose:a}}let d=b&&"object"==typeof b?b:{},g=h(d.tables,e._A),i=h(d.relations,e.SF),k=h(d.endpoints,e.Jd),l=h(d.features,f.te),m=g.length||k.length||i.length?{tables:g,relations:i,endpoints:k}:void 0,n=l.length?l:void 0;return m||n?{prose:a.replace(j,"").replace(/\n{3,}/g,"\n\n").trim(),draft:m,features:n}:{prose:a}}d()}catch(a){d(a)}})},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},50101:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C5:()=>m,KR:()=>l,Qy:()=>o,t7:()=>k,te:()=>n});var e=c(44046),f=c(34216),g=c(56727),h=c(30046),i=c(90497),j=a([g]);g=(j.then?(await j)():j)[0];let n=e.Ik({title:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),cluster:e.Yj().nullish(),category:e.Yj().nullish(),domain:e.Yj().nullish(),priority:e.ai().nullish(),dependsOn:e.YO(e.Yj()).nullish()}).transform(({category:a,domain:b,priority:c,...d})=>({...d,cluster:d.cluster??a??b??null,priority:null==c?null:Math.max(0,Math.min(3,Math.round(c)))})),o=e.Ik({features:e.YO(n).default([])});async function k(a=g.db){await a.delete(h.node).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP")))}async function l(a,b=g.db){let c=o.parse(a);await k(b);let d=await b.query.node.findFirst({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{desc:b})=>b(a.y)}),e=(d?.y??0)+200,f=new Set(c.features.map(a=>a.title.trim())),j=c.features.map(a=>({id:a.title.trim()})),m=c.features.flatMap(a=>(a.dependsOn??[]).map(a=>a.trim()).filter(b=>f.has(b)&&b!==a.title.trim()).map(b=>({fromId:a.title.trim(),toId:b}))),n=(0,i.u)(j,m),p=new Map;for(let a of c.features){let c=n.get(a.title.trim())??{x:0,y:0},[d]=await b.insert(h.node).values({view:"ROADMAP",source:"DRAFT",status:"PENDING",title:a.title,role:a.role??null,plain:a.plain??null,cluster:a.cluster??null,priority:a.priority??2,x:c.x,y:c.y+e}).returning();p.set(a.title.trim(),d.id)}for(let a of c.features){let c=p.get(a.title.trim());if(c&&a.dependsOn)for(let d of a.dependsOn){let a=p.get(d.trim());a&&a!==c&&(await b.query.edge.findFirst({where:(b,{and:d,eq:e})=>d(e(b.fromId,c),e(b.toId,a),e(b.kind,"DEPENDS"))})||await b.insert(h.edge).values({fromId:c,toId:a,kind:"DEPENDS"}))}}}async function m(a=g.db){let b=await a.query.node.findMany({where:(a,{and:b,eq:c})=>b(c(a.source,"DRAFT"),c(a.view,"ROADMAP")),orderBy:(a,{asc:b})=>b(a.createdAt)}),c=b.map(a=>a.id),d=c.length?await a.query.edge.findMany({where:(a,{and:b,eq:d})=>b(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,c),(0,f.RV)(a.toId,c))}):[],e=new Map(b.map(a=>[a.id,a.title])),h=new Map;for(let a of d){let b=e.get(a.toId);if(!b)continue;let c=h.get(a.fromId)??[];c.push(b),h.set(a.fromId,c)}return{features:b.map(a=>({title:a.title,role:a.role,plain:a.plain,cluster:a.cluster,priority:a.priority,dependsOn:h.get(a.id)}))}}d()}catch(a){d(a)}})},72179:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BK:()=>B,CW:()=>D,Gf:()=>u,NK:()=>y,Vs:()=>v,XF:()=>C,iL:()=>t,mk:()=>A,rw:()=>w,zO:()=>x});var e=c(77598),f=c(73024),g=c(76760),h=c(44046),i=c(34216),j=c(56727),k=c(30046),l=c(45301),m=c(32213),n=c(19734),o=c(86548),p=c(24983),q=a([j,n,p]);function r(){return(0,g.join)((0,l.KS)(),"draft.json")}function s(){return(0,g.join)((0,l.KS)(),"draft-verdict.json")}function t(){try{return JSON.parse((0,f.readFileSync)(r(),"utf8"))}catch{return null}}function u(a,b=0,c=Date.now()){let d=function(a,b,c=0){let d=new Map,f=(0,p.wx)(a.tables.map(a=>({key:a.name,columnCount:a.columns.length}))),g=0,h=a.tables.map(a=>{let b=(0,e.randomUUID)();d.set(a.name,b);let h=f.get(a.name)??{x:0,y:0};return g=Math.max(g,h.y+(0,p.mn)(a.columns.length)),{id:b,name:a.name,domain:a.domain??null,description:a.description??null,x:h.x,y:c+h.y,columns:a.columns.map(a=>({name:a.name,type:a.type,isPk:a.isPk??!1,isFk:a.isFk??!1,nullable:a.nullable??!0,note:a.note??null}))}}),i=a.relations.flatMap(a=>{let b=d.get(a.fromTable),c=d.get(a.toTable);return b&&c?[{id:(0,e.randomUUID)(),fromTableId:b,toTableId:c,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label??`${a.fromColumn} → ${a.toTable}.${a.toColumn}`}]:[]}),j=c+g+280,k=a.endpoints.map((a,b)=>({id:(0,e.randomUUID)(),method:a.method,path:a.path,domain:a.domain??null,description:a.description??null,x:b%3*320+40,y:j+120*Math.floor(b/3),links:a.uses.flatMap(a=>{let b=d.get(a.table);return b?[{tableId:b,access:a.access}]:[]})}));return{proposedAt:b,status:"pending",tables:h,relations:i,endpoints:k}}(a,c,b);return(0,m.q)(r(),d),(0,f.rmSync)(s(),{force:!0}),d}function v(){(0,f.rmSync)(r(),{force:!0})}function w(){(0,f.rmSync)(r(),{force:!0}),(0,f.rmSync)(s(),{force:!0})}function x(a){let b=new Map(a.tables.map(a=>[a.id,a.name])),c=["## Approved schema","","### Tables"];for(let b of a.tables)for(let a of(c.push(`- **${b.name}**${b.domain?` (${b.domain})`:""}`),b.columns)){let b=[a.isPk&&"PK",a.isFk&&"FK",a.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");c.push(` - ${a.name} ${a.type}${b?` ${b}`:""}${a.note?` — ${a.note}`:""}`)}if(a.relations.length)for(let d of(c.push("","### Relations (FKs)"),a.relations)){let a=b.get(d.fromTableId)??d.fromTableId,e=b.get(d.toTableId)??d.toTableId;c.push(`- ${a}.${d.fromColumn} → ${e}.${d.toColumn}`)}if(a.endpoints.length)for(let d of(c.push("","### Endpoints"),a.endpoints)){let a=d.links.map(a=>`${b.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`- ${d.method} ${d.path}${a?` — ${a}`:""}`)}return c.join("\n")}function y(a,b){let c=[],d=new Map(a.tables.map(a=>[a.name,a])),e=new Map(b.tables.map(a=>[a.name,a]));for(let a of b.tables)d.has(a.name)||c.push(`added table **${a.name}**`);for(let b of a.tables)e.has(b.name)||c.push(`removed table **${b.name}**`);for(let a of b.tables){let b=d.get(a.name);if(!b)continue;let e=new Map(b.columns.map(a=>[a.name,a])),f=new Map(a.columns.map(a=>[a.name,a]));for(let b of a.columns){let d=e.get(b.name);if(!d){c.push(`added column **${a.name}.${b.name}** (${b.type})`);continue}let f=[];d.type!==b.type&&f.push(`type ${d.type} → ${b.type}`),d.isPk!==b.isPk&&f.push(b.isPk?"now PK":"no longer PK"),d.isFk!==b.isFk&&f.push(b.isFk?"now FK":"no longer FK"),d.nullable!==b.nullable&&f.push(b.nullable?"now accepts NULL":"now NOT NULL"),(d.note??"")!==(b.note??"")&&f.push(`note: "${b.note??""}"`),f.length&&c.push(`changed **${a.name}.${b.name}** — ${f.join("; ")}`)}for(let d of b.columns)f.has(d.name)||c.push(`removed column **${a.name}.${d.name}** (was ${d.type})`)}let f=(a,b)=>`${b.get(a.fromTableId)??a.fromTableId}.${a.fromColumn}→${b.get(a.toTableId)??a.toTableId}.${a.toColumn}`,g=new Map(a.tables.map(a=>[a.id,a.name])),h=new Map(b.tables.map(a=>[a.id,a.name])),i=new Set(a.relations.map(a=>f(a,g))),j=new Set(b.relations.map(a=>f(a,h)));for(let a of j)i.has(a)||c.push(`added relation ${a}`);for(let a of i)j.has(a)||c.push(`removed relation ${a}`);let k=a=>`${a.method} ${a.path}`,l=new Map(a.endpoints.map(a=>[k(a),a])),m=new Map(b.endpoints.map(a=>[k(a),a]));for(let[a,b]of m)if(!l.has(a)){let d=b.links.map(a=>`${h.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`added endpoint **${a}**${d?` — ${d}`:""}`)}for(let[a]of l)m.has(a)||c.push(`removed endpoint **${a}**`);return c}function z(a){(0,m.q)(s(),a)}function A(){let a=t();a&&z({proposedAt:a.proposedAt,status:"discarded",summary:"The user discarded the draft."}),v()}function B(){let a=t();if(a)return{state:"pending",proposedAt:a.proposedAt};let b=function(){try{return JSON.parse((0,f.readFileSync)(s(),"utf8"))}catch{return null}}();return b?{state:b.status,proposedAt:b.proposedAt,summary:b.summary,detail:b.detail}:{state:"none"}}[j,n,p]=q.then?(await q)():q;let E=h.Ik({proposedAt:h.ai(),status:h.Yj(),tables:h.YO(h.Ik({id:h.Yj(),name:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),columns:h.YO(h.Ik({name:h.Yj().trim().min(1),type:h.Yj(),isPk:h.zM(),isFk:h.zM(),nullable:h.zM(),note:h.Yj().nullable()}))})),relations:h.YO(h.Ik({id:h.Yj(),fromTableId:h.Yj(),toTableId:h.Yj(),fromColumn:h.Yj(),toColumn:h.Yj(),label:h.Yj().nullable()})),endpoints:h.YO(h.Ik({id:h.Yj(),method:h.Yj().trim().min(1),path:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),links:h.YO(h.Ik({tableId:h.Yj(),access:h.Yj()}))}))});async function C(a,b=j.db){let c=E.parse(a),d=new Map(c.tables.map(a=>[a.id,a.name])),e=new Map;for(let a of c.tables){let[c]=await b.insert(k.dbTable).values({name:a.name,domain:a.domain,description:a.description,source:"MANUAL",x:a.x,y:a.y}).onConflictDoUpdate({target:k.dbTable.name,set:{domain:a.domain,description:a.description}}).returning();e.set(a.name,c.id),await b.delete(k.dbColumn).where((0,i.eq)(k.dbColumn.tableId,c.id)),a.columns.length&&await b.insert(k.dbColumn).values(a.columns.map((a,b)=>({tableId:c.id,name:a.name,type:a.type,isPk:a.isPk,isFk:a.isFk,nullable:a.nullable,note:a.note,ord:b})))}let f=async a=>{let c=d.get(a);if(c)return e.get(c)??null;let f=await b.query.dbTable.findFirst({where:(b,{eq:c})=>c(b.id,a)}).catch(()=>null);return f?f.id:null};for(let a of c.relations){let c=await f(a.fromTableId),d=await f(a.toTableId);c&&d&&(await b.query.dbRelation.findFirst({where:(b,{and:e,eq:f})=>e(f(b.fromTableId,c),f(b.toTableId,d),f(b.fromColumn,a.fromColumn),f(b.toColumn,a.toColumn))})||await b.insert(k.dbRelation).values({fromTableId:c,toTableId:d,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label}))}for(let a of c.endpoints){let[c]=await b.insert(k.endpoint).values({method:a.method,path:a.path,domain:a.domain,description:a.description,source:"MANUAL",x:a.x,y:a.y}).onConflictDoUpdate({target:[k.endpoint.method,k.endpoint.path],set:{domain:a.domain,description:a.description}}).returning();for(let d of(await b.delete(k.endpointTable).where((0,i.eq)(k.endpointTable.endpointId,c.id)),a.links)){let a=await f(d.tableId);a&&await b.insert(k.endpointTable).values({endpointId:c.id,tableId:a,access:d.access}).catch(()=>{})}}let g=`${c.tables.length} table(s), ${c.relations.length} relation(s) and ${c.endpoints.length} endpoint(s) approved and persisted to the schema.`;return z({proposedAt:c.proposedAt,status:"approved",summary:g,detail:x(c)}),v(),await (0,n.Bx)(b),{tables:c.tables.length,relations:c.relations.length,endpoints:c.endpoints.length}}async function D(a=j.db){let b=await a.query.endpoint.findMany({with:{tables:!0}}),c=0;for(let d of b)if("write"===(0,o.P)(d.method))for(let b of d.tables)"read"===b.access&&(await a.update(k.endpointTable).set({access:"write"}).where((0,i.eq)(k.endpointTable.id,b.id)),c++);return c}d()}catch(a){d(a)}})},79935:(a,b,c)=>{c.d(b,{j:()=>d});function d(a,b,c){let d=[`# Plan: ${a}`,""],e=c?.features??[];if(e.length)for(let a of(d.push("## Features",""),e))d.push(`### ${a.title}`),a.cluster&&d.push(`*Domain:* \`${a.cluster}\``),a.role&&d.push(`*Role:* ${a.role}`),a.plain&&d.push("",a.plain),d.push("");let f=b?.tables??[];if(f.length)for(let a of(d.push("## Database — Tables",""),f)){for(let b of(d.push(`### Table \`${a.name}\``),a.domain&&d.push(`*Domain:* \`${a.domain}\``),a.description&&d.push("",a.description,""),a.columns)){let a=[b.isPk&&"PK",b.isFk&&"FK",b.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");d.push(`- \`${b.name}\` ${b.type}${a?` *${a}*`:""}${b.note?` — ${b.note}`:""}`)}d.push("")}let g=b?.relations??[];if(g.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Database — Relations (FKs)",""),g)){let c=a.get(b.fromTableId)??b.fromTableId,e=a.get(b.toTableId)??b.toTableId;d.push(`- \`${c}.${b.fromColumn}\` → \`${e}.${b.toColumn}\``)}d.push("")}let h=b?.endpoints??[];if(h.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Endpoints",""),h)){if(d.push(`### ${b.method} ${b.path}`),b.domain&&d.push(`*Domain:* \`${b.domain}\``),b.description&&d.push("",b.description),b.links.length){let c=b.links.map(b=>`\`${a.get(b.tableId)??b.tableId}\` (${b.access})`).join(", ");d.push("",`Touches: ${c}`)}d.push("")}}return d.join("\n")}},86548:(a,b,c)=>{c.d(b,{P:()=>e});let d=new Set(["GET","HEAD","OPTIONS"]);function e(a){return d.has(a.trim().toUpperCase())?"read":"write"}},90497:(a,b,c)=>{c.d(b,{u:()=>i});var d=c(61661),e=c(52648),f=c(61639),g=c(62088),h=c(19125);function i(a,b,c={}){let j,k=c.linkDistance??210,l=c.charge??-450,m=c.collideRadius??132,n=c.ticks??500,o=[...a].sort((a,b)=>a.id<b.id?-1:+(a.id>b.id)),p=new Set(o.map(a=>a.id)),q=o.map(a=>({id:a.id})),r=[];for(let a of b)a.fromId!==a.toId&&p.has(a.fromId)&&p.has(a.toId)&&r.push({source:a.fromId,target:a.toId});for(let a of o)a.parentId&&p.has(a.parentId)&&r.push({source:a.id,target:a.parentId});let s=(0,d.A)(q).randomSource((j=0x9e3779b9,()=>{let a=j=j+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000})).force("link",(0,e.A)(r).id(a=>a.id).distance(k).strength(.6)).force("charge",(0,f.A)().strength(l).distanceMax(1200)).force("collide",(0,g.A)().radius(m).strength(1)).force("center",(0,h.A)(0,0).strength(.08)).stop();for(let a=0;a<n;a++)s.tick();let t=new Map;for(let a of q)t.set(a.id,{x:Math.round(a.x??0),y:Math.round(a.y??0)});return t}}};
|