trybeacon 0.1.0
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 -0
- package/.next/app-path-routes-manifest.json +59 -0
- package/.next/build/56416d4ae4ce586f.js +6 -0
- package/.next/build/56416d4ae4ce586f.js.map +5 -0
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +206 -0
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +8 -0
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +500 -0
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +11 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +13 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +890 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/build/chunks/node_modules_20v-8wl._.js +6824 -0
- package/.next/build/chunks/node_modules_20v-8wl._.js.map +47 -0
- package/.next/build/package.json +1 -0
- package/.next/build-manifest.json +21 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/diagnostics/route-bundle-stats.json +100 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +13 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +167 -0
- package/.next/required-server-files.js +338 -0
- package/.next/required-server-files.json +338 -0
- package/.next/routes-manifest.json +402 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +10 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +15 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +24 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +24 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +13 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/api/code-graph/position/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/code-graph/position/route/build-manifest.json +9 -0
- package/.next/server/app/api/code-graph/position/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/code-graph/position/route.js +12 -0
- package/.next/server/app/api/code-graph/position/route.js.map +5 -0
- package/.next/server/app/api/code-graph/position/route.js.nft.json +1 -0
- package/.next/server/app/api/code-graph/position/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/code-graph/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/code-graph/route/build-manifest.json +9 -0
- package/.next/server/app/api/code-graph/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/code-graph/route.js +12 -0
- package/.next/server/app/api/code-graph/route.js.map +5 -0
- package/.next/server/app/api/code-graph/route.js.nft.json +1 -0
- package/.next/server/app/api/code-graph/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/context/embed-backfill/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/context/embed-backfill/route/build-manifest.json +9 -0
- package/.next/server/app/api/context/embed-backfill/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/context/embed-backfill/route.js +11 -0
- package/.next/server/app/api/context/embed-backfill/route.js.map +5 -0
- package/.next/server/app/api/context/embed-backfill/route.js.nft.json +1 -0
- package/.next/server/app/api/context/embed-backfill/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/context/feature/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/context/feature/route/build-manifest.json +9 -0
- package/.next/server/app/api/context/feature/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/context/feature/route.js +15 -0
- package/.next/server/app/api/context/feature/route.js.map +5 -0
- package/.next/server/app/api/context/feature/route.js.nft.json +1 -0
- package/.next/server/app/api/context/feature/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/context/file/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/context/file/route/build-manifest.json +9 -0
- package/.next/server/app/api/context/file/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/context/file/route.js +13 -0
- package/.next/server/app/api/context/file/route.js.map +5 -0
- package/.next/server/app/api/context/file/route.js.nft.json +1 -0
- package/.next/server/app/api/context/file/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/context/route/build-manifest.json +9 -0
- package/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/context/route.js +11 -0
- package/.next/server/app/api/context/route.js.map +5 -0
- package/.next/server/app/api/context/route.js.nft.json +1 -0
- package/.next/server/app/api/context/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/db/backfill-access/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/db/backfill-access/route/build-manifest.json +9 -0
- package/.next/server/app/api/db/backfill-access/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/db/backfill-access/route.js +13 -0
- package/.next/server/app/api/db/backfill-access/route.js.map +5 -0
- package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -0
- package/.next/server/app/api/db/backfill-access/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/db/position/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/db/position/route/build-manifest.json +9 -0
- package/.next/server/app/api/db/position/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/db/position/route.js +15 -0
- package/.next/server/app/api/db/position/route.js.map +5 -0
- package/.next/server/app/api/db/position/route.js.nft.json +1 -0
- package/.next/server/app/api/db/position/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/db/reconcile-endpoints/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/db/reconcile-endpoints/route/build-manifest.json +9 -0
- package/.next/server/app/api/db/reconcile-endpoints/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/db/reconcile-endpoints/route.js +12 -0
- package/.next/server/app/api/db/reconcile-endpoints/route.js.map +5 -0
- package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -0
- package/.next/server/app/api/db/reconcile-endpoints/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/db/relations/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/db/relations/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/db/relations/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/db/relations/[id]/route.js +12 -0
- package/.next/server/app/api/db/relations/[id]/route.js.map +5 -0
- package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/db/relations/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/db/tables/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/db/tables/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/db/tables/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/db/tables/[id]/route.js +12 -0
- package/.next/server/app/api/db/tables/[id]/route.js.map +5 -0
- package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/db/tables/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/draft/approve/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/draft/approve/route/build-manifest.json +9 -0
- package/.next/server/app/api/draft/approve/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/draft/approve/route.js +16 -0
- package/.next/server/app/api/draft/approve/route.js.map +5 -0
- package/.next/server/app/api/draft/approve/route.js.nft.json +1 -0
- package/.next/server/app/api/draft/approve/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/draft/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/draft/route/build-manifest.json +9 -0
- package/.next/server/app/api/draft/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/draft/route.js +16 -0
- package/.next/server/app/api/draft/route.js.map +5 -0
- package/.next/server/app/api/draft/route.js.nft.json +1 -0
- package/.next/server/app/api/draft/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/draft/status/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/draft/status/route/build-manifest.json +9 -0
- package/.next/server/app/api/draft/status/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/draft/status/route.js +13 -0
- package/.next/server/app/api/draft/status/route.js.map +5 -0
- package/.next/server/app/api/draft/status/route.js.nft.json +1 -0
- package/.next/server/app/api/draft/status/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/edges/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/edges/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/edges/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/edges/[id]/route.js +11 -0
- package/.next/server/app/api/edges/[id]/route.js.map +5 -0
- package/.next/server/app/api/edges/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/edges/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/edges/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/edges/route/build-manifest.json +9 -0
- package/.next/server/app/api/edges/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/edges/route.js +15 -0
- package/.next/server/app/api/edges/route.js.map +5 -0
- package/.next/server/app/api/edges/route.js.nft.json +1 -0
- package/.next/server/app/api/edges/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/endpoints/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/endpoints/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/endpoints/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/endpoints/[id]/route.js +12 -0
- package/.next/server/app/api/endpoints/[id]/route.js.map +5 -0
- package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/endpoints/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/entities/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/entities/route/build-manifest.json +9 -0
- package/.next/server/app/api/entities/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/entities/route.js +11 -0
- package/.next/server/app/api/entities/route.js.map +5 -0
- package/.next/server/app/api/entities/route.js.nft.json +1 -0
- package/.next/server/app/api/entities/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/ingest/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/ingest/route/build-manifest.json +9 -0
- package/.next/server/app/api/ingest/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/ingest/route.js +12 -0
- package/.next/server/app/api/ingest/route.js.map +5 -0
- package/.next/server/app/api/ingest/route.js.nft.json +1 -0
- package/.next/server/app/api/ingest/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/init/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/init/route/build-manifest.json +9 -0
- package/.next/server/app/api/init/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/init/route.js +15 -0
- package/.next/server/app/api/init/route.js.map +5 -0
- package/.next/server/app/api/init/route.js.nft.json +1 -0
- package/.next/server/app/api/init/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/describe/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/describe/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/describe/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/describe/route.js +15 -0
- package/.next/server/app/api/map/describe/route.js.map +5 -0
- package/.next/server/app/api/map/describe/route.js.nft.json +1 -0
- package/.next/server/app/api/map/describe/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/files/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/files/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/files/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/files/route.js +15 -0
- package/.next/server/app/api/map/files/route.js.map +5 -0
- package/.next/server/app/api/map/files/route.js.nft.json +1 -0
- package/.next/server/app/api/map/files/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/finish/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/finish/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/finish/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/finish/route.js +15 -0
- package/.next/server/app/api/map/finish/route.js.map +5 -0
- package/.next/server/app/api/map/finish/route.js.nft.json +1 -0
- package/.next/server/app/api/map/finish/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/route.js +15 -0
- package/.next/server/app/api/map/route.js.map +5 -0
- package/.next/server/app/api/map/route.js.nft.json +1 -0
- package/.next/server/app/api/map/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/start/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/start/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/start/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/start/route.js +15 -0
- package/.next/server/app/api/map/start/route.js.map +5 -0
- package/.next/server/app/api/map/start/route.js.nft.json +1 -0
- package/.next/server/app/api/map/start/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/map/touch-active/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/map/touch-active/route/build-manifest.json +9 -0
- package/.next/server/app/api/map/touch-active/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/map/touch-active/route.js +15 -0
- package/.next/server/app/api/map/touch-active/route.js.map +5 -0
- package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -0
- package/.next/server/app/api/map/touch-active/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/nodes/[id]/position/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/nodes/[id]/position/route/build-manifest.json +9 -0
- package/.next/server/app/api/nodes/[id]/position/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/nodes/[id]/position/route.js +15 -0
- package/.next/server/app/api/nodes/[id]/position/route.js.map +5 -0
- package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -0
- package/.next/server/app/api/nodes/[id]/position/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/nodes/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/nodes/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/nodes/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/nodes/[id]/route.js +15 -0
- package/.next/server/app/api/nodes/[id]/route.js.map +5 -0
- package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/nodes/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/nodes/positions/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/nodes/positions/route/build-manifest.json +9 -0
- package/.next/server/app/api/nodes/positions/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/nodes/positions/route.js +15 -0
- package/.next/server/app/api/nodes/positions/route.js.map +5 -0
- package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -0
- package/.next/server/app/api/nodes/positions/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/nodes/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/nodes/route/build-manifest.json +9 -0
- package/.next/server/app/api/nodes/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/nodes/route.js +15 -0
- package/.next/server/app/api/nodes/route.js.map +5 -0
- package/.next/server/app/api/nodes/route.js.nft.json +1 -0
- package/.next/server/app/api/nodes/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/nodes/subtasks/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/nodes/subtasks/route/build-manifest.json +9 -0
- package/.next/server/app/api/nodes/subtasks/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/nodes/subtasks/route.js +15 -0
- package/.next/server/app/api/nodes/subtasks/route.js.map +5 -0
- package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -0
- package/.next/server/app/api/nodes/subtasks/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/notes/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/notes/[id]/route/build-manifest.json +9 -0
- package/.next/server/app/api/notes/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/notes/[id]/route.js +12 -0
- package/.next/server/app/api/notes/[id]/route.js.map +5 -0
- package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/notes/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/notes/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/notes/route/build-manifest.json +9 -0
- package/.next/server/app/api/notes/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/notes/route.js +12 -0
- package/.next/server/app/api/notes/route.js.map +5 -0
- package/.next/server/app/api/notes/route.js.nft.json +1 -0
- package/.next/server/app/api/notes/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/open/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/open/route/build-manifest.json +9 -0
- package/.next/server/app/api/open/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/open/route.js +11 -0
- package/.next/server/app/api/open/route.js.map +5 -0
- package/.next/server/app/api/open/route.js.nft.json +1 -0
- package/.next/server/app/api/open/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/annotations/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/annotations/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/annotations/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/annotations/route.js +15 -0
- package/.next/server/app/api/plan/annotations/route.js.map +5 -0
- package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/annotations/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/approve/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/approve/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/approve/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/approve/route.js +16 -0
- package/.next/server/app/api/plan/approve/route.js.map +5 -0
- package/.next/server/app/api/plan/approve/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/approve/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/history/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/history/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/history/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/history/route.js +11 -0
- package/.next/server/app/api/plan/history/route.js.map +5 -0
- package/.next/server/app/api/plan/history/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/history/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/markdown/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/markdown/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/markdown/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/markdown/route.js +16 -0
- package/.next/server/app/api/plan/markdown/route.js.map +5 -0
- package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/markdown/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/presence/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/presence/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/presence/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/presence/route.js +11 -0
- package/.next/server/app/api/plan/presence/route.js.map +5 -0
- package/.next/server/app/api/plan/presence/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/presence/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/route.js +16 -0
- package/.next/server/app/api/plan/route.js.map +5 -0
- package/.next/server/app/api/plan/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/plan/verdict/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/plan/verdict/route/build-manifest.json +9 -0
- package/.next/server/app/api/plan/verdict/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/plan/verdict/route.js +16 -0
- package/.next/server/app/api/plan/verdict/route.js.map +5 -0
- package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -0
- package/.next/server/app/api/plan/verdict/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/preferences/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/preferences/route/build-manifest.json +9 -0
- package/.next/server/app/api/preferences/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/preferences/route.js +7 -0
- package/.next/server/app/api/preferences/route.js.map +5 -0
- package/.next/server/app/api/preferences/route.js.nft.json +1 -0
- package/.next/server/app/api/preferences/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/reset/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/reset/route/build-manifest.json +9 -0
- package/.next/server/app/api/reset/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/reset/route.js +13 -0
- package/.next/server/app/api/reset/route.js.map +5 -0
- package/.next/server/app/api/reset/route.js.nft.json +1 -0
- package/.next/server/app/api/reset/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/settings/route/build-manifest.json +9 -0
- package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/settings/route.js +11 -0
- package/.next/server/app/api/settings/route.js.map +5 -0
- package/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/stream/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/stream/route/build-manifest.json +9 -0
- package/.next/server/app/api/stream/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/stream/route.js +12 -0
- package/.next/server/app/api/stream/route.js.map +5 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/version/route/build-manifest.json +9 -0
- package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/version/route.js +12 -0
- package/.next/server/app/api/version/route.js.map +5 -0
- package/.next/server/app/api/version/route.js.nft.json +1 -0
- package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/workspace/activate/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/workspace/activate/route/build-manifest.json +9 -0
- package/.next/server/app/api/workspace/activate/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/workspace/activate/route.js +14 -0
- package/.next/server/app/api/workspace/activate/route.js.map +5 -0
- package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -0
- package/.next/server/app/api/workspace/activate/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/workspace/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/workspace/route/build-manifest.json +9 -0
- package/.next/server/app/api/workspace/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/workspace/route.js +11 -0
- package/.next/server/app/api/workspace/route.js.map +5 -0
- package/.next/server/app/api/workspace/route.js.nft.json +1 -0
- package/.next/server/app/api/workspace/route_client-reference-manifest.js +3 -0
- package/.next/server/app/apple-icon.png/route/app-paths-manifest.json +3 -0
- package/.next/server/app/apple-icon.png/route/build-manifest.json +9 -0
- package/.next/server/app/apple-icon.png/route.js +8 -0
- package/.next/server/app/apple-icon.png/route.js.map +5 -0
- package/.next/server/app/apple-icon.png/route.js.nft.json +1 -0
- package/.next/server/app/apple-icon.png.body +0 -0
- package/.next/server/app/apple-icon.png.meta +1 -0
- package/.next/server/app/help/page/app-paths-manifest.json +3 -0
- package/.next/server/app/help/page/build-manifest.json +17 -0
- package/.next/server/app/help/page/next-font-manifest.json +11 -0
- package/.next/server/app/help/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/help/page/server-reference-manifest.json +4 -0
- package/.next/server/app/help/page.js +16 -0
- package/.next/server/app/help/page.js.map +5 -0
- package/.next/server/app/help/page.js.nft.json +1 -0
- package/.next/server/app/help/page_client-reference-manifest.js +3 -0
- package/.next/server/app/help.html +1 -0
- package/.next/server/app/help.meta +15 -0
- package/.next/server/app/help.rsc +36 -0
- package/.next/server/app/help.segments/_full.segment.rsc +36 -0
- package/.next/server/app/help.segments/_head.segment.rsc +6 -0
- package/.next/server/app/help.segments/_index.segment.rsc +13 -0
- package/.next/server/app/help.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +17 -0
- package/.next/server/app/help.segments/help.segment.rsc +5 -0
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
- package/.next/server/app/icon.svg/route/build-manifest.json +9 -0
- package/.next/server/app/icon.svg/route.js +7 -0
- package/.next/server/app/icon.svg/route.js.map +5 -0
- package/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/.next/server/app/icon.svg.body +4 -0
- package/.next/server/app/icon.svg.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +26 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -0
- package/.next/server/app/index.segments/_full.segment.rsc +26 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +13 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +6 -0
- package/.next/server/app/map/page/app-paths-manifest.json +3 -0
- package/.next/server/app/map/page/build-manifest.json +17 -0
- package/.next/server/app/map/page/next-font-manifest.json +11 -0
- package/.next/server/app/map/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/map/page/server-reference-manifest.json +89 -0
- package/.next/server/app/map/page.js +25 -0
- package/.next/server/app/map/page.js.map +5 -0
- package/.next/server/app/map/page.js.nft.json +1 -0
- package/.next/server/app/map/page_client-reference-manifest.js +3 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +17 -0
- package/.next/server/app/page/next-font-manifest.json +11 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/server/app/page.js +16 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app/plan/page/app-paths-manifest.json +3 -0
- package/.next/server/app/plan/page/build-manifest.json +17 -0
- package/.next/server/app/plan/page/next-font-manifest.json +11 -0
- package/.next/server/app/plan/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/plan/page/server-reference-manifest.json +89 -0
- package/.next/server/app/plan/page.js +26 -0
- package/.next/server/app/plan/page.js.map +5 -0
- package/.next/server/app/plan/page.js.nft.json +1 -0
- package/.next/server/app/plan/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/page/build-manifest.json +17 -0
- package/.next/server/app/settings/page/next-font-manifest.json +11 -0
- package/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/settings/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/page.js +17 -0
- package/.next/server/app/settings/page.js.map +5 -0
- package/.next/server/app/settings/page.js.nft.json +1 -0
- package/.next/server/app/settings/page_client-reference-manifest.js +3 -0
- package/.next/server/app-paths-manifest.json +59 -0
- package/.next/server/chunks/[externals]_@huggingface_transformers_05bd-zz._.js +3 -0
- package/.next/server/chunks/[externals]_@huggingface_transformers_05bd-zz._.js.map +1 -0
- package/.next/server/chunks/[externals]__1m_jh08._.js +3 -0
- package/.next/server/chunks/[externals]__1m_jh08._.js.map +1 -0
- package/.next/server/chunks/[externals]_next_dist_1081pat._.js +3 -0
- package/.next/server/chunks/[externals]_next_dist_1081pat._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0--8e0y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0--8e0y._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0-68r22._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0-68r22._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__008acf8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__008acf8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__00rostp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00rostp._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__04deymo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04deymo._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__05_ckr9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__05_ckr9._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__08b769e._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08b769e._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0935gge._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0935gge._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0b04f4n._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0b04f4n._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0bule95._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__0bule95._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0dgnobj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dgnobj._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0fnoun8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0fnoun8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0gcvcx_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0gcvcx_._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0gnu9c5._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__0gnu9c5._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0imrhoi._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0imrhoi._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0iq9oau._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0iq9oau._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0k_e0ex._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0k_e0ex._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0kj4pte._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0kj4pte._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0muvnnv._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__0muvnnv._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0olqs85._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0olqs85._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0r4ba8s._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0r4ba8s._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0sb_5m8._.js +20 -0
- package/.next/server/chunks/[root-of-the-server]__0sb_5m8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0y6kb2t._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0y6kb2t._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0zfwiuh._.js +11 -0
- package/.next/server/chunks/[root-of-the-server]__0zfwiuh._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__11037f1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11037f1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1197yfd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1197yfd._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__138pbmp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__138pbmp._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__166th-t._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__166th-t._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__190_wb7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__190_wb7._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__190zu98._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__190zu98._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1_7ntsu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_7ntsu._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1bwqb44._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bwqb44._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1d6w22k._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1d6w22k._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1d9wmd_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1d9wmd_._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1j25n4-._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1j25n4-._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1jtw_i1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jtw_i1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1lv6sqm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1lv6sqm._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1m2v05v._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1m2v05v._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1n-kcwj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1n-kcwj._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1nn9crd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1nn9crd._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1rimo-u._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1rimo-u._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1sb7b9b._.js +9 -0
- package/.next/server/chunks/[root-of-the-server]__1sb7b9b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1t2egm-._.js +9 -0
- package/.next/server/chunks/[root-of-the-server]__1t2egm-._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1t3s3-y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1t3s3-y._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1tab6-_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1tab6-_._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1v3_x0a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1v3_x0a._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1vq6_bb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vq6_bb._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1xfg6n4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1xfg6n4._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1y_g68p._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1y_g68p._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/_0-k8r4o._.js +3 -0
- package/.next/server/chunks/_0-k8r4o._.js.map +1 -0
- package/.next/server/chunks/_00drqg3._.js +3 -0
- package/.next/server/chunks/_00drqg3._.js.map +1 -0
- package/.next/server/chunks/_04_hx58._.js +3 -0
- package/.next/server/chunks/_04_hx58._.js.map +1 -0
- package/.next/server/chunks/_0bj_zep._.js +3 -0
- package/.next/server/chunks/_0bj_zep._.js.map +1 -0
- package/.next/server/chunks/_0d9p87n._.js +3 -0
- package/.next/server/chunks/_0d9p87n._.js.map +1 -0
- package/.next/server/chunks/_0uzzk4s._.js +3 -0
- package/.next/server/chunks/_0uzzk4s._.js.map +1 -0
- package/.next/server/chunks/_0x--pb9._.js +3 -0
- package/.next/server/chunks/_0x--pb9._.js.map +1 -0
- package/.next/server/chunks/_1-006gs._.js +11 -0
- package/.next/server/chunks/_1-006gs._.js.map +1 -0
- package/.next/server/chunks/_1gmut2r._.js +3 -0
- package/.next/server/chunks/_1gmut2r._.js.map +1 -0
- package/.next/server/chunks/_1h7jba5._.js +3 -0
- package/.next/server/chunks/_1h7jba5._.js.map +1 -0
- package/.next/server/chunks/_1p13_nj._.js +3 -0
- package/.next/server/chunks/_1p13_nj._.js.map +1 -0
- package/.next/server/chunks/_1v92m46._.js +11 -0
- package/.next/server/chunks/_1v92m46._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_code-graph_position_route_actions_0ddmfq8.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_code-graph_position_route_actions_0ddmfq8.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_code-graph_route_actions_107oiy1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_code-graph_route_actions_107oiy1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_embed-backfill_route_actions_0fddf11.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_embed-backfill_route_actions_0fddf11.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_feature_route_actions_0g4_r0t.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_feature_route_actions_0g4_r0t.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_file_route_actions_1v15k33.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_file_route_actions_1v15k33.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_route_actions_066vuc0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_context_route_actions_066vuc0.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_backfill-access_route_actions_0krkam5.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_backfill-access_route_actions_0krkam5.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_position_route_actions_0y81s5h.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_position_route_actions_0y81s5h.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_reconcile-endpoints_route_actions_11wjo3_.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_reconcile-endpoints_route_actions_11wjo3_.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_relations_[id]_route_actions_0ok7b-c.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_relations_[id]_route_actions_0ok7b-c.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_tables_[id]_route_actions_17b6_8p.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_db_tables_[id]_route_actions_17b6_8p.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_approve_route_actions_12l1gql.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_approve_route_actions_12l1gql.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_route_actions_1y2euqt.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_route_actions_1y2euqt.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_status_route_actions_0imc7yr.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_draft_status_route_actions_0imc7yr.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_edges_[id]_route_actions_1rx28dy.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_edges_[id]_route_actions_1rx28dy.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_edges_route_actions_1i6-f0p.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_edges_route_actions_1i6-f0p.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_1hynl36.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_1hynl36.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_entities_route_actions_1jx0-vm.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_entities_route_actions_1jx0-vm.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_ingest_route_actions_1oz_9xc.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_ingest_route_actions_1oz_9xc.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_init_route_actions_00i08o0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_init_route_actions_00i08o0.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_describe_route_actions_04m22-e.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_describe_route_actions_04m22-e.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_files_route_actions_1gsvfd9.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_files_route_actions_1gsvfd9.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_finish_route_actions_130bs5b.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_finish_route_actions_130bs5b.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_route_actions_1ylt-yg.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_route_actions_1ylt-yg.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_start_route_actions_1n4zdon.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_start_route_actions_1n4zdon.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_touch-active_route_actions_0wvoq-h.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_map_touch-active_route_actions_0wvoq-h.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_position_route_actions_0_695u2.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_position_route_actions_0_695u2.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_route_actions_017e_f3.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_route_actions_017e_f3.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_positions_route_actions_1pz3o9o.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_positions_route_actions_1pz3o9o.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_route_actions_0iuxxdu.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_route_actions_0iuxxdu.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_subtasks_route_actions_0uw715o.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_nodes_subtasks_route_actions_0uw715o.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_notes_[id]_route_actions_1kpl381.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_notes_[id]_route_actions_1kpl381.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_notes_route_actions_0mm_p_3.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_notes_route_actions_0mm_p_3.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_open_route_actions_1x77eq1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_open_route_actions_1x77eq1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_annotations_route_actions_11aui44.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_annotations_route_actions_11aui44.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_approve_route_actions_06jkmnf.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_approve_route_actions_06jkmnf.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_history_route_actions_17hqx0m.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_history_route_actions_17hqx0m.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_markdown_route_actions_1qb1-9r.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_markdown_route_actions_1qb1-9r.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_presence_route_actions_1r91k5c.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_presence_route_actions_1r91k5c.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_route_actions_1_nzr8r.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_route_actions_1_nzr8r.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_verdict_route_actions_10xm0j8.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_plan_verdict_route_actions_10xm0j8.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_preferences_route_actions_14__a0r.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_preferences_route_actions_14__a0r.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_reset_route_actions_1tcp2ms.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_reset_route_actions_1tcp2ms.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_stream_route_actions_0oy6g75.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_stream_route_actions_0oy6g75.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_workspace_activate_route_actions_1hv2y82.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_workspace_activate_route_actions_1hv2y82.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_workspace_route_actions_19-xkal.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_workspace_route_actions_19-xkal.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_apple-icon_png_route_actions_0jcl8au.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_apple-icon_png_route_actions_0jcl8au.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +1 -0
- package/.next/server/chunks/instrumentation_ts_1oq3o45._.js +3 -0
- package/.next/server/chunks/instrumentation_ts_1oq3o45._.js.map +1 -0
- package/.next/server/chunks/lib_04zrdtl._.js +3 -0
- package/.next/server/chunks/lib_04zrdtl._.js.map +1 -0
- package/.next/server/chunks/lib_0rad2y6._.js +3 -0
- package/.next/server/chunks/lib_0rad2y6._.js.map +1 -0
- package/.next/server/chunks/lib_10tibe8._.js +7 -0
- package/.next/server/chunks/lib_10tibe8._.js.map +1 -0
- package/.next/server/chunks/lib_1upr0dj._.js +3 -0
- package/.next/server/chunks/lib_1upr0dj._.js.map +1 -0
- package/.next/server/chunks/lib_1wz-3od._.js +3 -0
- package/.next/server/chunks/lib_1wz-3od._.js.map +1 -0
- package/.next/server/chunks/lib_1xzwro7._.js +3 -0
- package/.next/server/chunks/lib_1xzwro7._.js.map +1 -0
- package/.next/server/chunks/lib_db_ts_0h_yn5m._.js +3 -0
- package/.next/server/chunks/lib_db_ts_0h_yn5m._.js.map +1 -0
- package/.next/server/chunks/lib_drizzle_provision_ts_1po9dyo._.js +3 -0
- package/.next/server/chunks/lib_drizzle_provision_ts_1po9dyo._.js.map +1 -0
- package/.next/server/chunks/lib_drizzle_schema_ts_0ixydnz._.js +3 -0
- package/.next/server/chunks/lib_drizzle_schema_ts_0ixydnz._.js.map +1 -0
- package/.next/server/chunks/lib_roadmap-force-layout_ts_0e5r3g2._.js +3 -0
- package/.next/server/chunks/lib_roadmap-force-layout_ts_0e5r3g2._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_05n3ooz._.js +3 -0
- package/.next/server/chunks/node_modules_drizzle-orm_05n3ooz._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0cht0an._.js +3 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0cht0an._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0ma7f2e._.js +4 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0ma7f2e._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0q0hg2u._.js +4 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0q0hg2u._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0rs3wbv._.js +3 -0
- package/.next/server/chunks/node_modules_drizzle-orm_0rs3wbv._.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_index_1qnscv7.js +3 -0
- package/.next/server/chunks/node_modules_drizzle-orm_index_1qnscv7.js.map +1 -0
- package/.next/server/chunks/node_modules_drizzle-orm_libsql_0yabams._.js +15 -0
- package/.next/server/chunks/node_modules_drizzle-orm_libsql_0yabams._.js.map +1 -0
- package/.next/server/chunks/node_modules_next_08s853w._.js +13 -0
- package/.next/server/chunks/node_modules_next_08s853w._.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0qz67ql.js +3 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0qz67ql.js.map +1 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +64 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js.map +1 -0
- package/.next/server/chunks/ssr/[externals]_@huggingface_transformers_05bd-zz._.js +3 -0
- package/.next/server/chunks/ssr/[externals]_@huggingface_transformers_05bd-zz._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vz2sw._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vz2sw._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07b655z._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07b655z._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dr0a32._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dr0a32._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0jx25ik._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0jx25ik._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0nqskgw._.js +19 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0nqskgw._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pkeb0m._.js +9 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pkeb0m._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0s74gvr._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0s74gvr._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0v7a-e-._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0v7a-e-._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0x4-71n._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0x4-71n._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xqf488._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xqf488._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0y_88xg._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0y_88xg._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1-yyv5l._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1-yyv5l._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1366qju._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1366qju._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1_ustu7._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1_ustu7._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/ssr/_0eabx1f._.js +3 -0
- package/.next/server/chunks/ssr/_0eabx1f._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ni84yi._.js +3 -0
- package/.next/server/chunks/ssr/_0ni84yi._.js.map +1 -0
- package/.next/server/chunks/ssr/_0pgw716._.js +67 -0
- package/.next/server/chunks/ssr/_0pgw716._.js.map +1 -0
- package/.next/server/chunks/ssr/_0r84jcg._.js +6 -0
- package/.next/server/chunks/ssr/_0r84jcg._.js.map +1 -0
- package/.next/server/chunks/ssr/_15if8ma._.js +3 -0
- package/.next/server/chunks/ssr/_15if8ma._.js.map +1 -0
- package/.next/server/chunks/ssr/_176djsq._.js +4 -0
- package/.next/server/chunks/ssr/_176djsq._.js.map +1 -0
- package/.next/server/chunks/ssr/_179xsho._.js +3 -0
- package/.next/server/chunks/ssr/_179xsho._.js.map +1 -0
- package/.next/server/chunks/ssr/_1_n8arv._.js +3 -0
- package/.next/server/chunks/ssr/_1_n8arv._.js.map +1 -0
- package/.next/server/chunks/ssr/_1suxp_q._.js +3 -0
- package/.next/server/chunks/ssr/_1suxp_q._.js.map +1 -0
- package/.next/server/chunks/ssr/_1vt70iy._.js +18 -0
- package/.next/server/chunks/ssr/_1vt70iy._.js.map +1 -0
- package/.next/server/chunks/ssr/_1w2komx._.js +3 -0
- package/.next/server/chunks/ssr/_1w2komx._.js.map +1 -0
- package/.next/server/chunks/ssr/_1w73gpg._.js +4 -0
- package/.next/server/chunks/ssr/_1w73gpg._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_help_page_actions_04daq_g.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_help_page_actions_04daq_g.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js.map +1 -0
- package/.next/server/chunks/ssr/components_1wolv70._.js +157 -0
- package/.next/server/chunks/ssr/components_1wolv70._.js.map +1 -0
- package/.next/server/chunks/ssr/components_graph_files-map-client_tsx_10bha9z._.js +3 -0
- package/.next/server/chunks/ssr/components_graph_files-map-client_tsx_10bha9z._.js.map +1 -0
- package/.next/server/chunks/ssr/components_landing_landing_tsx_1_9k5z7._.js +3 -0
- package/.next/server/chunks/ssr/components_landing_landing_tsx_1_9k5z7._.js.map +1 -0
- package/.next/server/chunks/ssr/components_plan_plan-workspace_tsx_0t1topu._.js +3 -0
- package/.next/server/chunks/ssr/components_plan_plan-workspace_tsx_0t1topu._.js.map +1 -0
- package/.next/server/chunks/ssr/lib_13g58ln._.js +3 -0
- package/.next/server/chunks/ssr/lib_13g58ln._.js.map +1 -0
- package/.next/server/chunks/ssr/lib_db_ts_0bo045t._.js +3 -0
- package/.next/server/chunks/ssr/lib_db_ts_0bo045t._.js.map +1 -0
- package/.next/server/chunks/ssr/lib_drizzle_schema_ts_0oz5uob._.js +3 -0
- package/.next/server/chunks/ssr/lib_drizzle_schema_ts_0oz5uob._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_0vtauab._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_0vtauab._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_0txo559._.js +4 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_0txo559._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_1d7zgzr._.js +4 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_1d7zgzr._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_1zqkwdy._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_1zqkwdy._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_202ujxv._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_202ujxv._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_index_0ji3_g8.js +3 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_index_0ji3_g8.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_libsql_06opikx._.js +15 -0
- package/.next/server/chunks/ssr/node_modules_drizzle-orm_libsql_06opikx._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_shield-check_mjs_1cccgdy._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_shield-check_mjs_1cccgdy._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0890nbp._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0890nbp._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0airgni._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0airgni._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0alesp5._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0alesp5._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwh.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwh.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d7qbqa.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d7qbqa.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s87tpk.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s87tpk.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_114qdo2.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_114qdo2.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_kztz.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_kztz.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19qzf81.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19qzf81.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wge0av.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wge0av.js.map +1 -0
- package/.next/server/edge/chunks/_0o_tvsk._.js +3 -0
- package/.next/server/edge/chunks/_0o_tvsk._.js.map +1 -0
- package/.next/server/edge/chunks/node_modules_next_dist_esm_build_templates_edge-wrapper_1ipl-lx.js.map +1 -0
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1ipl-lx.js +3 -0
- package/.next/server/functions-config-manifest.json +14 -0
- package/.next/server/instrumentation/middleware-manifest.json +12 -0
- package/.next/server/instrumentation.js +4 -0
- package/.next/server/instrumentation.js.map +5 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware/middleware-manifest.json +6 -0
- package/.next/server/middleware-build-manifest.js +21 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware.js +5 -0
- package/.next/server/middleware.js.map +5 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +31 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +132 -0
- package/.next/static/_wmO3ZSrpuwty88NNlnrH/_buildManifest.js +11 -0
- package/.next/static/_wmO3ZSrpuwty88NNlnrH/_clientMiddlewareManifest.js +6 -0
- package/.next/static/_wmO3ZSrpuwty88NNlnrH/_ssgManifest.js +1 -0
- package/.next/static/chunks/01dkdyukbdpqq.js +31 -0
- package/.next/static/chunks/05-c3ty_6dwfk.js +1 -0
- package/.next/static/chunks/07u_h6i539_wj.js +2 -0
- package/.next/static/chunks/09wlenlnsbkl7.js +2 -0
- package/.next/static/chunks/0_9p121-4am0a.js +1 -0
- package/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/.next/static/chunks/19cl65vz3pos0.js +1 -0
- package/.next/static/chunks/19hoowcssv0w1.css +1 -0
- package/.next/static/chunks/1bk_i_akra521.css +2 -0
- package/.next/static/chunks/1pp98vred9isg.js +1 -0
- package/.next/static/chunks/2-t6-hz_de2nr.js +155 -0
- package/.next/static/chunks/203o948823s96.css +1 -0
- package/.next/static/chunks/245vq4i7_x7tm.js +1 -0
- package/.next/static/chunks/27jktro2p5rq9.js +4 -0
- package/.next/static/chunks/2hpdskhtooxl4.js +1 -0
- package/.next/static/chunks/368etk_9oovhj.js +1 -0
- package/.next/static/chunks/3n7dm2ojtyzwn.js +1 -0
- package/.next/static/chunks/3oc95d6bep78a.css +1 -0
- package/.next/static/chunks/3qp8f4catg9zw.js +2 -0
- package/.next/static/chunks/3ywpldblg905c.js +1 -0
- package/.next/static/chunks/4397avi9yar6d.js +1 -0
- package/.next/static/chunks/44_nvrzzjs0pv.js +1 -0
- package/.next/static/chunks/turbopack-0rldyqi2kcq2j.js +1 -0
- package/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 +0 -0
- package/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 +0 -0
- package/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 +0 -0
- package/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 +0 -0
- package/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 +0 -0
- package/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 +0 -0
- package/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 +0 -0
- package/.next/static/media/apple-icon.0qbqv4vpdxdo0.png +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 +0 -0
- package/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 +0 -0
- package/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 +0 -0
- package/.next/static/media/icon.23_qbw6oy1xqy.svg +4 -0
- package/.next/trace +2 -0
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/routes.d.ts +124 -0
- package/.next/types/validator.ts +538 -0
- package/README.md +94 -0
- package/dist/bin/beacon.js +10 -0
- package/dist/bin/doctor.js +227 -0
- package/dist/bin/hook.js +225 -0
- package/dist/bin/mcp.js +247 -0
- package/dist/bin/plan.js +228 -0
- package/dist/bin/prompt.js +4 -0
- package/dist/bin/stop-hook.js +5 -0
- package/dist/bin/uninstall.js +228 -0
- package/dist/lib/assets.js +192 -0
- package/dist/lib/global-install.js +224 -0
- package/dist/lib/workspaces.js +2 -0
- package/drizzle/0000_bitter_network.sql +230 -0
- package/drizzle/meta/0000_snapshot.json +1589 -0
- package/drizzle/meta/_journal.json +13 -0
- package/next.config.ts +15 -0
- package/package.json +90 -0
- package/public/brand/beacon-apple.svg +30 -0
- package/public/brand/beacon-glyph-128.png +0 -0
- package/public/brand/beacon-glyph-512.png +0 -0
- package/public/brand/beacon-glyph-mono-128.png +0 -0
- package/public/brand/beacon-glyph-mono-512.png +0 -0
- package/public/brand/beacon-glyph-mono.svg +4 -0
- package/public/brand/beacon-glyph.svg +21 -0
- package/public/brand/beacon-icon-1024.png +0 -0
- package/public/brand/beacon-icon-192.png +0 -0
- package/public/brand/beacon-icon-256.png +0 -0
- package/public/brand/beacon-icon-32.png +0 -0
- package/public/brand/beacon-icon-512.png +0 -0
- package/public/brand/beacon-icon-64.png +0 -0
- package/public/brand/beacon-icon-light-192.png +0 -0
- package/public/brand/beacon-icon-light-512.png +0 -0
- package/public/brand/beacon-icon-light.svg +31 -0
- package/public/brand/beacon-icon.svg +33 -0
- package/public/brand/beacon-wordmark-1200.png +0 -0
- package/public/brand/beacon-wordmark.svg +38 -0
- package/public/brand/favicon-16.png +0 -0
- package/public/brand/favicon-32.png +0 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/install.sh +55 -0
- package/public/next.svg +1 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../app/api/context/feature/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { codeGraphFreshness } from \"@/lib/code-graph-freshness\";\nimport { db, runWithWorkspace } from \"@/lib/db-drizzle\";\nimport { appSetting } from \"@/lib/drizzle/schema\";\nimport { rankByQuery } from \"@/lib/embeddings\";\nimport { workspaceIdFromRequest } from \"@/lib/workspaces\";\n\n// Cosine threshold below which a vector \"match\" is considered noise — fall\n// through to the lexical path instead. Calibrated empirically against this\n// workspace: short-title pairs that genuinely match score ~0.20-0.30, while\n// unrelated pairs cluster around 0.05-0.10. The middle band is the cutoff.\nconst VECTOR_MIN_SCORE = 0.18;\n\n// One-shot \"context for working on this feature\" — the answer Claude Code used\n// to need 15-45K tokens of Glob+Read to derive. Resolves a feature reference\n// (id | title | natural-language query) and returns the full neighborhood:\n// files + their imports both ways, endpoints in the same domain + the tables\n// each touches, those tables' FK relations, sibling architecture components,\n// and the project's conventions. One DB round-trip's worth of joins replaces\n// the entire blind-discovery phase.\n\ninterface ContextResponse {\n feature: {\n id: string;\n title: string;\n cluster: string | null;\n role: string | null;\n plain: string | null;\n status: string;\n } | null;\n files: string[];\n imports: { from: string; to: string }[];\n importedBy: { from: string; to: string }[];\n endpoints: {\n method: string;\n path: string;\n domain: string | null;\n description: string | null;\n tables: { name: string; access: string }[];\n }[];\n tables: {\n name: string;\n domain: string | null;\n description: string | null;\n columns: {\n name: string;\n type: string;\n isPk: boolean;\n isFk: boolean;\n nullable: boolean;\n }[];\n relations: {\n fromTable: string;\n fromColumn: string;\n toTable: string;\n toColumn: string;\n }[];\n }[];\n components: {\n title: string;\n domain: string | null;\n role: string | null;\n plain: string | null;\n files: string[];\n }[];\n conventions: string[];\n codeGraph?: { syncedAt: string | null; watching: boolean };\n note?: string;\n}\n\nasync function resolveFeature(\n id: string | null,\n title: string | null,\n query: string | null,\n) {\n if (id) {\n return db.query.node.findFirst({\n where: (t, { and, eq }) => and(eq(t.id, id), eq(t.view, \"ROADMAP\")),\n });\n }\n if (title) {\n const exact = await db.query.node.findFirst({\n where: (t, { and, eq }) => and(eq(t.view, \"ROADMAP\"), eq(t.title, title)),\n });\n if (exact) return exact;\n return db.query.node.findFirst({\n where: (t, { and, eq, like }) => and(eq(t.view, \"ROADMAP\"), like(t.title, `%${title}%`)),\n });\n }\n if (query) {\n // Vector path: rank by cosine against any roadmap node that has an embedding.\n // Falls through to lexical when no node has an embedding yet, when the\n // embedder fails, or when the top score is below VECTOR_MIN_SCORE (random).\n const embedded = await db.query.node.findMany({\n where: (t, { and, eq, isNotNull }) => and(eq(t.view, \"ROADMAP\"), isNotNull(t.embedding)),\n });\n if (embedded.length) {\n const ranked = await rankByQuery(\n query,\n embedded.map((n) => ({ ...n, embedding: n.embedding! })),\n );\n if (ranked && ranked.length && ranked[0].score >= VECTOR_MIN_SCORE) {\n return ranked[0].item;\n }\n }\n // Lexical fallback: split the query into words, OR-match against title + plain.\n const words = query.split(/\\s+/).filter((w) => w.length >= 3);\n if (!words.length) return null;\n return db.query.node.findFirst({\n where: (t, { and, eq, or, like }) =>\n and(\n eq(t.view, \"ROADMAP\"),\n or(...words.flatMap((w) => [like(t.title, `%${w}%`), like(t.plain, `%${w}%`)])),\n ),\n });\n }\n return null;\n}\n\nexport async function GET(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), () => handle(req));\n}\n\nasync function handle(req: Request) {\n const url = new URL(req.url);\n const id = url.searchParams.get(\"id\");\n const title = url.searchParams.get(\"title\");\n const query = url.searchParams.get(\"query\");\n\n const feature = await resolveFeature(id, title, query);\n if (!feature) {\n return Response.json({\n feature: null,\n files: [],\n imports: [],\n importedBy: [],\n endpoints: [],\n tables: [],\n components: [],\n conventions: [],\n note: \"No feature matched. Try /api/entities?kind=features to list available titles.\",\n } satisfies ContextResponse);\n }\n\n // A confident match (by id, or exact title) == \"the agent is working on this\n // feature\". Auto-mark it active so edits attach to it and the loop is \"started\"\n // without a separate beacon_start_feature call. Fuzzy query matches are NOT\n // auto-started — too easy to resolve the wrong node and mis-attribute edits.\n const confident =\n !!id || (!!title && feature.title.trim().toLowerCase() === title.trim().toLowerCase());\n if (confident) {\n await db\n .insert(appSetting)\n .values({ id: \"singleton\", currentFeatureId: feature.id })\n .onConflictDoUpdate({ target: appSetting.id, set: { currentFeatureId: feature.id } })\n .catch(() => {});\n }\n\n // Files directly attached to the feature.\n const filesRows = await db.query.nodeFile.findMany({\n where: (t, { eq }) => eq(t.nodeId, feature.id),\n columns: { path: true },\n });\n const files = filesRows.map((f) => f.path);\n\n // 1-hop import-graph neighborhood. Both directions so Claude sees \"blast radius.\"\n const [importsRows, importedByRows] = files.length\n ? await Promise.all([\n db.query.codeFileEdge.findMany({\n where: (t, { inArray }) => inArray(t.fromPath, files),\n columns: { fromPath: true, toPath: true },\n }),\n db.query.codeFileEdge.findMany({\n where: (t, { inArray }) => inArray(t.toPath, files),\n columns: { fromPath: true, toPath: true },\n }),\n ])\n : [[], []];\n\n // Endpoints in the same domain — `Endpoint.domain` matches `Node.cluster`.\n const endpointsRaw = feature.cluster\n ? await db.query.endpoint.findMany({\n where: (t, { eq }) => eq(t.domain, feature.cluster!),\n with: { tables: { with: { table: { columns: { name: true } } } } },\n })\n : [];\n const endpoints = endpointsRaw.map((e) => ({\n method: e.method,\n path: e.path,\n domain: e.domain,\n description: e.description,\n tables: e.tables.map((t) => ({ name: t.table.name, access: t.access })),\n }));\n\n // Tables surfaced by any of those endpoints, plus tables in the domain. Dedupe.\n const tableNames = new Set<string>();\n for (const e of endpoints) for (const t of e.tables) tableNames.add(t.name);\n if (feature.cluster) {\n const domainTables = await db.query.dbTable.findMany({\n where: (t, { eq }) => eq(t.domain, feature.cluster!),\n columns: { name: true },\n });\n for (const t of domainTables) tableNames.add(t.name);\n }\n const tablesRaw = tableNames.size\n ? await db.query.dbTable.findMany({\n where: (t, { inArray }) => inArray(t.name, [...tableNames]),\n with: {\n columns: { orderBy: (c, { asc }) => asc(c.ord) },\n fksOut: { with: { toTable: { columns: { name: true } } } },\n },\n })\n : [];\n const tableNameById = new Map(tablesRaw.map((t) => [t.id, t.name]));\n const tables = tablesRaw.map((t) => ({\n name: t.name,\n domain: t.domain,\n description: t.description,\n columns: t.columns.map((c) => ({\n name: c.name,\n type: c.type,\n isPk: c.isPk,\n isFk: c.isFk,\n nullable: c.nullable,\n })),\n relations: t.fksOut.map((r) => ({\n fromTable: t.name,\n fromColumn: r.fromColumn,\n toTable: r.toTable.name,\n toColumn: r.toColumn,\n })),\n }));\n // Pull inbound FKs too so Claude sees \"who points at me\" without round-tripping.\n if (tablesRaw.length) {\n const toTableIds = tablesRaw.map((t) => t.id);\n const inbound = await db.query.dbRelation.findMany({\n where: (t, { inArray }) => inArray(t.toTableId, toTableIds),\n with: { fromTable: { columns: { name: true } } },\n });\n for (const r of inbound) {\n const tName = tableNameById.get(r.toTableId);\n const target = tables.find((t) => t.name === tName);\n if (!target) continue;\n const dup = target.relations.some(\n (x) => x.fromTable === r.fromTable.name && x.fromColumn === r.fromColumn,\n );\n if (!dup) {\n target.relations.push({\n fromTable: r.fromTable.name,\n fromColumn: r.fromColumn,\n toTable: tName!,\n toColumn: r.toColumn,\n });\n }\n }\n }\n\n // Sibling architecture components — the structural neighbors of this feature.\n const componentsRaw = feature.cluster\n ? await db.query.node.findMany({\n where: (t, { and, eq }) =>\n and(eq(t.view, \"ARCHITECTURE\"), eq(t.cluster, feature.cluster!)),\n with: { files: { columns: { path: true } } },\n })\n : [];\n const components = componentsRaw.map((c) => ({\n title: c.title,\n domain: c.cluster,\n role: c.role,\n plain: c.plain,\n files: c.files.map((f) => f.path),\n }));\n\n const meta = await db.query.projectMeta.findFirst({\n where: (t, { eq }) => eq(t.id, \"singleton\"),\n });\n let conventions: string[] = [];\n if (meta?.conventions) {\n try {\n const parsed = JSON.parse(meta.conventions);\n if (Array.isArray(parsed)) conventions = parsed.filter((x) => typeof x === \"string\");\n } catch {\n /* malformed — ignore */\n }\n }\n\n const response: ContextResponse = {\n feature: {\n id: feature.id,\n title: feature.title,\n cluster: feature.cluster,\n role: feature.role,\n plain: feature.plain,\n status: feature.status,\n },\n files,\n imports: importsRows.map((r) => ({ from: r.fromPath, to: r.toPath })),\n importedBy: importedByRows.map((r) => ({ from: r.fromPath, to: r.toPath })),\n endpoints,\n tables,\n components,\n conventions,\n codeGraph: await codeGraphFreshness(req),\n };\n if (!files.length) {\n response.note =\n \"This feature has no files attached yet. The map is still useful for tables/endpoints/components. \" +\n \"Call beacon_describe_feature at the end of work to attach files.\";\n }\n return Response.json(response);\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n type AppRouteUserlandModule,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The static import is used for initialization (methods, dynamic, etc.).\n userland: userland as AppRouteUserlandModule,\n // In Turbopack dev mode, also provide a getter that calls require() on every\n // request. This re-reads from devModuleCache so HMR updates are picked up,\n // and the async wrapper unwraps async-module Promises (ESM-only\n // serverExternalPackages) automatically.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () => import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["VECTOR_MIN_SCORE","resolveFeature","id","title","query","node","findFirst","where","t","and","eq","view","exact","like","embedded","findMany","isNotNull","embedding","length","ranked","map","n","score","item","words","split","filter","w","or","flatMap","plain","GET","req","handle","url","URL","searchParams","get","feature","Response","json","files","imports","importedBy","endpoints","tables","components","conventions","note","confident","trim","toLowerCase","insert","values","currentFeatureId","onConflictDoUpdate","target","set","catch","filesRows","nodeFile","nodeId","columns","path","f","importsRows","importedByRows","Promise","all","codeFileEdge","inArray","fromPath","toPath","endpointsRaw","cluster","endpoint","domain","with","table","name","e","method","description","access","tableNames","Set","add","domainTables","dbTable","tablesRaw","size","orderBy","c","asc","ord","fksOut","toTable","tableNameById","Map","type","isPk","isFk","nullable","relations","r","fromTable","fromColumn","toColumn","toTableIds","inbound","dbRelation","toTableId","tName","find","dup","some","x","push","componentsRaw","role","meta","projectMeta","parsed","JSON","parse","Array","isArray","response","status","from","to","codeGraph","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","body","Buffer","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes"],"mappings":"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","ignoreList":[1]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module.exports=[90419,e=>e.a(async(t,n)=>{try{var a=e.i(23737),r=t([a]);[a]=r.then?(await r)():r,e.s(["renderBoardEdits",0,function(e){let t=[],n=new Set(e.originalFeatures),r=new Set(e.currentFeatures);for(let a of e.currentFeatures)n.has(a)||t.push(`- added feature **${a}**`);for(let n of e.originalFeatures)r.has(n)||t.push(`- removed feature **${n}**`);let o=new Map;for(let t of e.addedSubtasks){let e=o.get(t.parentTitle)??[];e.push(t.title),o.set(t.parentTitle,e)}let i=[];for(let[e,t]of o)for(let n of(i.push(`- under **${e}**:`),t))i.push(` - **${n}**`);let s=[];if(e.currentDoc){let t=e.originalDoc??{proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};for(let n of(0,a.diffDocs)(t,e.currentDoc))s.push(`- ${n}`)}let l=[];return(t.length&&l.push(`### Features
|
|
2
|
+
|
|
3
|
+
${t.join("\n")}`),i.length&&l.push(`### Subtasks
|
|
4
|
+
|
|
5
|
+
${i.join("\n")}`),s.length&&l.push(`### Database
|
|
6
|
+
|
|
7
|
+
${s.join("\n")}`),l.length)?`## Board edits
|
|
8
|
+
|
|
9
|
+
${l.join("\n\n")}`:""}]),n()}catch(e){n(e)}},!1),91990,e=>e.a(async(t,n)=>{try{var a=e.i(69719),r=e.i(90419),o=e.i(23737),i=e.i(74005),s=e.i(56715),l=e.i(91426),u=e.i(14859),d=t([r,o,l]);[r,o,l]=d.then?(await d)():d;let b=a.z.object({id:a.z.string(),excerpt:a.z.string(),comment:a.z.string(),kind:a.z.enum(["comment","deletion"]).optional()}),f=a.z.object({proposedAt:a.z.number(),status:a.z.string(),tables:a.z.array(a.z.object({id:a.z.string(),name:a.z.string(),domain:a.z.string().nullable(),description:a.z.string().nullable(),x:a.z.number(),y:a.z.number(),columns:a.z.array(a.z.object({name:a.z.string(),type:a.z.string(),isPk:a.z.boolean(),isFk:a.z.boolean(),nullable:a.z.boolean(),note:a.z.string().nullable()}))})),relations:a.z.array(a.z.object({id:a.z.string(),fromTableId:a.z.string(),toTableId:a.z.string(),fromColumn:a.z.string(),toColumn:a.z.string(),label:a.z.string().nullable()})),endpoints:a.z.array(a.z.object({id:a.z.string(),method:a.z.string(),path:a.z.string(),domain:a.z.string().nullable(),description:a.z.string().nullable(),x:a.z.number(),y:a.z.number(),links:a.z.array(a.z.object({tableId:a.z.string(),access:a.z.string()}))}))}).nullish(),R=a.z.object({annotations:a.z.array(b),globalComment:a.z.string().optional(),draft:f,questions:a.z.array(a.z.object({target:a.z.string(),question:a.z.string()})).optional()});async function c(e){let t=(0,i.readPlanMeta)(),n=t?.originalFeatures??[],a=await l.db.query.node.findMany({where:(e,{and:t,eq:n})=>t(n(e.source,"DRAFT"),n(e.view,"ROADMAP")),columns:{id:!0,title:!0}}),s=a.map(e=>e.title),u=[];if(a.length){let e=a.map(e=>e.id),t=new Map(a.map(e=>[e.id,e.title]));u=(await l.db.query.node.findMany({where:(t,{inArray:n})=>n(t.parentId,e),columns:{title:!0,parentId:!0}})).map(e=>({parentTitle:t.get(e.parentId??"")??"(unknown)",title:e.title}))}let d=(0,o.readDraftDoc)();return(0,r.renderBoardEdits)({originalFeatures:n,currentFeatures:s,addedSubtasks:u,originalDoc:d,currentDoc:e})}async function p(e){return(0,u.runWithWorkspace)((0,u.workspaceIdFromRequest)(e),async()=>{let e=(0,s.readStoredAnnotations)();return Response.json({annotations:e.annotations,globalComment:e.globalComment,submitted:e.submitted,submittedAt:e.submittedAt,feedback:e.submitted?(0,s.renderAnnotationFeedback)(e):""})})}async function h(e){let t=R.parse(await e.json());return(0,u.runWithWorkspace)((0,u.workspaceIdFromRequest)(e),async()=>{let e=(0,s.readStoredAnnotations)();return(0,s.writeStoredAnnotations)({...e,annotations:t.annotations,globalComment:t.globalComment??"",submitted:!1,questions:t.questions??e.questions??[]}),new Response(null,{status:204})})}async function m(e){let t=R.parse(await e.json());return(0,u.runWithWorkspace)((0,u.workspaceIdFromRequest)(e),async()=>{let e=t.draft??null,n=await c(e);return(0,s.writeStoredAnnotations)({annotations:t.annotations,globalComment:t.globalComment??"",submitted:!0,submittedAt:Date.now(),boardEdits:n,questions:t.questions??[]}),Response.json({ok:!0,boardEdits:n})})}async function g(e){return(0,u.runWithWorkspace)((0,u.workspaceIdFromRequest)(e),async()=>((0,s.clearStoredAnnotations)(),new Response(null,{status:204})))}e.s(["DELETE",0,g,"GET",0,p,"POST",0,m,"PUT",0,h,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),33358,e=>e.a(async(t,n)=>{try{var a=e.i(47909),r=e.i(74017),o=e.i(96250),i=e.i(59756),s=e.i(61916),l=e.i(74677),u=e.i(69741),d=e.i(16795),c=e.i(87718),p=e.i(95169),h=e.i(47587),m=e.i(66012),g=e.i(70101),b=e.i(26937),f=e.i(10372),R=e.i(93695);e.i(20232);var w=e.i(220),y=e.i(91990),v=t([y]);[y]=v.then?(await v)():v;let E=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/plan/annotations/route",pathname:"/api/plan/annotations",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/plan/annotations/route.ts",nextConfigOutput:"",userland:y,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:C,serverHooks:T}=E;async function z(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/plan/annotations/route";a=a.replace(/\/index$/,"")||"/";let o=await E.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,deploymentId:v,params:z,nextConfig:A,parsedUrl:C,isDraftMode:T,prerenderManifest:x,routerServerContext:q,isOnDemandRevalidate:S,revalidateOnlyGenerated:k,resolvedPathname:P,clientReferenceManifest:I,serverActionsManifest:N}=o,j=(0,u.normalizeAppPath)(a),D=!!(x.dynamicRoutes[j]||x.routes[P]),O=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,C,!1):t.end("This page could not be found"),null);if(D&&!T){let e=!!x.routes[P],t=x.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await O();throw new R.NoFallbackError}}let _=null;!D||E.isDev||T||(_=P,_="/index"===_?"/":_);let F=!0===E.isDev||!D,M=D&&!F;N&&I&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:I,serverActionsManifest:N});let $=e.method||"GET",H=(0,s.getTracer)(),U=H.getActiveScopeSpan(),W=!!(null==q?void 0:q.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),K=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,x,B);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let L={params:z,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:F,incrementalCache:K,cacheLifeProfiles:A.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>E.onRequestError(e,t,a,r,q)},sharedContext:{buildId:y,deploymentId:v}},G=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let o,i=async e=>E.handle(X,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",r),o.updateName(t))}else e.updateName(`${$} ${a}`)}),l=async o=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!B&&S&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let s=L.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let l=L.renderOpts.collectedTags;if(!D)return await (0,m.sendResponse)(G,V,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:S})},!1,q),t}},d=await E.handleResponse({req:e,nextConfig:A,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:k,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:B});if(!D)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&D||c.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,b.getCacheControlHeader)(d.cacheControl)),await (0,m.sendResponse)(G,V,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};W&&U?await l(U):(o=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!W))}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:S})},!1,q),D)throw t;return await (0,m.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,z,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:C})},"routeModule",0,E,"serverHooks",0,T,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,C]),n()}catch(e){n(e)}},!1)];
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=_1-006gs._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../lib/plan-feedback.ts","../../../app/api/plan/annotations/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import type { DraftDoc } from \"@/components/graph/db-types\";\nimport { diffDocs } from \"@/lib/draft-store\";\n\n// Renders the \"Board edits\" half of plan feedback: what the user changed on the /map\n// and /db canvases while reviewing the agent's proposal. Pairs with renderFeedback()\n// from lib/annotations.ts (which covers the highlight-and-comment side) — the blocking\n// MCP tool joins both into a single markdown blob the terminal session reads.\n\nexport interface SubtaskAddition {\n parentTitle: string;\n title: string;\n}\n\nexport interface BoardEdits {\n // Feature titles the agent originally proposed via beacon_propose_plan.\n originalFeatures: string[];\n // Feature titles currently on the DRAFT layer (after user edits).\n currentFeatures: string[];\n // Subtasks the user attached under a DRAFT feature.\n addedSubtasks: SubtaskAddition[];\n // The agent's original draft doc (null when no DB was proposed). The current doc may\n // include tables/relations/endpoints even if the agent proposed nothing — those\n // surface as additions.\n originalDoc: DraftDoc | null;\n currentDoc: DraftDoc | null;\n}\n\nexport function renderBoardEdits(input: BoardEdits): string {\n const featureLines: string[] = [];\n const origFeats = new Set(input.originalFeatures);\n const currFeats = new Set(input.currentFeatures);\n for (const t of input.currentFeatures) {\n if (!origFeats.has(t)) featureLines.push(`- added feature **${t}**`);\n }\n for (const t of input.originalFeatures) {\n if (!currFeats.has(t)) featureLines.push(`- removed feature **${t}**`);\n }\n\n // Group subtasks by parent so the agent sees them clustered.\n const byParent = new Map<string, string[]>();\n for (const s of input.addedSubtasks) {\n const arr = byParent.get(s.parentTitle) ?? [];\n arr.push(s.title);\n byParent.set(s.parentTitle, arr);\n }\n const subtaskLines: string[] = [];\n for (const [parent, items] of byParent) {\n subtaskLines.push(`- under **${parent}**:`);\n for (const t of items) subtaskLines.push(` - **${t}**`);\n }\n\n const dbLines: string[] = [];\n if (input.currentDoc) {\n const baseline =\n input.originalDoc ??\n ({\n proposedAt: 0,\n status: \"pending\",\n tables: [],\n relations: [],\n endpoints: [],\n } satisfies DraftDoc);\n for (const line of diffDocs(baseline, input.currentDoc)) dbLines.push(`- ${line}`);\n }\n\n const sections: string[] = [];\n if (featureLines.length) sections.push(`### Features\\n\\n${featureLines.join(\"\\n\")}`);\n if (subtaskLines.length) sections.push(`### Subtasks\\n\\n${subtaskLines.join(\"\\n\")}`);\n if (dbLines.length) sections.push(`### Database\\n\\n${dbLines.join(\"\\n\")}`);\n\n if (!sections.length) return \"\";\n return `## Board edits\\n\\n${sections.join(\"\\n\\n\")}`;\n}\n","import { z } from \"zod\";\nimport { renderBoardEdits, type SubtaskAddition } from \"@/lib/plan-feedback\";\nimport { readDraftDoc } from \"@/lib/draft-store\";\nimport { readPlanMeta } from \"@/lib/plan-meta\";\nimport {\n clearStoredAnnotations,\n readStoredAnnotations,\n renderAnnotationFeedback,\n writeStoredAnnotations,\n} from \"@/lib/plan-annotations-store\";\nimport { db, runWithWorkspace } from \"@/lib/db-drizzle\";\nimport { workspaceIdFromRequest } from \"@/lib/workspaces\";\nimport type { DraftDoc } from \"@/components/graph/db-types\";\n\nexport const dynamic = \"force-dynamic\";\n\n// Beacon-native annotation store. The annotation panel PUTs the user's text-range comments\n// here whenever they edit; on Submit it also marks them as `submitted` so the verdict resolver\n// sees the feedback on its next poll and hands it back to the agent. The submit payload also\n// carries the user's current /db draft doc so canvas edits flow back alongside the text\n// annotations. Every handler is pinned to the request's workspace so the MCP poll and the\n// browser read/write the same workspace's annotation file.\n\nconst annotationSchema = z.object({\n id: z.string(),\n excerpt: z.string(),\n comment: z.string(),\n kind: z.enum([\"comment\", \"deletion\"]).optional(),\n});\n\n// Loose schema for the client-sent current DraftDoc — already validated more strictly\n// when the user clicks Approve in draft-store. Here we just want enough shape to diff.\nconst clientDraftSchema = z\n .object({\n proposedAt: z.number(),\n status: z.string(),\n tables: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n columns: z.array(\n z.object({\n name: z.string(),\n type: z.string(),\n isPk: z.boolean(),\n isFk: z.boolean(),\n nullable: z.boolean(),\n note: z.string().nullable(),\n }),\n ),\n }),\n ),\n relations: z.array(\n z.object({\n id: z.string(),\n fromTableId: z.string(),\n toTableId: z.string(),\n fromColumn: z.string(),\n toColumn: z.string(),\n label: z.string().nullable(),\n }),\n ),\n endpoints: z.array(\n z.object({\n id: z.string(),\n method: z.string(),\n path: z.string(),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n links: z.array(z.object({ tableId: z.string(), access: z.string() })),\n }),\n ),\n })\n .nullish();\n\nconst bodySchema = z.object({\n annotations: z.array(annotationSchema),\n globalComment: z.string().optional(),\n // Optional — only the submit-time POST sends it. The debounced PUT doesn't bother.\n draft: clientDraftSchema,\n // \"Explain This Node\" — per-node questions bundled into the feedback (plan-loop piggyback).\n questions: z.array(z.object({ target: z.string(), question: z.string() })).optional(),\n});\n\n// Walk the DRAFT roadmap layer + every child of those drafts so the agent sees the\n// canvas-side changes the user made: features they added/removed/renamed and subtasks\n// they attached. Pairs with the DB diff to produce the full board-edits block.\nasync function collectBoardEdits(currentDoc: DraftDoc | null): Promise<string> {\n const meta = readPlanMeta();\n const originalFeatures = meta?.originalFeatures ?? [];\n\n const draftFeatures = await db.query.node.findMany({\n where: (n, { and: a, eq: eqf }) => a(eqf(n.source, \"DRAFT\"), eqf(n.view, \"ROADMAP\")),\n columns: { id: true, title: true },\n });\n const currentFeatures = draftFeatures.map((f) => f.title);\n\n let addedSubtasks: SubtaskAddition[] = [];\n if (draftFeatures.length) {\n const ids = draftFeatures.map((f) => f.id);\n const titleById = new Map(draftFeatures.map((f) => [f.id, f.title]));\n const children = await db.query.node.findMany({\n where: (n, { inArray: inArr }) => inArr(n.parentId, ids),\n columns: { title: true, parentId: true },\n });\n addedSubtasks = children.map((c) => ({\n parentTitle: titleById.get(c.parentId ?? \"\") ?? \"(unknown)\",\n title: c.title,\n }));\n }\n\n const originalDoc = readDraftDoc();\n return renderBoardEdits({\n originalFeatures,\n currentFeatures,\n addedSubtasks,\n originalDoc,\n currentDoc,\n });\n}\n\n// GET — used by the panel to hydrate state, AND by the verdict resolver to read feedback.\nexport async function GET(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n const s = readStoredAnnotations();\n return Response.json({\n annotations: s.annotations,\n globalComment: s.globalComment,\n submitted: s.submitted,\n submittedAt: s.submittedAt,\n feedback: s.submitted ? renderAnnotationFeedback(s) : \"\",\n });\n });\n}\n\n// PUT — panel writes in-progress state (not yet submitted). Idempotent. Ignores `draft`\n// since the board diff only matters at submit time.\nexport async function PUT(req: Request) {\n const body = bodySchema.parse(await req.json());\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n const prev = readStoredAnnotations();\n writeStoredAnnotations({\n ...prev,\n annotations: body.annotations,\n globalComment: body.globalComment ?? \"\",\n submitted: false,\n questions: body.questions ?? prev.questions ?? [],\n });\n return new Response(null, { status: 204 });\n });\n}\n\n// POST — final submit. Captures board edits on the spot and sets `submitted` so the verdict\n// resolver wakes up and hands the feedback back to the terminal session.\nexport async function POST(req: Request) {\n const body = bodySchema.parse(await req.json());\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n // Cast: the wire schema accepts any string for `status` to be forgiving, but a draft\n // posted from /db is always in the DraftDoc union (pending|approved|discarded).\n const draft = (body.draft ?? null) as DraftDoc | null;\n const boardEdits = await collectBoardEdits(draft);\n writeStoredAnnotations({\n annotations: body.annotations,\n globalComment: body.globalComment ?? \"\",\n submitted: true,\n submittedAt: Date.now(),\n boardEdits,\n questions: body.questions ?? [],\n });\n return Response.json({ ok: true, boardEdits });\n });\n}\n\n// DELETE — wipe the annotation file (used by the Discard flow).\nexport async function DELETE(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n clearStoredAnnotations();\n return new Response(null, { status: 204 });\n });\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n type AppRouteUserlandModule,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The static import is used for initialization (methods, dynamic, etc.).\n userland: userland as AppRouteUserlandModule,\n // In Turbopack dev mode, also provide a getter that calls require() on every\n // request. This re-reads from devModuleCache so HMR updates are picked up,\n // and the async wrapper unwraps async-module Promises (ESM-only\n // serverExternalPackages) automatically.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () => import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["renderBoardEdits","input","featureLines","origFeats","Set","originalFeatures","currFeats","currentFeatures","t","has","push","byParent","Map","s","addedSubtasks","arr","get","parentTitle","title","set","subtaskLines","parent","items","dbLines","currentDoc","baseline","originalDoc","proposedAt","status","tables","relations","endpoints","line","sections","length","join","dynamic","annotationSchema","object","id","string","excerpt","comment","kind","enum","optional","clientDraftSchema","number","array","name","domain","nullable","description","x","y","columns","type","isPk","boolean","isFk","note","fromTableId","toTableId","fromColumn","toColumn","label","method","path","links","tableId","access","nullish","bodySchema","annotations","globalComment","draft","questions","target","question","collectBoardEdits","meta","draftFeatures","query","node","findMany","where","n","and","a","eq","eqf","source","view","map","f","ids","titleById","children","inArray","inArr","parentId","c","GET","req","Response","json","submitted","submittedAt","feedback","PUT","body","parse","prev","POST","boardEdits","Date","now","ok","DELETE","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[91153,e=>{"use strict";let t=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 a(e){return e.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}function r(e){return a(e).split(" ").filter(e=>e&&!t.has(e))}function n(e,t){if(!e.size||!t.size)return 0;let a=0;for(let r of e)t.has(r)&&a++;return 2*a/(e.size+t.size)}function i(e){let t=a(e).replace(/ /g,""),r=new Set;for(let e=0;e<t.length-1;e++)r.add(t.slice(e,e+2));return r}e.s(["matchFeature",0,function(e,t,s={}){let o=s.confident??.72,l=s.consider??.5,u=s.margin??.1,d=t.map(t=>{var s,o;let l,u;return{...t,score:Math.round(100*(s=e,o=t.title,l=a(s),u=a(o),l&&u?l===u?1:Math.min(1,.7*n(new Set(r(s)),new Set(r(o)))+.4*n(i(s),i(o))):0))/100}}).sort((e,t)=>t.score-e.score),c=d[0];if(!c||c.score<l)return{best:null,candidates:[]};let p=d[1]?.score??0,h=1===d.length||c.score-p>=u;return c.score>=o&&h?{best:c,candidates:[]}:{best:null,candidates:d.filter(e=>e.score>=l).slice(0,4)}}])},32665,e=>{"use strict";var t=e.i(91153);e.s(["validateFeatureCreation",0,function(e){let a=(e.title??"").trim();if(!a)return"⛔ A feature needs a non-empty title.";if(!(e.category??"").trim()){let t=function(e){let t=new Set;for(let a of e){let e=(a.cluster??"").trim();e&&t.add(e)}return[...t].sort()}(e.existing),r=t.length?` Reuse an existing category where it fits: ${t.join(", ")}.`:"";return`⛔ Feature "${a}" has no category. Every roadmap feature needs one — it drives grouping and color on the board.${r} Pass it as \`category\` (e.g. AUTH, SEARCH, DATA, INTEL, BILLING, INFRA …); don't rely on a default.`}let r=(0,t.matchFeature)(a,e.existing.map(e=>({id:e.id,title:e.title})));if(r.best){let t=e.existing.find(e=>e.id===r.best.id),n=t?.status?` (${t.status})`:"";return`⛔ "${a}" already exists as the feature "${t?.title??r.best.title}"${n}. 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},"validateFront",0,function(e,a){let r=(e??"").trim();if(!r)return null;let n=(0,t.matchFeature)(r,a);if(n.best)return null;let i=n.candidates.length?` Did you mean: ${n.candidates.map(e=>`"${e.title}"`).join(", ")}?`:"";return`⛔ front "${r}" doesn't match an existing feature.${i} \`front\` nests a feature UNDER an existing parent feature — it is NOT a domain tag. If "${r}" is a domain, pass it as \`category\` instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`},"validateNoDuplicateFeatures",0,function(e,a){let r=a.map(e=>({id:e.id,title:e.title})),n=e.map(e=>{let n=(0,t.matchFeature)(e.title??"",r);return n.best?{title:e.title,hit:a.find(e=>e.id===n.best.id)}:null}).filter(e=>null!==e);return n.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+n.map(e=>` • "${e.title}" → existing "${e.hit.title}"${e.hit.status?` (${e.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},"validateProposedFeatures",0,function(e){let t=e.map(e=>{let t=[],a=e.cluster??e.category??e.domain??null;return a&&a.trim()||t.push("category"),null==e.priority&&t.push("priority"),t.length?` • "${e.title?.trim()||"(untitled)"}" — missing ${t.join(" + ")}`:null}).filter(e=>null!==e);return 0===t.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"+t.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."}])},23178,e=>e.a(async(t,a)=>{try{var r=e.i(66680),n=e.i(69719),i=e.i(40717),s=e.i(69062),o=e.i(32665),l=e.i(23737),u=e.i(20537),d=e.i(3723),c=e.i(6659),p=e.i(62391),h=e.i(74005),f=e.i(91426),g=e.i(14859),m=t([s,l,u,d,c,p,f]);[s,l,u,d,c,p,f]=m.then?(await m)():m;let y=n.z.object({description:n.z.string().trim().min(1),markdown:n.z.string().optional(),draft:i.draftSchema.optional(),features:s.featureSchema.shape.features.optional()});async function w(e){return(0,g.runWithWorkspace)((0,g.workspaceIdFromRequest)(e),async()=>{let e=(0,l.readDraftDoc)(),t=await (0,s.getFeatureDraft)(),a=(0,h.readPlanMeta)(),r=(e?.tables.length??0)+(e?.endpoints.length??0)+t.features.length>0||!!a?.markdown;return Response.json({pending:r,description:a?.description??"",proposedAt:a?.proposedAt??0,tables:e?.tables.length??0,endpoints:e?.endpoints.length??0,features:t.features.length})})}async function R(e){try{let t=y.parse(await e.json());return await (0,g.runWithWorkspace)((0,g.workspaceIdFromRequest)(e),async()=>{let e=(0,r.createHash)("sha256").update(JSON.stringify({d:t.description,m:t.markdown??"",t:t.draft??null,f:t.features??null})).digest("hex"),a=t.draft,n=t.features,i=t.markdown,g=(a?.tables.length??0)>0||(a?.endpoints.length??0)>0||(a?.relations.length??0)>0||(n?.length??0)>0;if(t.markdown&&!g){let e=(0,u.extractBeaconBlock)(t.markdown);i=e.prose,a=e.draft,n=e.features}let m=(a?.tables.length??0)+(a?.endpoints.length??0)+(n?.length??0)>0,w=(0,h.readPlanMeta)();if(w?.contentHash===e&&(w.proposedAt??0)>0){let e=(0,l.readDraftDoc)(),t=await (0,s.getFeatureDraft)();if((e?.tables.length??0)+(e?.endpoints.length??0)+t.features.length>0||!m)return Response.json({ok:!0,resumed:!0})}if(n&&n.length){let e=(0,o.validateProposedFeatures)(n);if(e)return Response.json({error:e},{status:422});let t=await f.db.query.node.findMany({where:(e,{and:t,eq:a,ne:r})=>t(a(e.view,"ROADMAP"),r(e.source,"DRAFT")),columns:{id:!0,title:!0,cluster:!0,status:!0}}),a=(0,o.validateNoDuplicateFeatures)(n,t);if(a)return Response.json({error:a},{status:422})}let R=0,v=0;if(a&&(a.tables.length||a.endpoints.length)){let e=await (0,d.computeDraftOriginY)(),t=(0,l.writeProposal)(a,e);R=t.tables.length,v=t.endpoints.length}let y=0;n&&n.length&&(await (0,s.persistFeatureDraft)({features:n}),y=n.length);let b=!!i?.trim();return 0!==R||0!==v||0!==y||b?((0,h.writePlanMeta)({description:t.description,proposedAt:Date.now(),markdown:b?i:w?.description===t.description?w?.markdown:void 0,originalFeatures:n?.map(e=>e.title)??[],contentHash:e}),(0,p.resetPlanRound)(),await (0,c.bumpVersion)(),Response.json({ok:!0,tables:R,endpoints:v,features:y})):new Response("plan must include at least one table, endpoint, feature, or markdown",{status:400})})}catch(e){return new Response(`plan failed: ${e instanceof Error?e.message:"error"}`,{status:400})}}async function v(e){return(0,g.runWithWorkspace)((0,g.workspaceIdFromRequest)(e),async()=>(await (0,p.discardPlan)(),new Response(null,{status:204})))}e.s(["DELETE",0,v,"GET",0,w,"POST",0,R,"dynamic",0,"force-dynamic"]),a()}catch(e){a(e)}},!1),49366,e=>e.a(async(t,a)=>{try{var r=e.i(47909),n=e.i(74017),i=e.i(96250),s=e.i(59756),o=e.i(61916),l=e.i(74677),u=e.i(69741),d=e.i(16795),c=e.i(87718),p=e.i(95169),h=e.i(47587),f=e.i(66012),g=e.i(70101),m=e.i(26937),w=e.i(10372),R=e.i(93695);e.i(20232);var v=e.i(220),y=e.i(23178),b=t([y]);[y]=b.then?(await b)():b;let A=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/plan/route",pathname:"/api/plan",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/plan/route.ts",nextConfigOutput:"",userland:y,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:C,serverHooks:P}=A;async function E(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/plan/route";r=r.replace(/\/index$/,"")||"/";let i=await A.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:b,params:E,nextConfig:x,parsedUrl:C,isDraftMode:P,prerenderManifest:k,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:D,resolvedPathname:_,clientReferenceManifest:S,serverActionsManifest:F}=i,I=(0,u.normalizeAppPath)(r),$=!!(k.dynamicRoutes[I]||k.routes[_]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if($&&!P){let e=!!k.routes[_],t=k.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await O();throw new R.NoFallbackError}}let H=null;!$||A.isDev||P||(H=_,H="/index"===H?"/":H);let q=!0===A.isDev||!$,M=$&&!q;F&&S&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:S,serverActionsManifest:F});let j=e.method||"GET",U=(0,o.getTracer)(),L=U.getActiveScopeSpan(),B=!!(null==T?void 0:T.isWrappedByNextServer),z=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,x,k,z);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let W={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:x.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>A.onRequestError(e,t,r,n,T)},sharedContext:{buildId:y,deploymentId:b}},G=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let i,s=async e=>A.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${j} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",n),i.updateName(t))}else e.updateName(`${j} ${r}`)}),l=async i=>{var o,l;let u=async({previousCacheEntry:n})=>{try{if(!z&&N&&D&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!$)return await (0,f.sendResponse)(G,V,r,W.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,T),t}},d=await A.handleResponse({req:e,nextConfig:x,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:D,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:z});if(!$)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),P&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return z&&$||c.delete(w.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,f.sendResponse)(G,V,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};B&&L?await l(L):(i=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(p.BaseServerSpan.handleRequest,{spanName:`${j} ${r}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l),void 0,!B))}catch(t){if(t instanceof R.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,T),$)throw t;return await (0,f.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:C})},"routeModule",0,A,"serverHooks",0,P,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,C]),a()}catch(e){a(e)}},!1),58502,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1t2egm-._.js"].map(t=>e.l(t))).then(()=>t(51514)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1gmut2r._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../lib/match.ts","../../../lib/feature-rules.ts","../../../app/api/plan/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["// Reliable feature matching for the map. Combines accent-folding, content-token\n// overlap (handles word reordering + filler words) and character-bigram similarity\n// (handles stems/typos/substrings), with confidence tiers so we only auto-flag on a\n// high-confidence unambiguous match and otherwise return candidates to disambiguate.\n\n// Filler words stripped before matching. The Portuguese set is intentional and functional —\n// it lets the matcher line up feature titles written in Portuguese (e.g. juriscan), NOT leftover\n// UI cruft, so don't \"clean it up\" as part of an English-only pass.\nconst STOP = new Set([\n // English filler\n \"a\", \"an\", \"the\", \"of\", \"for\", \"to\", \"and\", \"or\", \"in\", \"on\", \"with\", \"via\", \"by\",\n \"using\", \"use\", \"add\", \"adds\", \"support\", \"implement\", \"implementation\", \"feature\",\n \"new\", \"build\", \"create\",\n // Portuguese filler\n \"o\", \"os\", \"as\", \"um\", \"uma\", \"de\", \"da\", \"do\", \"das\", \"dos\", \"para\", \"por\", \"com\",\n \"e\", \"ou\", \"no\", \"na\", \"nos\", \"nas\", \"ao\", \"aos\", \"adicionar\", \"implementar\",\n \"suporte\", \"suportar\", \"nova\", \"novo\", \"funcionalidade\", \"usar\", \"usando\", \"criar\",\n]);\n\nfunction fold(s: string): string {\n return s.normalize(\"NFD\").replace(/[̀-ͯ]/g, \"\");\n}\n\nfunction normExact(s: string): string {\n return fold(s)\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \" \")\n .trim()\n .replace(/\\s+/g, \" \");\n}\n\nexport function contentTokens(s: string): string[] {\n return normExact(s)\n .split(\" \")\n .filter((t) => t && !STOP.has(t));\n}\n\nfunction diceSets(a: Set<string>, b: Set<string>): number {\n if (!a.size || !b.size) return 0;\n let inter = 0;\n for (const t of a) if (b.has(t)) inter++;\n return (2 * inter) / (a.size + b.size);\n}\n\nfunction charBigrams(s: string): Set<string> {\n const x = normExact(s).replace(/ /g, \"\");\n const set = new Set<string>();\n for (let i = 0; i < x.length - 1; i++) set.add(x.slice(i, i + 2));\n return set;\n}\n\n/** 0..1 similarity between two feature titles. */\nexport function similarity(a: string, b: string): number {\n const na = normExact(a);\n const nb = normExact(b);\n if (!na || !nb) return 0;\n if (na === nb) return 1;\n const tokenDice = diceSets(new Set(contentTokens(a)), new Set(contentTokens(b)));\n const bigramDice = diceSets(charBigrams(a), charBigrams(b));\n return Math.min(1, 0.7 * tokenDice + 0.4 * bigramDice);\n}\n\nexport interface Candidate {\n id: string;\n title: string;\n}\nexport interface Scored extends Candidate {\n score: number;\n}\n\nexport function rankMatches(query: string, candidates: Candidate[]): Scored[] {\n return candidates\n .map((c) => ({ ...c, score: Math.round(similarity(query, c.title) * 100) / 100 }))\n .sort((a, b) => b.score - a.score);\n}\n\nexport interface MatchOutcome {\n /** A confident, unambiguous match — safe to act on automatically. */\n best: Scored | null;\n /** Plausible candidates to disambiguate (caller should pick one by id). */\n candidates: Scored[];\n}\n\nexport function matchFeature(\n query: string,\n candidates: Candidate[],\n opts: { confident?: number; consider?: number; margin?: number } = {},\n): MatchOutcome {\n const confident = opts.confident ?? 0.72;\n const consider = opts.consider ?? 0.5;\n const margin = opts.margin ?? 0.1;\n\n const ranked = rankMatches(query, candidates);\n const top = ranked[0];\n if (!top || top.score < consider) return { best: null, candidates: [] };\n\n const runnerUp = ranked[1]?.score ?? 0;\n const unambiguous = ranked.length === 1 || top.score - runnerUp >= margin;\n\n if (top.score >= confident && unambiguous) return { best: top, candidates: [] };\n return { best: null, candidates: ranked.filter((r) => r.score >= consider).slice(0, 4) };\n}\n","// Shared rule for proposed roadmap features: a feature node is only useful on the board if it\n// carries a category (cluster) and a priority — they drive grouping + ordering, and the user\n// shouldn't have to add them by hand every time. The propose-plan flow therefore REQUIRES both\n// and rejects a plan missing either, the same gate idea as \"a DB plan must ship structured\n// tables\". Pure (no db / no fs import) so BOTH the MCP server process and the /api/plan route\n// can call it.\n\nimport { matchFeature, type Candidate } from \"@/lib/match\";\n\nexport interface FeatureLike {\n title: string;\n cluster?: string | null;\n // The agent + UI both call this \"category\", and \"domain\" is the adjacent word it reaches for.\n // Accept all three as the same thing so a plan written with `category` isn't falsely rejected.\n category?: string | null;\n domain?: string | null;\n priority?: number | null;\n}\n\n// The feature's category, accepting the `cluster` / `category` / `domain` aliases.\nexport function featureCategory(f: FeatureLike): string | null {\n return f.cluster ?? f.category ?? f.domain ?? null;\n}\n\n// Returns an agent-facing rejection message when any feature is missing its category/priority,\n// or null when every feature is complete.\nexport function validateProposedFeatures(features: FeatureLike[]): string | null {\n const gaps = features\n .map((f) => {\n const missing: string[] = [];\n const category = featureCategory(f);\n if (!category || !category.trim()) missing.push(\"category\");\n if (f.priority == null) missing.push(\"priority\");\n return missing.length\n ? ` • \"${f.title?.trim() || \"(untitled)\"}\" — missing ${missing.join(\" + \")}`\n : null;\n })\n .filter((x): x is string => x !== null);\n if (gaps.length === 0) return null;\n return (\n \"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering \" +\n \"on the board, and the user shouldn't have to add them by hand. Missing:\\n\" +\n gaps.join(\"\\n\") +\n \"\\n\\nRe-present with each feature carrying its category as `category` (or `cluster` — both \" +\n \"work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 \" +\n \"high, 2 = P2 medium, 3 = P3 low). Set BOTH on EVERY feature; don't rely on defaults.\"\n );\n}\n\nexport interface ExistingFeature {\n id: string;\n title: string;\n cluster?: string | null;\n status?: string | null;\n}\n\n/** Sorted, unique, non-empty category (cluster) names already on the roadmap — surfaced to the\n * agent so it reuses an existing category instead of inventing a near-synonym. */\nexport function existingCategories(features: ExistingFeature[]): string[] {\n const set = new Set<string>();\n for (const f of features) {\n const c = (f.cluster ?? \"\").trim();\n if (c) set.add(c);\n }\n return [...set].sort();\n}\n\n/** Guard for creating a SINGLE roadmap feature on the loose paths (start_feature / add_subtasks),\n * mirroring the propose_plan gate: a feature must carry a category and must not duplicate an\n * existing one. Returns an agent-facing rejection message, or null when it's safe to create.\n * Pure (no db) so the route + the MCP process share one rule. */\nexport function validateFeatureCreation(input: {\n title: string;\n category?: string | null;\n existing: ExistingFeature[];\n}): string | null {\n const title = (input.title ?? \"\").trim();\n if (!title) return \"⛔ A feature needs a non-empty title.\";\n\n const category = (input.category ?? \"\").trim();\n if (!category) {\n const cats = existingCategories(input.existing);\n const reuse = cats.length\n ? ` Reuse an existing category where it fits: ${cats.join(\", \")}.`\n : \"\";\n return (\n `⛔ Feature \"${title}\" has no category. Every roadmap feature needs one — it drives grouping ` +\n `and color on the board.${reuse} Pass it as \\`category\\` (e.g. AUTH, SEARCH, DATA, INTEL, ` +\n `BILLING, INFRA …); don't rely on a default.`\n );\n }\n\n const dup = matchFeature(\n title,\n input.existing.map((f) => ({ id: f.id, title: f.title })),\n );\n if (dup.best) {\n const f = input.existing.find((e) => e.id === dup.best!.id);\n const status = f?.status ? ` (${f.status})` : \"\";\n return (\n `⛔ \"${title}\" already exists as the feature \"${f?.title ?? dup.best.title}\"${status}. Don't ` +\n `create a duplicate — mark progress on it with \\`beacon_start_feature({ id })\\`, add sub-tasks ` +\n `with \\`beacon_add_subtasks\\`, or finish it with \\`beacon_describe_feature\\`.`\n );\n }\n return null;\n}\n\n/** Dedup guard for a multi-feature plan (propose_plan / ExitPlanMode block): flags any proposed\n * feature whose title confidently matches an EXISTING (non-draft) roadmap feature, so the agent\n * reuses it instead of shadowing it. Returns a rejection message, or null when all are new. */\nexport function validateNoDuplicateFeatures(\n features: { title: string }[],\n existing: ExistingFeature[],\n): string | null {\n const cands = existing.map((e) => ({ id: e.id, title: e.title }));\n const dups = features\n .map((f) => {\n const m = matchFeature(f.title ?? \"\", cands);\n return m.best ? { title: f.title, hit: existing.find((e) => e.id === m.best!.id)! } : null;\n })\n .filter((x): x is { title: string; hit: ExistingFeature } => x !== null);\n if (!dups.length) return null;\n return (\n \"⛔ These proposed features already exist on the roadmap — reuse them instead of creating \" +\n \"duplicates:\\n\" +\n dups\n .map((d) => ` • \"${d.title}\" → existing \"${d.hit.title}\"${d.hit.status ? ` (${d.hit.status})` : \"\"}`)\n .join(\"\\n\") +\n \"\\n\\nDrop the duplicate(s) from the plan; to add work to an existing feature, ship sub-tasks \" +\n \"or update it via beacon_describe_feature. Keep only genuinely new features in the proposal.\"\n );\n}\n\n/** Guard for the `front` param of beacon_start_feature: it must reference an EXISTING parent\n * feature, NOT a domain label. Returns a rejection message, or null when front matches (or is\n * empty — no front means the feature lands top-level, which is fine). */\nexport function validateFront(front: string, existingFronts: Candidate[]): string | null {\n const f = (front ?? \"\").trim();\n if (!f) return null;\n const m = matchFeature(f, existingFronts);\n if (m.best) return null;\n const hint = m.candidates.length\n ? ` Did you mean: ${m.candidates.map((c) => `\"${c.title}\"`).join(\", \")}?`\n : \"\";\n return (\n `⛔ front \"${f}\" doesn't match an existing feature.${hint} \\`front\\` nests a feature UNDER an ` +\n `existing parent feature — it is NOT a domain tag. If \"${f}\" is a domain, pass it as \\`category\\` ` +\n `instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`\n );\n}\n","import { createHash } from \"node:crypto\";\nimport { z } from \"zod\";\nimport { draftSchema } from \"@/lib/design\";\nimport { featureSchema, getFeatureDraft, persistFeatureDraft } from \"@/lib/feature-design\";\nimport { validateNoDuplicateFeatures, validateProposedFeatures } from \"@/lib/feature-rules\";\nimport { readDraftDoc, writeProposal } from \"@/lib/draft-store\";\nimport { extractBeaconBlock } from \"@/lib/plan-block\";\nimport { computeDraftOriginY } from \"@/lib/endpoint-layout\";\nimport { bumpVersion } from \"@/lib/ingest\";\nimport { discardPlan, resetPlanRound } from \"@/lib/plan-resolve\";\nimport { readPlanMeta, writePlanMeta } from \"@/lib/plan-meta\";\nimport { db, runWithWorkspace } from \"@/lib/db-drizzle\";\nimport { workspaceIdFromRequest } from \"@/lib/workspaces\";\n\nexport const dynamic = \"force-dynamic\";\n\n// Beacon doesn't generate plans itself — your terminal session pushes them via the MCP\n// tool or the ExitPlanMode hook. This is the single push endpoint: it accepts a structured\n// draft, roadmap features, and/or raw markdown (the hook's plan, optionally carrying a\n// deterministically-extracted `beacon` block), persists the drafts, and remembers the\n// description so the review header can show it.\n\nconst planSchema = z.object({\n description: z.string().trim().min(1),\n // Block-stripped prose for the annotation panel (set by the ExitPlanMode hook path).\n markdown: z.string().optional(),\n draft: draftSchema.optional(),\n features: featureSchema.shape.features.optional(),\n});\n\n// GET — used by the PlanBar (browser) AND the propose_plan poll to ask \"is there a plan to\n// review right now?\". Pinned so the MCP poll reads the agent's repo's plan state.\nexport async function GET(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n const draft = readDraftDoc();\n const features = await getFeatureDraft();\n const meta = readPlanMeta();\n const pending =\n (draft?.tables.length ?? 0) +\n (draft?.endpoints.length ?? 0) +\n features.features.length >\n 0 || !!meta?.markdown;\n return Response.json({\n pending,\n description: meta?.description ?? \"\",\n proposedAt: meta?.proposedAt ?? 0,\n tables: draft?.tables.length ?? 0,\n endpoints: draft?.endpoints.length ?? 0,\n features: features.features.length,\n });\n });\n}\n\n// POST — the single push path. Persists drafts + remembers the description. Pinned to the\n// agent's repo so everything lands in that workspace.\nexport async function POST(req: Request) {\n try {\n const parsed = planSchema.parse(await req.json());\n return await runWithWorkspace(workspaceIdFromRequest(req), async () => {\n const contentHash = createHash(\"sha256\")\n .update(\n JSON.stringify({\n d: parsed.description,\n m: parsed.markdown ?? \"\",\n t: parsed.draft ?? null,\n f: parsed.features ?? null,\n }),\n )\n .digest(\"hex\");\n\n // A markdown push (the ExitPlanMode hook) may carry a fenced ```beacon block. When the\n // caller didn't already send structured draft/features, deterministically extract them\n // so they render as an editable board, and use the block-stripped prose for the panel.\n // NB: `parsed.features` defaults to [] (not undefined) when omitted because its schema\n // carries a `.default([])`, so we must detect \"no structured input\" by CONTENT — a\n // truthiness check (`!featureInput`) is always false for [] and would skip extraction,\n // leaving the raw block in the prose and the board empty.\n let draftInput = parsed.draft;\n let featureInput = parsed.features;\n let prose = parsed.markdown;\n const hasStructuredInput =\n (draftInput?.tables.length ?? 0) > 0 ||\n (draftInput?.endpoints.length ?? 0) > 0 ||\n (draftInput?.relations.length ?? 0) > 0 ||\n (featureInput?.length ?? 0) > 0;\n if (parsed.markdown && !hasStructuredInput) {\n const extracted = extractBeaconBlock(parsed.markdown);\n prose = extracted.prose;\n draftInput = extracted.draft;\n featureInput = extracted.features;\n }\n const wantsBoard =\n (draftInput?.tables.length ?? 0) +\n (draftInput?.endpoints.length ?? 0) +\n (featureInput?.length ?? 0) >\n 0;\n\n // Resume guard: an identical re-push (a crashed/restarted session retrying the same\n // proposal) must NOT reset the round — preserve any in-flight annotations + the verdict\n // the user produced meanwhile. A revised plan hashes differently → fresh round.\n // EXCEPTION: if this plan wants a board (it carries a block/structured input) but the\n // persisted board is EMPTY, a prior extraction failed (and has since been fixed) — there's\n // nothing in-flight to preserve, so fall through and re-process to finally populate it.\n const prevMeta = readPlanMeta();\n if (prevMeta?.contentHash === contentHash && (prevMeta.proposedAt ?? 0) > 0) {\n const prevDraft = readDraftDoc();\n const prevFeatures = await getFeatureDraft();\n const boardRendered =\n (prevDraft?.tables.length ?? 0) +\n (prevDraft?.endpoints.length ?? 0) +\n prevFeatures.features.length >\n 0;\n if (boardRendered || !wantsBoard) {\n return Response.json({ ok: true, resumed: true });\n }\n }\n\n // HARD RULE: every roadmap feature must carry a category (cluster) + priority. Reject the\n // push BEFORE persisting anything (422 so the ExitPlanMode hook surfaces it as a denial,\n // not the generic fail-open). The MCP path catches this earlier in bin/mcp.ts and never\n // reaches here with invalid features; this covers the ```beacon-block (ExitPlanMode) path.\n if (featureInput && featureInput.length) {\n const featureErr = validateProposedFeatures(featureInput);\n if (featureErr) return Response.json({ error: featureErr }, { status: 422 });\n // Dedup against the EXISTING roadmap only (exclude this round's own DRAFT nodes), so a\n // proposal can't silently shadow a feature that's already there.\n const existing = await db.query.node.findMany({\n where: (n, { and: a, eq: eqf, ne }) => a(eqf(n.view, \"ROADMAP\"), ne(n.source, \"DRAFT\")),\n columns: { id: true, title: true, cluster: true, status: true },\n });\n const dupErr = validateNoDuplicateFeatures(featureInput, existing);\n if (dupErr) return Response.json({ error: dupErr }, { status: 422 });\n }\n\n let tables = 0;\n let endpoints = 0;\n if (draftInput && (draftInput.tables.length || draftInput.endpoints.length)) {\n const originY = await computeDraftOriginY();\n const doc = writeProposal(draftInput, originY);\n tables = doc.tables.length;\n endpoints = doc.endpoints.length;\n }\n\n let features = 0;\n if (featureInput && featureInput.length) {\n await persistFeatureDraft({ features: featureInput });\n features = featureInput.length;\n }\n\n const hasMarkdown = !!prose?.trim();\n if (tables === 0 && endpoints === 0 && features === 0 && !hasMarkdown) {\n return new Response(\"plan must include at least one table, endpoint, feature, or markdown\", {\n status: 400,\n });\n }\n\n writePlanMeta({\n description: parsed.description,\n proposedAt: Date.now(),\n // Preserve the rich markdown a prior push (e.g. the ExitPlanMode hook) stored for\n // the SAME in-flight plan when this push omits it. Otherwise a follow-up\n // propose_plan that only carries a board would wipe the prose, and the approved\n // plan would archive as just its title. A different plan (description changed)\n // starts fresh, so the stale prose is dropped.\n markdown: hasMarkdown\n ? prose\n : prevMeta?.description === parsed.description\n ? prevMeta?.markdown\n : undefined,\n originalFeatures: featureInput?.map((f) => f.title) ?? [],\n contentHash,\n });\n // Fresh round = clean slate: drop the previous round's annotation + verdict state so the\n // polling loops don't immediately hand the agent back a stale signal it already acted on.\n resetPlanRound();\n await bumpVersion();\n return Response.json({ ok: true, tables, endpoints, features });\n });\n } catch (e) {\n return new Response(`plan failed: ${e instanceof Error ? e.message : \"error\"}`, {\n status: 400,\n });\n }\n}\n\n// User clicked Discard — archive, write the discard verdict, wipe everything. Routed through\n// the shared discardPlan so /plan and the /db canvas behave identically.\nexport async function DELETE(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), async () => {\n await discardPlan();\n return new Response(null, { status: 204 });\n });\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n type AppRouteUserlandModule,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The static import is used for initialization (methods, dynamic, etc.).\n userland: userland as AppRouteUserlandModule,\n // In Turbopack dev mode, also provide a getter that calls require() on every\n // request. This re-reads from devModuleCache so HMR updates are picked up,\n // and the async wrapper unwraps async-module Promises (ESM-only\n // serverExternalPackages) automatically.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () => import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["STOP","Set","fold","s","normalize","replace","normExact","toLowerCase","trim","contentTokens","split","filter","t","has","diceSets","a","b","size","inter","charBigrams","x","set","i","length","add","slice","similarity","na","nb","tokenDice","bigramDice","Math","min","rankMatches","query","candidates","map","c","score","round","title","sort","matchFeature","opts","confident","consider","margin","ranked","top","best","runnerUp","unambiguous","r","featureCategory","f","cluster","category","domain","validateProposedFeatures","features","gaps","missing","push","priority","join","existingCategories","validateFeatureCreation","input","cats","existing","reuse","dup","id","find","e","status","validateNoDuplicateFeatures","cands","dups","m","hit","d","validateFront","front","existingFronts","hint","dynamic","planSchema","object","description","string","markdown","optional","draft","shape","GET","req","meta","pending","tables","endpoints","Response","json","proposedAt","POST","parsed","parse","contentHash","update","JSON","stringify","digest","draftInput","featureInput","prose","hasStructuredInput","relations","extracted","wantsBoard","prevMeta","prevDraft","prevFeatures","boardRendered","ok","resumed","featureErr","error","node","findMany","where","n","and","eq","eqf","ne","view","source","columns","dupErr","originY","doc","hasMarkdown","Date","now","undefined","originalFeatures","Error","message","DELETE","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","value","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","isMiss","delete","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[3]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[89122,e=>{"use strict";var t=e.i(14859);e.s(["pinned",0,function(e){return async(a,...n)=>{let o=await (0,t.resolveRequestWorkspaceId)(a);return o&&await (0,t.ensureWorkspaceDb)(o),(0,t.runWithWorkspace)(o,async()=>e(a,...n))}}])},39513,e=>{"use strict";let t=new Set(["GET","HEAD","OPTIONS"]);e.s(["accessForMethod",0,function(e){return t.has(e.trim().toUpperCase())?"read":"write"}])},23737,e=>e.a(async(t,a)=>{try{var n=e.i(66680),o=e.i(2157),r=e.i(50227),i=e.i(69719),l=e.i(75225),s=e.i(91426),d=e.i(34700),u=e.i(38752),p=e.i(94930),c=e.i(6659),m=e.i(39513),f=e.i(96902),h=t([s,c,f]);function b(){return(0,r.join)((0,u.dataDir)(),"draft.json")}function w(){return(0,r.join)((0,u.dataDir)(),"draft-verdict.json")}function g(){try{return JSON.parse((0,o.readFileSync)(b(),"utf8"))}catch{return null}}function y(){(0,o.rmSync)(b(),{force:!0})}function v(e){let t=new Map(e.tables.map(e=>[e.id,e.name])),a=["## Approved schema","","### Tables"];for(let t of e.tables)for(let e of(a.push(`- **${t.name}**${t.domain?` (${t.domain})`:""}`),t.columns)){let t=[e.isPk&&"PK",e.isFk&&"FK",e.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");a.push(` - ${e.name} ${e.type}${t?` ${t}`:""}${e.note?` — ${e.note}`:""}`)}if(e.relations.length)for(let n of(a.push("","### Relations (FKs)"),e.relations)){let e=t.get(n.fromTableId)??n.fromTableId,o=t.get(n.toTableId)??n.toTableId;a.push(`- ${e}.${n.fromColumn} → ${o}.${n.toColumn}`)}if(e.endpoints.length)for(let n of(a.push("","### Endpoints"),e.endpoints)){let e=n.links.map(e=>`${t.get(e.tableId)??e.tableId} (${e.access})`).join(", ");a.push(`- ${n.method} ${n.path}${e?` — ${e}`:""}`)}return a.join("\n")}function R(e){(0,p.writeJsonAtomic)(w(),e)}[s,c,f]=h.then?(await h)():h;let $=i.z.object({proposedAt:i.z.number(),status:i.z.string(),tables:i.z.array(i.z.object({id:i.z.string(),name:i.z.string().trim().min(1),domain:i.z.string().nullable(),description:i.z.string().nullable(),x:i.z.number(),y:i.z.number(),columns:i.z.array(i.z.object({name:i.z.string().trim().min(1),type:i.z.string(),isPk:i.z.boolean(),isFk:i.z.boolean(),nullable:i.z.boolean(),note:i.z.string().nullable()}))})),relations:i.z.array(i.z.object({id:i.z.string(),fromTableId:i.z.string(),toTableId:i.z.string(),fromColumn:i.z.string(),toColumn:i.z.string(),label:i.z.string().nullable()})),endpoints:i.z.array(i.z.object({id:i.z.string(),method:i.z.string().trim().min(1),path:i.z.string().trim().min(1),domain:i.z.string().nullable(),description:i.z.string().nullable(),x:i.z.number(),y:i.z.number(),links:i.z.array(i.z.object({tableId:i.z.string(),access:i.z.string()}))}))});async function C(e,t=s.db){let a=$.parse(e),n=new Map(a.tables.map(e=>[e.id,e.name])),o=new Map;for(let e of a.tables){let[a]=await t.insert(d.dbTable).values({name:e.name,domain:e.domain,description:e.description,source:"MANUAL",x:e.x,y:e.y}).onConflictDoUpdate({target:d.dbTable.name,set:{domain:e.domain,description:e.description}}).returning();o.set(e.name,a.id),await t.delete(d.dbColumn).where((0,l.eq)(d.dbColumn.tableId,a.id)),e.columns.length&&await t.insert(d.dbColumn).values(e.columns.map((e,t)=>({tableId:a.id,name:e.name,type:e.type,isPk:e.isPk,isFk:e.isFk,nullable:e.nullable,note:e.note,ord:t})))}let r=async e=>{let a=n.get(e);if(a)return o.get(a)??null;let r=await t.query.dbTable.findFirst({where:(t,{eq:a})=>a(t.id,e)}).catch(()=>null);return r?r.id:null};for(let e of a.relations){let a=await r(e.fromTableId),n=await r(e.toTableId);a&&n&&(await t.query.dbRelation.findFirst({where:(t,{and:o,eq:r})=>o(r(t.fromTableId,a),r(t.toTableId,n),r(t.fromColumn,e.fromColumn),r(t.toColumn,e.toColumn))})||await t.insert(d.dbRelation).values({fromTableId:a,toTableId:n,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label}))}for(let e of a.endpoints){let[a]=await t.insert(d.endpoint).values({method:e.method,path:e.path,domain:e.domain,description:e.description,source:"MANUAL",x:e.x,y:e.y}).onConflictDoUpdate({target:[d.endpoint.method,d.endpoint.path],set:{domain:e.domain,description:e.description}}).returning();for(let n of(await t.delete(d.endpointTable).where((0,l.eq)(d.endpointTable.endpointId,a.id)),e.links)){let e=await r(n.tableId);e&&await t.insert(d.endpointTable).values({endpointId:a.id,tableId:e,access:n.access}).catch(()=>{})}}let i=`${a.tables.length} table(s), ${a.relations.length} relation(s) and ${a.endpoints.length} endpoint(s) approved and persisted to the schema.`;return R({proposedAt:a.proposedAt,status:"approved",summary:i,detail:v(a)}),y(),await (0,c.bumpVersion)(t),{tables:a.tables.length,relations:a.relations.length,endpoints:a.endpoints.length}}async function T(e=s.db){let t=await e.query.endpoint.findMany({with:{tables:!0}}),a=0;for(let n of t)if("write"===(0,m.accessForMethod)(n.method))for(let t of n.tables)"read"===t.access&&(await e.update(d.endpointTable).set({access:"write"}).where((0,l.eq)(d.endpointTable.id,t.id)),a++);return a}e.s(["approveDraft",0,C,"backfillEndpointAccess",0,T,"clearDraftDoc",0,y,"describeApprovedDoc",0,v,"diffDocs",0,function(e,t){let a=[],n=new Map(e.tables.map(e=>[e.name,e])),o=new Map(t.tables.map(e=>[e.name,e]));for(let e of t.tables)n.has(e.name)||a.push(`added table **${e.name}**`);for(let t of e.tables)o.has(t.name)||a.push(`removed table **${t.name}**`);for(let e of t.tables){let t=n.get(e.name);if(!t)continue;let o=new Map(t.columns.map(e=>[e.name,e])),r=new Map(e.columns.map(e=>[e.name,e]));for(let t of e.columns){let n=o.get(t.name);if(!n){a.push(`added column **${e.name}.${t.name}** (${t.type})`);continue}let r=[];n.type!==t.type&&r.push(`type ${n.type} → ${t.type}`),n.isPk!==t.isPk&&r.push(t.isPk?"now PK":"no longer PK"),n.isFk!==t.isFk&&r.push(t.isFk?"now FK":"no longer FK"),n.nullable!==t.nullable&&r.push(t.nullable?"now accepts NULL":"now NOT NULL"),(n.note??"")!==(t.note??"")&&r.push(`note: "${t.note??""}"`),r.length&&a.push(`changed **${e.name}.${t.name}** — ${r.join("; ")}`)}for(let n of t.columns)r.has(n.name)||a.push(`removed column **${e.name}.${n.name}** (was ${n.type})`)}let r=(e,t)=>`${t.get(e.fromTableId)??e.fromTableId}.${e.fromColumn}→${t.get(e.toTableId)??e.toTableId}.${e.toColumn}`,i=new Map(e.tables.map(e=>[e.id,e.name])),l=new Map(t.tables.map(e=>[e.id,e.name])),s=new Set(e.relations.map(e=>r(e,i))),d=new Set(t.relations.map(e=>r(e,l)));for(let e of d)s.has(e)||a.push(`added relation ${e}`);for(let e of s)d.has(e)||a.push(`removed relation ${e}`);let u=e=>`${e.method} ${e.path}`,p=new Map(e.endpoints.map(e=>[u(e),e])),c=new Map(t.endpoints.map(e=>[u(e),e]));for(let[e,t]of c)if(!p.has(e)){let n=t.links.map(e=>`${l.get(e.tableId)??e.tableId} (${e.access})`).join(", ");a.push(`added endpoint **${e}**${n?` — ${n}`:""}`)}for(let[e]of p)c.has(e)||a.push(`removed endpoint **${e}**`);return a},"discardDraft",0,function(){let e=g();e&&R({proposedAt:e.proposedAt,status:"discarded",summary:"The user discarded the draft."}),y()},"draftState",0,function(){let e=g();if(e)return{state:"pending",proposedAt:e.proposedAt};let t=function(){try{return JSON.parse((0,o.readFileSync)(w(),"utf8"))}catch{return null}}();return t?{state:t.status,proposedAt:t.proposedAt,summary:t.summary,detail:t.detail}:{state:"none"}},"purgeDraft",0,function(){(0,o.rmSync)(b(),{force:!0}),(0,o.rmSync)(w(),{force:!0})},"readDraftDoc",0,g,"writeProposal",0,function(e,t=0,a=Date.now()){let r=function(e,t,a=0){let o=new Map,r=(0,f.packTablesMasonry)(e.tables.map(e=>({key:e.name,columnCount:e.columns.length}))),i=0,l=e.tables.map(e=>{let t=(0,n.randomUUID)();o.set(e.name,t);let l=r.get(e.name)??{x:0,y:0};return i=Math.max(i,l.y+(0,f.estimateTableHeight)(e.columns.length)),{id:t,name:e.name,domain:e.domain??null,description:e.description??null,x:l.x,y:a+l.y,columns:e.columns.map(e=>({name:e.name,type:e.type,isPk:e.isPk??!1,isFk:e.isFk??!1,nullable:e.nullable??!0,note:e.note??null}))}}),s=e.relations.flatMap(e=>{let t=o.get(e.fromTable),a=o.get(e.toTable);return t&&a?[{id:(0,n.randomUUID)(),fromTableId:t,toTableId:a,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label??`${e.fromColumn} → ${e.toTable}.${e.toColumn}`}]:[]}),d=a+i+280,u=e.endpoints.map((e,t)=>({id:(0,n.randomUUID)(),method:e.method,path:e.path,domain:e.domain??null,description:e.description??null,x:t%3*320+40,y:d+120*Math.floor(t/3),links:e.uses.flatMap(e=>{let t=o.get(e.table);return t?[{tableId:t,access:e.access}]:[]})}));return{proposedAt:t,status:"pending",tables:l,relations:s,endpoints:u}}(e,a,t);return(0,p.writeJsonAtomic)(b(),r),(0,o.rmSync)(w(),{force:!0}),r}]),a()}catch(e){a(e)}},!1),13546,e=>e.a(async(t,a)=>{try{var n=e.i(91426),o=e.i(34700),r=e.i(6659),i=e.i(23737),l=t([n,r,i]);async function s(e=n.db){await e.delete(o.endpointTable),await e.delete(o.endpoint),await e.delete(o.dbRelation),await e.delete(o.dbColumn),await e.delete(o.dbTable),await e.delete(o.draftRelation),await e.delete(o.draftColumn),await e.delete(o.draftTable),(0,i.purgeDraft)(),await e.delete(o.edge),await e.delete(o.note),await e.delete(o.nodeFile),await e.delete(o.node),await e.delete(o.tag),await e.delete(o.projectMeta),await e.update(o.appSetting).set({currentFeatureId:null}),await (0,r.bumpVersion)(e)}[n,r,i]=l.then?(await l)():l,e.s(["resetAllData",0,s]),a()}catch(e){a(e)}},!1),83804,e=>e.a(async(t,a)=>{try{var n=e.i(13546),o=e.i(89122),r=t([n]);[n]=r.then?(await r)():r;let i=(0,o.pinned)(async()=>{try{return await (0,n.resetAllData)(),Response.json({ok:!0})}catch(e){return new Response(`reset failed: ${e instanceof Error?e.message:"error"}`,{status:500})}});e.s(["POST",0,i,"dynamic",0,"force-dynamic"]),a()}catch(e){a(e)}},!1),77517,e=>e.a(async(t,a)=>{try{var n=e.i(47909),o=e.i(74017),r=e.i(96250),i=e.i(59756),l=e.i(61916),s=e.i(74677),d=e.i(69741),u=e.i(16795),p=e.i(87718),c=e.i(95169),m=e.i(47587),f=e.i(66012),h=e.i(70101),b=e.i(26937),w=e.i(10372),g=e.i(93695);e.i(20232);var y=e.i(220),v=e.i(83804),R=t([v]);[v]=R.then?(await R)():R;let T=new n.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/reset/route",pathname:"/api/reset",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/reset/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:$,workUnitAsyncStorage:A,serverHooks:I}=T;async function C(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),T.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/reset/route";n=n.replace(/\/index$/,"")||"/";let r=await T.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:R,params:C,nextConfig:$,parsedUrl:A,isDraftMode:I,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:x,revalidateOnlyGenerated:z,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:S}=r,N=(0,d.normalizeAppPath)(n),D=!!(E.dynamicRoutes[N]||E.routes[P]),U=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!I){let e=!!E.routes[P],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if($.adapterPath)return await U();throw new g.NoFallbackError}}let F=null;!D||T.isDev||I||(F=P,F="/index"===F?"/":F);let O=!0===T.isDev||!D,j=D&&!O;S&&M&&(0,s.setManifestsSingleton)({page:n,clientReferenceManifest:M,serverActionsManifest:S});let q=e.method||"GET",_=(0,l.getTracer)(),H=_.getActiveScopeSpan(),K=!!(null==k?void 0:k.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,$,E,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let W={params:C,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!$.experimental.authInterrupts},cacheComponents:!!$.cacheComponents,supportsDynamicResponse:O,incrementalCache:B,cacheLifeProfiles:$.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,o)=>T.onRequestError(e,t,n,o,k)},sharedContext:{buildId:v,deploymentId:R}},V=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),J=p.NextRequestAdapter.fromNodeNextRequest(V,(0,p.signalFromNodeResponse)(t));try{let r,i=async e=>T.handle(J,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=_.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=a.get("next.route");if(o){let t=`${q} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",o),r.updateName(t))}else e.updateName(`${q} ${n}`)}),s=async r=>{var l,s;let d=async({previousCacheEntry:o})=>{try{if(!L&&x&&z&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(r);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let s=W.renderOpts.collectedTags;if(!D)return await (0,f.sendResponse)(V,G,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[w.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,o=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,k),t}},u=await T.handleResponse({req:e,nextConfig:$,cacheKey:F,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:z,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:L});if(!D)return null;if((null==u||null==(l=u.value)?void 0:l.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",x?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&D||p.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,b.getCacheControlHeader)(u.cacheControl)),await (0,f.sendResponse)(V,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};K&&H?await s(H):(r=_.getActiveScopeSpan(),await _.withPropagatedContext(e.headers,()=>_.trace(c.BaseServerSpan.handleRequest,{spanName:`${q} ${n}`,kind:l.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},s),void 0,!K))}catch(t){if(t instanceof g.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,k),D)throw t;return await (0,f.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:$,workUnitAsyncStorage:A})},"routeModule",0,T,"serverHooks",0,I,"workAsyncStorage",0,$,"workUnitAsyncStorage",0,A]),a()}catch(e){a(e)}},!1),58502,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1t2egm-._.js"].map(t=>e.l(t))).then(()=>t(51514)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1h7jba5._.js.map
|