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":["../../../../lib/embeddings.ts","../../../../node_modules/d3-force/src/center.js","../../../../node_modules/d3-quadtree/src/add.js","../../../../node_modules/d3-quadtree/src/cover.js","../../../../node_modules/d3-quadtree/src/data.js","../../../../node_modules/d3-quadtree/src/extent.js","../../../../node_modules/d3-quadtree/src/quad.js","../../../../node_modules/d3-quadtree/src/find.js","../../../../node_modules/d3-quadtree/src/remove.js","../../../../node_modules/d3-quadtree/src/root.js","../../../../node_modules/d3-quadtree/src/size.js","../../../../node_modules/d3-quadtree/src/visit.js","../../../../node_modules/d3-quadtree/src/visitAfter.js","../../../../node_modules/d3-quadtree/src/x.js","../../../../node_modules/d3-quadtree/src/y.js","../../../../node_modules/d3-quadtree/src/quadtree.js","../../../../node_modules/d3-force/src/constant.js","../../../../node_modules/d3-force/src/jiggle.js","../../../../node_modules/d3-force/src/collide.js","../../../../node_modules/d3-force/src/link.js","../../../../node_modules/d3-dispatch/src/dispatch.js","../../../../node_modules/d3-timer/src/timer.js","../../../../node_modules/d3-force/src/lcg.js","../../../../node_modules/d3-force/src/simulation.js","../../../../node_modules/d3-force/src/manyBody.js","../../../../lib/roadmap-force-layout.ts","../../../../lib/roadmap-layout-state.ts","../../../../lib/settings.ts","../../../../lib/map-ops.ts","../../../../lib/schemas.ts","../../../../lib/mutations.ts"],"sourcesContent":["// Local semantic-search embedder. Loads Xenova/all-MiniLM-L6-v2 in-process\n// (~22MB cached on first use, ~50-100ms per text after that). Stays local so\n// the Beacon panel has no API-key dependency and no per-query network hop.\n// Vectors live in `Node.embedding` as JSON strings; cosine is computed in JS\n// at query time — at hundreds of nodes per workspace, sqlite-vec is overkill.\n\ntype FeatureExtractionPipeline = (\n text: string | string[],\n opts?: { pooling?: \"mean\" | \"cls\"; normalize?: boolean },\n) => Promise<{ data: Float32Array | number[] }>;\n\nlet pipelinePromise: Promise<FeatureExtractionPipeline> | null = null;\n\nasync function getEmbedder(): Promise<FeatureExtractionPipeline> {\n if (!pipelinePromise) {\n pipelinePromise = (async () => {\n const { pipeline } = await import(\"@huggingface/transformers\");\n // 384-dim sentence embeddings. The \"feature-extraction\" task with\n // mean-pooled + normalized output is the canonical sentence-encoder shape.\n return (await pipeline(\n \"feature-extraction\",\n \"Xenova/all-MiniLM-L6-v2\",\n )) as unknown as FeatureExtractionPipeline;\n })().catch((e) => {\n pipelinePromise = null; // let the next call retry on transient failure\n throw e;\n });\n }\n return pipelinePromise;\n}\n\n/** Compute a 384-dim sentence embedding. Returns null on failure (caller falls back to lexical). */\nexport async function embedText(text: string): Promise<number[] | null> {\n const trimmed = text.trim();\n if (!trimmed) return null;\n try {\n const embedder = await getEmbedder();\n const out = await embedder(trimmed, { pooling: \"mean\", normalize: true });\n return Array.from(out.data);\n } catch (e) {\n console.error(\"[embeddings] failed:\", e instanceof Error ? e.message : e);\n return null;\n }\n}\n\n/** Build the embedding input text from a node's queryable fields. */\nexport function nodeEmbeddingInput(node: {\n title: string;\n role?: string | null;\n plain?: string | null;\n cluster?: string | null;\n}): string {\n return [node.title, node.role, node.plain, node.cluster].filter(Boolean).join(\". \");\n}\n\n/** Cosine similarity, defensive against zero vectors and dimension mismatch. */\nexport function cosineSimilarity(a: number[], b: number[]): number {\n if (a.length !== b.length) return 0;\n let dot = 0;\n let normA = 0;\n let normB = 0;\n for (let i = 0; i < a.length; i++) {\n dot += a[i] * b[i];\n normA += a[i] * a[i];\n normB += b[i] * b[i];\n }\n if (normA === 0 || normB === 0) return 0;\n return dot / (Math.sqrt(normA) * Math.sqrt(normB));\n}\n\nexport function encodeVector(v: number[]): string {\n return JSON.stringify(v);\n}\n\nexport function decodeVector(raw: string | null | undefined): number[] | null {\n if (!raw) return null;\n try {\n const parsed = JSON.parse(raw);\n if (!Array.isArray(parsed)) return null;\n if (parsed.some((x) => typeof x !== \"number\" || !Number.isFinite(x))) return null;\n return parsed as number[];\n } catch {\n return null;\n }\n}\n\n/**\n * Re-embed a Node from its current title/plain/role/cluster. Idempotent; swallows\n * errors so a failed embed never breaks the write that triggered it.\n */\nexport async function reembedNode(id: string): Promise<void> {\n try {\n const { db } = await import(\"@/lib/db\");\n const { node } = await import(\"@/lib/drizzle/schema\");\n const { eq } = await import(\"drizzle-orm\");\n const row = await db.query.node.findFirst({\n where: (t, { eq: eqf }) => eqf(t.id, id),\n columns: { title: true, role: true, plain: true, cluster: true },\n });\n if (!row) return;\n const vec = await embedText(nodeEmbeddingInput(row));\n if (!vec) return;\n await db.update(node).set({ embedding: encodeVector(vec) }).where(eq(node.id, id));\n } catch (e) {\n console.error(\"[embeddings] reembed failed:\", id, e instanceof Error ? e.message : e);\n }\n}\n\n/** Rank candidates by cosine. Returns null when the query embedding fails. */\nexport async function rankByQuery<T extends { embedding: string | null }>(\n query: string,\n candidates: T[],\n): Promise<Array<{ item: T; score: number }> | null> {\n const queryVec = await embedText(query);\n if (!queryVec) return null;\n const scored: Array<{ item: T; score: number }> = [];\n for (const item of candidates) {\n const v = decodeVector(item.embedding);\n if (!v) continue;\n scored.push({ item, score: cosineSimilarity(queryVec, v) });\n }\n scored.sort((a, b) => b.score - a.score);\n return scored;\n}\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","// Organic 2D layout for the ROADMAP canvas — a synchronous d3-force simulation (the same physics\n// family that powers the Files canvas and Obsidian's graph view). A layered/columnar layout is\n// wrong for a roadmap because most features depend on NOTHING, so they all collapse into one tall\n// strip. Force layout instead spreads independent features across the WIDTH of the board and pulls\n// dependency-linked features into tight clusters, keeping edges short and readable.\n//\n// Deterministic: nodes are sorted by id (stable d3 phyllotaxis seeding) and the simulation's\n// randomness is a seeded PRNG, so the same graph always yields the same layout — which lets the\n// caller gate re-layout on a structural signature and compare positions without spurious churn.\n//\n// Pure (only depends on d3-force) so it can be unit-tested and run on the server.\n\nimport {\n forceCenter,\n forceCollide,\n forceLink,\n forceManyBody,\n forceSimulation,\n type SimulationNodeDatum,\n} from \"d3-force\";\n\nexport interface ForceLayoutNode {\n id: string;\n /** Sub-tasks (parentId set) are pulled tight to their parent with a short link. */\n parentId?: string | null;\n}\n\n/** A DEPENDS edge: `fromId` depends on `toId`. Direction is irrelevant to the physics. */\nexport interface ForceLayoutEdge {\n fromId: string;\n toId: string;\n}\n\nexport interface ForceLayoutOptions {\n /** Resting length of a dependency link (center-to-center). */\n linkDistance?: number;\n /** Repulsion between every pair of cards (negative = repel). */\n charge?: number;\n /** Collision radius so wide cards don't overlap. */\n collideRadius?: number;\n /** Simulation iterations. */\n ticks?: number;\n}\n\n// Defaults tuned for the ~256×110px feature cards. Repulsion is kept GENTLE so collision (not\n// charge) is the binding constraint — that packs cards into a compact cloud that just clears\n// overlap, instead of flinging them across an empty canvas. collideRadius ≈ half a card width +\n// margin so neighbours touch but don't overlap; linkDistance keeps connected cards adjacent.\nconst DEFAULTS = {\n linkDistance: 210,\n charge: -450,\n collideRadius: 132,\n ticks: 500,\n};\n\n// mulberry32 — a tiny deterministic PRNG so the simulation is reproducible (no Math.random).\nfunction seededRandom(seed: number): () => number {\n let a = seed >>> 0;\n return () => {\n a = (a + 0x6d2b79f5) >>> 0;\n let t = a;\n t = Math.imul(t ^ (t >>> 15), t | 1);\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61);\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n };\n}\n\ninterface SimNode extends SimulationNodeDatum {\n id: string;\n}\n\nexport function forceLayoutRoadmap(\n nodes: ForceLayoutNode[],\n edges: ForceLayoutEdge[],\n opts: ForceLayoutOptions = {},\n): Map<string, { x: number; y: number }> {\n const linkDistance = opts.linkDistance ?? DEFAULTS.linkDistance;\n const charge = opts.charge ?? DEFAULTS.charge;\n const collideRadius = opts.collideRadius ?? DEFAULTS.collideRadius;\n const ticks = opts.ticks ?? DEFAULTS.ticks;\n\n // Sort by id → stable phyllotaxis seeding → deterministic output.\n const ordered = [...nodes].sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));\n const ids = new Set(ordered.map((n) => n.id));\n const simNodes: SimNode[] = ordered.map((n) => ({ id: n.id }));\n\n const links: { source: string; target: string }[] = [];\n for (const e of edges) {\n if (e.fromId !== e.toId && ids.has(e.fromId) && ids.has(e.toId)) {\n links.push({ source: e.fromId, target: e.toId });\n }\n }\n // CONTAINS: keep a sub-task hugging its parent with a shorter, stronger link.\n for (const n of ordered) {\n if (n.parentId && ids.has(n.parentId)) links.push({ source: n.id, target: n.parentId });\n }\n\n const sim = forceSimulation(simNodes)\n .randomSource(seededRandom(0x9e3779b9))\n .force(\n \"link\",\n forceLink<SimNode, { source: string; target: string }>(links)\n .id((n) => n.id)\n .distance(linkDistance)\n .strength(0.6),\n )\n .force(\"charge\", forceManyBody<SimNode>().strength(charge).distanceMax(1200))\n .force(\"collide\", forceCollide<SimNode>().radius(collideRadius).strength(1))\n .force(\"center\", forceCenter(0, 0).strength(0.08))\n .stop();\n\n for (let i = 0; i < ticks; i++) sim.tick();\n\n const out = new Map<string, { x: number; y: number }>();\n for (const n of simNodes) {\n out.set(n.id, { x: Math.round(n.x ?? 0), y: Math.round(n.y ?? 0) });\n }\n return out;\n}\n","import { readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { dataDir } from \"@/lib/project\";\nimport { writeJsonAtomic } from \"@/lib/atomic-write\";\n\n// Per-workspace marker recording the STRUCTURE the roadmap was last auto-laid-out for. The\n// organic force layout only re-runs when this signature changes (a feature/edge added or removed),\n// so a plain page refresh, a manual card drag, or a Group-by arrangement is NOT clobbered — only a\n// genuine structural change re-tidies the board. Stored as one tiny JSON file in the workspace\n// data dir (same pattern as touched-files / draft store), so no DB schema change is needed.\n\n// Bump when the layout ALGORITHM changes (e.g. force params) so every board re-lays-out once even\n// though its node/edge set is unchanged.\nconst LAYOUT_ALGO_VERSION = \"force-2\";\n\n// Pure: a stable signature of the roadmap's structure (node set + dependency edges). Sorted so it\n// is order-independent; positions/status/titles are deliberately excluded — only the graph shape\n// matters for layout. Prefixed with the algo version so a layout change invalidates old sigs.\nexport function roadmapStructureSignature(\n nodeIds: string[],\n edges: { fromId: string; toId: string }[],\n): string {\n const ns = [...nodeIds].sort().join(\",\");\n const es = edges.map((e) => `${e.fromId}>${e.toId}`).sort().join(\",\");\n return `${LAYOUT_ALGO_VERSION}|${nodeIds.length}|${ns}|${es}`;\n}\n\nfunction sigPath(): string {\n return join(dataDir(), \"roadmap-layout-sig.json\");\n}\n\nexport function readRoadmapLayoutSig(): string | null {\n try {\n const raw = JSON.parse(readFileSync(sigPath(), \"utf8\")) as { sig?: string };\n return raw.sig ?? null;\n } catch {\n return null;\n }\n}\n\nexport function writeRoadmapLayoutSig(sig: string): void {\n writeJsonAtomic(sigPath(), { sig });\n}\n","import { db, type DB } from \"@/lib/db-drizzle\";\nimport { appSetting } from \"@/lib/drizzle/schema\";\n\nexport async function getAppSettings(prisma: DB = db) {\n const [row] = await prisma\n .insert(appSetting)\n .values({ id: \"singleton\" })\n .onConflictDoUpdate({ target: appSetting.id, set: { id: \"singleton\" } })\n .returning();\n return row;\n}\n\nexport async function setAppSettings(\n data: {\n intelModel?: string;\n intelProvider?: string;\n editor?: string;\n currentFeatureId?: string | null;\n },\n prisma: DB = db,\n) {\n const [row] = await prisma\n .insert(appSetting)\n .values({ id: \"singleton\", ...data })\n .onConflictDoUpdate({ target: appSetting.id, set: data })\n .returning();\n return row;\n}\n","import { z } from \"zod\";\nimport { and, count, eq, inArray } from \"drizzle-orm\";\nimport { db } from \"@/lib/db-drizzle\";\nimport { node, nodeFile, edge, appSetting } from \"@/lib/drizzle/schema\";\nimport { bumpVersion } from \"@/lib/ingest\";\nimport { reembedNode } from \"@/lib/embeddings\";\nimport { matchFeature, type Scored } from \"@/lib/match\";\nimport { validateFeatureCreation, validateFront } from \"@/lib/feature-rules\";\nimport { placeWithoutOverlap } from \"@/lib/node-placement\";\nimport { forceLayoutRoadmap } from \"@/lib/roadmap-force-layout\";\nimport {\n readRoadmapLayoutSig,\n roadmapStructureSignature,\n writeRoadmapLayoutSig,\n} from \"@/lib/roadmap-layout-state\";\nimport { createNode } from \"@/lib/mutations\";\nimport { repoRoot } from \"@/lib/project\";\nimport { setAppSettings } from \"@/lib/settings\";\n\nasync function setCurrent(id: string) {\n await setAppSettings({ currentFeatureId: id });\n}\n\n// Map write operations used by the HTTP API + the MCP server. Lets a Claude Code\n// session see the roadmap and register what it's working on: flag an existing\n// feature as \"being worked on\", or add a new one under the right front (or a new front).\n\nexport interface MapView {\n fronts: Array<{\n id: string;\n title: string;\n status: string;\n tasks: Array<{ id: string; title: string; status: string; workingOn: boolean }>;\n }>;\n}\n\nexport async function listMap(): Promise<MapView> {\n const nodes = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.view, \"ROADMAP\"),\n orderBy: (t, { asc }) => asc(t.createdAt),\n });\n const fronts = nodes.filter((n) => !n.parentId);\n return {\n fronts: fronts.map((f) => ({\n id: f.id,\n title: f.title,\n status: f.status,\n tasks: nodes\n .filter((n) => n.parentId === f.id)\n .map((t) => ({\n id: t.id,\n title: t.title,\n status: t.status,\n workingOn: t.status === \"IN_PROGRESS\",\n })),\n })),\n };\n}\n\nexport type StartResult =\n | { action: \"flagged\"; id: string; title: string; via: \"id\" | \"match\"; score?: number }\n | { action: \"created\"; id: string; title: string; front: string | null }\n | { action: \"ambiguous\"; candidates: Scored[] }\n | { action: \"rejected\"; message: string };\n\nasync function setStatus(id: string, status: string) {\n await db.update(node).set({ status }).where(eq(node.id, id));\n await propagateStatusUp(id);\n await bumpVersion();\n}\n\n// ── Parent-derived status propagation ───────────────────────────────────────\n// When a roadmap child's status changes, walk up the parent chain so each\n// ancestor reflects its children's reality. Status doesn't auto-update from\n// progress because the canvas needs the explicit field to colour/sort by.\n//\n// Status classes for the derivation:\n// complete — DONE, CANCELLED, DEPRIORITIZED (off the board, count as \"settled\")\n// active — IN_PROGRESS, BLOCKED\n// pending — PENDING (default)\n//\n// Rules (only applied to ROADMAP nodes):\n// • all children complete → parent DONE\n// • any child active → parent IN_PROGRESS\n// • else → parent PENDING\n//\n// Sticky parent states (CANCELLED, DEPRIORITIZED) are user decisions and win —\n// nothing children do will override them. Unmark them to re-enable derivation.\n\nconst COMPLETE_STATUSES = new Set([\"DONE\", \"CANCELLED\", \"DEPRIORITIZED\"]);\nconst ACTIVE_STATUSES = new Set([\"IN_PROGRESS\", \"BLOCKED\"]);\nconst STICKY_PARENT_STATUSES = new Set([\"CANCELLED\", \"DEPRIORITIZED\"]);\n\nfunction deriveParentStatus(childStatuses: string[]): string {\n if (!childStatuses.length) return \"PENDING\";\n if (childStatuses.every((s) => COMPLETE_STATUSES.has(s))) return \"DONE\";\n if (childStatuses.some((s) => ACTIVE_STATUSES.has(s))) return \"IN_PROGRESS\";\n return \"PENDING\";\n}\n\n/**\n * Recompute the parent of `nodeId` (and onwards up) from its children's\n * statuses. No-op for top-level nodes, ARCHITECTURE-view nodes, or when the\n * parent has a sticky user-set status. Safe to call after any roadmap-node\n * status write; idempotent.\n */\nexport async function propagateStatusUp(nodeId: string): Promise<void> {\n const self = await db.query.node.findFirst({\n where: (t, { eq }) => eq(t.id, nodeId),\n columns: { parentId: true, view: true },\n });\n if (!self?.parentId || self.view !== \"ROADMAP\") return;\n\n const parent = await db.query.node.findFirst({\n where: (t, { eq }) => eq(t.id, self.parentId!),\n columns: { id: true, status: true, view: true },\n });\n if (!parent || parent.view !== \"ROADMAP\") return;\n if (STICKY_PARENT_STATUSES.has(parent.status)) return;\n\n const siblings = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.parentId, parent.id),\n columns: { status: true },\n });\n const derived = deriveParentStatus(siblings.map((s) => s.status));\n if (parent.status === derived) return;\n\n await db.update(node).set({ status: derived }).where(eq(node.id, parent.id));\n await propagateStatusUp(parent.id);\n}\n\n/**\n * A session starts working on a feature. Resolution order:\n * 1. explicit `id` (from beacon_map) → flag it (100% reliable)\n * 2. confident, unambiguous fuzzy match → flag it\n * 3. plausible-but-ambiguous matches → return candidates to disambiguate\n * 4. no match → create it under `front` (creating that front if needed)\n */\n// Lay the committed roadmap board out as an ORGANIC 2D graph (d3-force): independent features\n// spread across the width, dependency-linked features pull into tight clusters with short edges.\n// Called on every /map load and after a feature is created, so an existing board self-heals.\n//\n// Re-runs ONLY when the graph STRUCTURE changes (a feature/edge added or removed), tracked by a\n// per-workspace signature file. A plain refresh, a manual card drag, or a Group-by arrangement\n// leaves the signature untouched and is therefore preserved — the layout never fights the user.\n// DRAFT nodes are excluded (a plan under review owns its own layout in lib/feature-design). Does\n// NOT bump the sync version.\nexport async function healRoadmapLayout(): Promise<void> {\n const all = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.view, \"ROADMAP\"),\n columns: { id: true, parentId: true, source: true, x: true, y: true },\n });\n const nodes = all.filter((n) => n.source !== \"DRAFT\");\n if (nodes.length < 2) return;\n const ids = nodes.map((n) => n.id);\n const edges = await db.query.edge.findMany({\n where: (t, { and, eq }) =>\n and(eq(t.kind, \"DEPENDS\"), inArray(t.fromId, ids), inArray(t.toId, ids)),\n columns: { fromId: true, toId: true },\n });\n\n const sig = roadmapStructureSignature(ids, edges);\n if (readRoadmapLayoutSig() === sig) return; // structure unchanged → keep the current arrangement\n\n const pos = forceLayoutRoadmap(\n nodes.map((n) => ({ id: n.id, parentId: n.parentId })),\n edges,\n );\n const updates: Promise<unknown>[] = [];\n for (const n of nodes) {\n const p = pos.get(n.id);\n if (!p) continue;\n if (Math.round(p.x) === Math.round(n.x) && Math.round(p.y) === Math.round(n.y)) continue;\n updates.push(db.update(node).set({ x: p.x, y: p.y }).where(eq(node.id, n.id)));\n }\n await Promise.all(updates);\n writeRoadmapLayoutSig(sig);\n}\n\nexport async function startFeature(input: {\n title: string;\n id?: string | null;\n front?: string | null;\n detail?: string | null;\n cluster?: string | null;\n}): Promise<StartResult> {\n const title = input.title.trim();\n if (!title) throw new Error(\"title required\");\n\n const nodes = await db.query.node.findMany({ where: (t, { eq }) => eq(t.view, \"ROADMAP\") });\n\n if (input.id) {\n const n = nodes.find((x) => x.id === input.id);\n if (n) {\n await setStatus(n.id, \"IN_PROGRESS\");\n await setCurrent(n.id);\n return { action: \"flagged\", id: n.id, title: n.title, via: \"id\" };\n }\n }\n\n const { best, candidates } = matchFeature(\n title,\n nodes.map((n) => ({ id: n.id, title: n.title })),\n );\n if (best) {\n await setStatus(best.id, \"IN_PROGRESS\");\n await setCurrent(best.id);\n return { action: \"flagged\", id: best.id, title: best.title, via: \"match\", score: best.score };\n }\n if (candidates.length) return { action: \"ambiguous\", candidates };\n\n // No match → create. Guard the loose path the same way propose_plan is guarded: a `front`\n // must reference a REAL existing parent feature (not a domain tag — that footgun is how a bogus\n // \"CRAWL\" front got created), and a brand-new top-level feature must carry a category. A task\n // nested under a front inherits the front's category. Shares lib/feature-rules with the plan path.\n const fronts = nodes.filter((n) => !n.parentId);\n const frontInput = input.front?.trim() || \"\";\n\n const frontErr = frontInput\n ? validateFront(frontInput, fronts.map((n) => ({ id: n.id, title: n.title })))\n : null;\n if (frontErr) return { action: \"rejected\", message: frontErr };\n\n let parentId: string | null = null;\n let frontTitle: string | null = null;\n let inheritedCluster: string | null = null;\n if (frontInput) {\n const f = matchFeature(frontInput, fronts.map((n) => ({ id: n.id, title: n.title }))).best!;\n parentId = f.id;\n frontTitle = f.title;\n inheritedCluster = nodes.find((n) => n.id === f.id)?.cluster ?? null;\n }\n\n const cluster = (input.cluster?.trim() || inheritedCluster) ?? null;\n const createErr = validateFeatureCreation({\n title,\n category: cluster,\n existing: nodes.map((n) => ({ id: n.id, title: n.title, cluster: n.cluster, status: n.status })),\n });\n if (createErr) return { action: \"rejected\", message: createErr };\n\n const siblings = parentId\n ? nodes.filter((n) => n.parentId === parentId).length\n : fronts.length;\n const pos = placeWithoutOverlap(\n nodes.map((n) => ({ x: n.x, y: n.y })),\n {\n x: parentId ? (fronts.find((f) => f.id === parentId)?.x ?? 0) : siblings * 300,\n y: parentId ? 160 + siblings * 110 : 0,\n },\n );\n const [task] = await db\n .insert(node)\n .values({\n view: \"ROADMAP\",\n title,\n plain: input.detail ?? null,\n cluster,\n status: \"IN_PROGRESS\",\n source: \"SESSION\",\n parentId,\n x: pos.x,\n y: pos.y,\n })\n .returning();\n await reembedNode(task.id);\n await propagateStatusUp(task.id);\n // A new feature changes the graph structure → re-tidy the board organically so the new card is\n // placed sensibly instead of in a blind row.\n await healRoadmapLayout();\n await bumpVersion();\n await setCurrent(task.id);\n return { action: \"created\", id: task.id, title, front: frontTitle };\n}\n\nexport async function finishFeature(input: {\n title?: string;\n id?: string;\n}): Promise<{ ok: boolean; id?: string; candidates?: Scored[] }> {\n const nodes = await db.query.node.findMany({ where: (t, { eq }) => eq(t.view, \"ROADMAP\") });\n\n if (input.id) {\n const n = nodes.find((x) => x.id === input.id);\n if (n) {\n await setStatus(n.id, \"DONE\");\n return { ok: true, id: n.id };\n }\n }\n if (!input.title) return { ok: false };\n\n const { best, candidates } = matchFeature(\n input.title,\n nodes.map((n) => ({ id: n.id, title: n.title })),\n );\n if (best) {\n await setStatus(best.id, \"DONE\");\n return { ok: true, id: best.id };\n }\n return { ok: false, candidates: candidates.length ? candidates : undefined };\n}\n\n// Make a reported path repo-relative (paths come from a session's cwd).\nfunction normalizePath(p: string): string {\n let s = p.trim();\n const root = repoRoot();\n if (s.startsWith(root)) s = s.slice(root.length);\n return s.replace(/^[./]+/, \"\").trim();\n}\n\n// ── Architecture components (curated) ───────────────────────────────────────\n// Deliberate upsert of REAL architectural components — the curated replacement for the old\n// per-file auto-derivation. Upserts by title (case-insensitive): existing nodes keep their\n// position; new ones land in their domain's column, stacked below any existing siblings.\n// New nodes are source=\"MANUAL\" so a future /beacon-init (which only replaces source=\"INIT\")\n// never clobbers them. This NEVER creates one-node-per-file — the caller passes real subsystems.\n\nconst ARCH_STATUSES = new Set([\"KEEP\", \"REBUILD\", \"REPLACE\", \"DROP\"]);\nconst archComponentSchema = z.object({\n title: z.string().trim().min(1),\n domain: z.string().trim().min(1),\n role: z.string().nullish(),\n plain: z.string().nullish(),\n status: z.string().nullish(),\n files: z.array(z.string()).optional(),\n depends: z.array(z.string()).optional(),\n});\nexport type ArchComponentInput = z.input<typeof archComponentSchema>;\n\nexport async function upsertArchitectureComponents(input: unknown[]): Promise<number> {\n const parsed = z.array(archComponentSchema).parse(input);\n // De-dup by title (last wins) so a repeated title in one call updates rather than duplicates.\n const byKey = new Map<string, z.infer<typeof archComponentSchema>>();\n for (const c of parsed) byKey.set(c.title.toLowerCase(), c);\n const components = Array.from(byKey.values());\n if (!components.length) return 0;\n\n const existing = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.view, \"ARCHITECTURE\"),\n });\n const nodeByTitle = new Map(existing.map((n) => [n.title.toLowerCase(), n]));\n const idByTitle = new Map<string, string>(existing.map((n) => [n.title.toLowerCase(), n.id]));\n\n // Column x + next free y per domain, seeded from existing nodes so new components stack below\n // their domain siblings rather than overlapping them. New domains get a fresh column.\n const xByDomain = new Map<string, number>();\n const maxYByDomain = new Map<string, number>();\n for (const n of existing) {\n const d = (n.cluster ?? \"\").trim() || \"—\";\n if (!xByDomain.has(d)) xByDomain.set(d, n.x);\n maxYByDomain.set(d, Math.max(maxYByDomain.get(d) ?? -150, n.y));\n }\n let nextCol = existing.length ? Math.max(...existing.map((n) => n.x)) + 320 : 0;\n\n for (const c of components) {\n const key = c.title.toLowerCase();\n const status = c.status && ARCH_STATUSES.has(c.status) ? c.status : \"KEEP\";\n const prior = nodeByTitle.get(key);\n if (prior) {\n await db\n .update(node)\n .set({ cluster: c.domain, role: c.role ?? prior.role, plain: c.plain ?? prior.plain, status })\n .where(eq(node.id, prior.id));\n if (c.files?.length) {\n await db.delete(nodeFile).where(eq(nodeFile.nodeId, prior.id));\n await db\n .insert(nodeFile)\n .values(Array.from(new Set(c.files)).map((path) => ({ nodeId: prior.id, path })));\n }\n await reembedNode(prior.id);\n } else {\n const d = c.domain.trim() || \"—\";\n let x = xByDomain.get(d);\n if (x === undefined) {\n x = nextCol;\n nextCol += 320;\n xByDomain.set(d, x);\n }\n const y = (maxYByDomain.get(d) ?? -150) + 150;\n maxYByDomain.set(d, y);\n const [created] = await db\n .insert(node)\n .values({\n view: \"ARCHITECTURE\",\n source: \"MANUAL\",\n cluster: c.domain,\n title: c.title,\n role: c.role ?? null,\n plain: c.plain ?? null,\n status,\n x,\n y,\n })\n .returning();\n if (c.files?.length) {\n await db\n .insert(nodeFile)\n .values(Array.from(new Set(c.files)).map((path) => ({ nodeId: created.id, path })));\n }\n idByTitle.set(key, created.id);\n await reembedNode(created.id);\n }\n }\n\n // DEPENDS edges (mirror lib/init.ts persistArchitecture), de-duplicated.\n for (const c of components) {\n const fromId = idByTitle.get(c.title.toLowerCase());\n if (!fromId) continue;\n for (const dep of c.depends ?? []) {\n const toId = idByTitle.get(dep.trim().toLowerCase());\n if (!toId || toId === fromId) continue;\n const dup = await db.query.edge.findFirst({\n where: (t, { and, eq }) =>\n and(eq(t.fromId, fromId), eq(t.toId, toId), eq(t.kind, \"DEPENDS\")),\n });\n if (!dup)\n await db\n .insert(edge)\n .values({ fromId, toId, kind: \"DEPENDS\" })\n .catch(() => {});\n }\n }\n\n return components.length;\n}\n\n/** Mark a feature as shipped: replace its description with what the system actually does\n * (markdown), record the files it spans (kept on the FEATURE for the context bundle), and flip\n * its status to DONE in one call. Optionally upserts REAL architecture components when the\n * feature changed a subsystem. Subsumes the older touchFiles + finishFeature flow so the\n * terminal session only needs ONE tool call at the end. */\nexport async function describeFeature(input: {\n id?: string;\n title?: string;\n description: string;\n files?: string[];\n architecture?: unknown[];\n}): Promise<{ ok: boolean; id?: string; candidates?: Scored[] }> {\n const nodes = await db.query.node.findMany({ where: (t, { eq }) => eq(t.view, \"ROADMAP\") });\n let target = input.id ? nodes.find((n) => n.id === input.id) : undefined;\n if (!target && input.title) {\n const { best, candidates } = matchFeature(\n input.title,\n nodes.map((n) => ({ id: n.id, title: n.title })),\n );\n if (best) target = nodes.find((n) => n.id === best.id);\n else if (candidates.length) return { ok: false, candidates };\n }\n if (!target) return { ok: false };\n await db\n .update(node)\n .set({ plain: input.description, status: \"DONE\" })\n .where(eq(node.id, target.id));\n await reembedNode(target.id);\n await propagateStatusUp(target.id);\n\n // Record files (idempotent — only adds new ones).\n if (input.files?.length) {\n const paths = Array.from(new Set(input.files.map(normalizePath).filter(Boolean)));\n for (const path of paths) {\n await db\n .insert(nodeFile)\n .values({ nodeId: target.id, path })\n .onConflictDoNothing({ target: [nodeFile.nodeId, nodeFile.path] });\n }\n }\n\n // The feature is done — drop the session's \"current feature\" pointer if it\n // pointed here, so edits stop auto-attaching and the loop closes cleanly (and a\n // future Stop-style nudge couldn't fire on already-registered work).\n await db\n .update(appSetting)\n .set({ currentFeatureId: null })\n .where(eq(appSetting.currentFeatureId, target.id));\n\n // Deliberate architecture updates (only when the feature changed a real subsystem). This is\n // the curated replacement for the old per-file auto-derivation — never one-node-per-file.\n if (input.architecture?.length) {\n await upsertArchitectureComponents(input.architecture);\n }\n\n await bumpVersion();\n return { ok: true, id: target.id };\n}\n\n/** Record the files a feature spans (reported by a session as it works). */\nexport async function touchFiles(input: {\n id?: string;\n title?: string;\n files: string[];\n}): Promise<{ ok: boolean; id?: string; count?: number; candidates?: Scored[] }> {\n const files = Array.from(new Set((input.files ?? []).map(normalizePath).filter(Boolean)));\n const nodes = await db.query.node.findMany({ where: (t, { eq }) => eq(t.view, \"ROADMAP\") });\n\n let target = input.id ? nodes.find((n) => n.id === input.id) : undefined;\n if (!target && input.title) {\n const { best, candidates } = matchFeature(\n input.title,\n nodes.map((n) => ({ id: n.id, title: n.title })),\n );\n if (best) target = nodes.find((n) => n.id === best.id);\n else if (candidates.length) return { ok: false, candidates };\n }\n if (!target) return { ok: false };\n\n for (const path of files) {\n await db\n .insert(nodeFile)\n .values({ nodeId: target.id, path })\n .onConflictDoNothing({ target: [nodeFile.nodeId, nodeFile.path] });\n }\n await bumpVersion();\n const fileCount = (\n await db.select({ n: count() }).from(nodeFile).where(eq(nodeFile.nodeId, target.id))\n )[0].n;\n return { ok: true, id: target.id, count: fileCount };\n}\n\n// ── Bulk sub-task creation under a parent ───────────────────────────────────\n// Lets a terminal session add N sub-tasks under a feature in one call (used by the\n// `beacon_add_subtasks` MCP tool). Parent is resolved by id (preferred) or by\n// fuzzy-title match. Children inherit the parent's view + cluster; positioning lands\n// them in a row directly below the parent so they don't pile on top of existing nodes.\n\nexport interface AddSubtaskItem {\n title: string;\n plain?: string | null;\n}\n\nexport type AddSubtasksResult =\n | {\n ok: true;\n parent: { id: string; title: string };\n created: Array<{ id: string; title: string }>;\n }\n | { ok: false; reason: \"no_items\" }\n | { ok: false; reason: \"parent_not_found\" }\n | { ok: false; reason: \"ambiguous\"; candidates: Scored[] }\n | { ok: false; reason: \"duplicate\"; message: string };\n\nexport async function addSubtasksUnder(input: {\n parentId?: string | null;\n parentTitle?: string | null;\n items: AddSubtaskItem[];\n}): Promise<AddSubtasksResult> {\n const items = input.items.filter((i) => i.title.trim());\n if (!items.length) return { ok: false, reason: \"no_items\" };\n\n type ParentNode = Awaited<ReturnType<typeof db.query.node.findFirst>>;\n let parent: ParentNode = undefined;\n if (input.parentId) {\n parent = await db.query.node.findFirst({ where: (t, { eq }) => eq(t.id, input.parentId!) });\n } else if (input.parentTitle && input.parentTitle.trim()) {\n const candidates = await db.query.node.findMany({\n where: (t, { isNull }) => isNull(t.parentId),\n columns: { id: true, title: true, cluster: true, status: true },\n });\n const { best, candidates: alt } = matchFeature(\n input.parentTitle.trim(),\n candidates.map((c) => ({\n id: c.id,\n title: c.title,\n cluster: c.cluster,\n status: c.status,\n })),\n );\n if (best) parent = await db.query.node.findFirst({ where: (t, { eq }) => eq(t.id, best.id) });\n else if (alt.length) return { ok: false, reason: \"ambiguous\", candidates: alt };\n }\n if (!parent) return { ok: false, reason: \"parent_not_found\" };\n const parentNode = parent;\n\n // Don't recreate a sub-task that already lives under this parent — hard-block so the agent\n // doesn't pile up near-identical children when it re-runs.\n const siblings = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.parentId, parentNode.id),\n columns: { id: true, title: true },\n });\n const dups = items.filter((it) => matchFeature(it.title.trim(), siblings).best);\n if (dups.length) {\n return {\n ok: false,\n reason: \"duplicate\",\n message:\n `⛔ These sub-tasks already exist under \"${parentNode.title}\": ` +\n `${dups.map((d) => `\"${d.title.trim()}\"`).join(\", \")}. ` +\n \"Drop the duplicates — only add genuinely new sub-tasks.\",\n };\n }\n\n // Obstacles = every node already on this view; children land in a row below the parent but get\n // nudged clear of anything already there (and of earlier children in this same batch).\n const obstacles = (\n await db.query.node.findMany({\n where: (t, { eq }) => eq(t.view, parentNode.view),\n columns: { x: true, y: true },\n })\n ).map((n) => ({ x: n.x, y: n.y }));\n const created: Array<{ id: string; title: string }> = [];\n for (let i = 0; i < items.length; i++) {\n const it = items[i];\n const pos = placeWithoutOverlap(obstacles, { x: parentNode.x + i * 240, y: parentNode.y + 200 });\n obstacles.push(pos);\n const n = await createNode({\n view: parentNode.view as \"ROADMAP\" | \"ARCHITECTURE\",\n title: it.title.trim(),\n plain: it.plain ?? null,\n cluster: parentNode.cluster ?? null,\n parentId: parentNode.id,\n x: pos.x,\n y: pos.y,\n });\n created.push({ id: n.id, title: n.title });\n }\n\n // A fresh PENDING child under a previously DONE parent should bubble the parent\n // back to PENDING. Walking up from any one child reaches every ancestor.\n if (created.length) await propagateStatusUp(created[0].id);\n await bumpVersion();\n return { ok: true, parent: { id: parentNode.id, title: parentNode.title }, created };\n}\n","import { z } from \"zod\";\n\nexport const VIEW = z.enum([\"ROADMAP\", \"ARCHITECTURE\"]);\n\nexport const NODE_STATUS = z.enum([\n // roadmap\n \"PENDING\",\n \"IN_PROGRESS\",\n \"DONE\",\n \"BLOCKED\",\n \"CANCELLED\",\n \"DEPRIORITIZED\",\n // architecture disposition\n \"KEEP\",\n \"REBUILD\",\n \"REPLACE\",\n \"DROP\",\n]);\n\nexport const EDGE_KIND = z.enum([\"DEPENDS\", \"CONTAINS\", \"RELATES\", \"REPLACES\"]);\n\nexport const createNodeSchema = z.object({\n view: VIEW,\n title: z.string().trim().min(1).max(200),\n cluster: z.string().trim().max(64).nullish(),\n role: z.string().trim().max(500).nullish(),\n plain: z.string().trim().max(2000).nullish(),\n parentId: z.string().nullish(),\n status: NODE_STATUS.optional(),\n priority: z.number().int().min(0).max(3).optional(),\n x: z.number().optional(),\n y: z.number().optional(),\n sourceRef: z.string().trim().max(300).nullish(),\n});\nexport type CreateNodeInput = z.input<typeof createNodeSchema>;\n\nexport const updateNodeSchema = z.object({\n title: z.string().trim().min(1).max(200).optional(),\n role: z.string().trim().max(500).nullish(),\n plain: z.string().trim().max(2000).nullish(),\n cluster: z.string().trim().max(64).nullish(),\n status: NODE_STATUS.optional(),\n priority: z.number().int().min(0).max(3).optional(),\n sourceRef: z.string().trim().max(300).nullish(),\n});\nexport type UpdateNodeInput = z.input<typeof updateNodeSchema>;\n\nexport const positionSchema = z.object({\n x: z.number(),\n y: z.number(),\n});\n\nexport const createEdgeSchema = z.object({\n fromId: z.string().min(1),\n toId: z.string().min(1),\n kind: z.enum([\"DEPENDS\", \"RELATES\", \"REPLACES\"]).optional(),\n label: z.string().trim().max(80).nullish(),\n // Which handle on each card the user dragged from / to (e.g. \"sr\", \"tl\").\n sourceHandle: z.string().trim().max(16).nullish(),\n targetHandle: z.string().trim().max(16).nullish(),\n});\nexport type CreateEdgeInput = z.input<typeof createEdgeSchema>;\n","import { and, eq } from \"drizzle-orm\";\nimport { db } from \"@/lib/db-drizzle\";\nimport { node, edge, dbTable, endpoint } from \"@/lib/drizzle/schema\";\nimport { reembedNode } from \"@/lib/embeddings\";\nimport { propagateStatusUp } from \"@/lib/map-ops\";\nimport {\n NODE_STATUS,\n createEdgeSchema,\n createNodeSchema,\n positionSchema,\n updateNodeSchema,\n type CreateEdgeInput,\n type CreateNodeInput,\n type UpdateNodeInput,\n} from \"@/lib/schemas\";\n\n// Pure data mutations (validation + db). Kept free of Next imports so they can be\n// unit-tested directly; the `app/actions/*` wrappers add cache revalidation.\n\n// Semantic-search fields — when any of these change, the row's embedding needs\n// to refresh. Status / position / priority don't affect the vector, so frequent\n// drag-and-status mutations skip the (~50ms) embed.\nconst SEMANTIC_FIELDS = new Set([\"title\", \"role\", \"plain\", \"cluster\"]);\n\nexport async function createNode(input: CreateNodeInput) {\n const data = createNodeSchema.parse(input);\n const defaultStatus = data.view === \"ARCHITECTURE\" ? \"REBUILD\" : \"PENDING\";\n const [created] = await db\n .insert(node)\n .values({\n view: data.view,\n title: data.title,\n cluster: data.cluster ?? null,\n role: data.role ?? null,\n plain: data.plain ?? null,\n parentId: data.parentId ?? null,\n status: data.status ?? defaultStatus,\n priority: data.priority ?? 2,\n x: data.x ?? 0,\n y: data.y ?? 0,\n sourceRef: data.sourceRef ?? null,\n })\n .returning();\n await reembedNode(created.id);\n return created;\n}\n\n// A roadmap dependency edge (or RELATES/REPLACES) created by dragging between two node\n// handles. Idempotent on the unique [fromId,toId,kind] — duplicate drags return the existing\n// edge instead of erroring, since drag gestures are easy to repeat by accident.\nexport async function createEdge(input: CreateEdgeInput) {\n const data = createEdgeSchema.parse(input);\n if (data.fromId === data.toId) throw new Error(\"Self-edge not allowed\");\n const kind = data.kind ?? \"DEPENDS\";\n const existing = await db.query.edge.findFirst({\n where: (e, { and: a, eq: eqf }) =>\n a(eqf(e.fromId, data.fromId), eqf(e.toId, data.toId), eqf(e.kind, kind)),\n });\n if (existing) return existing;\n const [created] = await db\n .insert(edge)\n .values({\n fromId: data.fromId,\n toId: data.toId,\n kind,\n label: data.label ?? null,\n sourceHandle: data.sourceHandle ?? null,\n targetHandle: data.targetHandle ?? null,\n })\n .returning();\n return created;\n}\n\nexport async function updateNode(id: string, input: UpdateNodeInput) {\n const data = updateNodeSchema.parse(input);\n const [updated] = await db.update(node).set(data).where(eq(node.id, id)).returning();\n // Re-embed only when a semantic field actually changed — drag/status updates\n // happen constantly and don't change the vector.\n const semanticChanged = Object.keys(data).some((k) => SEMANTIC_FIELDS.has(k));\n if (semanticChanged) await reembedNode(id);\n // Status changes need to bubble up to parent.\n if (data.status !== undefined) await propagateStatusUp(id);\n return updated;\n}\n\nexport async function setNodeStatus(id: string, status: string) {\n const parsed = NODE_STATUS.parse(status);\n const [updated] = await db.update(node).set({ status: parsed }).where(eq(node.id, id)).returning();\n await propagateStatusUp(id);\n return updated;\n}\n\n/** Soft \"park\": mark deprioritized and drop to the lowest priority. Reversible. */\nexport async function deprioritizeNode(id: string) {\n const [updated] = await db\n .update(node)\n .set({ status: \"DEPRIORITIZED\", priority: 3 })\n .where(eq(node.id, id))\n .returning();\n await propagateStatusUp(id);\n return updated;\n}\n\n/** Soft cancel: keep the node for history, rendered struck-through. Not a delete. */\nexport async function cancelNode(id: string) {\n const [updated] = await db\n .update(node)\n .set({ status: \"CANCELLED\" })\n .where(eq(node.id, id))\n .returning();\n await propagateStatusUp(id);\n return updated;\n}\n\nexport async function deleteNode(id: string) {\n const [deleted] = await db.delete(node).where(eq(node.id, id)).returning();\n return deleted;\n}\n\nexport async function updateNodePosition(id: string, x: number, y: number) {\n const pos = positionSchema.parse({ x, y });\n const [updated] = await db.update(node).set(pos).where(eq(node.id, id)).returning();\n return updated;\n}\n\n// Persist many node positions in one round-trip — used by the roadmap \"Arrange\" action,\n// which repositions every feature at once. Mirrors the code-graph batch-position route.\nexport async function updateNodePositions(rows: { id: string; x: number; y: number }[]) {\n await Promise.all(\n rows.map((r) => {\n const pos = positionSchema.parse({ x: r.x, y: r.y });\n return db.update(node).set(pos).where(eq(node.id, r.id));\n }),\n );\n return rows.length;\n}\n\n// ── Database-design map positions ───────────────────────────────────────────\n\nexport async function updateDbTablePosition(id: string, x: number, y: number) {\n const pos = positionSchema.parse({ x, y });\n const [updated] = await db.update(dbTable).set(pos).where(eq(dbTable.id, id)).returning();\n return updated;\n}\n\nexport async function updateEndpointPosition(id: string, x: number, y: number) {\n const pos = positionSchema.parse({ x, y });\n const [updated] = await db.update(endpoint).set(pos).where(eq(endpoint.id, id)).returning();\n return updated;\n}\n"],"names":["pipelinePromise","getEmbedder","pipeline","catch","e","embedText","text","trimmed","trim","embedder","out","pooling","normalize","Array","from","data","console","error","Error","message","nodeEmbeddingInput","node","title","role","plain","cluster","filter","Boolean","join","cosineSimilarity","a","b","length","dot","normA","normB","i","Math","sqrt","encodeVector","v","JSON","stringify","decodeVector","raw","parsed","parse","isArray","some","x","Number","isFinite","reembedNode","id","db","eq","row","query","findFirst","where","t","eqf","columns","vec","update","set","embedding","rankByQuery","candidates","queryVec","scored","item","push","score","sort","y","nodes","strength","force","n","sx","sy","initialize","_","arguments","LAYOUT_ALGO_VERSION","roadmapStructureSignature","nodeIds","edges","ns","es","map","fromId","toId","sigPath","readRoadmapLayoutSig","sig","writeRoadmapLayoutSig","getAppSettings","prisma","insert","values","onConflictDoUpdate","target","returning","setAppSettings","setCurrent","currentFeatureId","listMap","findMany","view","orderBy","asc","createdAt","fronts","parentId","f","status","tasks","workingOn","setStatus","propagateStatusUp","COMPLETE_STATUSES","Set","ACTIVE_STATUSES","STICKY_PARENT_STATUSES","deriveParentStatus","childStatuses","every","s","has","nodeId","self","parent","siblings","derived","healRoadmapLayout","all","source","ids","edge","and","kind","pos","updates","p","get","round","Promise","startFeature","input","find","action","via","best","frontInput","front","frontErr","frontTitle","inheritedCluster","createErr","category","existing","task","detail","finishFeature","ok","undefined","normalizePath","root","startsWith","slice","replace","ARCH_STATUSES","archComponentSchema","object","string","min","domain","nullish","files","array","optional","depends","upsertArchitectureComponents","byKey","Map","c","toLowerCase","components","nodeByTitle","idByTitle","xByDomain","maxYByDomain","d","max","nextCol","key","prior","delete","path","created","dep","dup","describeFeature","description","paths","onConflictDoNothing","architecture","touchFiles","fileCount","select","count","addSubtasksUnder","items","reason","parentTitle","isNull","alt","parentNode","dups","it","obstacles","VIEW","enum","NODE_STATUS","EDGE_KIND","createNodeSchema","priority","number","int","sourceRef","updateNodeSchema","positionSchema","createEdgeSchema","label","sourceHandle","targetHandle","SEMANTIC_FIELDS","createNode","defaultStatus","createEdge","updateNode","updated","semanticChanged","Object","keys","k","setNodeStatus","deprioritizeNode","cancelNode","deleteNode","deleted","updateNodePosition","updateNodePositions","rows","r","updateDbTablePosition","updateEndpointPosition"],"mappings":"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","ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[72009,a=>a.a(async(b,c)=>{try{var d=a.i(80384),e=b([d]);[d]=e.then?(await e)():e,a.s([]),c()}catch(a){c(a)}},!1),66879,a=>a.a(async(b,c)=>{try{var d=a.i(72009),e=a.i(80384);a.i(28721);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s(["db",()=>e.db]),c()}catch(a){c(a)}},!1)];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=lib_db_ts_0bo045t._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../lib/db.ts"],"sourcesContent":["// Beacon's data client is now Drizzle over Bun's native SQLite (see lib/db-drizzle.ts). This module\n// stays as the stable import path — `import { db } from \"@/lib/db\"` keeps working everywhere — by\n// re-exporting the Drizzle client and its per-workspace helpers. The old Prisma `Db` type name is\n// aliased to the Drizzle `DB` for back-compat.\nexport { db, defaultDb, getDb, invalidateDb, runWithWorkspace, type DB } from \"@/lib/db-drizzle\";\nexport type { DB as Db } from \"@/lib/db-drizzle\";\n"],"names":[],"mappings":"8CAIA,IAAA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[17781,a=>{"use strict";let b;var c,d=a.i(85880),e=a.i(49701),f=a.i(59547),g=a.i(3413),h=a.i(33625),i=a.i(31333),j=a.i(38538);let k=BigInt(0x100000000-1),l=BigInt(32);function m(a,b=""){if("number"!=typeof a){let c=b&&`"${b}" `;throw TypeError(`${c}expected number, got ${typeof a}`)}if(!Number.isSafeInteger(a)||a<0){let c=b&&`"${b}" `;throw RangeError(`${c}expected integer >= 0, got ${a}`)}}function n(a,b,c=""){let d=a instanceof Uint8Array||ArrayBuffer.isView(a)&&"Uint8Array"===a.constructor.name&&"BYTES_PER_ELEMENT"in a&&1===a.BYTES_PER_ELEMENT,e=a?.length,f=void 0!==b;if(!d||f&&e!==b){let g=(c&&`"${c}" `)+"expected Uint8Array"+(f?` of length ${b}`:"")+", got "+(d?`length=${e}`:`type=${typeof a}`);if(!d)throw TypeError(g);throw RangeError(g)}return a}function o(a,b=!0){if(a.destroyed)throw Error("Hash instance has been destroyed");if(b&&a.finished)throw Error("Hash#digest() has already been called")}function p(...a){for(let b=0;b<a.length;b++)a[b].fill(0)}let q=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0]?a=>a:function(a){for(let c=0;c<a.length;c++){var b;a[c]=(b=a[c])<<24&0xff000000|b<<8&0xff0000|b>>>8&65280|b>>>24&255}return a},r=BigInt(0),s=BigInt(1),t=BigInt(2),u=BigInt(7),v=BigInt(256),w=BigInt(113),x=[],y=[],z=[];for(let a=0,b=s,c=1,d=0;a<24;a++){[c,d]=[d,(2*c+3*d)%5],x.push(2*(5*d+c)),y.push((a+1)*(a+2)/2%64);let e=r;for(let a=0;a<7;a++)(b=(b<<s^(b>>u)*w)%v)&t&&(e^=s<<(s<<BigInt(a))-s);z.push(e)}let A=function(a,b=!1){let c=a.length,d=new Uint32Array(c),e=new Uint32Array(c);for(let f=0;f<c;f++){let{h:c,l:g}=function(a,b=!1){return b?{h:Number(a&k),l:Number(a>>l&k)}:{h:0|Number(a>>l&k),l:0|Number(a&k)}}(a[f],b);[d[f],e[f]]=[c,g]}return[d,e]}(z,!0),B=A[0],C=A[1],D=(a,b,c)=>c>32?b<<c-32|a>>>64-c:a<<c|b>>>32-c,E=(a,b,c)=>c>32?a<<c-32|b>>>64-c:b<<c|a>>>32-c;class F{state;pos=0;posOut=0;finished=!1;state32;destroyed=!1;blockLen;suffix;outputLen;canXOF;enableXOF=!1;rounds;constructor(a,b,c,d=!1,e=24){if(this.blockLen=a,this.suffix=b,this.outputLen=c,this.enableXOF=d,this.canXOF=d,this.rounds=e,m(c,"outputLen"),!(0<a&&a<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=function(a){return new Uint32Array(a.buffer,a.byteOffset,Math.floor(a.byteLength/4))}(this.state)}clone(){return this._cloneInto()}keccak(){q(this.state32),function(a,b=24){if(m(b,"rounds"),b<1||b>24)throw Error('"rounds" expected integer 1..24');let c=new Uint32Array(10);for(let d=24-b;d<24;d++){for(let b=0;b<10;b++)c[b]=a[b]^a[b+10]^a[b+20]^a[b+30]^a[b+40];for(let b=0;b<10;b+=2){let d=(b+8)%10,e=(b+2)%10,f=c[e],g=c[e+1],h=D(f,g,1)^c[d],i=E(f,g,1)^c[d+1];for(let c=0;c<50;c+=10)a[b+c]^=h,a[b+c+1]^=i}let b=a[2],e=a[3];for(let c=0;c<24;c++){let d=y[c],f=D(b,e,d),g=E(b,e,d),h=x[c];b=a[h],e=a[h+1],a[h]=f,a[h+1]=g}for(let b=0;b<50;b+=10){let c=a[b],d=a[b+1],e=a[b+2],f=a[b+3];a[b]^=~a[b+2]&a[b+4],a[b+1]^=~a[b+3]&a[b+5],a[b+2]^=~a[b+4]&a[b+6],a[b+3]^=~a[b+5]&a[b+7],a[b+4]^=~a[b+6]&a[b+8],a[b+5]^=~a[b+7]&a[b+9],a[b+6]^=~a[b+8]&c,a[b+7]^=~a[b+9]&d,a[b+8]^=~c&e,a[b+9]^=~d&f}a[0]^=B[d],a[1]^=C[d]}p(c)}(this.state32,this.rounds),q(this.state32),this.posOut=0,this.pos=0}update(a){o(this),n(a);let{blockLen:b,state:c}=this,d=a.length;for(let e=0;e<d;){let f=Math.min(b-this.pos,d-e);for(let b=0;b<f;b++)c[this.pos++]^=a[e++];this.pos===b&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:a,suffix:b,pos:c,blockLen:d}=this;a[c]^=b,(128&b)!=0&&c===d-1&&this.keccak(),a[d-1]^=128,this.keccak()}writeInto(a){o(this,!1),n(a),this.finish();let b=this.state,{blockLen:c}=this;for(let d=0,e=a.length;d<e;){this.posOut>=c&&this.keccak();let f=Math.min(c-this.posOut,e-d);a.set(b.subarray(this.posOut,this.posOut+f),d),this.posOut+=f,d+=f}return a}xofInto(a){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(a)}xof(a){return m(a),this.xofInto(new Uint8Array(a))}digestInto(a){n(a,void 0,"digestInto() output");let b=this.outputLen;if(a.length<b)throw RangeError('"digestInto() output" expected to be of length >='+b);if(this.finished)throw Error("digest() was already called");this.writeInto(a.subarray(0,this.outputLen)),this.destroy()}digest(){let a=new Uint8Array(this.outputLen);return this.digestInto(a),a}destroy(){this.destroyed=!0,p(this.state)}_cloneInto(a){let{blockLen:b,suffix:c,outputLen:d,rounds:e,enableXOF:f}=this;return(a||=new F(b,c,d,f,e)).blockLen=b,a.state32.set(this.state32),a.pos=this.pos,a.posOut=this.posOut,a.finished=this.finished,a.rounds=e,a.suffix=c,a.outputLen=d,a.enableXOF=f,a.canXOF=this.canXOF,a.destroyed=this.destroyed,a}}let G=((a,b,c,d={})=>(function(a,b={}){let c=(b,c)=>a(c).update(b).digest(),d=a(void 0);return c.outputLen=d.outputLen,c.blockLen=d.blockLen,c.canXOF=d.canXOF,c.create=b=>a(b),Object.assign(c,b),Object.freeze(c)})(()=>new F(b,a,c),d))(6,72,64,{oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,10])});var H=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,I=Math.ceil,J=Math.floor,K="[BigNumber Error] ",L=K+"Number primitive has more than 15 significant digits: ",M=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13];function N(a){var b=0|a;return a>0||a===b?b:b-1}function O(a){for(var b,c,d=1,e=a.length,f=a[0]+"";d<e;){for(c=14-(b=a[d++]+"").length;c--;b="0"+b);f+=b}for(e=f.length;48===f.charCodeAt(--e););return f.slice(0,e+1||1)}function P(a,b){var c,d,e=a.c,f=b.c,g=a.s,h=b.s,i=a.e,j=b.e;if(!g||!h)return null;if(c=e&&!e[0],d=f&&!f[0],c||d)return c?d?0:-h:g;if(g!=h)return g;if(c=g<0,d=i==j,!e||!f)return d?0:!e^c?1:-1;if(!d)return i>j^c?1:-1;for(g=0,h=(i=e.length)<(j=f.length)?i:j;g<h;g++)if(e[g]!=f[g])return e[g]>f[g]^c?1:-1;return i==j?0:i>j^c?1:-1}function Q(a,b,c,d){if(a<b||a>c||a!==J(a))throw Error(K+(d||"Argument")+("number"==typeof a?a<b||a>c?" out of range: ":" not an integer: ":" not a primitive number: ")+String(a))}function R(a){var b=a.c.length-1;return N(a.e/14)==b&&a.c[b]%2!=0}function S(a,b){return(a.length>1?a.charAt(0)+"."+a.slice(1):a)+(b<0?"e":"e+")+b}function T(a,b,c){var d,e;if(b<0){for(e=c+".";++b;e+=c);a=e+a}else if(d=a.length,++b>d){for(e=c,b-=d;--b;e+=c);a+=e}else b<d&&(a=a.slice(0,b)+"."+a.slice(b));return a}var U=function a(b){var c,d,e,f,g,h,i,j,k,l=z.prototype={constructor:z,toString:null,valueOf:null},m=new z(1),n=20,o=4,p=-7,q=21,r=-1e7,s=1e7,t=!1,u=1,v=0,w={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},x="0123456789abcdefghijklmnopqrstuvwxyz",y=!0;function z(a,b){var c,d,e,f,g,h,i,l,m=this;if(!(m instanceof z))return new z(a,b);if(null==b){if(a&&!0===a._isBigNumber){m.s=a.s,!a.c||a.e>s?m.c=m.e=null:a.e<r?m.c=[m.e=0]:(m.e=a.e,m.c=a.c.slice());return}if((h="number"==typeof a)&&0*a==0){if(m.s=1/a<0?(a=-a,-1):1,a===~~a){for(f=0,g=a;g>=10;g/=10,f++);f>s?m.c=m.e=null:(m.e=f,m.c=[a]);return}l=String(a)}else{if(!H.test(l=String(a)))return k(m,l,h);m.s=45==l.charCodeAt(0)?(l=l.slice(1),-1):1}(f=l.indexOf("."))>-1&&(l=l.replace(".","")),(g=l.search(/e/i))>0?(f<0&&(f=g),f+=+l.slice(g+1),l=l.substring(0,g)):f<0&&(f=l.length)}else{if(Q(b,2,x.length,"Base"),10==b&&y)return D(m=new z(a),n+m.e+1,o);if(l=String(a),h="number"==typeof a){if(0*a!=0)return k(m,l,h,b);if(m.s=1/a<0?(l=l.slice(1),-1):1,z.DEBUG&&l.replace(/^0\.0*|\./,"").length>15)throw Error(L+a)}else m.s=45===l.charCodeAt(0)?(l=l.slice(1),-1):1;for(c=x.slice(0,b),f=g=0,i=l.length;g<i;g++)if(0>c.indexOf(d=l.charAt(g))){if("."==d){if(g>f){f=i;continue}}else if(!e&&(l==l.toUpperCase()&&(l=l.toLowerCase())||l==l.toLowerCase()&&(l=l.toUpperCase()))){e=!0,g=-1,f=0;continue}return k(m,String(a),h,b)}h=!1,(f=(l=j(l,b,10,m.s)).indexOf("."))>-1?l=l.replace(".",""):f=l.length}for(g=0;48===l.charCodeAt(g);g++);for(i=l.length;48===l.charCodeAt(--i););if(l=l.slice(g,++i)){if(i-=g,h&&z.DEBUG&&i>15&&(a>0x1fffffffffffff||a!==J(a)))throw Error(L+m.s*a);if((f=f-g-1)>s)m.c=m.e=null;else if(f<r)m.c=[m.e=0];else{if(m.e=f,m.c=[],g=(f+1)%14,f<0&&(g+=14),g<i){for(g&&m.c.push(+l.slice(0,g)),i-=14;g<i;)m.c.push(+l.slice(g,g+=14));g=14-(l=l.slice(g)).length}else g-=i;for(;g--;l+="0");m.c.push(+l)}}else m.c=[m.e=0]}function A(a,b,c,d){var e,f,g,h,i;if(null==c?c=o:Q(c,0,8),!a.c)return a.toString();if(e=a.c[0],g=a.e,null==b)i=O(a.c),i=1==d||2==d&&(g<=p||g>=q)?S(i,g):T(i,g,"0");else if(f=(a=D(new z(a),b,c)).e,h=(i=O(a.c)).length,1==d||2==d&&(b<=f||f<=p)){for(;h<b;i+="0",h++);i=S(i,f)}else if(b-=g+(2===d&&f>g),i=T(i,f,"0"),f+1>h){if(--b>0)for(i+=".";b--;i+="0");}else if((b+=f-h)>0)for(f+1==h&&(i+=".");b--;i+="0");return a.s<0&&e?"-"+i:i}function B(a,b){for(var c,d,e=1,f=new z(a[0]);e<a.length;e++)(d=new z(a[e])).s&&(c=P(f,d))!==b&&(0!==c||f.s!==b)||(f=d);return f}function C(a,b,c){for(var d=1,e=b.length;!b[--e];b.pop());for(e=b[0];e>=10;e/=10,d++);return(c=d+14*c-1)>s?a.c=a.e=null:c<r?a.c=[a.e=0]:(a.e=c,a.c=b),a}function D(a,b,c,d){var e,f,g,h,i,j,k,l=a.c;if(l){a:{for(e=1,h=l[0];h>=10;h/=10,e++);if((f=b-e)<0)f+=14,g=b,k=J((i=l[j=0])/M[e-g-1]%10);else if((j=I((f+1)/14))>=l.length)if(d){for(;l.length<=j;l.push(0));i=k=0,e=1,f%=14,g=f-14+1}else break a;else{for(e=1,i=h=l[j];h>=10;h/=10,e++);f%=14,k=(g=f-14+e)<0?0:J(i/M[e-g-1]%10)}if(d=d||b<0||null!=l[j+1]||(g<0?i:i%M[e-g-1]),d=c<4?(k||d)&&(0==c||c==(a.s<0?3:2)):k>5||5==k&&(4==c||d||6==c&&(f>0?g>0?i/M[e-g]:0:l[j-1])%10&1||c==(a.s<0?8:7)),b<1||!l[0])return l.length=0,d?(b-=a.e+1,l[0]=M[(14-b%14)%14],a.e=-b||0):l[0]=a.e=0,a;if(0==f?(l.length=j,h=1,j--):(l.length=j+1,h=M[14-f],l[j]=g>0?J(i/M[e-g]%M[g])*h:0),d)for(;;)if(0==j){for(f=1,g=l[0];g>=10;g/=10,f++);for(g=l[0]+=h,h=1;g>=10;g/=10,h++);f!=h&&(a.e++,1e14==l[0]&&(l[0]=1));break}else{if(l[j]+=h,1e14!=l[j])break;l[j--]=0,h=1}for(f=l.length;0===l[--f];l.pop());}a.e>s?a.c=a.e=null:a.e<r&&(a.c=[a.e=0])}return a}function E(a){var b,c=a.e;return null===c?a.toString():(b=O(a.c),b=c<=p||c>=q?S(b,c):T(b,c,"0"),a.s<0?"-"+b:b)}return z.clone=a,z.ROUND_UP=0,z.ROUND_DOWN=1,z.ROUND_CEIL=2,z.ROUND_FLOOR=3,z.ROUND_HALF_UP=4,z.ROUND_HALF_DOWN=5,z.ROUND_HALF_EVEN=6,z.ROUND_HALF_CEIL=7,z.ROUND_HALF_FLOOR=8,z.EUCLID=9,z.config=z.set=function(a){var b,c;if(null!=a)if("object"==typeof a){if(a.hasOwnProperty(b="DECIMAL_PLACES")&&(Q(c=a[b],0,1e9,b),n=c),a.hasOwnProperty(b="ROUNDING_MODE")&&(Q(c=a[b],0,8,b),o=c),a.hasOwnProperty(b="EXPONENTIAL_AT")&&((c=a[b])&&c.pop?(Q(c[0],-1e9,0,b),Q(c[1],0,1e9,b),p=c[0],q=c[1]):(Q(c,-1e9,1e9,b),p=-(q=c<0?-c:c))),a.hasOwnProperty(b="RANGE"))if((c=a[b])&&c.pop)Q(c[0],-1e9,-1,b),Q(c[1],1,1e9,b),r=c[0],s=c[1];else if(Q(c,-1e9,1e9,b),c)r=-(s=c<0?-c:c);else throw Error(K+b+" cannot be zero: "+c);if(a.hasOwnProperty(b="CRYPTO"))if(!!(c=a[b])===c)if(c)if("u">typeof crypto&&crypto&&(crypto.getRandomValues||crypto.randomBytes))t=c;else throw t=!c,Error(K+"crypto unavailable");else t=c;else throw Error(K+b+" not true or false: "+c);if(a.hasOwnProperty(b="MODULO_MODE")&&(Q(c=a[b],0,9,b),u=c),a.hasOwnProperty(b="POW_PRECISION")&&(Q(c=a[b],0,1e9,b),v=c),a.hasOwnProperty(b="FORMAT"))if("object"==typeof(c=a[b]))w=c;else throw Error(K+b+" not an object: "+c);if(a.hasOwnProperty(b="ALPHABET")){if("string"!=typeof(c=a[b])||/^.?$|[+\-.\s]|(.).*\1/.test(c))throw Error(K+b+" invalid: "+c);y="0123456789"==c.slice(0,10),x=c}}else throw Error(K+"Object expected: "+a);return{DECIMAL_PLACES:n,ROUNDING_MODE:o,EXPONENTIAL_AT:[p,q],RANGE:[r,s],CRYPTO:t,MODULO_MODE:u,POW_PRECISION:v,FORMAT:w,ALPHABET:x}},z.isBigNumber=function(a){if(!a||!0!==a._isBigNumber)return!1;if(!z.DEBUG)return!0;var b,c,d=a.c,e=a.e,f=a.s;a:if("[object Array]"==({}).toString.call(d)){if((1===f||-1===f)&&e>=-1e9&&e<=1e9&&e===J(e)){if(0===d[0]){if(0===e&&1===d.length)return!0;break a}if((b=(e+1)%14)<1&&(b+=14),String(d[0]).length==b){for(b=0;b<d.length;b++)if((c=d[b])<0||c>=1e14||c!==J(c))break a;if(0!==c)return!0}}}else if(null===d&&null===e&&(null===f||1===f||-1===f))return!0;throw Error(K+"Invalid BigNumber: "+a)},z.maximum=z.max=function(){return B(arguments,-1)},z.minimum=z.min=function(){return B(arguments,1)},c=0x20000000000000*Math.random()&2097151?function(){return J(0x20000000000000*Math.random())}:function(){return(0x40000000*Math.random()|0)*8388608+(8388608*Math.random()|0)},z.random=function(a){var b,d,e,f,g,h=0,i=[],j=new z(m);if(null==a?a=n:Q(a,0,1e9),f=I(a/14),t)if(crypto.getRandomValues){for(b=crypto.getRandomValues(new Uint32Array(f*=2));h<f;)(g=131072*b[h]+(b[h+1]>>>11))>=9e15?(d=crypto.getRandomValues(new Uint32Array(2)),b[h]=d[0],b[h+1]=d[1]):(i.push(g%1e14),h+=2);h=f/2}else if(crypto.randomBytes){for(b=crypto.randomBytes(f*=7);h<f;)(g=(31&b[h])*0x1000000000000+0x10000000000*b[h+1]+0x100000000*b[h+2]+0x1000000*b[h+3]+(b[h+4]<<16)+(b[h+5]<<8)+b[h+6])>=9e15?crypto.randomBytes(7).copy(b,h):(i.push(g%1e14),h+=7);h=f/7}else throw t=!1,Error(K+"crypto unavailable");if(!t)for(;h<f;)(g=c())<9e15&&(i[h++]=g%1e14);for(f=i[--h],a%=14,f&&a&&(g=M[14-a],i[h]=J(f/g)*g);0===i[h];i.pop(),h--);if(h<0)i=[e=0];else{for(e=-1;0===i[0];i.splice(0,1),e-=14);for(h=1,g=i[0];g>=10;g/=10,h++);h<14&&(e-=14-h)}return j.e=e,j.c=i,j},z.sum=function(){for(var a=1,b=arguments,c=new z(b[0]);a<b.length;)c=c.plus(b[a++]);return c},j=function(){var a="0123456789";function b(a,b,c,d){for(var e,f,g=[0],h=0,i=a.length;h<i;){for(f=g.length;f--;g[f]*=b);for(g[0]+=d.indexOf(a.charAt(h++)),e=0;e<g.length;e++)g[e]>c-1&&(null==g[e+1]&&(g[e+1]=0),g[e+1]+=g[e]/c|0,g[e]%=c)}return g.reverse()}return function(c,d,e,f,g){var h,j,k,l,m,p,q,r,s=c.indexOf("."),t=n,u=o;for(s>=0&&(l=v,v=0,c=c.replace(".",""),p=(r=new z(d)).pow(c.length-s),v=l,r.c=b(T(O(p.c),p.e,"0"),10,e,a),r.e=r.c.length),k=l=(q=b(c,d,e,g?(h=x,a):(h=a,x))).length;0==q[--l];q.pop());if(!q[0])return h.charAt(0);if(s<0?--k:(p.c=q,p.e=k,p.s=f,q=(p=i(p,r,t,u,e)).c,m=p.r,k=p.e),s=q[j=k+t+1],l=e/2,m=m||j<0||null!=q[j+1],m=u<4?(null!=s||m)&&(0==u||u==(p.s<0?3:2)):s>l||s==l&&(4==u||m||6==u&&1&q[j-1]||u==(p.s<0?8:7)),j<1||!q[0])c=m?T(h.charAt(1),-t,h.charAt(0)):h.charAt(0);else{if(q.length=j,m)for(--e;++q[--j]>e;)q[j]=0,j||(++k,q=[1].concat(q));for(l=q.length;!q[--l];);for(s=0,c="";s<=l;c+=h.charAt(q[s++]));c=T(c,k,h.charAt(0))}return c}}(),i=function(){function a(a,b,c){var d,e,f,g,h=0,i=a.length,j=b%1e7,k=b/1e7|0;for(a=a.slice();i--;)d=k*(f=a[i]%1e7)+(g=a[i]/1e7|0)*j,h=((e=j*f+d%1e7*1e7+h)/c|0)+(d/1e7|0)+k*g,a[i]=e%c;return h&&(a=[h].concat(a)),a}function b(a,b,c,d){var e,f;if(c!=d)f=c>d?1:-1;else for(e=f=0;e<c;e++)if(a[e]!=b[e]){f=a[e]>b[e]?1:-1;break}return f}function c(a,b,c,d){for(var e=0;c--;)a[c]-=e,e=+(a[c]<b[c]),a[c]=e*d+a[c]-b[c];for(;!a[0]&&a.length>1;a.splice(0,1));}return function(d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,A=d.s==e.s?1:-1,B=d.c,C=e.c;if(!B||!B[0]||!C||!C[0])return new z(!d.s||!e.s||(B?C&&B[0]==C[0]:!C)?NaN:B&&0==B[0]||!C?0*A:A/0);for(q=(p=new z(A)).c=[],A=f+(j=d.e-e.e)+1,h||(h=1e14,j=N(d.e/14)-N(e.e/14),A=A/14|0),k=0;C[k]==(B[k]||0);k++);if(C[k]>(B[k]||0)&&j--,A<0)q.push(1),l=!0;else{for(v=B.length,x=C.length,k=0,A+=2,(m=J(h/(C[0]+1)))>1&&(C=a(C,m,h),B=a(B,m,h),x=C.length,v=B.length),u=x,s=(r=B.slice(0,x)).length;s<x;r[s++]=0);y=[0].concat(y=C.slice()),w=C[0],C[1]>=h/2&&w++;do{if(m=0,(i=b(C,r,x,s))<0){if(t=r[0],x!=s&&(t=t*h+(r[1]||0)),(m=J(t/w))>1)for(m>=h&&(m=h-1),o=(n=a(C,m,h)).length,s=r.length;1==b(n,r,o,s);)m--,c(n,x<o?y:C,o,h),o=n.length,i=1;else 0==m&&(i=m=1),o=(n=C.slice()).length;if(o<s&&(n=[0].concat(n)),c(r,n,s,h),s=r.length,-1==i)for(;1>b(C,r,x,s);)m++,c(r,x<s?y:C,s,h),s=r.length}else 0===i&&(m++,r=[0]);q[k++]=m,r[0]?r[s++]=B[u]||0:(r=[B[u]],s=1)}while((u++<v||null!=r[0])&&A--)l=null!=r[0],q[0]||q.splice(0,1)}if(1e14==h){for(k=1,A=q[0];A>=10;A/=10,k++);D(p,f+(p.e=k+14*j-1)+1,g,l)}else p.e=j,p.r=+l;return p}}(),d=/^(-?)0([xbo])(?=\w[\w.]*$)/i,e=/^([^.]+)\.$/,f=/^\.([^.]+)$/,g=/^-?(Infinity|NaN)$/,h=/^\s*\+(?=[\w.])|^\s+|\s+$/g,k=function(a,b,c,i){var j,k=c?b:b.replace(h,"");if(g.test(k))a.s=isNaN(k)?null:k<0?-1:1;else{if(!c&&(k=k.replace(d,function(a,b,c){return j="x"==(c=c.toLowerCase())?16:"b"==c?2:8,i&&i!=j?a:b}),i&&(j=i,k=k.replace(e,"$1").replace(f,"0.$1")),b!=k))return new z(k,j);if(z.DEBUG)throw Error(K+"Not a"+(i?" base "+i:"")+" number: "+b);a.s=null}a.c=a.e=null},l.absoluteValue=l.abs=function(){var a=new z(this);return a.s<0&&(a.s=1),a},l.comparedTo=function(a,b){return P(this,new z(a,b))},l.decimalPlaces=l.dp=function(a,b){var c,d,e;if(null!=a)return Q(a,0,1e9),null==b?b=o:Q(b,0,8),D(new z(this),a+this.e+1,b);if(!(c=this.c))return null;if(d=((e=c.length-1)-N(this.e/14))*14,e=c[e])for(;e%10==0;e/=10,d--);return d<0&&(d=0),d},l.dividedBy=l.div=function(a,b){return i(this,new z(a,b),n,o)},l.dividedToIntegerBy=l.idiv=function(a,b){return i(this,new z(a,b),0,1)},l.exponentiatedBy=l.pow=function(a,b){var c,d,e,f,g,h,i,j,k,l=this;if((a=new z(a)).c&&!a.isInteger())throw Error(K+"Exponent not an integer: "+E(a));if(null!=b&&(b=new z(b)),h=a.e>14,!l.c||!l.c[0]||1==l.c[0]&&!l.e&&1==l.c.length||!a.c||!a.c[0])return k=new z(Math.pow(+E(l),h?a.s*(2-R(a)):+E(a))),b?k.mod(b):k;if(i=a.s<0,b){if(b.c?!b.c[0]:!b.s)return new z(NaN);(d=!i&&l.isInteger()&&b.isInteger())&&(l=l.mod(b))}else{if(a.e>9&&(l.e>0||l.e<-1||(0==l.e?l.c[0]>1||h&&l.c[1]>=24e7:l.c[0]<8e13||h&&l.c[0]<=9999975e7)))return f=l.s<0&&R(a)?-0:0,l.e>-1&&(f=1/f),new z(i?1/f:f);v&&(f=I(v/14+2))}for(h?(c=new z(.5),i&&(a.s=1),j=R(a)):j=(e=Math.abs(+E(a)))%2,k=new z(m);;){if(j){if(!(k=k.times(l)).c)break;f?k.c.length>f&&(k.c.length=f):d&&(k=k.mod(b))}if(e){if(0===(e=J(e/2)))break;j=e%2}else if(D(a=a.times(c),a.e+1,1),a.e>14)j=R(a);else{if(0==(e=+E(a)))break;j=e%2}l=l.times(l),f?l.c&&l.c.length>f&&(l.c.length=f):d&&(l=l.mod(b))}return d?k:(i&&(k=m.div(k)),b?k.mod(b):f?D(k,v,o,g):k)},l.integerValue=function(a){var b=new z(this);return null==a?a=o:Q(a,0,8),D(b,b.e+1,a)},l.isEqualTo=l.eq=function(a,b){return 0===P(this,new z(a,b))},l.isFinite=function(){return!!this.c},l.isGreaterThan=l.gt=function(a,b){return P(this,new z(a,b))>0},l.isGreaterThanOrEqualTo=l.gte=function(a,b){return 1===(b=P(this,new z(a,b)))||0===b},l.isInteger=function(){return!!this.c&&N(this.e/14)>this.c.length-2},l.isLessThan=l.lt=function(a,b){return 0>P(this,new z(a,b))},l.isLessThanOrEqualTo=l.lte=function(a,b){return -1===(b=P(this,new z(a,b)))||0===b},l.isNaN=function(){return!this.s},l.isNegative=function(){return this.s<0},l.isPositive=function(){return this.s>0},l.isZero=function(){return!!this.c&&0==this.c[0]},l.minus=function(a,b){var c,d,e,f,g=this.s;if(b=(a=new z(a,b)).s,!g||!b)return new z(NaN);if(g!=b)return a.s=-b,this.plus(a);var h=this.e/14,i=a.e/14,j=this.c,k=a.c;if(!h||!i){if(!j||!k)return j?(a.s=-b,a):new z(k?this:NaN);if(!j[0]||!k[0])return k[0]?(a.s=-b,a):new z(j[0]?this:3==o?-0:0)}if(h=N(h),i=N(i),j=j.slice(),g=h-i){for((f=g<0)?(g=-g,e=j):(i=h,e=k),e.reverse(),b=g;b--;e.push(0));e.reverse()}else for(d=(f=(g=j.length)<(b=k.length))?g:b,g=b=0;b<d;b++)if(j[b]!=k[b]){f=j[b]<k[b];break}if(f&&(e=j,j=k,k=e,a.s=-a.s),(b=(d=k.length)-(c=j.length))>0)for(;b--;j[c++]=0);for(b=1e14-1;d>g;){if(j[--d]<k[d]){for(c=d;c&&!j[--c];j[c]=b);--j[c],j[d]+=1e14}j[d]-=k[d]}for(;0==j[0];j.splice(0,1),--i);return j[0]?C(a,j,i):(a.s=3==o?-1:1,a.c=[a.e=0],a)},l.modulo=l.mod=function(a,b){var c,d;return(a=new z(a,b),this.c&&a.s&&(!a.c||a.c[0]))?a.c&&(!this.c||this.c[0])?(9==u?(d=a.s,a.s=1,c=i(this,a,0,3),a.s=d,c.s*=d):c=i(this,a,0,u),(a=this.minus(c.times(a))).c[0]||1!=u||(a.s=this.s),a):new z(this):new z(NaN)},l.multipliedBy=l.times=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p=this.c,q=(a=new z(a,b)).c;if(!p||!q||!p[0]||!q[0])return this.s&&a.s&&(!p||p[0]||q)&&(!q||q[0]||p)?(a.s*=this.s,p&&q?(a.c=[0],a.e=0):a.c=a.e=null):a.c=a.e=a.s=null,a;for(d=N(this.e/14)+N(a.e/14),a.s*=this.s,(i=p.length)<(l=q.length)&&(o=p,p=q,q=o,e=i,i=l,l=e),e=i+l,o=[];e--;o.push(0));for(e=l;--e>=0;){for(c=0,m=q[e]%1e7,n=q[e]/1e7|0,f=e+(g=i);f>e;)h=n*(j=p[--g]%1e7)+(k=p[g]/1e7|0)*m,c=((j=m*j+h%1e7*1e7+o[f]+c)/1e14|0)+(h/1e7|0)+n*k,o[f--]=j%1e14;o[f]=c}return c?++d:o.splice(0,1),C(a,o,d)},l.negated=function(){var a=new z(this);return a.s=-a.s||null,a},l.plus=function(a,b){var c,d=this.s;if(b=(a=new z(a,b)).s,!d||!b)return new z(NaN);if(d!=b)return a.s=-b,this.minus(a);var e=this.e/14,f=a.e/14,g=this.c,h=a.c;if(!e||!f){if(!g||!h)return new z(d/0);if(!g[0]||!h[0])return h[0]?a:new z(g[0]?this:0*d)}if(e=N(e),f=N(f),g=g.slice(),d=e-f){for(d>0?(f=e,c=h):(d=-d,c=g),c.reverse();d--;c.push(0));c.reverse()}for((d=g.length)-(b=h.length)<0&&(c=h,h=g,g=c,b=d),d=0;b;)d=(g[--b]=g[b]+h[b]+d)/1e14|0,g[b]=1e14===g[b]?0:g[b]%1e14;return d&&(g=[d].concat(g),++f),C(a,g,f)},l.precision=l.sd=function(a,b){var c,d,e;if(null!=a&&!!a!==a)return Q(a,1,1e9),null==b?b=o:Q(b,0,8),D(new z(this),a,b);if(!(c=this.c))return null;if(d=14*(e=c.length-1)+1,e=c[e]){for(;e%10==0;e/=10,d--);for(e=c[0];e>=10;e/=10,d++);}return a&&this.e+1>d&&(d=this.e+1),d},l.shiftedBy=function(a){return Q(a,-0x1fffffffffffff,0x1fffffffffffff),this.times("1e"+a)},l.squareRoot=l.sqrt=function(){var a,b,c,d,e,f=this.c,g=this.s,h=this.e,j=n+4,k=new z("0.5");if(1!==g||!f||!f[0])return new z(!g||g<0&&(!f||f[0])?NaN:f?this:1/0);if(0==(g=Math.sqrt(+E(this)))||g==1/0?(((b=O(f)).length+h)%2==0&&(b+="0"),g=Math.sqrt(+b),h=N((h+1)/2)-(h<0||h%2),c=new z(b=g==1/0?"5e"+h:(b=g.toExponential()).slice(0,b.indexOf("e")+1)+h)):c=new z(g+""),c.c[0]){for((g=(h=c.e)+j)<3&&(g=0);;)if(e=c,c=k.times(e.plus(i(this,e,j,1))),O(e.c).slice(0,g)===(b=O(c.c)).slice(0,g)){if(c.e<h&&--g,"9999"!=(b=b.slice(g-3,g+1))&&(d||"4999"!=b)){+b&&(+b.slice(1)||"5"!=b.charAt(0))||(D(c,c.e+n+2,1),a=!c.times(c).eq(this));break}if(!d&&(D(e,e.e+n+2,0),e.times(e).eq(this))){c=e;break}j+=4,g+=4,d=1}}return D(c,c.e+n+1,o,a)},l.toExponential=function(a,b){return null!=a&&(Q(a,0,1e9),a++),A(this,a,b,1)},l.toFixed=function(a,b){return null!=a&&(Q(a,0,1e9),a=a+this.e+1),A(this,a,b)},l.toFormat=function(a,b,c){var d;if(null==c)null!=a&&b&&"object"==typeof b?(c=b,b=null):a&&"object"==typeof a?(c=a,a=b=null):c=w;else if("object"!=typeof c)throw Error(K+"Argument not an object: "+c);if(d=this.toFixed(a,b),this.c){var e,f=d.split("."),g=+c.groupSize,h=+c.secondaryGroupSize,i=c.groupSeparator||"",j=f[0],k=f[1],l=this.s<0,m=l?j.slice(1):j,n=m.length;if(h&&(e=g,g=h,h=e,n-=e),g>0&&n>0){for(e=n%g||g,j=m.substr(0,e);e<n;e+=g)j+=i+m.substr(e,g);h>0&&(j+=i+m.slice(e)),l&&(j="-"+j)}d=k?j+(c.decimalSeparator||"")+((h=+c.fractionGroupSize)?k.replace(RegExp("\\d{"+h+"}\\B","g"),"$&"+(c.fractionGroupSeparator||"")):k):j}return(c.prefix||"")+d+(c.suffix||"")},l.toFraction=function(a){var b,c,d,e,f,g,h,j,k,l,n,p,q=this.c;if(null!=a&&(!(h=new z(a)).isInteger()&&(h.c||1!==h.s)||h.lt(m)))throw Error(K+"Argument "+(h.isInteger()?"out of range: ":"not an integer: ")+E(h));if(!q)return new z(this);for(b=new z(m),k=c=new z(m),d=j=new z(m),p=O(q),f=b.e=p.length-this.e-1,b.c[0]=M[(g=f%14)<0?14+g:g],a=!a||h.comparedTo(b)>0?f>0?b:k:h,g=s,s=1/0,h=new z(p),j.c[0]=0;l=i(h,b,0,1),1!=(e=c.plus(l.times(d))).comparedTo(a);)c=d,d=e,k=j.plus(l.times(e=k)),j=e,b=h.minus(l.times(e=b)),h=e;return e=i(a.minus(c),d,0,1),j=j.plus(e.times(k)),c=c.plus(e.times(d)),j.s=k.s=this.s,f*=2,n=1>i(k,d,f,o).minus(this).abs().comparedTo(i(j,c,f,o).minus(this).abs())?[k,d]:[j,c],s=g,n},l.toNumber=function(){return+E(this)},l.toPrecision=function(a,b){return null!=a&&Q(a,1,1e9),A(this,a,b,2)},l.toString=function(a){var b,c=this,d=c.s,e=c.e;return null===e?d?(b="Infinity",d<0&&(b="-"+b)):b="NaN":(null==a?b=e<=p||e>=q?S(O(c.c),e):T(O(c.c),e,"0"):10===a&&y?b=T(O((c=D(new z(c),n+e+1,o)).c),c.e,"0"):(Q(a,2,x.length,"Base"),b=j(T(O(c.c),e,"0"),10,a,d,!0)),d<0&&c.c[0]&&(b="-"+b)),b},l.valueOf=l.toJSON=function(){return E(this)},l._isBigNumber=!0,l[Symbol.toStringTag]="BigNumber",l[Symbol.for("nodejs.util.inspect.custom")]=l.valueOf,null!=b&&z.set(b),z}();let V=24,W="u">typeof globalThis&&globalThis.crypto&&"function"==typeof globalThis.crypto.getRandomValues?()=>{let a=new Uint32Array(1);return globalThis.crypto.getRandomValues(a),a[0]/0x100000000}:Math.random,X=(a=4,b=W)=>{let c="";for(;c.length<a;)c+=Math.floor(36*b()).toString(36);return c},Y=(a="")=>(function(a){let b=new U(0);for(let c of a.values())b=b.multipliedBy(256).plus(c);return b})(G(new TextEncoder().encode(a))).toString(36).slice(1),Z=Array.from({length:26},(a,b)=>String.fromCharCode(b+97)),$=({globalObj:b=a.g,random:c=W}={})=>{let d=Object.keys(b).toString();return Y(d.length?d+X(32,c):X(32,c)).substring(0,32)},_=a=>()=>a++,aa=0x1c6b1f1f,ab=(c=({random:a=W,counter:b=_(Math.floor(a()*aa)),length:c=V,fingerprint:d=$({random:a})}={})=>{if(c>32)throw Error(`Length must be between 2 and 32. Received: ${c}`);return function(){let e=Z[Math.floor(a()*Z.length)],f=Date.now().toString(36),g=b().toString(36),h=X(c,a),i=`${f+h+g+d}`;return`${e+Y(i).substring(1,c)}`}},()=>(b||(b=c()),b())),ac=(0,d.sqliteTable)("Node",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),view:(0,g.text)().notNull(),cluster:(0,g.text)(),title:(0,g.text)().notNull(),role:(0,g.text)(),plain:(0,g.text)(),status:(0,g.text)().default("PENDING").notNull(),priority:(0,h.integer)().default(2).notNull(),progress:(0,h.integer)().default(0).notNull(),x:(0,i.real)().default(0).notNull(),y:(0,i.real)().default(0).notNull(),sourceRef:(0,g.text)(),externalId:(0,g.text)(),source:(0,g.text)().default("MANUAL").notNull(),parentId:(0,g.text)(),createdAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date),embedding:(0,g.text)()},a=>[(0,e.index)("Node_cluster_idx").on(a.cluster),(0,e.index)("Node_parentId_idx").on(a.parentId),(0,e.index)("Node_view_idx").on(a.view),(0,f.foreignKey)(()=>({columns:[a.parentId],foreignColumns:[a.id],name:"Node_parentId_Node_id_fk"})).onUpdate("cascade").onDelete("cascade")]),ad=(0,d.sqliteTable)("NodeFile",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),nodeId:(0,g.text)().notNull().references(()=>ac.id,{onDelete:"cascade",onUpdate:"cascade"}),path:(0,g.text)().notNull()},a=>[(0,e.uniqueIndex)("NodeFile_nodeId_path_key").on(a.nodeId,a.path),(0,e.index)("NodeFile_nodeId_idx").on(a.nodeId)]),ae=(0,d.sqliteTable)("Tag",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),label:(0,g.text)().notNull(),color:(0,g.text)()},a=>[(0,e.uniqueIndex)("Tag_label_key").on(a.label)]),af=(0,d.sqliteTable)("Edge",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),fromId:(0,g.text)().notNull().references(()=>ac.id,{onDelete:"cascade",onUpdate:"cascade"}),toId:(0,g.text)().notNull().references(()=>ac.id,{onDelete:"cascade",onUpdate:"cascade"}),kind:(0,g.text)().default("DEPENDS").notNull(),label:(0,g.text)(),sourceHandle:(0,g.text)(),targetHandle:(0,g.text)()},a=>[(0,e.uniqueIndex)("Edge_fromId_toId_kind_key").on(a.fromId,a.toId,a.kind),(0,e.index)("Edge_toId_idx").on(a.toId),(0,e.index)("Edge_fromId_idx").on(a.fromId)]),ag=(0,d.sqliteTable)("_NodeTags",{a:(0,g.text)("A").notNull().references(()=>ac.id,{onDelete:"cascade",onUpdate:"cascade"}),b:(0,g.text)("B").notNull().references(()=>ae.id,{onDelete:"cascade",onUpdate:"cascade"})},a=>[(0,e.uniqueIndex)("_NodeTags_AB_unique").on(a.a,a.b),(0,e.index)("_NodeTags_B_index").on(a.b)]),ah=(0,d.sqliteTable)("Note",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),title:(0,g.text)().default("Untitled").notNull(),body:(0,g.text)().default("").notNull(),ord:(0,i.real)().default(0).notNull(),pinned:(0,h.integer)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,e.index)("Note_updatedAt_idx").on(a.updatedAt)]),ai=(0,d.sqliteTable)("DbTable",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),name:(0,g.text)().notNull(),domain:(0,g.text)(),description:(0,g.text)(),source:(0,g.text)().default("MANUAL").notNull(),x:(0,i.real)().default(0).notNull(),y:(0,i.real)().default(0).notNull(),createdAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,e.index)("DbTable_domain_idx").on(a.domain),(0,e.uniqueIndex)("DbTable_name_key").on(a.name)]),aj=(0,d.sqliteTable)("DbColumn",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),tableId:(0,g.text)().notNull().references(()=>ai.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,g.text)().notNull(),type:(0,g.text)().notNull(),isPk:(0,h.integer)({mode:"boolean"}).default(!1).notNull(),isFk:(0,h.integer)({mode:"boolean"}).default(!1).notNull(),nullable:(0,h.integer)({mode:"boolean"}).default(!0).notNull(),note:(0,g.text)(),ord:(0,h.integer)().default(0).notNull()},a=>[(0,e.uniqueIndex)("DbColumn_tableId_name_key").on(a.tableId,a.name),(0,e.index)("DbColumn_tableId_idx").on(a.tableId)]),ak=(0,d.sqliteTable)("DbRelation",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),fromTableId:(0,g.text)().notNull().references(()=>ai.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,g.text)().notNull().references(()=>ai.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,g.text)().notNull(),toColumn:(0,g.text)().notNull(),label:(0,g.text)()},a=>[(0,e.index)("DbRelation_toTableId_idx").on(a.toTableId),(0,e.index)("DbRelation_fromTableId_idx").on(a.fromTableId)]),al=(0,d.sqliteTable)("Endpoint",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),method:(0,g.text)().notNull(),path:(0,g.text)().notNull(),domain:(0,g.text)(),description:(0,g.text)(),source:(0,g.text)().default("MANUAL").notNull(),x:(0,i.real)().default(0).notNull(),y:(0,i.real)().default(0).notNull(),createdAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,e.uniqueIndex)("Endpoint_method_path_key").on(a.method,a.path),(0,e.index)("Endpoint_domain_idx").on(a.domain)]),am=(0,d.sqliteTable)("EndpointTable",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),endpointId:(0,g.text)().notNull().references(()=>al.id,{onDelete:"cascade",onUpdate:"cascade"}),tableId:(0,g.text)().notNull().references(()=>ai.id,{onDelete:"cascade",onUpdate:"cascade"}),access:(0,g.text)().default("read").notNull()},a=>[(0,e.uniqueIndex)("EndpointTable_endpointId_tableId_key").on(a.endpointId,a.tableId),(0,e.index)("EndpointTable_tableId_idx").on(a.tableId)]),an=(0,d.sqliteTable)("DraftTable",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),name:(0,g.text)().notNull(),domain:(0,g.text)(),description:(0,g.text)(),x:(0,i.real)().default(0).notNull(),y:(0,i.real)().default(0).notNull(),createdAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,e.uniqueIndex)("DraftTable_name_key").on(a.name)]),ao=(0,d.sqliteTable)("DraftColumn",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),tableId:(0,g.text)().notNull().references(()=>an.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,g.text)().notNull(),type:(0,g.text)().notNull(),isPk:(0,h.integer)({mode:"boolean"}).default(!1).notNull(),isFk:(0,h.integer)({mode:"boolean"}).default(!1).notNull(),nullable:(0,h.integer)({mode:"boolean"}).default(!0).notNull(),note:(0,g.text)(),ord:(0,h.integer)().default(0).notNull()},a=>[(0,e.index)("DraftColumn_tableId_idx").on(a.tableId)]),ap=(0,d.sqliteTable)("DraftRelation",{id:(0,g.text)().primaryKey().$defaultFn(()=>ab()),fromTableId:(0,g.text)().notNull().references(()=>an.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,g.text)().notNull().references(()=>an.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,g.text)().notNull(),toColumn:(0,g.text)().notNull(),label:(0,g.text)()},a=>[(0,e.index)("DraftRelation_toTableId_idx").on(a.toTableId),(0,e.index)("DraftRelation_fromTableId_idx").on(a.fromTableId)]),aq=(0,d.sqliteTable)("CodeFile",{path:(0,g.text)().primaryKey(),root:(0,g.text)(),lang:(0,g.text)(),x:(0,i.real)().default(0).notNull(),y:(0,i.real)().default(0).notNull(),mtimeMs:(0,i.real)(),size:(0,h.integer)(),inDegree:(0,h.integer)().default(0).notNull(),outDegree:(0,h.integer)().default(0).notNull(),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),ar=(0,d.sqliteTable)("CodeFileEdge",{fromPath:(0,g.text)().notNull().references(()=>aq.path,{onDelete:"cascade",onUpdate:"cascade"}),toPath:(0,g.text)().notNull().references(()=>aq.path,{onDelete:"cascade",onUpdate:"cascade"}),circular:(0,h.integer)({mode:"boolean"}).default(!1).notNull()},a=>[(0,e.index)("CodeFileEdge_circular_idx").on(a.circular),(0,e.index)("CodeFileEdge_toPath_idx").on(a.toPath),(0,e.index)("CodeFileEdge_fromPath_idx").on(a.fromPath),(0,j.primaryKey)({columns:[a.fromPath,a.toPath],name:"CodeFileEdge_fromPath_toPath_pk"})]),as=(0,d.sqliteTable)("SyncState",{id:(0,g.text)().primaryKey().default("singleton"),version:(0,h.integer)().default(0).notNull(),codeGraphSyncedAt:(0,h.integer)({mode:"timestamp_ms"}),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),at=(0,d.sqliteTable)("AppSetting",{id:(0,g.text)().primaryKey().default("singleton"),intelModel:(0,g.text)().default("claude-haiku-4-5").notNull(),intelProvider:(0,g.text)().default("auto").notNull(),editor:(0,g.text)().default("auto").notNull(),currentFeatureId:(0,g.text)(),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),au=(0,d.sqliteTable)("ProjectMeta",{id:(0,g.text)().primaryKey().default("singleton"),overview:(0,g.text)(),conventions:(0,g.text)().default("[]").notNull(),updatedAt:(0,h.integer)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)});a.s(["appSetting",0,at,"codeFile",0,aq,"codeFileEdge",0,ar,"dbColumn",0,aj,"dbRelation",0,ak,"dbTable",0,ai,"draftColumn",0,ao,"draftRelation",0,ap,"draftTable",0,an,"edge",0,af,"endpoint",0,al,"endpointTable",0,am,"node",0,ac,"nodeFile",0,ad,"nodeTags",0,ag,"note",0,ah,"projectMeta",0,au,"syncState",0,as,"tag",0,ae],17781)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=lib_drizzle_schema_ts_0oz5uob._.js.map
|