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.
Files changed (994) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +59 -0
  3. package/.next/build/56416d4ae4ce586f.js +6 -0
  4. package/.next/build/56416d4ae4ce586f.js.map +5 -0
  5. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +206 -0
  6. package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +8 -0
  7. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +500 -0
  8. package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +11 -0
  9. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +13 -0
  10. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +5 -0
  11. package/.next/build/chunks/[turbopack]_runtime.js +890 -0
  12. package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  13. package/.next/build/chunks/node_modules_20v-8wl._.js +6824 -0
  14. package/.next/build/chunks/node_modules_20v-8wl._.js.map +47 -0
  15. package/.next/build/package.json +1 -0
  16. package/.next/build-manifest.json +21 -0
  17. package/.next/diagnostics/build-diagnostics.json +6 -0
  18. package/.next/diagnostics/framework.json +1 -0
  19. package/.next/diagnostics/route-bundle-stats.json +100 -0
  20. package/.next/export-marker.json +6 -0
  21. package/.next/fallback-build-manifest.json +13 -0
  22. package/.next/images-manifest.json +68 -0
  23. package/.next/next-minimal-server.js.nft.json +1 -0
  24. package/.next/next-server.js.nft.json +1 -0
  25. package/.next/package.json +1 -0
  26. package/.next/prerender-manifest.json +167 -0
  27. package/.next/required-server-files.js +338 -0
  28. package/.next/required-server-files.json +338 -0
  29. package/.next/routes-manifest.json +402 -0
  30. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  31. package/.next/server/app/_global-error/page/build-manifest.json +17 -0
  32. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  33. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  34. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  35. package/.next/server/app/_global-error/page.js +10 -0
  36. package/.next/server/app/_global-error/page.js.map +5 -0
  37. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  38. package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  39. package/.next/server/app/_global-error.html +1 -0
  40. package/.next/server/app/_global-error.meta +15 -0
  41. package/.next/server/app/_global-error.rsc +14 -0
  42. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  43. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  44. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  45. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  46. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  47. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  48. package/.next/server/app/_not-found/page/build-manifest.json +17 -0
  49. package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  50. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  51. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  52. package/.next/server/app/_not-found/page.js +15 -0
  53. package/.next/server/app/_not-found/page.js.map +5 -0
  54. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  55. package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  56. package/.next/server/app/_not-found.html +1 -0
  57. package/.next/server/app/_not-found.meta +16 -0
  58. package/.next/server/app/_not-found.rsc +24 -0
  59. package/.next/server/app/_not-found.segments/_full.segment.rsc +24 -0
  60. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  61. package/.next/server/app/_not-found.segments/_index.segment.rsc +13 -0
  62. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  63. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  64. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  65. package/.next/server/app/api/code-graph/position/route/app-paths-manifest.json +3 -0
  66. package/.next/server/app/api/code-graph/position/route/build-manifest.json +9 -0
  67. package/.next/server/app/api/code-graph/position/route/server-reference-manifest.json +4 -0
  68. package/.next/server/app/api/code-graph/position/route.js +12 -0
  69. package/.next/server/app/api/code-graph/position/route.js.map +5 -0
  70. package/.next/server/app/api/code-graph/position/route.js.nft.json +1 -0
  71. package/.next/server/app/api/code-graph/position/route_client-reference-manifest.js +3 -0
  72. package/.next/server/app/api/code-graph/route/app-paths-manifest.json +3 -0
  73. package/.next/server/app/api/code-graph/route/build-manifest.json +9 -0
  74. package/.next/server/app/api/code-graph/route/server-reference-manifest.json +4 -0
  75. package/.next/server/app/api/code-graph/route.js +12 -0
  76. package/.next/server/app/api/code-graph/route.js.map +5 -0
  77. package/.next/server/app/api/code-graph/route.js.nft.json +1 -0
  78. package/.next/server/app/api/code-graph/route_client-reference-manifest.js +3 -0
  79. package/.next/server/app/api/context/embed-backfill/route/app-paths-manifest.json +3 -0
  80. package/.next/server/app/api/context/embed-backfill/route/build-manifest.json +9 -0
  81. package/.next/server/app/api/context/embed-backfill/route/server-reference-manifest.json +4 -0
  82. package/.next/server/app/api/context/embed-backfill/route.js +11 -0
  83. package/.next/server/app/api/context/embed-backfill/route.js.map +5 -0
  84. package/.next/server/app/api/context/embed-backfill/route.js.nft.json +1 -0
  85. package/.next/server/app/api/context/embed-backfill/route_client-reference-manifest.js +3 -0
  86. package/.next/server/app/api/context/feature/route/app-paths-manifest.json +3 -0
  87. package/.next/server/app/api/context/feature/route/build-manifest.json +9 -0
  88. package/.next/server/app/api/context/feature/route/server-reference-manifest.json +4 -0
  89. package/.next/server/app/api/context/feature/route.js +15 -0
  90. package/.next/server/app/api/context/feature/route.js.map +5 -0
  91. package/.next/server/app/api/context/feature/route.js.nft.json +1 -0
  92. package/.next/server/app/api/context/feature/route_client-reference-manifest.js +3 -0
  93. package/.next/server/app/api/context/file/route/app-paths-manifest.json +3 -0
  94. package/.next/server/app/api/context/file/route/build-manifest.json +9 -0
  95. package/.next/server/app/api/context/file/route/server-reference-manifest.json +4 -0
  96. package/.next/server/app/api/context/file/route.js +13 -0
  97. package/.next/server/app/api/context/file/route.js.map +5 -0
  98. package/.next/server/app/api/context/file/route.js.nft.json +1 -0
  99. package/.next/server/app/api/context/file/route_client-reference-manifest.js +3 -0
  100. package/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  101. package/.next/server/app/api/context/route/build-manifest.json +9 -0
  102. package/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  103. package/.next/server/app/api/context/route.js +11 -0
  104. package/.next/server/app/api/context/route.js.map +5 -0
  105. package/.next/server/app/api/context/route.js.nft.json +1 -0
  106. package/.next/server/app/api/context/route_client-reference-manifest.js +3 -0
  107. package/.next/server/app/api/db/backfill-access/route/app-paths-manifest.json +3 -0
  108. package/.next/server/app/api/db/backfill-access/route/build-manifest.json +9 -0
  109. package/.next/server/app/api/db/backfill-access/route/server-reference-manifest.json +4 -0
  110. package/.next/server/app/api/db/backfill-access/route.js +13 -0
  111. package/.next/server/app/api/db/backfill-access/route.js.map +5 -0
  112. package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -0
  113. package/.next/server/app/api/db/backfill-access/route_client-reference-manifest.js +3 -0
  114. package/.next/server/app/api/db/position/route/app-paths-manifest.json +3 -0
  115. package/.next/server/app/api/db/position/route/build-manifest.json +9 -0
  116. package/.next/server/app/api/db/position/route/server-reference-manifest.json +4 -0
  117. package/.next/server/app/api/db/position/route.js +15 -0
  118. package/.next/server/app/api/db/position/route.js.map +5 -0
  119. package/.next/server/app/api/db/position/route.js.nft.json +1 -0
  120. package/.next/server/app/api/db/position/route_client-reference-manifest.js +3 -0
  121. package/.next/server/app/api/db/reconcile-endpoints/route/app-paths-manifest.json +3 -0
  122. package/.next/server/app/api/db/reconcile-endpoints/route/build-manifest.json +9 -0
  123. package/.next/server/app/api/db/reconcile-endpoints/route/server-reference-manifest.json +4 -0
  124. package/.next/server/app/api/db/reconcile-endpoints/route.js +12 -0
  125. package/.next/server/app/api/db/reconcile-endpoints/route.js.map +5 -0
  126. package/.next/server/app/api/db/reconcile-endpoints/route.js.nft.json +1 -0
  127. package/.next/server/app/api/db/reconcile-endpoints/route_client-reference-manifest.js +3 -0
  128. package/.next/server/app/api/db/relations/[id]/route/app-paths-manifest.json +3 -0
  129. package/.next/server/app/api/db/relations/[id]/route/build-manifest.json +9 -0
  130. package/.next/server/app/api/db/relations/[id]/route/server-reference-manifest.json +4 -0
  131. package/.next/server/app/api/db/relations/[id]/route.js +12 -0
  132. package/.next/server/app/api/db/relations/[id]/route.js.map +5 -0
  133. package/.next/server/app/api/db/relations/[id]/route.js.nft.json +1 -0
  134. package/.next/server/app/api/db/relations/[id]/route_client-reference-manifest.js +3 -0
  135. package/.next/server/app/api/db/tables/[id]/route/app-paths-manifest.json +3 -0
  136. package/.next/server/app/api/db/tables/[id]/route/build-manifest.json +9 -0
  137. package/.next/server/app/api/db/tables/[id]/route/server-reference-manifest.json +4 -0
  138. package/.next/server/app/api/db/tables/[id]/route.js +12 -0
  139. package/.next/server/app/api/db/tables/[id]/route.js.map +5 -0
  140. package/.next/server/app/api/db/tables/[id]/route.js.nft.json +1 -0
  141. package/.next/server/app/api/db/tables/[id]/route_client-reference-manifest.js +3 -0
  142. package/.next/server/app/api/draft/approve/route/app-paths-manifest.json +3 -0
  143. package/.next/server/app/api/draft/approve/route/build-manifest.json +9 -0
  144. package/.next/server/app/api/draft/approve/route/server-reference-manifest.json +4 -0
  145. package/.next/server/app/api/draft/approve/route.js +16 -0
  146. package/.next/server/app/api/draft/approve/route.js.map +5 -0
  147. package/.next/server/app/api/draft/approve/route.js.nft.json +1 -0
  148. package/.next/server/app/api/draft/approve/route_client-reference-manifest.js +3 -0
  149. package/.next/server/app/api/draft/route/app-paths-manifest.json +3 -0
  150. package/.next/server/app/api/draft/route/build-manifest.json +9 -0
  151. package/.next/server/app/api/draft/route/server-reference-manifest.json +4 -0
  152. package/.next/server/app/api/draft/route.js +16 -0
  153. package/.next/server/app/api/draft/route.js.map +5 -0
  154. package/.next/server/app/api/draft/route.js.nft.json +1 -0
  155. package/.next/server/app/api/draft/route_client-reference-manifest.js +3 -0
  156. package/.next/server/app/api/draft/status/route/app-paths-manifest.json +3 -0
  157. package/.next/server/app/api/draft/status/route/build-manifest.json +9 -0
  158. package/.next/server/app/api/draft/status/route/server-reference-manifest.json +4 -0
  159. package/.next/server/app/api/draft/status/route.js +13 -0
  160. package/.next/server/app/api/draft/status/route.js.map +5 -0
  161. package/.next/server/app/api/draft/status/route.js.nft.json +1 -0
  162. package/.next/server/app/api/draft/status/route_client-reference-manifest.js +3 -0
  163. package/.next/server/app/api/edges/[id]/route/app-paths-manifest.json +3 -0
  164. package/.next/server/app/api/edges/[id]/route/build-manifest.json +9 -0
  165. package/.next/server/app/api/edges/[id]/route/server-reference-manifest.json +4 -0
  166. package/.next/server/app/api/edges/[id]/route.js +11 -0
  167. package/.next/server/app/api/edges/[id]/route.js.map +5 -0
  168. package/.next/server/app/api/edges/[id]/route.js.nft.json +1 -0
  169. package/.next/server/app/api/edges/[id]/route_client-reference-manifest.js +3 -0
  170. package/.next/server/app/api/edges/route/app-paths-manifest.json +3 -0
  171. package/.next/server/app/api/edges/route/build-manifest.json +9 -0
  172. package/.next/server/app/api/edges/route/server-reference-manifest.json +4 -0
  173. package/.next/server/app/api/edges/route.js +15 -0
  174. package/.next/server/app/api/edges/route.js.map +5 -0
  175. package/.next/server/app/api/edges/route.js.nft.json +1 -0
  176. package/.next/server/app/api/edges/route_client-reference-manifest.js +3 -0
  177. package/.next/server/app/api/endpoints/[id]/route/app-paths-manifest.json +3 -0
  178. package/.next/server/app/api/endpoints/[id]/route/build-manifest.json +9 -0
  179. package/.next/server/app/api/endpoints/[id]/route/server-reference-manifest.json +4 -0
  180. package/.next/server/app/api/endpoints/[id]/route.js +12 -0
  181. package/.next/server/app/api/endpoints/[id]/route.js.map +5 -0
  182. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +1 -0
  183. package/.next/server/app/api/endpoints/[id]/route_client-reference-manifest.js +3 -0
  184. package/.next/server/app/api/entities/route/app-paths-manifest.json +3 -0
  185. package/.next/server/app/api/entities/route/build-manifest.json +9 -0
  186. package/.next/server/app/api/entities/route/server-reference-manifest.json +4 -0
  187. package/.next/server/app/api/entities/route.js +11 -0
  188. package/.next/server/app/api/entities/route.js.map +5 -0
  189. package/.next/server/app/api/entities/route.js.nft.json +1 -0
  190. package/.next/server/app/api/entities/route_client-reference-manifest.js +3 -0
  191. package/.next/server/app/api/ingest/route/app-paths-manifest.json +3 -0
  192. package/.next/server/app/api/ingest/route/build-manifest.json +9 -0
  193. package/.next/server/app/api/ingest/route/server-reference-manifest.json +4 -0
  194. package/.next/server/app/api/ingest/route.js +12 -0
  195. package/.next/server/app/api/ingest/route.js.map +5 -0
  196. package/.next/server/app/api/ingest/route.js.nft.json +1 -0
  197. package/.next/server/app/api/ingest/route_client-reference-manifest.js +3 -0
  198. package/.next/server/app/api/init/route/app-paths-manifest.json +3 -0
  199. package/.next/server/app/api/init/route/build-manifest.json +9 -0
  200. package/.next/server/app/api/init/route/server-reference-manifest.json +4 -0
  201. package/.next/server/app/api/init/route.js +15 -0
  202. package/.next/server/app/api/init/route.js.map +5 -0
  203. package/.next/server/app/api/init/route.js.nft.json +1 -0
  204. package/.next/server/app/api/init/route_client-reference-manifest.js +3 -0
  205. package/.next/server/app/api/map/describe/route/app-paths-manifest.json +3 -0
  206. package/.next/server/app/api/map/describe/route/build-manifest.json +9 -0
  207. package/.next/server/app/api/map/describe/route/server-reference-manifest.json +4 -0
  208. package/.next/server/app/api/map/describe/route.js +15 -0
  209. package/.next/server/app/api/map/describe/route.js.map +5 -0
  210. package/.next/server/app/api/map/describe/route.js.nft.json +1 -0
  211. package/.next/server/app/api/map/describe/route_client-reference-manifest.js +3 -0
  212. package/.next/server/app/api/map/files/route/app-paths-manifest.json +3 -0
  213. package/.next/server/app/api/map/files/route/build-manifest.json +9 -0
  214. package/.next/server/app/api/map/files/route/server-reference-manifest.json +4 -0
  215. package/.next/server/app/api/map/files/route.js +15 -0
  216. package/.next/server/app/api/map/files/route.js.map +5 -0
  217. package/.next/server/app/api/map/files/route.js.nft.json +1 -0
  218. package/.next/server/app/api/map/files/route_client-reference-manifest.js +3 -0
  219. package/.next/server/app/api/map/finish/route/app-paths-manifest.json +3 -0
  220. package/.next/server/app/api/map/finish/route/build-manifest.json +9 -0
  221. package/.next/server/app/api/map/finish/route/server-reference-manifest.json +4 -0
  222. package/.next/server/app/api/map/finish/route.js +15 -0
  223. package/.next/server/app/api/map/finish/route.js.map +5 -0
  224. package/.next/server/app/api/map/finish/route.js.nft.json +1 -0
  225. package/.next/server/app/api/map/finish/route_client-reference-manifest.js +3 -0
  226. package/.next/server/app/api/map/route/app-paths-manifest.json +3 -0
  227. package/.next/server/app/api/map/route/build-manifest.json +9 -0
  228. package/.next/server/app/api/map/route/server-reference-manifest.json +4 -0
  229. package/.next/server/app/api/map/route.js +15 -0
  230. package/.next/server/app/api/map/route.js.map +5 -0
  231. package/.next/server/app/api/map/route.js.nft.json +1 -0
  232. package/.next/server/app/api/map/route_client-reference-manifest.js +3 -0
  233. package/.next/server/app/api/map/start/route/app-paths-manifest.json +3 -0
  234. package/.next/server/app/api/map/start/route/build-manifest.json +9 -0
  235. package/.next/server/app/api/map/start/route/server-reference-manifest.json +4 -0
  236. package/.next/server/app/api/map/start/route.js +15 -0
  237. package/.next/server/app/api/map/start/route.js.map +5 -0
  238. package/.next/server/app/api/map/start/route.js.nft.json +1 -0
  239. package/.next/server/app/api/map/start/route_client-reference-manifest.js +3 -0
  240. package/.next/server/app/api/map/touch-active/route/app-paths-manifest.json +3 -0
  241. package/.next/server/app/api/map/touch-active/route/build-manifest.json +9 -0
  242. package/.next/server/app/api/map/touch-active/route/server-reference-manifest.json +4 -0
  243. package/.next/server/app/api/map/touch-active/route.js +15 -0
  244. package/.next/server/app/api/map/touch-active/route.js.map +5 -0
  245. package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -0
  246. package/.next/server/app/api/map/touch-active/route_client-reference-manifest.js +3 -0
  247. package/.next/server/app/api/nodes/[id]/position/route/app-paths-manifest.json +3 -0
  248. package/.next/server/app/api/nodes/[id]/position/route/build-manifest.json +9 -0
  249. package/.next/server/app/api/nodes/[id]/position/route/server-reference-manifest.json +4 -0
  250. package/.next/server/app/api/nodes/[id]/position/route.js +15 -0
  251. package/.next/server/app/api/nodes/[id]/position/route.js.map +5 -0
  252. package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -0
  253. package/.next/server/app/api/nodes/[id]/position/route_client-reference-manifest.js +3 -0
  254. package/.next/server/app/api/nodes/[id]/route/app-paths-manifest.json +3 -0
  255. package/.next/server/app/api/nodes/[id]/route/build-manifest.json +9 -0
  256. package/.next/server/app/api/nodes/[id]/route/server-reference-manifest.json +4 -0
  257. package/.next/server/app/api/nodes/[id]/route.js +15 -0
  258. package/.next/server/app/api/nodes/[id]/route.js.map +5 -0
  259. package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -0
  260. package/.next/server/app/api/nodes/[id]/route_client-reference-manifest.js +3 -0
  261. package/.next/server/app/api/nodes/positions/route/app-paths-manifest.json +3 -0
  262. package/.next/server/app/api/nodes/positions/route/build-manifest.json +9 -0
  263. package/.next/server/app/api/nodes/positions/route/server-reference-manifest.json +4 -0
  264. package/.next/server/app/api/nodes/positions/route.js +15 -0
  265. package/.next/server/app/api/nodes/positions/route.js.map +5 -0
  266. package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -0
  267. package/.next/server/app/api/nodes/positions/route_client-reference-manifest.js +3 -0
  268. package/.next/server/app/api/nodes/route/app-paths-manifest.json +3 -0
  269. package/.next/server/app/api/nodes/route/build-manifest.json +9 -0
  270. package/.next/server/app/api/nodes/route/server-reference-manifest.json +4 -0
  271. package/.next/server/app/api/nodes/route.js +15 -0
  272. package/.next/server/app/api/nodes/route.js.map +5 -0
  273. package/.next/server/app/api/nodes/route.js.nft.json +1 -0
  274. package/.next/server/app/api/nodes/route_client-reference-manifest.js +3 -0
  275. package/.next/server/app/api/nodes/subtasks/route/app-paths-manifest.json +3 -0
  276. package/.next/server/app/api/nodes/subtasks/route/build-manifest.json +9 -0
  277. package/.next/server/app/api/nodes/subtasks/route/server-reference-manifest.json +4 -0
  278. package/.next/server/app/api/nodes/subtasks/route.js +15 -0
  279. package/.next/server/app/api/nodes/subtasks/route.js.map +5 -0
  280. package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -0
  281. package/.next/server/app/api/nodes/subtasks/route_client-reference-manifest.js +3 -0
  282. package/.next/server/app/api/notes/[id]/route/app-paths-manifest.json +3 -0
  283. package/.next/server/app/api/notes/[id]/route/build-manifest.json +9 -0
  284. package/.next/server/app/api/notes/[id]/route/server-reference-manifest.json +4 -0
  285. package/.next/server/app/api/notes/[id]/route.js +12 -0
  286. package/.next/server/app/api/notes/[id]/route.js.map +5 -0
  287. package/.next/server/app/api/notes/[id]/route.js.nft.json +1 -0
  288. package/.next/server/app/api/notes/[id]/route_client-reference-manifest.js +3 -0
  289. package/.next/server/app/api/notes/route/app-paths-manifest.json +3 -0
  290. package/.next/server/app/api/notes/route/build-manifest.json +9 -0
  291. package/.next/server/app/api/notes/route/server-reference-manifest.json +4 -0
  292. package/.next/server/app/api/notes/route.js +12 -0
  293. package/.next/server/app/api/notes/route.js.map +5 -0
  294. package/.next/server/app/api/notes/route.js.nft.json +1 -0
  295. package/.next/server/app/api/notes/route_client-reference-manifest.js +3 -0
  296. package/.next/server/app/api/open/route/app-paths-manifest.json +3 -0
  297. package/.next/server/app/api/open/route/build-manifest.json +9 -0
  298. package/.next/server/app/api/open/route/server-reference-manifest.json +4 -0
  299. package/.next/server/app/api/open/route.js +11 -0
  300. package/.next/server/app/api/open/route.js.map +5 -0
  301. package/.next/server/app/api/open/route.js.nft.json +1 -0
  302. package/.next/server/app/api/open/route_client-reference-manifest.js +3 -0
  303. package/.next/server/app/api/plan/annotations/route/app-paths-manifest.json +3 -0
  304. package/.next/server/app/api/plan/annotations/route/build-manifest.json +9 -0
  305. package/.next/server/app/api/plan/annotations/route/server-reference-manifest.json +4 -0
  306. package/.next/server/app/api/plan/annotations/route.js +15 -0
  307. package/.next/server/app/api/plan/annotations/route.js.map +5 -0
  308. package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -0
  309. package/.next/server/app/api/plan/annotations/route_client-reference-manifest.js +3 -0
  310. package/.next/server/app/api/plan/approve/route/app-paths-manifest.json +3 -0
  311. package/.next/server/app/api/plan/approve/route/build-manifest.json +9 -0
  312. package/.next/server/app/api/plan/approve/route/server-reference-manifest.json +4 -0
  313. package/.next/server/app/api/plan/approve/route.js +16 -0
  314. package/.next/server/app/api/plan/approve/route.js.map +5 -0
  315. package/.next/server/app/api/plan/approve/route.js.nft.json +1 -0
  316. package/.next/server/app/api/plan/approve/route_client-reference-manifest.js +3 -0
  317. package/.next/server/app/api/plan/history/route/app-paths-manifest.json +3 -0
  318. package/.next/server/app/api/plan/history/route/build-manifest.json +9 -0
  319. package/.next/server/app/api/plan/history/route/server-reference-manifest.json +4 -0
  320. package/.next/server/app/api/plan/history/route.js +11 -0
  321. package/.next/server/app/api/plan/history/route.js.map +5 -0
  322. package/.next/server/app/api/plan/history/route.js.nft.json +1 -0
  323. package/.next/server/app/api/plan/history/route_client-reference-manifest.js +3 -0
  324. package/.next/server/app/api/plan/markdown/route/app-paths-manifest.json +3 -0
  325. package/.next/server/app/api/plan/markdown/route/build-manifest.json +9 -0
  326. package/.next/server/app/api/plan/markdown/route/server-reference-manifest.json +4 -0
  327. package/.next/server/app/api/plan/markdown/route.js +16 -0
  328. package/.next/server/app/api/plan/markdown/route.js.map +5 -0
  329. package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -0
  330. package/.next/server/app/api/plan/markdown/route_client-reference-manifest.js +3 -0
  331. package/.next/server/app/api/plan/presence/route/app-paths-manifest.json +3 -0
  332. package/.next/server/app/api/plan/presence/route/build-manifest.json +9 -0
  333. package/.next/server/app/api/plan/presence/route/server-reference-manifest.json +4 -0
  334. package/.next/server/app/api/plan/presence/route.js +11 -0
  335. package/.next/server/app/api/plan/presence/route.js.map +5 -0
  336. package/.next/server/app/api/plan/presence/route.js.nft.json +1 -0
  337. package/.next/server/app/api/plan/presence/route_client-reference-manifest.js +3 -0
  338. package/.next/server/app/api/plan/route/app-paths-manifest.json +3 -0
  339. package/.next/server/app/api/plan/route/build-manifest.json +9 -0
  340. package/.next/server/app/api/plan/route/server-reference-manifest.json +4 -0
  341. package/.next/server/app/api/plan/route.js +16 -0
  342. package/.next/server/app/api/plan/route.js.map +5 -0
  343. package/.next/server/app/api/plan/route.js.nft.json +1 -0
  344. package/.next/server/app/api/plan/route_client-reference-manifest.js +3 -0
  345. package/.next/server/app/api/plan/verdict/route/app-paths-manifest.json +3 -0
  346. package/.next/server/app/api/plan/verdict/route/build-manifest.json +9 -0
  347. package/.next/server/app/api/plan/verdict/route/server-reference-manifest.json +4 -0
  348. package/.next/server/app/api/plan/verdict/route.js +16 -0
  349. package/.next/server/app/api/plan/verdict/route.js.map +5 -0
  350. package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -0
  351. package/.next/server/app/api/plan/verdict/route_client-reference-manifest.js +3 -0
  352. package/.next/server/app/api/preferences/route/app-paths-manifest.json +3 -0
  353. package/.next/server/app/api/preferences/route/build-manifest.json +9 -0
  354. package/.next/server/app/api/preferences/route/server-reference-manifest.json +4 -0
  355. package/.next/server/app/api/preferences/route.js +7 -0
  356. package/.next/server/app/api/preferences/route.js.map +5 -0
  357. package/.next/server/app/api/preferences/route.js.nft.json +1 -0
  358. package/.next/server/app/api/preferences/route_client-reference-manifest.js +3 -0
  359. package/.next/server/app/api/reset/route/app-paths-manifest.json +3 -0
  360. package/.next/server/app/api/reset/route/build-manifest.json +9 -0
  361. package/.next/server/app/api/reset/route/server-reference-manifest.json +4 -0
  362. package/.next/server/app/api/reset/route.js +13 -0
  363. package/.next/server/app/api/reset/route.js.map +5 -0
  364. package/.next/server/app/api/reset/route.js.nft.json +1 -0
  365. package/.next/server/app/api/reset/route_client-reference-manifest.js +3 -0
  366. package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  367. package/.next/server/app/api/settings/route/build-manifest.json +9 -0
  368. package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  369. package/.next/server/app/api/settings/route.js +11 -0
  370. package/.next/server/app/api/settings/route.js.map +5 -0
  371. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  372. package/.next/server/app/api/settings/route_client-reference-manifest.js +3 -0
  373. package/.next/server/app/api/stream/route/app-paths-manifest.json +3 -0
  374. package/.next/server/app/api/stream/route/build-manifest.json +9 -0
  375. package/.next/server/app/api/stream/route/server-reference-manifest.json +4 -0
  376. package/.next/server/app/api/stream/route.js +12 -0
  377. package/.next/server/app/api/stream/route.js.map +5 -0
  378. package/.next/server/app/api/stream/route.js.nft.json +1 -0
  379. package/.next/server/app/api/stream/route_client-reference-manifest.js +3 -0
  380. package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
  381. package/.next/server/app/api/version/route/build-manifest.json +9 -0
  382. package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
  383. package/.next/server/app/api/version/route.js +12 -0
  384. package/.next/server/app/api/version/route.js.map +5 -0
  385. package/.next/server/app/api/version/route.js.nft.json +1 -0
  386. package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
  387. package/.next/server/app/api/workspace/activate/route/app-paths-manifest.json +3 -0
  388. package/.next/server/app/api/workspace/activate/route/build-manifest.json +9 -0
  389. package/.next/server/app/api/workspace/activate/route/server-reference-manifest.json +4 -0
  390. package/.next/server/app/api/workspace/activate/route.js +14 -0
  391. package/.next/server/app/api/workspace/activate/route.js.map +5 -0
  392. package/.next/server/app/api/workspace/activate/route.js.nft.json +1 -0
  393. package/.next/server/app/api/workspace/activate/route_client-reference-manifest.js +3 -0
  394. package/.next/server/app/api/workspace/route/app-paths-manifest.json +3 -0
  395. package/.next/server/app/api/workspace/route/build-manifest.json +9 -0
  396. package/.next/server/app/api/workspace/route/server-reference-manifest.json +4 -0
  397. package/.next/server/app/api/workspace/route.js +11 -0
  398. package/.next/server/app/api/workspace/route.js.map +5 -0
  399. package/.next/server/app/api/workspace/route.js.nft.json +1 -0
  400. package/.next/server/app/api/workspace/route_client-reference-manifest.js +3 -0
  401. package/.next/server/app/apple-icon.png/route/app-paths-manifest.json +3 -0
  402. package/.next/server/app/apple-icon.png/route/build-manifest.json +9 -0
  403. package/.next/server/app/apple-icon.png/route.js +8 -0
  404. package/.next/server/app/apple-icon.png/route.js.map +5 -0
  405. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -0
  406. package/.next/server/app/apple-icon.png.body +0 -0
  407. package/.next/server/app/apple-icon.png.meta +1 -0
  408. package/.next/server/app/help/page/app-paths-manifest.json +3 -0
  409. package/.next/server/app/help/page/build-manifest.json +17 -0
  410. package/.next/server/app/help/page/next-font-manifest.json +11 -0
  411. package/.next/server/app/help/page/react-loadable-manifest.json +1 -0
  412. package/.next/server/app/help/page/server-reference-manifest.json +4 -0
  413. package/.next/server/app/help/page.js +16 -0
  414. package/.next/server/app/help/page.js.map +5 -0
  415. package/.next/server/app/help/page.js.nft.json +1 -0
  416. package/.next/server/app/help/page_client-reference-manifest.js +3 -0
  417. package/.next/server/app/help.html +1 -0
  418. package/.next/server/app/help.meta +15 -0
  419. package/.next/server/app/help.rsc +36 -0
  420. package/.next/server/app/help.segments/_full.segment.rsc +36 -0
  421. package/.next/server/app/help.segments/_head.segment.rsc +6 -0
  422. package/.next/server/app/help.segments/_index.segment.rsc +13 -0
  423. package/.next/server/app/help.segments/_tree.segment.rsc +5 -0
  424. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +17 -0
  425. package/.next/server/app/help.segments/help.segment.rsc +5 -0
  426. package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  427. package/.next/server/app/icon.svg/route/build-manifest.json +9 -0
  428. package/.next/server/app/icon.svg/route.js +7 -0
  429. package/.next/server/app/icon.svg/route.js.map +5 -0
  430. package/.next/server/app/icon.svg/route.js.nft.json +1 -0
  431. package/.next/server/app/icon.svg.body +4 -0
  432. package/.next/server/app/icon.svg.meta +1 -0
  433. package/.next/server/app/index.html +1 -0
  434. package/.next/server/app/index.meta +14 -0
  435. package/.next/server/app/index.rsc +26 -0
  436. package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -0
  437. package/.next/server/app/index.segments/_full.segment.rsc +26 -0
  438. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  439. package/.next/server/app/index.segments/_index.segment.rsc +13 -0
  440. package/.next/server/app/index.segments/_tree.segment.rsc +6 -0
  441. package/.next/server/app/map/page/app-paths-manifest.json +3 -0
  442. package/.next/server/app/map/page/build-manifest.json +17 -0
  443. package/.next/server/app/map/page/next-font-manifest.json +11 -0
  444. package/.next/server/app/map/page/react-loadable-manifest.json +1 -0
  445. package/.next/server/app/map/page/server-reference-manifest.json +89 -0
  446. package/.next/server/app/map/page.js +25 -0
  447. package/.next/server/app/map/page.js.map +5 -0
  448. package/.next/server/app/map/page.js.nft.json +1 -0
  449. package/.next/server/app/map/page_client-reference-manifest.js +3 -0
  450. package/.next/server/app/page/app-paths-manifest.json +3 -0
  451. package/.next/server/app/page/build-manifest.json +17 -0
  452. package/.next/server/app/page/next-font-manifest.json +11 -0
  453. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  454. package/.next/server/app/page/server-reference-manifest.json +4 -0
  455. package/.next/server/app/page.js +16 -0
  456. package/.next/server/app/page.js.map +5 -0
  457. package/.next/server/app/page.js.nft.json +1 -0
  458. package/.next/server/app/page_client-reference-manifest.js +3 -0
  459. package/.next/server/app/plan/page/app-paths-manifest.json +3 -0
  460. package/.next/server/app/plan/page/build-manifest.json +17 -0
  461. package/.next/server/app/plan/page/next-font-manifest.json +11 -0
  462. package/.next/server/app/plan/page/react-loadable-manifest.json +1 -0
  463. package/.next/server/app/plan/page/server-reference-manifest.json +89 -0
  464. package/.next/server/app/plan/page.js +26 -0
  465. package/.next/server/app/plan/page.js.map +5 -0
  466. package/.next/server/app/plan/page.js.nft.json +1 -0
  467. package/.next/server/app/plan/page_client-reference-manifest.js +3 -0
  468. package/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  469. package/.next/server/app/settings/page/build-manifest.json +17 -0
  470. package/.next/server/app/settings/page/next-font-manifest.json +11 -0
  471. package/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  472. package/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  473. package/.next/server/app/settings/page.js +17 -0
  474. package/.next/server/app/settings/page.js.map +5 -0
  475. package/.next/server/app/settings/page.js.nft.json +1 -0
  476. package/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  477. package/.next/server/app-paths-manifest.json +59 -0
  478. package/.next/server/chunks/[externals]_@huggingface_transformers_05bd-zz._.js +3 -0
  479. package/.next/server/chunks/[externals]_@huggingface_transformers_05bd-zz._.js.map +1 -0
  480. package/.next/server/chunks/[externals]__1m_jh08._.js +3 -0
  481. package/.next/server/chunks/[externals]__1m_jh08._.js.map +1 -0
  482. package/.next/server/chunks/[externals]_next_dist_1081pat._.js +3 -0
  483. package/.next/server/chunks/[externals]_next_dist_1081pat._.js.map +1 -0
  484. package/.next/server/chunks/[root-of-the-server]__0--8e0y._.js +3 -0
  485. package/.next/server/chunks/[root-of-the-server]__0--8e0y._.js.map +1 -0
  486. package/.next/server/chunks/[root-of-the-server]__0-68r22._.js +3 -0
  487. package/.next/server/chunks/[root-of-the-server]__0-68r22._.js.map +1 -0
  488. package/.next/server/chunks/[root-of-the-server]__008acf8._.js +3 -0
  489. package/.next/server/chunks/[root-of-the-server]__008acf8._.js.map +1 -0
  490. package/.next/server/chunks/[root-of-the-server]__00rostp._.js +3 -0
  491. package/.next/server/chunks/[root-of-the-server]__00rostp._.js.map +1 -0
  492. package/.next/server/chunks/[root-of-the-server]__04deymo._.js +3 -0
  493. package/.next/server/chunks/[root-of-the-server]__04deymo._.js.map +1 -0
  494. package/.next/server/chunks/[root-of-the-server]__05_ckr9._.js +3 -0
  495. package/.next/server/chunks/[root-of-the-server]__05_ckr9._.js.map +1 -0
  496. package/.next/server/chunks/[root-of-the-server]__08b769e._.js +3 -0
  497. package/.next/server/chunks/[root-of-the-server]__08b769e._.js.map +1 -0
  498. package/.next/server/chunks/[root-of-the-server]__0935gge._.js +3 -0
  499. package/.next/server/chunks/[root-of-the-server]__0935gge._.js.map +1 -0
  500. package/.next/server/chunks/[root-of-the-server]__0b04f4n._.js +3 -0
  501. package/.next/server/chunks/[root-of-the-server]__0b04f4n._.js.map +1 -0
  502. package/.next/server/chunks/[root-of-the-server]__0bule95._.js +11 -0
  503. package/.next/server/chunks/[root-of-the-server]__0bule95._.js.map +1 -0
  504. package/.next/server/chunks/[root-of-the-server]__0dgnobj._.js +3 -0
  505. package/.next/server/chunks/[root-of-the-server]__0dgnobj._.js.map +1 -0
  506. package/.next/server/chunks/[root-of-the-server]__0fnoun8._.js +3 -0
  507. package/.next/server/chunks/[root-of-the-server]__0fnoun8._.js.map +1 -0
  508. package/.next/server/chunks/[root-of-the-server]__0gcvcx_._.js +3 -0
  509. package/.next/server/chunks/[root-of-the-server]__0gcvcx_._.js.map +1 -0
  510. package/.next/server/chunks/[root-of-the-server]__0gnu9c5._.js +11 -0
  511. package/.next/server/chunks/[root-of-the-server]__0gnu9c5._.js.map +1 -0
  512. package/.next/server/chunks/[root-of-the-server]__0imrhoi._.js +3 -0
  513. package/.next/server/chunks/[root-of-the-server]__0imrhoi._.js.map +1 -0
  514. package/.next/server/chunks/[root-of-the-server]__0iq9oau._.js +3 -0
  515. package/.next/server/chunks/[root-of-the-server]__0iq9oau._.js.map +1 -0
  516. package/.next/server/chunks/[root-of-the-server]__0k_e0ex._.js +3 -0
  517. package/.next/server/chunks/[root-of-the-server]__0k_e0ex._.js.map +1 -0
  518. package/.next/server/chunks/[root-of-the-server]__0kj4pte._.js +3 -0
  519. package/.next/server/chunks/[root-of-the-server]__0kj4pte._.js.map +1 -0
  520. package/.next/server/chunks/[root-of-the-server]__0muvnnv._.js +11 -0
  521. package/.next/server/chunks/[root-of-the-server]__0muvnnv._.js.map +1 -0
  522. package/.next/server/chunks/[root-of-the-server]__0olqs85._.js +3 -0
  523. package/.next/server/chunks/[root-of-the-server]__0olqs85._.js.map +1 -0
  524. package/.next/server/chunks/[root-of-the-server]__0r4ba8s._.js +3 -0
  525. package/.next/server/chunks/[root-of-the-server]__0r4ba8s._.js.map +1 -0
  526. package/.next/server/chunks/[root-of-the-server]__0sb_5m8._.js +20 -0
  527. package/.next/server/chunks/[root-of-the-server]__0sb_5m8._.js.map +1 -0
  528. package/.next/server/chunks/[root-of-the-server]__0y6kb2t._.js +3 -0
  529. package/.next/server/chunks/[root-of-the-server]__0y6kb2t._.js.map +1 -0
  530. package/.next/server/chunks/[root-of-the-server]__0zfwiuh._.js +11 -0
  531. package/.next/server/chunks/[root-of-the-server]__0zfwiuh._.js.map +1 -0
  532. package/.next/server/chunks/[root-of-the-server]__11037f1._.js +3 -0
  533. package/.next/server/chunks/[root-of-the-server]__11037f1._.js.map +1 -0
  534. package/.next/server/chunks/[root-of-the-server]__1197yfd._.js +3 -0
  535. package/.next/server/chunks/[root-of-the-server]__1197yfd._.js.map +1 -0
  536. package/.next/server/chunks/[root-of-the-server]__138pbmp._.js +3 -0
  537. package/.next/server/chunks/[root-of-the-server]__138pbmp._.js.map +1 -0
  538. package/.next/server/chunks/[root-of-the-server]__166th-t._.js +3 -0
  539. package/.next/server/chunks/[root-of-the-server]__166th-t._.js.map +1 -0
  540. package/.next/server/chunks/[root-of-the-server]__190_wb7._.js +3 -0
  541. package/.next/server/chunks/[root-of-the-server]__190_wb7._.js.map +1 -0
  542. package/.next/server/chunks/[root-of-the-server]__190zu98._.js +3 -0
  543. package/.next/server/chunks/[root-of-the-server]__190zu98._.js.map +1 -0
  544. package/.next/server/chunks/[root-of-the-server]__1_7ntsu._.js +3 -0
  545. package/.next/server/chunks/[root-of-the-server]__1_7ntsu._.js.map +1 -0
  546. package/.next/server/chunks/[root-of-the-server]__1bwqb44._.js +3 -0
  547. package/.next/server/chunks/[root-of-the-server]__1bwqb44._.js.map +1 -0
  548. package/.next/server/chunks/[root-of-the-server]__1d6w22k._.js +3 -0
  549. package/.next/server/chunks/[root-of-the-server]__1d6w22k._.js.map +1 -0
  550. package/.next/server/chunks/[root-of-the-server]__1d9wmd_._.js +3 -0
  551. package/.next/server/chunks/[root-of-the-server]__1d9wmd_._.js.map +1 -0
  552. package/.next/server/chunks/[root-of-the-server]__1j25n4-._.js +5 -0
  553. package/.next/server/chunks/[root-of-the-server]__1j25n4-._.js.map +1 -0
  554. package/.next/server/chunks/[root-of-the-server]__1jtw_i1._.js +3 -0
  555. package/.next/server/chunks/[root-of-the-server]__1jtw_i1._.js.map +1 -0
  556. package/.next/server/chunks/[root-of-the-server]__1lv6sqm._.js +3 -0
  557. package/.next/server/chunks/[root-of-the-server]__1lv6sqm._.js.map +1 -0
  558. package/.next/server/chunks/[root-of-the-server]__1m2v05v._.js +3 -0
  559. package/.next/server/chunks/[root-of-the-server]__1m2v05v._.js.map +1 -0
  560. package/.next/server/chunks/[root-of-the-server]__1n-kcwj._.js +3 -0
  561. package/.next/server/chunks/[root-of-the-server]__1n-kcwj._.js.map +1 -0
  562. package/.next/server/chunks/[root-of-the-server]__1nn9crd._.js +3 -0
  563. package/.next/server/chunks/[root-of-the-server]__1nn9crd._.js.map +1 -0
  564. package/.next/server/chunks/[root-of-the-server]__1rimo-u._.js +3 -0
  565. package/.next/server/chunks/[root-of-the-server]__1rimo-u._.js.map +1 -0
  566. package/.next/server/chunks/[root-of-the-server]__1sb7b9b._.js +9 -0
  567. package/.next/server/chunks/[root-of-the-server]__1sb7b9b._.js.map +1 -0
  568. package/.next/server/chunks/[root-of-the-server]__1t2egm-._.js +9 -0
  569. package/.next/server/chunks/[root-of-the-server]__1t2egm-._.js.map +1 -0
  570. package/.next/server/chunks/[root-of-the-server]__1t3s3-y._.js +3 -0
  571. package/.next/server/chunks/[root-of-the-server]__1t3s3-y._.js.map +1 -0
  572. package/.next/server/chunks/[root-of-the-server]__1tab6-_._.js +3 -0
  573. package/.next/server/chunks/[root-of-the-server]__1tab6-_._.js.map +1 -0
  574. package/.next/server/chunks/[root-of-the-server]__1v3_x0a._.js +3 -0
  575. package/.next/server/chunks/[root-of-the-server]__1v3_x0a._.js.map +1 -0
  576. package/.next/server/chunks/[root-of-the-server]__1vq6_bb._.js +3 -0
  577. package/.next/server/chunks/[root-of-the-server]__1vq6_bb._.js.map +1 -0
  578. package/.next/server/chunks/[root-of-the-server]__1xfg6n4._.js +3 -0
  579. package/.next/server/chunks/[root-of-the-server]__1xfg6n4._.js.map +1 -0
  580. package/.next/server/chunks/[root-of-the-server]__1y_g68p._.js +3 -0
  581. package/.next/server/chunks/[root-of-the-server]__1y_g68p._.js.map +1 -0
  582. package/.next/server/chunks/[turbopack]_runtime.js +903 -0
  583. package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
  584. package/.next/server/chunks/_0-k8r4o._.js +3 -0
  585. package/.next/server/chunks/_0-k8r4o._.js.map +1 -0
  586. package/.next/server/chunks/_00drqg3._.js +3 -0
  587. package/.next/server/chunks/_00drqg3._.js.map +1 -0
  588. package/.next/server/chunks/_04_hx58._.js +3 -0
  589. package/.next/server/chunks/_04_hx58._.js.map +1 -0
  590. package/.next/server/chunks/_0bj_zep._.js +3 -0
  591. package/.next/server/chunks/_0bj_zep._.js.map +1 -0
  592. package/.next/server/chunks/_0d9p87n._.js +3 -0
  593. package/.next/server/chunks/_0d9p87n._.js.map +1 -0
  594. package/.next/server/chunks/_0uzzk4s._.js +3 -0
  595. package/.next/server/chunks/_0uzzk4s._.js.map +1 -0
  596. package/.next/server/chunks/_0x--pb9._.js +3 -0
  597. package/.next/server/chunks/_0x--pb9._.js.map +1 -0
  598. package/.next/server/chunks/_1-006gs._.js +11 -0
  599. package/.next/server/chunks/_1-006gs._.js.map +1 -0
  600. package/.next/server/chunks/_1gmut2r._.js +3 -0
  601. package/.next/server/chunks/_1gmut2r._.js.map +1 -0
  602. package/.next/server/chunks/_1h7jba5._.js +3 -0
  603. package/.next/server/chunks/_1h7jba5._.js.map +1 -0
  604. package/.next/server/chunks/_1p13_nj._.js +3 -0
  605. package/.next/server/chunks/_1p13_nj._.js.map +1 -0
  606. package/.next/server/chunks/_1v92m46._.js +11 -0
  607. package/.next/server/chunks/_1v92m46._.js.map +1 -0
  608. package/.next/server/chunks/_next-internal_server_app_api_code-graph_position_route_actions_0ddmfq8.js +3 -0
  609. package/.next/server/chunks/_next-internal_server_app_api_code-graph_position_route_actions_0ddmfq8.js.map +1 -0
  610. package/.next/server/chunks/_next-internal_server_app_api_code-graph_route_actions_107oiy1.js +3 -0
  611. package/.next/server/chunks/_next-internal_server_app_api_code-graph_route_actions_107oiy1.js.map +1 -0
  612. package/.next/server/chunks/_next-internal_server_app_api_context_embed-backfill_route_actions_0fddf11.js +3 -0
  613. package/.next/server/chunks/_next-internal_server_app_api_context_embed-backfill_route_actions_0fddf11.js.map +1 -0
  614. package/.next/server/chunks/_next-internal_server_app_api_context_feature_route_actions_0g4_r0t.js +3 -0
  615. package/.next/server/chunks/_next-internal_server_app_api_context_feature_route_actions_0g4_r0t.js.map +1 -0
  616. package/.next/server/chunks/_next-internal_server_app_api_context_file_route_actions_1v15k33.js +3 -0
  617. package/.next/server/chunks/_next-internal_server_app_api_context_file_route_actions_1v15k33.js.map +1 -0
  618. package/.next/server/chunks/_next-internal_server_app_api_context_route_actions_066vuc0.js +3 -0
  619. package/.next/server/chunks/_next-internal_server_app_api_context_route_actions_066vuc0.js.map +1 -0
  620. package/.next/server/chunks/_next-internal_server_app_api_db_backfill-access_route_actions_0krkam5.js +3 -0
  621. package/.next/server/chunks/_next-internal_server_app_api_db_backfill-access_route_actions_0krkam5.js.map +1 -0
  622. package/.next/server/chunks/_next-internal_server_app_api_db_position_route_actions_0y81s5h.js +3 -0
  623. package/.next/server/chunks/_next-internal_server_app_api_db_position_route_actions_0y81s5h.js.map +1 -0
  624. package/.next/server/chunks/_next-internal_server_app_api_db_reconcile-endpoints_route_actions_11wjo3_.js +3 -0
  625. package/.next/server/chunks/_next-internal_server_app_api_db_reconcile-endpoints_route_actions_11wjo3_.js.map +1 -0
  626. package/.next/server/chunks/_next-internal_server_app_api_db_relations_[id]_route_actions_0ok7b-c.js +3 -0
  627. package/.next/server/chunks/_next-internal_server_app_api_db_relations_[id]_route_actions_0ok7b-c.js.map +1 -0
  628. package/.next/server/chunks/_next-internal_server_app_api_db_tables_[id]_route_actions_17b6_8p.js +3 -0
  629. package/.next/server/chunks/_next-internal_server_app_api_db_tables_[id]_route_actions_17b6_8p.js.map +1 -0
  630. package/.next/server/chunks/_next-internal_server_app_api_draft_approve_route_actions_12l1gql.js +3 -0
  631. package/.next/server/chunks/_next-internal_server_app_api_draft_approve_route_actions_12l1gql.js.map +1 -0
  632. package/.next/server/chunks/_next-internal_server_app_api_draft_route_actions_1y2euqt.js +3 -0
  633. package/.next/server/chunks/_next-internal_server_app_api_draft_route_actions_1y2euqt.js.map +1 -0
  634. package/.next/server/chunks/_next-internal_server_app_api_draft_status_route_actions_0imc7yr.js +3 -0
  635. package/.next/server/chunks/_next-internal_server_app_api_draft_status_route_actions_0imc7yr.js.map +1 -0
  636. package/.next/server/chunks/_next-internal_server_app_api_edges_[id]_route_actions_1rx28dy.js +3 -0
  637. package/.next/server/chunks/_next-internal_server_app_api_edges_[id]_route_actions_1rx28dy.js.map +1 -0
  638. package/.next/server/chunks/_next-internal_server_app_api_edges_route_actions_1i6-f0p.js +3 -0
  639. package/.next/server/chunks/_next-internal_server_app_api_edges_route_actions_1i6-f0p.js.map +1 -0
  640. package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_1hynl36.js +3 -0
  641. package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_1hynl36.js.map +1 -0
  642. package/.next/server/chunks/_next-internal_server_app_api_entities_route_actions_1jx0-vm.js +3 -0
  643. package/.next/server/chunks/_next-internal_server_app_api_entities_route_actions_1jx0-vm.js.map +1 -0
  644. package/.next/server/chunks/_next-internal_server_app_api_ingest_route_actions_1oz_9xc.js +3 -0
  645. package/.next/server/chunks/_next-internal_server_app_api_ingest_route_actions_1oz_9xc.js.map +1 -0
  646. package/.next/server/chunks/_next-internal_server_app_api_init_route_actions_00i08o0.js +3 -0
  647. package/.next/server/chunks/_next-internal_server_app_api_init_route_actions_00i08o0.js.map +1 -0
  648. package/.next/server/chunks/_next-internal_server_app_api_map_describe_route_actions_04m22-e.js +3 -0
  649. package/.next/server/chunks/_next-internal_server_app_api_map_describe_route_actions_04m22-e.js.map +1 -0
  650. package/.next/server/chunks/_next-internal_server_app_api_map_files_route_actions_1gsvfd9.js +3 -0
  651. package/.next/server/chunks/_next-internal_server_app_api_map_files_route_actions_1gsvfd9.js.map +1 -0
  652. package/.next/server/chunks/_next-internal_server_app_api_map_finish_route_actions_130bs5b.js +3 -0
  653. package/.next/server/chunks/_next-internal_server_app_api_map_finish_route_actions_130bs5b.js.map +1 -0
  654. package/.next/server/chunks/_next-internal_server_app_api_map_route_actions_1ylt-yg.js +3 -0
  655. package/.next/server/chunks/_next-internal_server_app_api_map_route_actions_1ylt-yg.js.map +1 -0
  656. package/.next/server/chunks/_next-internal_server_app_api_map_start_route_actions_1n4zdon.js +3 -0
  657. package/.next/server/chunks/_next-internal_server_app_api_map_start_route_actions_1n4zdon.js.map +1 -0
  658. package/.next/server/chunks/_next-internal_server_app_api_map_touch-active_route_actions_0wvoq-h.js +3 -0
  659. package/.next/server/chunks/_next-internal_server_app_api_map_touch-active_route_actions_0wvoq-h.js.map +1 -0
  660. package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_position_route_actions_0_695u2.js +3 -0
  661. package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_position_route_actions_0_695u2.js.map +1 -0
  662. package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_route_actions_017e_f3.js +3 -0
  663. package/.next/server/chunks/_next-internal_server_app_api_nodes_[id]_route_actions_017e_f3.js.map +1 -0
  664. package/.next/server/chunks/_next-internal_server_app_api_nodes_positions_route_actions_1pz3o9o.js +3 -0
  665. package/.next/server/chunks/_next-internal_server_app_api_nodes_positions_route_actions_1pz3o9o.js.map +1 -0
  666. package/.next/server/chunks/_next-internal_server_app_api_nodes_route_actions_0iuxxdu.js +3 -0
  667. package/.next/server/chunks/_next-internal_server_app_api_nodes_route_actions_0iuxxdu.js.map +1 -0
  668. package/.next/server/chunks/_next-internal_server_app_api_nodes_subtasks_route_actions_0uw715o.js +3 -0
  669. package/.next/server/chunks/_next-internal_server_app_api_nodes_subtasks_route_actions_0uw715o.js.map +1 -0
  670. package/.next/server/chunks/_next-internal_server_app_api_notes_[id]_route_actions_1kpl381.js +3 -0
  671. package/.next/server/chunks/_next-internal_server_app_api_notes_[id]_route_actions_1kpl381.js.map +1 -0
  672. package/.next/server/chunks/_next-internal_server_app_api_notes_route_actions_0mm_p_3.js +3 -0
  673. package/.next/server/chunks/_next-internal_server_app_api_notes_route_actions_0mm_p_3.js.map +1 -0
  674. package/.next/server/chunks/_next-internal_server_app_api_open_route_actions_1x77eq1.js +3 -0
  675. package/.next/server/chunks/_next-internal_server_app_api_open_route_actions_1x77eq1.js.map +1 -0
  676. package/.next/server/chunks/_next-internal_server_app_api_plan_annotations_route_actions_11aui44.js +3 -0
  677. package/.next/server/chunks/_next-internal_server_app_api_plan_annotations_route_actions_11aui44.js.map +1 -0
  678. package/.next/server/chunks/_next-internal_server_app_api_plan_approve_route_actions_06jkmnf.js +3 -0
  679. package/.next/server/chunks/_next-internal_server_app_api_plan_approve_route_actions_06jkmnf.js.map +1 -0
  680. package/.next/server/chunks/_next-internal_server_app_api_plan_history_route_actions_17hqx0m.js +3 -0
  681. package/.next/server/chunks/_next-internal_server_app_api_plan_history_route_actions_17hqx0m.js.map +1 -0
  682. package/.next/server/chunks/_next-internal_server_app_api_plan_markdown_route_actions_1qb1-9r.js +3 -0
  683. package/.next/server/chunks/_next-internal_server_app_api_plan_markdown_route_actions_1qb1-9r.js.map +1 -0
  684. package/.next/server/chunks/_next-internal_server_app_api_plan_presence_route_actions_1r91k5c.js +3 -0
  685. package/.next/server/chunks/_next-internal_server_app_api_plan_presence_route_actions_1r91k5c.js.map +1 -0
  686. package/.next/server/chunks/_next-internal_server_app_api_plan_route_actions_1_nzr8r.js +3 -0
  687. package/.next/server/chunks/_next-internal_server_app_api_plan_route_actions_1_nzr8r.js.map +1 -0
  688. package/.next/server/chunks/_next-internal_server_app_api_plan_verdict_route_actions_10xm0j8.js +3 -0
  689. package/.next/server/chunks/_next-internal_server_app_api_plan_verdict_route_actions_10xm0j8.js.map +1 -0
  690. package/.next/server/chunks/_next-internal_server_app_api_preferences_route_actions_14__a0r.js +3 -0
  691. package/.next/server/chunks/_next-internal_server_app_api_preferences_route_actions_14__a0r.js.map +1 -0
  692. package/.next/server/chunks/_next-internal_server_app_api_reset_route_actions_1tcp2ms.js +3 -0
  693. package/.next/server/chunks/_next-internal_server_app_api_reset_route_actions_1tcp2ms.js.map +1 -0
  694. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +3 -0
  695. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js.map +1 -0
  696. package/.next/server/chunks/_next-internal_server_app_api_stream_route_actions_0oy6g75.js +3 -0
  697. package/.next/server/chunks/_next-internal_server_app_api_stream_route_actions_0oy6g75.js.map +1 -0
  698. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js +3 -0
  699. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js.map +1 -0
  700. package/.next/server/chunks/_next-internal_server_app_api_workspace_activate_route_actions_1hv2y82.js +3 -0
  701. package/.next/server/chunks/_next-internal_server_app_api_workspace_activate_route_actions_1hv2y82.js.map +1 -0
  702. package/.next/server/chunks/_next-internal_server_app_api_workspace_route_actions_19-xkal.js +3 -0
  703. package/.next/server/chunks/_next-internal_server_app_api_workspace_route_actions_19-xkal.js.map +1 -0
  704. package/.next/server/chunks/_next-internal_server_app_apple-icon_png_route_actions_0jcl8au.js +3 -0
  705. package/.next/server/chunks/_next-internal_server_app_apple-icon_png_route_actions_0jcl8au.js.map +1 -0
  706. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +3 -0
  707. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +1 -0
  708. package/.next/server/chunks/instrumentation_ts_1oq3o45._.js +3 -0
  709. package/.next/server/chunks/instrumentation_ts_1oq3o45._.js.map +1 -0
  710. package/.next/server/chunks/lib_04zrdtl._.js +3 -0
  711. package/.next/server/chunks/lib_04zrdtl._.js.map +1 -0
  712. package/.next/server/chunks/lib_0rad2y6._.js +3 -0
  713. package/.next/server/chunks/lib_0rad2y6._.js.map +1 -0
  714. package/.next/server/chunks/lib_10tibe8._.js +7 -0
  715. package/.next/server/chunks/lib_10tibe8._.js.map +1 -0
  716. package/.next/server/chunks/lib_1upr0dj._.js +3 -0
  717. package/.next/server/chunks/lib_1upr0dj._.js.map +1 -0
  718. package/.next/server/chunks/lib_1wz-3od._.js +3 -0
  719. package/.next/server/chunks/lib_1wz-3od._.js.map +1 -0
  720. package/.next/server/chunks/lib_1xzwro7._.js +3 -0
  721. package/.next/server/chunks/lib_1xzwro7._.js.map +1 -0
  722. package/.next/server/chunks/lib_db_ts_0h_yn5m._.js +3 -0
  723. package/.next/server/chunks/lib_db_ts_0h_yn5m._.js.map +1 -0
  724. package/.next/server/chunks/lib_drizzle_provision_ts_1po9dyo._.js +3 -0
  725. package/.next/server/chunks/lib_drizzle_provision_ts_1po9dyo._.js.map +1 -0
  726. package/.next/server/chunks/lib_drizzle_schema_ts_0ixydnz._.js +3 -0
  727. package/.next/server/chunks/lib_drizzle_schema_ts_0ixydnz._.js.map +1 -0
  728. package/.next/server/chunks/lib_roadmap-force-layout_ts_0e5r3g2._.js +3 -0
  729. package/.next/server/chunks/lib_roadmap-force-layout_ts_0e5r3g2._.js.map +1 -0
  730. package/.next/server/chunks/node_modules_drizzle-orm_05n3ooz._.js +3 -0
  731. package/.next/server/chunks/node_modules_drizzle-orm_05n3ooz._.js.map +1 -0
  732. package/.next/server/chunks/node_modules_drizzle-orm_0cht0an._.js +3 -0
  733. package/.next/server/chunks/node_modules_drizzle-orm_0cht0an._.js.map +1 -0
  734. package/.next/server/chunks/node_modules_drizzle-orm_0ma7f2e._.js +4 -0
  735. package/.next/server/chunks/node_modules_drizzle-orm_0ma7f2e._.js.map +1 -0
  736. package/.next/server/chunks/node_modules_drizzle-orm_0q0hg2u._.js +4 -0
  737. package/.next/server/chunks/node_modules_drizzle-orm_0q0hg2u._.js.map +1 -0
  738. package/.next/server/chunks/node_modules_drizzle-orm_0rs3wbv._.js +3 -0
  739. package/.next/server/chunks/node_modules_drizzle-orm_0rs3wbv._.js.map +1 -0
  740. package/.next/server/chunks/node_modules_drizzle-orm_index_1qnscv7.js +3 -0
  741. package/.next/server/chunks/node_modules_drizzle-orm_index_1qnscv7.js.map +1 -0
  742. package/.next/server/chunks/node_modules_drizzle-orm_libsql_0yabams._.js +15 -0
  743. package/.next/server/chunks/node_modules_drizzle-orm_libsql_0yabams._.js.map +1 -0
  744. package/.next/server/chunks/node_modules_next_08s853w._.js +13 -0
  745. package/.next/server/chunks/node_modules_next_08s853w._.js.map +1 -0
  746. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0qz67ql.js +3 -0
  747. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0qz67ql.js.map +1 -0
  748. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +64 -0
  749. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js.map +1 -0
  750. package/.next/server/chunks/ssr/[externals]_@huggingface_transformers_05bd-zz._.js +3 -0
  751. package/.next/server/chunks/ssr/[externals]_@huggingface_transformers_05bd-zz._.js.map +1 -0
  752. package/.next/server/chunks/ssr/[root-of-the-server]__00vz2sw._.js +3 -0
  753. package/.next/server/chunks/ssr/[root-of-the-server]__00vz2sw._.js.map +1 -0
  754. package/.next/server/chunks/ssr/[root-of-the-server]__07b655z._.js +3 -0
  755. package/.next/server/chunks/ssr/[root-of-the-server]__07b655z._.js.map +1 -0
  756. package/.next/server/chunks/ssr/[root-of-the-server]__0dr0a32._.js +3 -0
  757. package/.next/server/chunks/ssr/[root-of-the-server]__0dr0a32._.js.map +1 -0
  758. package/.next/server/chunks/ssr/[root-of-the-server]__0jx25ik._.js +3 -0
  759. package/.next/server/chunks/ssr/[root-of-the-server]__0jx25ik._.js.map +1 -0
  760. package/.next/server/chunks/ssr/[root-of-the-server]__0nqskgw._.js +19 -0
  761. package/.next/server/chunks/ssr/[root-of-the-server]__0nqskgw._.js.map +1 -0
  762. package/.next/server/chunks/ssr/[root-of-the-server]__0pkeb0m._.js +9 -0
  763. package/.next/server/chunks/ssr/[root-of-the-server]__0pkeb0m._.js.map +1 -0
  764. package/.next/server/chunks/ssr/[root-of-the-server]__0s74gvr._.js +3 -0
  765. package/.next/server/chunks/ssr/[root-of-the-server]__0s74gvr._.js.map +1 -0
  766. package/.next/server/chunks/ssr/[root-of-the-server]__0v7a-e-._.js +3 -0
  767. package/.next/server/chunks/ssr/[root-of-the-server]__0v7a-e-._.js.map +1 -0
  768. package/.next/server/chunks/ssr/[root-of-the-server]__0x4-71n._.js +3 -0
  769. package/.next/server/chunks/ssr/[root-of-the-server]__0x4-71n._.js.map +1 -0
  770. package/.next/server/chunks/ssr/[root-of-the-server]__0xqf488._.js +3 -0
  771. package/.next/server/chunks/ssr/[root-of-the-server]__0xqf488._.js.map +1 -0
  772. package/.next/server/chunks/ssr/[root-of-the-server]__0y_88xg._.js +33 -0
  773. package/.next/server/chunks/ssr/[root-of-the-server]__0y_88xg._.js.map +1 -0
  774. package/.next/server/chunks/ssr/[root-of-the-server]__1-yyv5l._.js +3 -0
  775. package/.next/server/chunks/ssr/[root-of-the-server]__1-yyv5l._.js.map +1 -0
  776. package/.next/server/chunks/ssr/[root-of-the-server]__1366qju._.js +3 -0
  777. package/.next/server/chunks/ssr/[root-of-the-server]__1366qju._.js.map +1 -0
  778. package/.next/server/chunks/ssr/[root-of-the-server]__1_ustu7._.js +3 -0
  779. package/.next/server/chunks/ssr/[root-of-the-server]__1_ustu7._.js.map +1 -0
  780. package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +33 -0
  781. package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +1 -0
  782. package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
  783. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
  784. package/.next/server/chunks/ssr/_0eabx1f._.js +3 -0
  785. package/.next/server/chunks/ssr/_0eabx1f._.js.map +1 -0
  786. package/.next/server/chunks/ssr/_0ni84yi._.js +3 -0
  787. package/.next/server/chunks/ssr/_0ni84yi._.js.map +1 -0
  788. package/.next/server/chunks/ssr/_0pgw716._.js +67 -0
  789. package/.next/server/chunks/ssr/_0pgw716._.js.map +1 -0
  790. package/.next/server/chunks/ssr/_0r84jcg._.js +6 -0
  791. package/.next/server/chunks/ssr/_0r84jcg._.js.map +1 -0
  792. package/.next/server/chunks/ssr/_15if8ma._.js +3 -0
  793. package/.next/server/chunks/ssr/_15if8ma._.js.map +1 -0
  794. package/.next/server/chunks/ssr/_176djsq._.js +4 -0
  795. package/.next/server/chunks/ssr/_176djsq._.js.map +1 -0
  796. package/.next/server/chunks/ssr/_179xsho._.js +3 -0
  797. package/.next/server/chunks/ssr/_179xsho._.js.map +1 -0
  798. package/.next/server/chunks/ssr/_1_n8arv._.js +3 -0
  799. package/.next/server/chunks/ssr/_1_n8arv._.js.map +1 -0
  800. package/.next/server/chunks/ssr/_1suxp_q._.js +3 -0
  801. package/.next/server/chunks/ssr/_1suxp_q._.js.map +1 -0
  802. package/.next/server/chunks/ssr/_1vt70iy._.js +18 -0
  803. package/.next/server/chunks/ssr/_1vt70iy._.js.map +1 -0
  804. package/.next/server/chunks/ssr/_1w2komx._.js +3 -0
  805. package/.next/server/chunks/ssr/_1w2komx._.js.map +1 -0
  806. package/.next/server/chunks/ssr/_1w73gpg._.js +4 -0
  807. package/.next/server/chunks/ssr/_1w73gpg._.js.map +1 -0
  808. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
  809. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +1 -0
  810. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
  811. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +1 -0
  812. package/.next/server/chunks/ssr/_next-internal_server_app_help_page_actions_04daq_g.js +3 -0
  813. package/.next/server/chunks/ssr/_next-internal_server_app_help_page_actions_04daq_g.js.map +1 -0
  814. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
  815. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js.map +1 -0
  816. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js +3 -0
  817. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js.map +1 -0
  818. package/.next/server/chunks/ssr/components_1wolv70._.js +157 -0
  819. package/.next/server/chunks/ssr/components_1wolv70._.js.map +1 -0
  820. package/.next/server/chunks/ssr/components_graph_files-map-client_tsx_10bha9z._.js +3 -0
  821. package/.next/server/chunks/ssr/components_graph_files-map-client_tsx_10bha9z._.js.map +1 -0
  822. package/.next/server/chunks/ssr/components_landing_landing_tsx_1_9k5z7._.js +3 -0
  823. package/.next/server/chunks/ssr/components_landing_landing_tsx_1_9k5z7._.js.map +1 -0
  824. package/.next/server/chunks/ssr/components_plan_plan-workspace_tsx_0t1topu._.js +3 -0
  825. package/.next/server/chunks/ssr/components_plan_plan-workspace_tsx_0t1topu._.js.map +1 -0
  826. package/.next/server/chunks/ssr/lib_13g58ln._.js +3 -0
  827. package/.next/server/chunks/ssr/lib_13g58ln._.js.map +1 -0
  828. package/.next/server/chunks/ssr/lib_db_ts_0bo045t._.js +3 -0
  829. package/.next/server/chunks/ssr/lib_db_ts_0bo045t._.js.map +1 -0
  830. package/.next/server/chunks/ssr/lib_drizzle_schema_ts_0oz5uob._.js +3 -0
  831. package/.next/server/chunks/ssr/lib_drizzle_schema_ts_0oz5uob._.js.map +1 -0
  832. package/.next/server/chunks/ssr/node_modules_0h91jdk._.js +33 -0
  833. package/.next/server/chunks/ssr/node_modules_0h91jdk._.js.map +1 -0
  834. package/.next/server/chunks/ssr/node_modules_0vtauab._.js +3 -0
  835. package/.next/server/chunks/ssr/node_modules_0vtauab._.js.map +1 -0
  836. package/.next/server/chunks/ssr/node_modules_drizzle-orm_0txo559._.js +4 -0
  837. package/.next/server/chunks/ssr/node_modules_drizzle-orm_0txo559._.js.map +1 -0
  838. package/.next/server/chunks/ssr/node_modules_drizzle-orm_1d7zgzr._.js +4 -0
  839. package/.next/server/chunks/ssr/node_modules_drizzle-orm_1d7zgzr._.js.map +1 -0
  840. package/.next/server/chunks/ssr/node_modules_drizzle-orm_1zqkwdy._.js +3 -0
  841. package/.next/server/chunks/ssr/node_modules_drizzle-orm_1zqkwdy._.js.map +1 -0
  842. package/.next/server/chunks/ssr/node_modules_drizzle-orm_202ujxv._.js +3 -0
  843. package/.next/server/chunks/ssr/node_modules_drizzle-orm_202ujxv._.js.map +1 -0
  844. package/.next/server/chunks/ssr/node_modules_drizzle-orm_index_0ji3_g8.js +3 -0
  845. package/.next/server/chunks/ssr/node_modules_drizzle-orm_index_0ji3_g8.js.map +1 -0
  846. package/.next/server/chunks/ssr/node_modules_drizzle-orm_libsql_06opikx._.js +15 -0
  847. package/.next/server/chunks/ssr/node_modules_drizzle-orm_libsql_06opikx._.js.map +1 -0
  848. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_shield-check_mjs_1cccgdy._.js +3 -0
  849. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_shield-check_mjs_1cccgdy._.js.map +1 -0
  850. package/.next/server/chunks/ssr/node_modules_next_dist_0890nbp._.js +3 -0
  851. package/.next/server/chunks/ssr/node_modules_next_dist_0890nbp._.js.map +1 -0
  852. package/.next/server/chunks/ssr/node_modules_next_dist_0airgni._.js +3 -0
  853. package/.next/server/chunks/ssr/node_modules_next_dist_0airgni._.js.map +1 -0
  854. package/.next/server/chunks/ssr/node_modules_next_dist_0alesp5._.js +3 -0
  855. package/.next/server/chunks/ssr/node_modules_next_dist_0alesp5._.js.map +1 -0
  856. package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +6 -0
  857. package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +1 -0
  858. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
  859. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +1 -0
  860. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
  861. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +1 -0
  862. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +3 -0
  863. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +1 -0
  864. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
  865. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +1 -0
  866. package/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwh.js +3 -0
  867. package/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwh.js.map +1 -0
  868. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d7qbqa.js +4 -0
  869. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d7qbqa.js.map +1 -0
  870. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s87tpk.js +4 -0
  871. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0s87tpk.js.map +1 -0
  872. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_114qdo2.js +4 -0
  873. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_114qdo2.js.map +1 -0
  874. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +4 -0
  875. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +1 -0
  876. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_kztz.js +4 -0
  877. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_kztz.js.map +1 -0
  878. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19qzf81.js +4 -0
  879. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19qzf81.js.map +1 -0
  880. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wge0av.js +4 -0
  881. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wge0av.js.map +1 -0
  882. package/.next/server/edge/chunks/_0o_tvsk._.js +3 -0
  883. package/.next/server/edge/chunks/_0o_tvsk._.js.map +1 -0
  884. package/.next/server/edge/chunks/node_modules_next_dist_esm_build_templates_edge-wrapper_1ipl-lx.js.map +1 -0
  885. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1ipl-lx.js +3 -0
  886. package/.next/server/functions-config-manifest.json +14 -0
  887. package/.next/server/instrumentation/middleware-manifest.json +12 -0
  888. package/.next/server/instrumentation.js +4 -0
  889. package/.next/server/instrumentation.js.map +5 -0
  890. package/.next/server/instrumentation.js.nft.json +1 -0
  891. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  892. package/.next/server/middleware/middleware-manifest.json +6 -0
  893. package/.next/server/middleware-build-manifest.js +21 -0
  894. package/.next/server/middleware-manifest.json +6 -0
  895. package/.next/server/middleware.js +5 -0
  896. package/.next/server/middleware.js.map +5 -0
  897. package/.next/server/middleware.js.nft.json +1 -0
  898. package/.next/server/next-font-manifest.js +1 -0
  899. package/.next/server/next-font-manifest.json +31 -0
  900. package/.next/server/pages/404.html +1 -0
  901. package/.next/server/pages/500.html +1 -0
  902. package/.next/server/pages-manifest.json +4 -0
  903. package/.next/server/prefetch-hints.json +1 -0
  904. package/.next/server/server-reference-manifest.js +1 -0
  905. package/.next/server/server-reference-manifest.json +132 -0
  906. package/.next/static/_wmO3ZSrpuwty88NNlnrH/_buildManifest.js +11 -0
  907. package/.next/static/_wmO3ZSrpuwty88NNlnrH/_clientMiddlewareManifest.js +6 -0
  908. package/.next/static/_wmO3ZSrpuwty88NNlnrH/_ssgManifest.js +1 -0
  909. package/.next/static/chunks/01dkdyukbdpqq.js +31 -0
  910. package/.next/static/chunks/05-c3ty_6dwfk.js +1 -0
  911. package/.next/static/chunks/07u_h6i539_wj.js +2 -0
  912. package/.next/static/chunks/09wlenlnsbkl7.js +2 -0
  913. package/.next/static/chunks/0_9p121-4am0a.js +1 -0
  914. package/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  915. package/.next/static/chunks/19cl65vz3pos0.js +1 -0
  916. package/.next/static/chunks/19hoowcssv0w1.css +1 -0
  917. package/.next/static/chunks/1bk_i_akra521.css +2 -0
  918. package/.next/static/chunks/1pp98vred9isg.js +1 -0
  919. package/.next/static/chunks/2-t6-hz_de2nr.js +155 -0
  920. package/.next/static/chunks/203o948823s96.css +1 -0
  921. package/.next/static/chunks/245vq4i7_x7tm.js +1 -0
  922. package/.next/static/chunks/27jktro2p5rq9.js +4 -0
  923. package/.next/static/chunks/2hpdskhtooxl4.js +1 -0
  924. package/.next/static/chunks/368etk_9oovhj.js +1 -0
  925. package/.next/static/chunks/3n7dm2ojtyzwn.js +1 -0
  926. package/.next/static/chunks/3oc95d6bep78a.css +1 -0
  927. package/.next/static/chunks/3qp8f4catg9zw.js +2 -0
  928. package/.next/static/chunks/3ywpldblg905c.js +1 -0
  929. package/.next/static/chunks/4397avi9yar6d.js +1 -0
  930. package/.next/static/chunks/44_nvrzzjs0pv.js +1 -0
  931. package/.next/static/chunks/turbopack-0rldyqi2kcq2j.js +1 -0
  932. package/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 +0 -0
  933. package/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 +0 -0
  934. package/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 +0 -0
  935. package/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 +0 -0
  936. package/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 +0 -0
  937. package/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 +0 -0
  938. package/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 +0 -0
  939. package/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 +0 -0
  940. package/.next/static/media/apple-icon.0qbqv4vpdxdo0.png +0 -0
  941. package/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 +0 -0
  942. package/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 +0 -0
  943. package/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 +0 -0
  944. package/.next/static/media/icon.23_qbw6oy1xqy.svg +4 -0
  945. package/.next/trace +2 -0
  946. package/.next/trace-build +1 -0
  947. package/.next/turbopack +0 -0
  948. package/.next/types/cache-life.d.ts +145 -0
  949. package/.next/types/routes.d.ts +124 -0
  950. package/.next/types/validator.ts +538 -0
  951. package/README.md +94 -0
  952. package/dist/bin/beacon.js +10 -0
  953. package/dist/bin/doctor.js +227 -0
  954. package/dist/bin/hook.js +225 -0
  955. package/dist/bin/mcp.js +247 -0
  956. package/dist/bin/plan.js +228 -0
  957. package/dist/bin/prompt.js +4 -0
  958. package/dist/bin/stop-hook.js +5 -0
  959. package/dist/bin/uninstall.js +228 -0
  960. package/dist/lib/assets.js +192 -0
  961. package/dist/lib/global-install.js +224 -0
  962. package/dist/lib/workspaces.js +2 -0
  963. package/drizzle/0000_bitter_network.sql +230 -0
  964. package/drizzle/meta/0000_snapshot.json +1589 -0
  965. package/drizzle/meta/_journal.json +13 -0
  966. package/next.config.ts +15 -0
  967. package/package.json +90 -0
  968. package/public/brand/beacon-apple.svg +30 -0
  969. package/public/brand/beacon-glyph-128.png +0 -0
  970. package/public/brand/beacon-glyph-512.png +0 -0
  971. package/public/brand/beacon-glyph-mono-128.png +0 -0
  972. package/public/brand/beacon-glyph-mono-512.png +0 -0
  973. package/public/brand/beacon-glyph-mono.svg +4 -0
  974. package/public/brand/beacon-glyph.svg +21 -0
  975. package/public/brand/beacon-icon-1024.png +0 -0
  976. package/public/brand/beacon-icon-192.png +0 -0
  977. package/public/brand/beacon-icon-256.png +0 -0
  978. package/public/brand/beacon-icon-32.png +0 -0
  979. package/public/brand/beacon-icon-512.png +0 -0
  980. package/public/brand/beacon-icon-64.png +0 -0
  981. package/public/brand/beacon-icon-light-192.png +0 -0
  982. package/public/brand/beacon-icon-light-512.png +0 -0
  983. package/public/brand/beacon-icon-light.svg +31 -0
  984. package/public/brand/beacon-icon.svg +33 -0
  985. package/public/brand/beacon-wordmark-1200.png +0 -0
  986. package/public/brand/beacon-wordmark.svg +38 -0
  987. package/public/brand/favicon-16.png +0 -0
  988. package/public/brand/favicon-32.png +0 -0
  989. package/public/file.svg +1 -0
  990. package/public/globe.svg +1 -0
  991. package/public/install.sh +55 -0
  992. package/public/next.svg +1 -0
  993. package/public/vercel.svg +1 -0
  994. package/public/window.svg +1 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,n)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},60338,e=>{"use strict";var t=e.i(56325),n=e.i(44988),a=e.i(18899);e.s(["avg",0,function(e){return a.sql`avg(${e})`.mapWith(String)},"avgDistinct",0,function(e){return a.sql`avg(distinct ${e})`.mapWith(String)},"count",0,function(e){return a.sql`count(${e||a.sql.raw("*")})`.mapWith(Number)},"countDistinct",0,function(e){return a.sql`count(distinct ${e})`.mapWith(Number)},"max",0,function(e){return a.sql`max(${e})`.mapWith((0,n.is)(e,t.Column)?e:String)},"min",0,function(e){return a.sql`min(${e})`.mapWith((0,n.is)(e,t.Column)?e:String)},"sum",0,function(e){return a.sql`sum(${e})`.mapWith(String)},"sumDistinct",0,function(e){return a.sql`sum(distinct ${e})`.mapWith(String)}])},3723,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);function l(e){let t=Math.floor(e/12);return{x:-300-280*t,y:e%12*60}}async function s(e=r.db){let t=await e.query.endpoint.findMany({orderBy:(e,{asc:t,desc:n})=>[t(e.y),n(e.x),t(e.id)]});if(0===t.length)return 0;let n=0;for(let r=0;r<t.length;r++){let{x:o,y:s}=l(r),d=t[r];(d.x!==o||d.y!==s)&&(await e.update(i.endpoint).set({x:o,y:s}).where((0,a.eq)(i.endpoint.id,d.id)),n++)}return n}async function d(e=r.db){let[t,n]=await Promise.all([e.query.dbTable.findFirst({orderBy:(e,{desc:t})=>t(e.y)}),e.query.endpoint.findFirst({orderBy:(e,{desc:t})=>t(e.y)})]),a=Math.max(t?.y??0,n?.y??0);return a>0?a+280:0}[r]=o.then?(await o)():o,e.s(["computeDraftOriginY",0,d,"endpointsOverlap",0,function(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let a=e[t],r=e[n];if(a.x<r.x+240&&a.x+240>r.x&&a.y<r.y+50&&a.y+50>r.y)return!0}return!1},"gridPositionForEndpoint",0,l,"relayoutEndpoints",0,s]),n()}catch(e){n(e)}},!1),46409,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);async function l(e=r.db){let[t,n]=await Promise.all([e.query.endpoint.findMany({where:(e,{ne:t})=>t(e.source,"INTROSPECTION")}),e.query.endpoint.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION")})]),o={collapsed:0,mappings:[]};for(let r of t){let t=n.find(e=>(function(e,t){if(e.method.toUpperCase()!==t.method.toUpperCase())return!1;let n=e.path.replace(/\{[^}]*\}/g,"{}"),a=t.path.replace(/\{[^}]*\}/g,"{}");return a===n||a.endsWith(n)})(r,e));t&&(await e.delete(i.endpoint).where((0,a.eq)(i.endpoint.id,r.id)),o.collapsed++,o.mappings.push({planned:`${r.method} ${r.path}`,code:`${t.method} ${t.path}`}))}return o}[r]=o.then?(await o)():o,e.s(["reconcilePlannedEndpoints",0,l]),n()}catch(e){n(e)}},!1),96902,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);function l(e){return 36+30*Math.max(0,e)+16}function s(e,t=[]){let n=[,,,,].fill(0);for(let e of t){let t=Math.max(0,Math.min(3,Math.round(e.x/320))),a=e.y+l(e.columnCount)+50;a>n[t]&&(n[t]=a)}let a=new Map;for(let t of e){let e=0;for(let t=1;t<4;t++)n[t]<n[e]&&(e=t);let r=320*e,i=n[e];a.set(t.key,{x:r,y:i}),n[e]=i+l(t.columnCount)+50}return a}async function d(e=r.db){let t=await e.query.dbTable.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION"),with:{columns:{columns:{id:!0}}},orderBy:(e,{asc:t})=>t(e.name)});if(0===t.length)return 0;let n=s(t.map(e=>({key:e.id,columnCount:e.columns.length}))),o=0;for(let r of t){let t=n.get(r.id);t&&(Math.round(t.x)!==Math.round(r.x)||Math.round(t.y)!==Math.round(r.y))&&(await e.update(i.dbTable).set({x:t.x,y:t.y}).where((0,a.eq)(i.dbTable.id,r.id)),o++)}return o}[r]=o.then?(await o)():o,e.s(["estimateTableHeight",0,l,"packTablesMasonry",0,s,"relayoutTables",0,d,"tablesOverlap",0,function(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let a=e[t],r=e[n],i=l(a.columnCount),o=l(r.columnCount);if(a.x<r.x+300&&a.x+300>r.x&&a.y<r.y+o&&a.y+i>r.y)return!0}return!1}]),n()}catch(e){n(e)}},!1),6659,e=>e.a(async(t,n)=>{try{var a=e.i(69719),r=e.i(75225),i=e.i(60338),o=e.i(18899),l=e.i(91426),s=e.i(34700),d=e.i(3723),u=e.i(46409),c=e.i(96902),p=t([l,d,u,c]);[l,d,u,c]=p.then?(await p)():p;let f=a.z.object({tables:a.z.array(a.z.object({name:a.z.string().trim().min(1),domain:a.z.string().nullish(),description:a.z.string().nullish(),columns:a.z.array(a.z.object({name:a.z.string().trim().min(1),type:a.z.string().trim().min(1),isPk:a.z.boolean().optional(),isFk:a.z.boolean().optional(),nullable:a.z.boolean().optional(),note:a.z.string().nullish()})).default([])})).default([]),relations:a.z.array(a.z.object({fromTable:a.z.string(),fromColumn:a.z.string(),toTable:a.z.string(),toColumn:a.z.string(),label:a.z.string().nullish()})).default([]),endpoints:a.z.array(a.z.object({method:a.z.string().trim().min(1),path:a.z.string().trim().min(1),domain:a.z.string().nullish(),description:a.z.string().nullish(),uses:a.z.array(a.z.object({table:a.z.string(),access:a.z.string().default("read")})).default([])})).default([])});async function m(e=l.db){let t=await e.query.syncState.findFirst({where:(e,{eq:t})=>t(e.id,"singleton")});return t?.version??0}async function h(e=l.db){let[t]=await e.insert(s.syncState).values({id:"singleton",version:1}).onConflictDoUpdate({target:s.syncState.id,set:{version:o.sql`${s.syncState.version} + 1`}}).returning();return t.version}async function y(e,t=l.db){let n=f.parse(e),a=n.tables.map(e=>e.name);await t.delete(s.dbTable).where(a.length?(0,r.and)((0,r.eq)(s.dbTable.source,"INTROSPECTION"),(0,r.notInArray)(s.dbTable.name,a)):(0,r.eq)(s.dbTable.source,"INTROSPECTION"));let o=await t.query.dbTable.findMany({columns:{name:!0,x:!0,y:!0},with:{columns:{columns:{id:!0}}}}),p=new Map(o.map(e=>[e.name,e])),m=(0,c.packTablesMasonry)(n.tables.filter(e=>!p.has(e.name)).map(e=>({key:e.name,columnCount:e.columns.length})),o.map(e=>({x:e.x,y:e.y,columnCount:e.columns.length}))),b=new Map;for(let e of n.tables){let n=p.get(e.name),a=m.get(e.name),i=n?.x??a?.x??0,o=n?.y??a?.y??0,[l]=await t.insert(s.dbTable).values({name:e.name,domain:e.domain??null,description:e.description??null,source:"INTROSPECTION",x:i,y:o}).onConflictDoUpdate({target:s.dbTable.name,set:{domain:e.domain??null,description:e.description??null,source:"INTROSPECTION"}}).returning();b.set(e.name,l.id),await t.delete(s.dbColumn).where((0,r.eq)(s.dbColumn.tableId,l.id)),e.columns.length&&await t.insert(s.dbColumn).values(e.columns.map((e,t)=>({tableId:l.id,name:e.name,type:e.type,isPk:e.isPk??!1,isFk:e.isFk??!1,nullable:e.nullable??!0,note:e.note??null,ord:t})))}let g=[...b.values()];for(let e of(g.length&&await t.delete(s.dbRelation).where((0,r.or)((0,r.inArray)(s.dbRelation.fromTableId,g),(0,r.inArray)(s.dbRelation.toTableId,g))),n.relations)){let n=b.get(e.fromTable),a=b.get(e.toTable);n&&a&&await t.insert(s.dbRelation).values({fromTableId:n,toTableId:a,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label??`${e.fromColumn} → ${e.toTable}.${e.toColumn}`})}let w=new Set(n.endpoints.map(e=>`${e.method} ${e.path}`)),x=(await t.query.endpoint.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION")})).filter(e=>!w.has(`${e.method} ${e.path}`)).map(e=>e.id);x.length&&await t.delete(s.endpoint).where((0,r.inArray)(s.endpoint.id,x));let v=(await t.select({n:(0,i.count)()}).from(s.endpoint))[0].n;for(let e of n.endpoints){let n,a,i=await t.query.endpoint.findFirst({where:(t,{and:n,eq:a})=>n(a(t.method,e.method),a(t.path,e.path))});if(i)n=i.x,a=i.y;else{let e=(0,d.gridPositionForEndpoint)(v);n=e.x,a=e.y,v++}let[o]=await t.insert(s.endpoint).values({method:e.method,path:e.path,domain:e.domain??null,description:e.description??null,source:"INTROSPECTION",x:n,y:a}).onConflictDoUpdate({target:[s.endpoint.method,s.endpoint.path],set:{domain:e.domain??null,description:e.description??null,source:"INTROSPECTION"}}).returning();for(let n of(await t.delete(s.endpointTable).where((0,r.eq)(s.endpointTable.endpointId,o.id)),e.uses)){let e=b.get(n.table)??(await t.query.dbTable.findFirst({where:(e,{eq:t})=>t(e.name,n.table)}))?.id;e&&await t.insert(s.endpointTable).values({endpointId:o.id,tableId:e,access:n.access})}}await (0,u.reconcilePlannedEndpoints)(t);let T=await t.query.dbTable.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION"),columns:{x:!0,y:!0},with:{columns:{columns:{id:!0}}}});(0,c.tablesOverlap)(T.map(e=>({x:e.x,y:e.y,columnCount:e.columns.length})))&&await (0,c.relayoutTables)(t);let R=await t.select({x:s.endpoint.x,y:s.endpoint.y}).from(s.endpoint);(0,d.endpointsOverlap)(R)&&await (0,d.relayoutEndpoints)(t);let C=await h(t);return{tables:n.tables.length,relations:n.relations.length,endpoints:n.endpoints.length,version:C}}e.s(["bumpVersion",0,h,"getVersion",0,m,"ingestSnapshot",0,y,"snapshotSchema",0,f]),n()}catch(e){n(e)}},!1),89122,e=>{"use strict";var t=e.i(14859);e.s(["pinned",0,function(e){return async(n,...a)=>{let r=await (0,t.resolveRequestWorkspaceId)(n);return r&&await (0,t.ensureWorkspaceDb)(r),(0,t.runWithWorkspace)(r,async()=>e(n,...a))}}])},15918,e=>e.a(async(t,n)=>{try{var a=e.i(69719),r=e.i(75225),i=e.i(18899),o=e.i(91426),l=e.i(34700),s=e.i(6659),d=t([o,s]);[o,s]=d.then?(await d)():d;let h=a.z.object({title:a.z.string().max(200),body:a.z.string(),pinned:a.z.boolean(),ord:a.z.number()}).partial();async function u(){let[{max:e}]=await o.db.select({max:i.sql`max(${l.note.ord})`}).from(l.note),[t]=await o.db.insert(l.note).values({ord:(e??0)+1}).returning();return await (0,s.bumpVersion)(),t}async function c(){return o.db.query.note.findMany({orderBy:(e,{desc:t})=>[t(e.pinned),t(e.updatedAt)]})}async function p(e,t){let n=h.parse(t),[a]=await o.db.update(l.note).set(n).where((0,r.eq)(l.note.id,e)).returning();return void 0!==n.title&&await (0,s.bumpVersion)(),a}async function m(e){let[t]=await o.db.delete(l.note).where((0,r.eq)(l.note.id,e)).returning();return await (0,s.bumpVersion)(),t}e.s(["createNote",0,u,"deleteNote",0,m,"listNotes",0,c,"updateNote",0,p]),n()}catch(e){n(e)}},!1),31700,e=>e.a(async(t,n)=>{try{var a=e.i(15918),r=e.i(89122),i=t([a]);[a]=i.then?(await i)():i;let o=(0,r.pinned)(async()=>Response.json(await (0,a.listNotes)())),l=(0,r.pinned)(async()=>Response.json(await (0,a.createNote)()));e.s(["GET",0,o,"POST",0,l,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),68143,e=>e.a(async(t,n)=>{try{var a=e.i(47909),r=e.i(74017),i=e.i(96250),o=e.i(59756),l=e.i(61916),s=e.i(74677),d=e.i(69741),u=e.i(16795),c=e.i(87718),p=e.i(95169),m=e.i(47587),h=e.i(66012),y=e.i(70101),f=e.i(26937),b=e.i(10372),g=e.i(93695);e.i(20232);var w=e.i(220),x=e.i(31700),v=t([x]);[x]=v.then?(await v)():v;let R=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/notes/route",pathname:"/api/notes",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/notes/route.ts",nextConfigOutput:"",userland:x,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:E,serverHooks:q}=R;async function T(e,t,n){n.requestMeta&&(0,o.setRequestMeta)(e,n.requestMeta),R.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/notes/route";a=a.replace(/\/index$/,"")||"/";let i=await R.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,deploymentId:v,params:T,nextConfig:C,parsedUrl:E,isDraftMode:q,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:z}=i,A=(0,d.normalizeAppPath)(a),k=!!(N.dynamicRoutes[A]||N.routes[P]),$=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!q){let e=!!N.routes[P],t=N.dynamicRoutes[A];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await $();throw new g.NoFallbackError}}let j=null;!k||R.isDev||q||(j=P,j="/index"===j?"/":j);let _=!0===R.isDev||!k,D=k&&!_;z&&M&&(0,s.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:z});let U=e.method||"GET",F=(0,l.getTracer)(),H=F.getActiveScopeSpan(),W=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,o.getRequestMeta)(e,"minimalMode"),K=(0,o.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,C,N,B);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let V={params:T,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:_,incrementalCache:K,cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>R.onRequestError(e,t,a,r,I)},sharedContext:{buildId:x,deploymentId:v}},L=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let i,o=async e=>R.handle(X,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${U} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${U} ${a}`)}),s=async i=>{var l,s;let d=async({previousCacheEntry:r})=>{try{if(!B&&O&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let l=V.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let s=V.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(L,G,a,V.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,y.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[b.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,I),t}},u=await R.handleResponse({req:e,nextConfig:C,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:B});if(!k)return null;if((null==u||null==(l=u.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,y.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&k||c.delete(b.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(L,G,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};W&&H?await s(H):(i=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${a}`,kind:l.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},s),void 0,!W))}catch(t){if(t instanceof g.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,I),k)throw t;return await (0,h.sendResponse)(L,G,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:E})},"routeModule",0,R,"serverHooks",0,q,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,E]),n()}catch(e){n(e)}},!1),58502,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1t2egm-._.js"].map(t=>e.l(t))).then(()=>t(51514)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0imrhoi._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/src/sql/functions/aggregate.ts","../../../lib/endpoint-layout.ts","../../../lib/endpoint-reconcile.ts","../../../lib/table-layout.ts","../../../lib/ingest.ts","../../../lib/api-workspace.ts","../../../lib/notes.ts","../../../app/api/notes/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { type AnyColumn, Column } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\n/**\n * Returns the number of values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number employees with null values\n * db.select({ value: count() }).from(employees)\n * // Number of employees where `name` is not null\n * db.select({ value: count(employees.name) }).from(employees)\n * ```\n *\n * @see countDistinct to get the number of non-duplicate values in `expression`\n */\nexport function count(expression?: SQLWrapper): SQL<number> {\n\treturn sql`count(${expression || sql.raw('*')})`.mapWith(Number);\n}\n\n/**\n * Returns the number of non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number of employees where `name` is distinct\n * db.select({ value: countDistinct(employees.name) }).from(employees)\n * ```\n *\n * @see count to get the number of values in `expression`, including duplicates\n */\nexport function countDistinct(expression: SQLWrapper): SQL<number> {\n\treturn sql`count(distinct ${expression})`.mapWith(Number);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee\n * db.select({ value: avg(employees.salary) }).from(employees)\n * ```\n *\n * @see avgDistinct to get the average of all non-null and non-duplicate values in `expression`\n */\nexport function avg(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`avg(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee where `salary` is distinct\n * db.select({ value: avgDistinct(employees.salary) }).from(employees)\n * ```\n *\n * @see avg to get the average of all non-null values in `expression`, including duplicates\n */\nexport function avgDistinct(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`avg(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary\n * db.select({ value: sum(employees.salary) }).from(employees)\n * ```\n *\n * @see sumDistinct to get the sum of all non-null and non-duplicate values in `expression`\n */\nexport function sum(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`sum(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary where `salary` is distinct (no duplicates)\n * db.select({ value: sumDistinct(employees.salary) }).from(employees)\n * ```\n *\n * @see sum to get the sum of all non-null values in `expression`, including duplicates\n */\nexport function sumDistinct(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`sum(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the maximum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the highest salary\n * db.select({ value: max(employees.salary) }).from(employees)\n * ```\n */\nexport function max<T extends SQLWrapper>(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n\treturn sql`max(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n\n/**\n * Returns the minimum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the lowest salary\n * db.select({ value: min(employees.salary) }).from(employees)\n * ```\n */\nexport function min<T extends SQLWrapper>(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n\treturn sql`min(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n","import { count, eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { endpoint } from \"@/lib/drizzle/schema\";\n\n// Endpoints are uniform 240px-wide pill cards on /db, kept to the left of the table\n// gutter (negative x). The previous layout stacked every endpoint in one column at\n// y = i * 110, so a real backend like Beacon ended up with a 4000px-tall stack the\n// user had to scroll past. We now wrap into a multi-column grid that grows leftward,\n// so the canvas reads as a compact block instead of a fence.\n\nconst EP_ROW_HEIGHT = 60;\nconst EP_COL_WIDTH = 280;\nconst EP_BASE_X = -300; // closest column to the tables on the right\nconst EP_ROWS_PER_COL = 12;\nconst EP_CARD_WIDTH = 240;\nconst EP_CARD_HEIGHT = 50;\n\n/**\n * Bounding-box overlap check ingest uses to decide whether to self-heal the column.\n * Endpoint cards are uniform 240px wide × ~40px tall pills — anything overlapping\n * means an old single-column ingest left a stack behind, or two ingest runs collided.\n */\nexport function endpointsOverlap(\n eps: ReadonlyArray<{ x: number; y: number }>,\n): boolean {\n for (let i = 0; i < eps.length; i++) {\n for (let j = i + 1; j < eps.length; j++) {\n const a = eps[i];\n const b = eps[j];\n if (\n a.x < b.x + EP_CARD_WIDTH &&\n a.x + EP_CARD_WIDTH > b.x &&\n a.y < b.y + EP_CARD_HEIGHT &&\n a.y + EP_CARD_HEIGHT > b.y\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function gridPositionForEndpoint(index: number): { x: number; y: number } {\n const col = Math.floor(index / EP_ROWS_PER_COL);\n const row = index % EP_ROWS_PER_COL;\n return { x: EP_BASE_X - col * EP_COL_WIDTH, y: row * EP_ROW_HEIGHT };\n}\n\n/**\n * One-off repair: re-pack every endpoint into a clean grid. Stable order — sorts by\n * current (y, x) so the user's visual ordering carries over across the change, then by\n * id as a tiebreaker.\n */\nexport async function relayoutEndpoints(prisma: DB = db): Promise<number> {\n const eps = await prisma.query.endpoint.findMany({\n orderBy: (t, { asc, desc }) => [asc(t.y), desc(t.x), asc(t.id)],\n });\n if (eps.length === 0) return 0;\n let moved = 0;\n for (let i = 0; i < eps.length; i++) {\n const { x, y } = gridPositionForEndpoint(i);\n const e = eps[i];\n if (e.x === x && e.y === y) continue;\n await prisma.update(endpoint).set({ x, y }).where(eq(endpoint.id, e.id));\n moved++;\n }\n return moved;\n}\n\n/**\n * Where to drop the next NEW endpoint so it lands in the first unfilled grid slot.\n * Used by ingest to keep code-derived endpoints from re-stacking the old single column.\n */\nexport async function nextEndpointSlot(prisma: DB = db): Promise<{ x: number; y: number }> {\n const [{ n }] = await prisma.select({ n: count() }).from(endpoint);\n return gridPositionForEndpoint(n);\n}\n\n/**\n * Where to drop a freshly-proposed draft on the /db canvas so it doesn't land on top of\n * the existing tables/endpoints. Returns the largest y in use plus a margin, or 0 if the\n * canvas is empty.\n */\nconst DRAFT_MARGIN = 280;\nexport async function computeDraftOriginY(prisma: DB = db): Promise<number> {\n const [topTbl, topEp] = await Promise.all([\n prisma.query.dbTable.findFirst({ orderBy: (t, { desc }) => desc(t.y) }),\n prisma.query.endpoint.findFirst({ orderBy: (t, { desc }) => desc(t.y) }),\n ]);\n const maxY = Math.max(topTbl?.y ?? 0, topEp?.y ?? 0);\n return maxY > 0 ? maxY + DRAFT_MARGIN : 0;\n}\n","import { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { endpoint } from \"@/lib/drizzle/schema\";\n\n// Plans and code rarely share a path prefix: a feature designed as `/orgs` ships at\n// `/api/v1/orgs`. We collapse a planned (MANUAL) endpoint into its code-derived\n// (INTROSPECTION) twin when the verbs match and the code path ends with the planned path\n// on a segment boundary, ignoring path-param names.\n\nconst normalize = (path: string) => path.replace(/\\{[^}]*\\}/g, \"{}\");\n\nexport function isImplementedBy(\n planned: { method: string; path: string },\n code: { method: string; path: string },\n): boolean {\n if (planned.method.toUpperCase() !== code.method.toUpperCase()) return false;\n const p = normalize(planned.path);\n const c = normalize(code.path);\n // planned paths start with \"/\", so endsWith() already lands on a segment boundary.\n return c === p || c.endsWith(p);\n}\n\nexport interface ReconcileReport {\n collapsed: number;\n mappings: { planned: string; code: string }[];\n}\n\n/**\n * Deletes planned endpoints (anything not code-derived — drafts approved as MANUAL, init/\n * session scaffolds) once they have an INTROSPECTION twin, so the canvas shows reality\n * instead of duplicates. Unbuilt plans are left intact. Returns what was collapsed (also\n * surfaces the planned→code path discrepancy to the caller).\n */\nexport async function reconcilePlannedEndpoints(prisma: DB = db): Promise<ReconcileReport> {\n const [planned, code] = await Promise.all([\n prisma.query.endpoint.findMany({ where: (t, { ne }) => ne(t.source, \"INTROSPECTION\") }),\n prisma.query.endpoint.findMany({ where: (t, { eq }) => eq(t.source, \"INTROSPECTION\") }),\n ]);\n\n const report: ReconcileReport = { collapsed: 0, mappings: [] };\n for (const m of planned) {\n const twin = code.find((c) => isImplementedBy(m, c));\n if (!twin) continue;\n await prisma.delete(endpoint).where(eq(endpoint.id, m.id));\n report.collapsed++;\n report.mappings.push({ planned: `${m.method} ${m.path}`, code: `${twin.method} ${twin.path}` });\n }\n return report;\n}\n","import { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable } from \"@/lib/drizzle/schema\";\n\n// Layout constants for /db. Tables are 232px wide cards whose height is dominated by\n// their column count; the previous fixed grid (`y = floor(i/4) * 260`) silently stacked\n// tall tables on top of their neighbours. We pack into four columns masonry-style: each\n// column tracks its cumulative bottom and the next table goes into whichever column has\n// the most room. Same shape ingest seeds use, same shape `relayoutTables` uses to repair.\n\nexport const TABLE_COL_WIDTH = 320;\nexport const TABLE_COL_COUNT = 4;\nexport const TABLE_GAP_PX = 50;\nconst TABLE_HEADER_PX = 36;\nconst TABLE_ROW_PX = 30;\nconst TABLE_PADDING_PX = 16;\n\nexport function estimateTableHeight(columnCount: number): number {\n return TABLE_HEADER_PX + Math.max(0, columnCount) * TABLE_ROW_PX + TABLE_PADDING_PX;\n}\n\nexport interface NewTable {\n key: string;\n columnCount: number;\n}\nexport interface PlacedTable {\n x: number;\n y: number;\n columnCount: number;\n}\n\n/**\n * Assigns (x, y) to each `newTables` entry using a masonry pack across `TABLE_COL_COUNT`\n * columns, treating `existing` as already-occupied slots so we never land on top of a\n * persisted table. Returns a Map keyed by the entry's `key` (id or name — caller's choice).\n */\nexport function packTablesMasonry(\n newTables: NewTable[],\n existing: PlacedTable[] = [],\n): Map<string, { x: number; y: number }> {\n const bottoms = new Array<number>(TABLE_COL_COUNT).fill(0);\n for (const e of existing) {\n const col = Math.max(\n 0,\n Math.min(TABLE_COL_COUNT - 1, Math.round(e.x / TABLE_COL_WIDTH)),\n );\n const bottom = e.y + estimateTableHeight(e.columnCount) + TABLE_GAP_PX;\n if (bottom > bottoms[col]) bottoms[col] = bottom;\n }\n const out = new Map<string, { x: number; y: number }>();\n for (const t of newTables) {\n let col = 0;\n for (let i = 1; i < TABLE_COL_COUNT; i++) if (bottoms[i] < bottoms[col]) col = i;\n const x = col * TABLE_COL_WIDTH;\n const y = bottoms[col];\n out.set(t.key, { x, y });\n bottoms[col] = y + estimateTableHeight(t.columnCount) + TABLE_GAP_PX;\n }\n return out;\n}\n\n/**\n * Bounding-box overlap check used by ingest to decide whether to self-heal the layout.\n * Card width is `TABLE_COL_WIDTH - 20` (the visible card sits inside its column slot).\n */\nexport function tablesOverlap(\n placed: ReadonlyArray<{ x: number; y: number; columnCount: number }>,\n): boolean {\n const w = TABLE_COL_WIDTH - 20;\n for (let i = 0; i < placed.length; i++) {\n for (let j = i + 1; j < placed.length; j++) {\n const a = placed[i];\n const b = placed[j];\n const ah = estimateTableHeight(a.columnCount);\n const bh = estimateTableHeight(b.columnCount);\n if (a.x < b.x + w && a.x + w > b.x && a.y < b.y + bh && a.y + ah > b.y) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Self-heal for the /db canvas: re-packs all INTROSPECTION tables into a masonry\n * layout sized to each table's actual column count. Called automatically by ingest\n * when the post-upsert positions still overlap (a stale layout from before the\n * masonry formula, or a hand-placement that drifted into a neighbour). Manual\n * (non-introspection) tables keep their positions — they're drafts the user is\n * composing or hand-placed. Ordering by name keeps the result stable across re-syncs.\n */\nexport async function relayoutTables(prisma: DB = db): Promise<number> {\n const tables = await prisma.query.dbTable.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n with: { columns: { columns: { id: true } } },\n orderBy: (t, { asc }) => asc(t.name),\n });\n if (tables.length === 0) return 0;\n const positions = packTablesMasonry(\n tables.map((t) => ({ key: t.id, columnCount: t.columns.length })),\n );\n let moved = 0;\n for (const t of tables) {\n const p = positions.get(t.id);\n if (!p) continue;\n if (Math.round(p.x) === Math.round(t.x) && Math.round(p.y) === Math.round(t.y)) continue;\n await prisma.update(dbTable).set({ x: p.x, y: p.y }).where(eq(dbTable.id, t.id));\n moved++;\n }\n return moved;\n}\n","import { z } from \"zod\";\nimport { and, count, eq, inArray, notInArray, or, sql } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable, dbColumn, dbRelation, endpoint, endpointTable, syncState } from \"@/lib/drizzle/schema\";\nimport {\n endpointsOverlap,\n gridPositionForEndpoint,\n relayoutEndpoints,\n} from \"@/lib/endpoint-layout\";\nimport { reconcilePlannedEndpoints } from \"@/lib/endpoint-reconcile\";\nimport { packTablesMasonry, relayoutTables, tablesOverlap } from \"@/lib/table-layout\";\n\n// ── Snapshot contract (what the intel daemon POSTs) ─────────────────────────\n\nexport const snapshotSchema = z.object({\n tables: z\n .array(\n z.object({\n name: z.string().trim().min(1),\n domain: z.string().nullish(),\n description: z.string().nullish(),\n columns: z\n .array(\n z.object({\n name: z.string().trim().min(1),\n type: z.string().trim().min(1),\n isPk: z.boolean().optional(),\n isFk: z.boolean().optional(),\n nullable: z.boolean().optional(),\n note: z.string().nullish(),\n }),\n )\n .default([]),\n }),\n )\n .default([]),\n relations: z\n .array(\n z.object({\n fromTable: z.string(),\n fromColumn: z.string(),\n toTable: z.string(),\n toColumn: z.string(),\n label: z.string().nullish(),\n }),\n )\n .default([]),\n endpoints: z\n .array(\n z.object({\n method: z.string().trim().min(1),\n path: z.string().trim().min(1),\n domain: z.string().nullish(),\n description: z.string().nullish(),\n uses: z\n .array(\n z.object({\n table: z.string(),\n access: z.string().default(\"read\"),\n }),\n )\n .default([]),\n }),\n )\n .default([]),\n});\nexport type Snapshot = z.input<typeof snapshotSchema>;\n\ntype Prisma = DB;\n\nexport async function getVersion(prisma: Prisma = db): Promise<number> {\n const s = await prisma.query.syncState.findFirst({ where: (t, { eq }) => eq(t.id, \"singleton\") });\n return s?.version ?? 0;\n}\n\nexport async function bumpVersion(prisma: Prisma = db): Promise<number> {\n const [s] = await prisma\n .insert(syncState)\n .values({ id: \"singleton\", version: 1 })\n .onConflictDoUpdate({\n target: syncState.id,\n set: { version: sql`${syncState.version} + 1` },\n })\n .returning();\n return s.version;\n}\n\n/**\n * Upserts a code-derived snapshot. Full-replace of `source=INTROSPECTION`\n * entities: upsert by stable key (name / method+path) preserving manual x/y,\n * delete introspected entities absent from the snapshot. Manual entities and\n * the roadmap are never touched. Bumps the sync version.\n */\nexport async function ingestSnapshot(input: unknown, prisma: Prisma = db) {\n const snap = snapshotSchema.parse(input);\n\n // tables ----------------------------------------------------------------\n const keepTables = snap.tables.map((t) => t.name);\n await prisma\n .delete(dbTable)\n .where(\n keepTables.length\n ? and(eq(dbTable.source, \"INTROSPECTION\"), notInArray(dbTable.name, keepTables))\n : eq(dbTable.source, \"INTROSPECTION\"),\n );\n\n // Position NEW tables with a masonry pack sized to each table's column count, anchored\n // against whatever tables are already on the canvas. The old `(i%4)*320, floor(i/4)*260`\n // grid silently stacked tall tables (Node, DbColumn) on top of their neighbours.\n const allExisting = await prisma.query.dbTable.findMany({\n columns: { name: true, x: true, y: true },\n with: { columns: { columns: { id: true } } },\n });\n const existingByName = new Map(allExisting.map((t) => [t.name, t]));\n const newTablePositions = packTablesMasonry(\n snap.tables\n .filter((t) => !existingByName.has(t.name))\n .map((t) => ({ key: t.name, columnCount: t.columns.length })),\n allExisting.map((t) => ({ x: t.x, y: t.y, columnCount: t.columns.length })),\n );\n\n const tableIdByName = new Map<string, string>();\n for (const t of snap.tables) {\n const existing = existingByName.get(t.name);\n const pos = newTablePositions.get(t.name);\n const x = existing?.x ?? pos?.x ?? 0;\n const y = existing?.y ?? pos?.y ?? 0;\n const [saved] = await prisma\n .insert(dbTable)\n .values({\n name: t.name,\n domain: t.domain ?? null,\n description: t.description ?? null,\n source: \"INTROSPECTION\",\n x,\n y,\n })\n .onConflictDoUpdate({\n target: dbTable.name,\n set: {\n domain: t.domain ?? null,\n description: t.description ?? null,\n source: \"INTROSPECTION\",\n },\n })\n .returning();\n tableIdByName.set(t.name, saved.id);\n await prisma.delete(dbColumn).where(eq(dbColumn.tableId, saved.id));\n if (t.columns.length) {\n await prisma.insert(dbColumn).values(\n t.columns.map((c, i) => ({\n tableId: saved.id,\n name: c.name,\n type: c.type,\n isPk: c.isPk ?? false,\n isFk: c.isFk ?? false,\n nullable: c.nullable ?? true,\n note: c.note ?? null,\n ord: i,\n })),\n );\n }\n }\n\n // relations (rebuild those touching an introspected table) ---------------\n const introTableIds = [...tableIdByName.values()];\n if (introTableIds.length) {\n await prisma\n .delete(dbRelation)\n .where(\n or(\n inArray(dbRelation.fromTableId, introTableIds),\n inArray(dbRelation.toTableId, introTableIds),\n ),\n );\n }\n for (const r of snap.relations) {\n const fromId = tableIdByName.get(r.fromTable);\n const toId = tableIdByName.get(r.toTable);\n if (!fromId || !toId) continue;\n await prisma.insert(dbRelation).values({\n fromTableId: fromId,\n toTableId: toId,\n fromColumn: r.fromColumn,\n toColumn: r.toColumn,\n label: r.label ?? `${r.fromColumn} → ${r.toTable}.${r.toColumn}`,\n });\n }\n\n // endpoints --------------------------------------------------------------\n const keepEp = new Set(snap.endpoints.map((e) => `${e.method} ${e.path}`));\n const introEps = await prisma.query.endpoint.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n });\n const stale = introEps.filter((e) => !keepEp.has(`${e.method} ${e.path}`)).map((e) => e.id);\n if (stale.length) await prisma.delete(endpoint).where(inArray(endpoint.id, stale));\n\n // For NEW endpoints we drop into the next free slot of the multi-column grid (the\n // single-column stack made a real backend's endpoints into a 4000px-tall fence).\n let nextSlotIndex = (await prisma.select({ n: count() }).from(endpoint))[0].n;\n for (const e of snap.endpoints) {\n const existing = await prisma.query.endpoint.findFirst({\n where: (t, { and, eq }) => and(eq(t.method, e.method), eq(t.path, e.path)),\n });\n let x: number, y: number;\n if (existing) {\n x = existing.x;\n y = existing.y;\n } else {\n const slot = gridPositionForEndpoint(nextSlotIndex);\n x = slot.x;\n y = slot.y;\n nextSlotIndex++;\n }\n const [saved] = await prisma\n .insert(endpoint)\n .values({\n method: e.method,\n path: e.path,\n domain: e.domain ?? null,\n description: e.description ?? null,\n source: \"INTROSPECTION\",\n x,\n y,\n })\n .onConflictDoUpdate({\n target: [endpoint.method, endpoint.path],\n set: {\n domain: e.domain ?? null,\n description: e.description ?? null,\n source: \"INTROSPECTION\",\n },\n })\n .returning();\n await prisma.delete(endpointTable).where(eq(endpointTable.endpointId, saved.id));\n for (const u of e.uses) {\n const tid =\n tableIdByName.get(u.table) ??\n (\n await prisma.query.dbTable.findFirst({ where: (t, { eq }) => eq(t.name, u.table) })\n )?.id;\n if (!tid) continue;\n await prisma.insert(endpointTable).values({\n endpointId: saved.id,\n tableId: tid,\n access: u.access,\n });\n }\n }\n\n // Collapse planned endpoints that this scan just proved are implemented in code.\n await reconcilePlannedEndpoints(prisma);\n\n // Self-heal layout: if any pair of tables or endpoints overlaps after the upserts\n // (a stale layout from before the masonry/grid formulas, or a hand-placement that\n // drifted into a neighbour), repack them. Drag-and-drop positions that don't\n // collide are preserved — the heal only fires when the canvas is actually broken.\n const placedTables = await prisma.query.dbTable.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n columns: { x: true, y: true },\n with: { columns: { columns: { id: true } } },\n });\n if (\n tablesOverlap(\n placedTables.map((t) => ({ x: t.x, y: t.y, columnCount: t.columns.length })),\n )\n ) {\n await relayoutTables(prisma);\n }\n const placedEps = await prisma.select({ x: endpoint.x, y: endpoint.y }).from(endpoint);\n if (endpointsOverlap(placedEps)) await relayoutEndpoints(prisma);\n\n const version = await bumpVersion(prisma);\n return {\n tables: snap.tables.length,\n relations: snap.relations.length,\n endpoints: snap.endpoints.length,\n version,\n };\n}\n","import { ensureWorkspaceDb, resolveRequestWorkspaceId, runWithWorkspace } from \"@/lib/workspaces\";\n\n// Wrap a route handler so its whole execution is pinned to the request's workspace —\n// the `x-beacon-workspace` header (agent) or the `beacon_ws` cookie (browser selection),\n// falling back to the global active when neither is present. Use on every browser-facing\n// data route (canvas reads/writes) so an edit lands in the workspace the user is VIEWING,\n// not the global active one a background agent may have flipped.\n//\n// `db` / `dataDir()` / `repoRoot()` all consult the pin first, so wrapping the handler is\n// enough — nothing inside needs to know about workspaces.\n//\n// We `await ensureWorkspaceDb` BEFORE running the handler: the sync `db` Proxy getter no longer\n// self-heals (the libSQL migrator is async), so this request boundary is where a missing/behind\n// db gets provisioned + migrated. It short-circuits once the file is known-current this process,\n// so it's cheap on the hot path.\nexport function pinned<A extends unknown[]>(\n handler: (req: Request, ...rest: A) => Response | Promise<Response>,\n): (req: Request, ...rest: A) => Promise<Response> {\n return async (req, ...rest) => {\n const id = await resolveRequestWorkspaceId(req);\n if (id) await ensureWorkspaceDb(id);\n return runWithWorkspace(id, async () => handler(req, ...rest));\n };\n}\n","import { z } from \"zod\";\nimport { eq, sql } from \"drizzle-orm\";\nimport { db } from \"@/lib/db-drizzle\";\nimport { note } from \"@/lib/drizzle/schema\";\nimport { bumpVersion } from \"@/lib/ingest\";\n\n// Standalone workspace notes. `body` is GFM markdown — the verbatim text the\n// terminal agent reads via the beacon://note/{slug} @-mention. Pure data layer\n// (validation + db), free of Next imports so it unit-tests directly. Mirrors the\n// shape of lib/mutations.ts.\n\nconst notePatchSchema = z\n .object({\n title: z.string().max(200),\n body: z.string(),\n pinned: z.boolean(),\n ord: z.number(),\n })\n .partial();\n\nexport type NotePatch = z.input<typeof notePatchSchema>;\n\n/** Create an empty note, ordered after every existing one (gap-based ord). */\nexport async function createNote() {\n const [{ max }] = await db.select({ max: sql<number>`max(${note.ord})` }).from(note);\n const [created] = await db\n .insert(note)\n .values({ ord: (max ?? 0) + 1 })\n .returning();\n await bumpVersion(); // new @-mention resource — signal the MCP server to refetch\n return created;\n}\n\n/** Pinned notes first, then most-recently-updated. */\nexport async function listNotes() {\n return db.query.note.findMany({\n orderBy: (t, { desc }) => [desc(t.pinned), desc(t.updatedAt)],\n });\n}\n\nexport async function updateNote(id: string, patch: NotePatch) {\n const data = notePatchSchema.parse(patch);\n const [updated] = await db.update(note).set(data).where(eq(note.id, id)).returning();\n // Only a rename changes the @-mention resource (its name + slug); body and pin don't.\n // Body autosaves fire per keystroke, so bumping there would spam live-refresh + refetches.\n if (data.title !== undefined) await bumpVersion();\n return updated;\n}\n\nexport async function deleteNote(id: string) {\n const [deleted] = await db.delete(note).where(eq(note.id, id)).returning();\n await bumpVersion(); // removed @-mention resource — signal the MCP server to refetch\n return deleted;\n}\n","import { createNote, listNotes } from \"@/lib/notes\";\nimport { pinned } from \"@/lib/api-workspace\";\n\nexport const dynamic = \"force-dynamic\";\n\n// List notes (pinned first, then most-recently-updated). Pinned so the MCP resource\n// list (x-beacon-workspace header) and the browser drawer (beacon_ws cookie) each read\n// their own workspace, not the global active one.\nexport const GET = pinned(async () => Response.json(await listNotes()));\n\n// Create an empty note for the drawer's \"new note\" action; returns the new row.\nexport const POST = pinned(async () => Response.json(await createNote()));\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n type AppRouteUserlandModule,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The static import is used for initialization (methods, dynamic, etc.).\n userland: userland as AppRouteUserlandModule,\n // In Turbopack dev mode, also provide a getter that calls require() on every\n // request. This re-reads from devModuleCache so HMR updates are picked up,\n // and the async wrapper unwraps async-module Promises (ESM-only\n // serverExternalPackages) automatically.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () => import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["EP_ROW_HEIGHT","EP_COL_WIDTH","EP_BASE_X","EP_ROWS_PER_COL","EP_CARD_WIDTH","EP_CARD_HEIGHT","endpointsOverlap","eps","i","length","j","a","b","x","y","gridPositionForEndpoint","index","col","Math","floor","row","relayoutEndpoints","prisma","query","endpoint","findMany","orderBy","t","asc","desc","id","moved","e","update","set","where","nextEndpointSlot","n","select","from","DRAFT_MARGIN","computeDraftOriginY","topTbl","topEp","Promise","all","dbTable","findFirst","maxY","max","normalize","path","replace","isImplementedBy","planned","code","method","toUpperCase","p","c","endsWith","reconcilePlannedEndpoints","ne","source","eq","report","collapsed","mappings","m","twin","find","delete","push","TABLE_COL_WIDTH","TABLE_COL_COUNT","TABLE_GAP_PX","TABLE_HEADER_PX","TABLE_ROW_PX","TABLE_PADDING_PX","estimateTableHeight","columnCount","packTablesMasonry","newTables","existing","bottoms","Array","fill","min","round","bottom","out","Map","key","tablesOverlap","placed","w","ah","bh","relayoutTables","tables","with","columns","name","positions","map","get","snapshotSchema","object","array","string","trim","domain","nullish","description","type","isPk","boolean","optional","isFk","nullable","note","default","relations","fromTable","fromColumn","toTable","toColumn","label","endpoints","uses","table","access","getVersion","s","syncState","version","bumpVersion","insert","values","onConflictDoUpdate","target","returning","ingestSnapshot","input","snap","parse","keepTables","allExisting","existingByName","newTablePositions","filter","has","tableIdByName","pos","saved","tableId","ord","introTableIds","fromTableId","toTableId","r","fromId","toId","keepEp","Set","introEps","stale","nextSlotIndex","and","slot","endpointId","u","tid","placedTables","placedEps","pinned","handler","req","rest","notePatchSchema","title","body","number","partial","createNote","created","listNotes","updatedAt","updateNote","patch","data","updated","undefined","deleteNote","deleted","dynamic","GET","Response","json","POST","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","status","Buffer","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[8]}
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},70406,(e,t,n)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},60338,e=>{"use strict";var t=e.i(56325),n=e.i(44988),a=e.i(18899);e.s(["avg",0,function(e){return a.sql`avg(${e})`.mapWith(String)},"avgDistinct",0,function(e){return a.sql`avg(distinct ${e})`.mapWith(String)},"count",0,function(e){return a.sql`count(${e||a.sql.raw("*")})`.mapWith(Number)},"countDistinct",0,function(e){return a.sql`count(distinct ${e})`.mapWith(Number)},"max",0,function(e){return a.sql`max(${e})`.mapWith((0,n.is)(e,t.Column)?e:String)},"min",0,function(e){return a.sql`min(${e})`.mapWith((0,n.is)(e,t.Column)?e:String)},"sum",0,function(e){return a.sql`sum(${e})`.mapWith(String)},"sumDistinct",0,function(e){return a.sql`sum(distinct ${e})`.mapWith(String)}])},3723,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);function l(e){let t=Math.floor(e/12);return{x:-300-280*t,y:e%12*60}}async function s(e=r.db){let t=await e.query.endpoint.findMany({orderBy:(e,{asc:t,desc:n})=>[t(e.y),n(e.x),t(e.id)]});if(0===t.length)return 0;let n=0;for(let r=0;r<t.length;r++){let{x:o,y:s}=l(r),d=t[r];(d.x!==o||d.y!==s)&&(await e.update(i.endpoint).set({x:o,y:s}).where((0,a.eq)(i.endpoint.id,d.id)),n++)}return n}async function d(e=r.db){let[t,n]=await Promise.all([e.query.dbTable.findFirst({orderBy:(e,{desc:t})=>t(e.y)}),e.query.endpoint.findFirst({orderBy:(e,{desc:t})=>t(e.y)})]),a=Math.max(t?.y??0,n?.y??0);return a>0?a+280:0}[r]=o.then?(await o)():o,e.s(["computeDraftOriginY",0,d,"endpointsOverlap",0,function(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let a=e[t],r=e[n];if(a.x<r.x+240&&a.x+240>r.x&&a.y<r.y+50&&a.y+50>r.y)return!0}return!1},"gridPositionForEndpoint",0,l,"relayoutEndpoints",0,s]),n()}catch(e){n(e)}},!1),46409,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);async function l(e=r.db){let[t,n]=await Promise.all([e.query.endpoint.findMany({where:(e,{ne:t})=>t(e.source,"INTROSPECTION")}),e.query.endpoint.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION")})]),o={collapsed:0,mappings:[]};for(let r of t){let t=n.find(e=>(function(e,t){if(e.method.toUpperCase()!==t.method.toUpperCase())return!1;let n=e.path.replace(/\{[^}]*\}/g,"{}"),a=t.path.replace(/\{[^}]*\}/g,"{}");return a===n||a.endsWith(n)})(r,e));t&&(await e.delete(i.endpoint).where((0,a.eq)(i.endpoint.id,r.id)),o.collapsed++,o.mappings.push({planned:`${r.method} ${r.path}`,code:`${t.method} ${t.path}`}))}return o}[r]=o.then?(await o)():o,e.s(["reconcilePlannedEndpoints",0,l]),n()}catch(e){n(e)}},!1),96902,e=>e.a(async(t,n)=>{try{var a=e.i(75225),r=e.i(91426),i=e.i(34700),o=t([r]);function l(e){return 36+30*Math.max(0,e)+16}function s(e,t=[]){let n=[,,,,].fill(0);for(let e of t){let t=Math.max(0,Math.min(3,Math.round(e.x/320))),a=e.y+l(e.columnCount)+50;a>n[t]&&(n[t]=a)}let a=new Map;for(let t of e){let e=0;for(let t=1;t<4;t++)n[t]<n[e]&&(e=t);let r=320*e,i=n[e];a.set(t.key,{x:r,y:i}),n[e]=i+l(t.columnCount)+50}return a}async function d(e=r.db){let t=await e.query.dbTable.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION"),with:{columns:{columns:{id:!0}}},orderBy:(e,{asc:t})=>t(e.name)});if(0===t.length)return 0;let n=s(t.map(e=>({key:e.id,columnCount:e.columns.length}))),o=0;for(let r of t){let t=n.get(r.id);t&&(Math.round(t.x)!==Math.round(r.x)||Math.round(t.y)!==Math.round(r.y))&&(await e.update(i.dbTable).set({x:t.x,y:t.y}).where((0,a.eq)(i.dbTable.id,r.id)),o++)}return o}[r]=o.then?(await o)():o,e.s(["estimateTableHeight",0,l,"packTablesMasonry",0,s,"relayoutTables",0,d,"tablesOverlap",0,function(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let a=e[t],r=e[n],i=l(a.columnCount),o=l(r.columnCount);if(a.x<r.x+300&&a.x+300>r.x&&a.y<r.y+o&&a.y+i>r.y)return!0}return!1}]),n()}catch(e){n(e)}},!1),6659,e=>e.a(async(t,n)=>{try{var a=e.i(69719),r=e.i(75225),i=e.i(60338),o=e.i(18899),l=e.i(91426),s=e.i(34700),d=e.i(3723),u=e.i(46409),c=e.i(96902),p=t([l,d,u,c]);[l,d,u,c]=p.then?(await p)():p;let g=a.z.object({tables:a.z.array(a.z.object({name:a.z.string().trim().min(1),domain:a.z.string().nullish(),description:a.z.string().nullish(),columns:a.z.array(a.z.object({name:a.z.string().trim().min(1),type:a.z.string().trim().min(1),isPk:a.z.boolean().optional(),isFk:a.z.boolean().optional(),nullable:a.z.boolean().optional(),note:a.z.string().nullish()})).default([])})).default([]),relations:a.z.array(a.z.object({fromTable:a.z.string(),fromColumn:a.z.string(),toTable:a.z.string(),toColumn:a.z.string(),label:a.z.string().nullish()})).default([]),endpoints:a.z.array(a.z.object({method:a.z.string().trim().min(1),path:a.z.string().trim().min(1),domain:a.z.string().nullish(),description:a.z.string().nullish(),uses:a.z.array(a.z.object({table:a.z.string(),access:a.z.string().default("read")})).default([])})).default([])});async function h(e=l.db){let t=await e.query.syncState.findFirst({where:(e,{eq:t})=>t(e.id,"singleton")});return t?.version??0}async function m(e=l.db){let[t]=await e.insert(s.syncState).values({id:"singleton",version:1}).onConflictDoUpdate({target:s.syncState.id,set:{version:o.sql`${s.syncState.version} + 1`}}).returning();return t.version}async function f(e,t=l.db){let n=g.parse(e),a=n.tables.map(e=>e.name);await t.delete(s.dbTable).where(a.length?(0,r.and)((0,r.eq)(s.dbTable.source,"INTROSPECTION"),(0,r.notInArray)(s.dbTable.name,a)):(0,r.eq)(s.dbTable.source,"INTROSPECTION"));let o=await t.query.dbTable.findMany({columns:{name:!0,x:!0,y:!0},with:{columns:{columns:{id:!0}}}}),p=new Map(o.map(e=>[e.name,e])),h=(0,c.packTablesMasonry)(n.tables.filter(e=>!p.has(e.name)).map(e=>({key:e.name,columnCount:e.columns.length})),o.map(e=>({x:e.x,y:e.y,columnCount:e.columns.length}))),y=new Map;for(let e of n.tables){let n=p.get(e.name),a=h.get(e.name),i=n?.x??a?.x??0,o=n?.y??a?.y??0,[l]=await t.insert(s.dbTable).values({name:e.name,domain:e.domain??null,description:e.description??null,source:"INTROSPECTION",x:i,y:o}).onConflictDoUpdate({target:s.dbTable.name,set:{domain:e.domain??null,description:e.description??null,source:"INTROSPECTION"}}).returning();y.set(e.name,l.id),await t.delete(s.dbColumn).where((0,r.eq)(s.dbColumn.tableId,l.id)),e.columns.length&&await t.insert(s.dbColumn).values(e.columns.map((e,t)=>({tableId:l.id,name:e.name,type:e.type,isPk:e.isPk??!1,isFk:e.isFk??!1,nullable:e.nullable??!0,note:e.note??null,ord:t})))}let w=[...y.values()];for(let e of(w.length&&await t.delete(s.dbRelation).where((0,r.or)((0,r.inArray)(s.dbRelation.fromTableId,w),(0,r.inArray)(s.dbRelation.toTableId,w))),n.relations)){let n=y.get(e.fromTable),a=y.get(e.toTable);n&&a&&await t.insert(s.dbRelation).values({fromTableId:n,toTableId:a,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label??`${e.fromColumn} → ${e.toTable}.${e.toColumn}`})}let b=new Set(n.endpoints.map(e=>`${e.method} ${e.path}`)),v=(await t.query.endpoint.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION")})).filter(e=>!b.has(`${e.method} ${e.path}`)).map(e=>e.id);v.length&&await t.delete(s.endpoint).where((0,r.inArray)(s.endpoint.id,v));let x=(await t.select({n:(0,i.count)()}).from(s.endpoint))[0].n;for(let e of n.endpoints){let n,a,i=await t.query.endpoint.findFirst({where:(t,{and:n,eq:a})=>n(a(t.method,e.method),a(t.path,e.path))});if(i)n=i.x,a=i.y;else{let e=(0,d.gridPositionForEndpoint)(x);n=e.x,a=e.y,x++}let[o]=await t.insert(s.endpoint).values({method:e.method,path:e.path,domain:e.domain??null,description:e.description??null,source:"INTROSPECTION",x:n,y:a}).onConflictDoUpdate({target:[s.endpoint.method,s.endpoint.path],set:{domain:e.domain??null,description:e.description??null,source:"INTROSPECTION"}}).returning();for(let n of(await t.delete(s.endpointTable).where((0,r.eq)(s.endpointTable.endpointId,o.id)),e.uses)){let e=y.get(n.table)??(await t.query.dbTable.findFirst({where:(e,{eq:t})=>t(e.name,n.table)}))?.id;e&&await t.insert(s.endpointTable).values({endpointId:o.id,tableId:e,access:n.access})}}await (0,u.reconcilePlannedEndpoints)(t);let R=await t.query.dbTable.findMany({where:(e,{eq:t})=>t(e.source,"INTROSPECTION"),columns:{x:!0,y:!0},with:{columns:{columns:{id:!0}}}});(0,c.tablesOverlap)(R.map(e=>({x:e.x,y:e.y,columnCount:e.columns.length})))&&await (0,c.relayoutTables)(t);let T=await t.select({x:s.endpoint.x,y:s.endpoint.y}).from(s.endpoint);(0,d.endpointsOverlap)(T)&&await (0,d.relayoutEndpoints)(t);let C=await m(t);return{tables:n.tables.length,relations:n.relations.length,endpoints:n.endpoints.length,version:C}}e.s(["bumpVersion",0,m,"getVersion",0,h,"ingestSnapshot",0,f,"snapshotSchema",0,g]),n()}catch(e){n(e)}},!1),86970,e=>e.a(async(t,n)=>{try{var a=e.i(69719),r=e.i(75225),i=e.i(91426),o=e.i(34700),l=e.i(6659),s=t([i,l]);[i,l]=s.then?(await s)():s;let p=a.z.object({files:a.z.array(a.z.object({path:a.z.string().trim().min(1),root:a.z.string().nullish(),lang:a.z.string().nullish(),mtimeMs:a.z.number().nullish(),size:a.z.number().nullish()})).default([]),edges:a.z.array(a.z.object({from:a.z.string().trim().min(1),to:a.z.string().trim().min(1)})).default([])});async function d(e,t=i.db){let n=p.parse(e),a=n.files.map(e=>e.path),s=new Set(a),u=n.edges.filter(e=>s.has(e.from)&&s.has(e.to)&&e.from!==e.to),c=function(e,t){let n=new Map;for(let t of e)n.set(t,[]);for(let e of t)n.get(e.from)?.push(e.to);let a=new Map,r=new Map,i=new Set,o=[],l=new Map,s=[],d=0,u=0;for(let t of e){if(a.has(t))continue;let e=[{v:t,iter:0}];for(a.set(t,d),r.set(t,d),d++,o.push(t),i.add(t);e.length;){let t=e[e.length-1],c=n.get(t.v)??[];if(t.iter<c.length){let n=c[t.iter++];a.has(n)?i.has(n)&&r.set(t.v,Math.min(r.get(t.v),a.get(n))):(a.set(n,d),r.set(n,d),d++,o.push(n),i.add(n),e.push({v:n,iter:0}))}else{if(r.get(t.v)===a.get(t.v)){let e,n=0;do e=o.pop(),i.delete(e),l.set(e,u),n++;while(e!==t.v)s.push(n),u++}e.pop();let n=e[e.length-1];n&&r.set(n.v,Math.min(r.get(n.v),r.get(t.v)))}}}let c=new Set;for(let e of t){let t=l.get(e.from);void 0!==t&&t===l.get(e.to)&&s[t]>1&&c.add(`${e.from}|${e.to}`)}return c}(a,u),h=new Map,m=new Map;for(let e of u)m.set(e.from,(m.get(e.from)??0)+1),h.set(e.to,(h.get(e.to)??0)+1);for(let e of(await t.delete(o.codeFile).where((0,r.notInArray)(o.codeFile.path,a)),n.files)){let n={root:e.root??null,lang:e.lang??null,mtimeMs:e.mtimeMs??null,size:e.size??null,inDegree:h.get(e.path)??0,outDegree:m.get(e.path)??0};await t.insert(o.codeFile).values({path:e.path,...n}).onConflictDoUpdate({target:o.codeFile.path,set:n})}await t.delete(o.codeFileEdge);let f=0;u.length&&await t.insert(o.codeFileEdge).values(u.map(e=>{let t=c.has(`${e.from}|${e.to}`);return t&&f++,{fromPath:e.from,toPath:e.to,circular:t}}));let g=await (0,l.bumpVersion)(t);return await t.update(o.syncState).set({codeGraphSyncedAt:new Date}).where((0,r.eq)(o.syncState.id,"singleton")),{files:n.files.length,edges:u.length,circular:f,version:g}}async function u(e,t,n,a){let r=new Set([t]),i=[],o=[t],l=!1;for(let t=1;t<=n&&o.length;t++){let n="down"===a?(await e.query.codeFileEdge.findMany({where:(e,{inArray:t})=>t(e.toPath,o),columns:{fromPath:!0}})).map(e=>e.fromPath):(await e.query.codeFileEdge.findMany({where:(e,{inArray:t})=>t(e.fromPath,o),columns:{toPath:!0}})).map(e=>e.toPath),s=[];for(let e of n)if(!r.has(e)&&(r.add(e),i.push({path:e,depth:t}),s.push(e),i.length>=200)){l=!0;break}if(l)break;o=s}return{order:i,truncated:l}}async function c(e,t,n={}){let a=await e.query.codeFile.findFirst({where:(e,{eq:n})=>n(e.path,t),columns:{inDegree:!0,outDegree:!0}});if(!a)return{path:t,exists:!1,hub:{inDegree:0,outDegree:0,isHub:!1},imports:[],importedBy:[],transitive:{upstream:[],downstream:[],truncated:!1}};let r=Math.min(Math.max(Math.floor(n.depth??2),1),5),[i,o,l,s,d]=await Promise.all([e.query.codeFileEdge.findMany({where:(e,{eq:n})=>n(e.fromPath,t),columns:{toPath:!0,circular:!0}}),e.query.codeFileEdge.findMany({where:(e,{eq:n})=>n(e.toPath,t),columns:{fromPath:!0,circular:!0}}),u(e,t,r,"down"),u(e,t,r,"up"),e.query.codeFile.findMany({columns:{inDegree:!0}})]),p=[...new Set([...l.order,...s.order].map(e=>e.path))],h=p.length?await e.query.codeFile.findMany({where:(e,{inArray:t})=>t(e.path,p),columns:{path:!0,lang:!0}}):[],m=new Map(h.map(e=>[e.path,e.lang])),f=e=>({path:e.path,depth:e.depth,lang:m.get(e.path)??null}),g=d.map(e=>e.inDegree).filter(e=>e>0).sort((e,t)=>e-t),y=g.length?g[Math.min(g.length-1,Math.floor(.9*g.length))]:0,w=a.inDegree>0&&a.inDegree>=Math.max(3,y);return{path:t,exists:!0,hub:{inDegree:a.inDegree,outDegree:a.outDegree,isHub:w},imports:i.map(e=>({to:e.toPath,circular:e.circular})),importedBy:o.map(e=>({from:e.fromPath,circular:e.circular})),transitive:{upstream:s.order.map(f),downstream:l.order.map(f),truncated:s.truncated||l.truncated}}}e.s(["blastRadius",0,c,"ingestCodeGraph",0,d]),n()}catch(e){n(e)}},!1),69723,e=>e.a(async(t,n)=>{try{var a=e.i(91426),r=e.i(14859),i=e.i(29243),o=t([a,i]);async function l(e){let t=(0,r.workspaceIdFromRequest)(e)??(0,r.getActiveId)();t&&(0,i.ensureWatcher)(t);let n=await a.db.query.syncState.findFirst({where:(e,{eq:t})=>t(e.id,"singleton"),columns:{codeGraphSyncedAt:!0}});return{syncedAt:n?.codeGraphSyncedAt?n.codeGraphSyncedAt.toISOString():null,watching:!!t&&(0,i.isWatching)(t)}}[a,i]=o.then?(await o)():o,e.s(["codeGraphFreshness",0,l]),n()}catch(e){n(e)}},!1),56612,e=>e.a(async(t,n)=>{try{var a=e.i(86970),r=e.i(69723),i=e.i(91426),o=e.i(14859),l=t([a,r,i]);async function s(e){return(0,o.runWithWorkspace)((0,o.workspaceIdFromRequest)(e),()=>d(e))}async function d(e){let t=new URL(e.url),n=t.searchParams.get("path");if(!n)return new Response("missing ?path=",{status:400});let o=Number(t.searchParams.get("depth")),l=Number.isFinite(o)&&o>0?o:void 0,[s,d]=await Promise.all([(0,a.blastRadius)(i.db,n,{depth:l}),(0,r.codeGraphFreshness)(e)]);if(!s.exists)return Response.json({...s,attachedTo:[],codeGraph:d,note:"Beacon doesn't have this file indexed. The intel watcher may not have run yet, or the path is wrong (paths are repo-relative POSIX)."});let u=await i.db.query.nodeFile.findMany({where:(e,{eq:t})=>t(e.path,n),with:{node:{columns:{id:!0,view:!0,title:!0,cluster:!0,status:!0,role:!0}}}});return Response.json({...s,attachedTo:u.map(e=>({id:e.node.id,view:e.node.view,title:e.node.title,cluster:e.node.cluster,status:e.node.status,role:e.node.role})),codeGraph:d})}[a,r,i]=l.then?(await l)():l,e.s(["GET",0,s]),n()}catch(e){n(e)}},!1),59758,e=>e.a(async(t,n)=>{try{var a=e.i(47909),r=e.i(74017),i=e.i(96250),o=e.i(59756),l=e.i(61916),s=e.i(74677),d=e.i(69741),u=e.i(16795),c=e.i(87718),p=e.i(95169),h=e.i(47587),m=e.i(66012),f=e.i(70101),g=e.i(26937),y=e.i(10372),w=e.i(93695);e.i(20232);var b=e.i(220),v=e.i(56612),x=t([v]);[v]=x.then?(await x)():x;let T=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/context/file/route",pathname:"/api/context/file",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/context/file/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:E,serverHooks:q}=T;async function R(e,t,n){n.requestMeta&&(0,o.setRequestMeta)(e,n.requestMeta),T.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/context/file/route";a=a.replace(/\/index$/,"")||"/";let i=await T.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,deploymentId:x,params:R,nextConfig:C,parsedUrl:E,isDraftMode:q,prerenderManifest:P,routerServerContext:M,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,resolvedPathname:N,clientReferenceManifest:O,serverActionsManifest:z}=i,A=(0,d.normalizeAppPath)(a),F=!!(P.dynamicRoutes[A]||P.routes[N]),k=async()=>((null==M?void 0:M.render404)?await M.render404(e,t,E,!1):t.end("This page could not be found"),null);if(F&&!q){let e=!!P.routes[N],t=P.dynamicRoutes[A];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await k();throw new w.NoFallbackError}}let D=null;!F||T.isDev||q||(D=N,D="/index"===D?"/":D);let $=!0===T.isDev||!F,j=F&&!$;z&&O&&(0,s.setManifestsSingleton)({page:a,clientReferenceManifest:O,serverActionsManifest:z});let _=e.method||"GET",U=(0,l.getTracer)(),H=U.getActiveScopeSpan(),W=!!(null==M?void 0:M.isWrappedByNextServer),B=!!(0,o.getRequestMeta)(e,"minimalMode"),G=(0,o.getRequestMeta)(e,"incrementalCache")||await T.getIncrementalCache(e,C,P,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let K={params:R,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:$,incrementalCache:G,cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>T.onRequestError(e,t,a,r,M)},sharedContext:{buildId:v,deploymentId:x}},L=new u.NodeNextRequest(e),V=new u.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let i,o=async e=>T.handle(X,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=U.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${_} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${_} ${a}`)}),s=async i=>{var l,s;let d=async({previousCacheEntry:r})=>{try{if(!B&&S&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let s=K.renderOpts.collectedTags;if(!F)return await (0,m.sendResponse)(L,V,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[y.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,M),t}},u=await T.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:B});if(!F)return null;if((null==u||null==(l=u.value)?void 0:l.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",S?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&F||c.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,m.sendResponse)(L,V,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};W&&H?await s(H):(i=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(p.BaseServerSpan.handleRequest,{spanName:`${_} ${a}`,kind:l.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},s),void 0,!W))}catch(t){if(t instanceof w.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,M),F)throw t;return await (0,m.sendResponse)(L,V,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:E})},"routeModule",0,T,"serverHooks",0,q,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,E]),n()}catch(e){n(e)}},!1),58502,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1t2egm-._.js"].map(t=>e.l(t))).then(()=>t(51514)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0iq9oau._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/src/sql/functions/aggregate.ts","../../../lib/endpoint-layout.ts","../../../lib/endpoint-reconcile.ts","../../../lib/table-layout.ts","../../../lib/ingest.ts","../../../lib/code-graph.ts","../../../lib/code-graph-freshness.ts","../../../app/api/context/file/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { type AnyColumn, Column } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\n/**\n * Returns the number of values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number employees with null values\n * db.select({ value: count() }).from(employees)\n * // Number of employees where `name` is not null\n * db.select({ value: count(employees.name) }).from(employees)\n * ```\n *\n * @see countDistinct to get the number of non-duplicate values in `expression`\n */\nexport function count(expression?: SQLWrapper): SQL<number> {\n\treturn sql`count(${expression || sql.raw('*')})`.mapWith(Number);\n}\n\n/**\n * Returns the number of non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number of employees where `name` is distinct\n * db.select({ value: countDistinct(employees.name) }).from(employees)\n * ```\n *\n * @see count to get the number of values in `expression`, including duplicates\n */\nexport function countDistinct(expression: SQLWrapper): SQL<number> {\n\treturn sql`count(distinct ${expression})`.mapWith(Number);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee\n * db.select({ value: avg(employees.salary) }).from(employees)\n * ```\n *\n * @see avgDistinct to get the average of all non-null and non-duplicate values in `expression`\n */\nexport function avg(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`avg(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee where `salary` is distinct\n * db.select({ value: avgDistinct(employees.salary) }).from(employees)\n * ```\n *\n * @see avg to get the average of all non-null values in `expression`, including duplicates\n */\nexport function avgDistinct(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`avg(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary\n * db.select({ value: sum(employees.salary) }).from(employees)\n * ```\n *\n * @see sumDistinct to get the sum of all non-null and non-duplicate values in `expression`\n */\nexport function sum(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`sum(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary where `salary` is distinct (no duplicates)\n * db.select({ value: sumDistinct(employees.salary) }).from(employees)\n * ```\n *\n * @see sum to get the sum of all non-null values in `expression`, including duplicates\n */\nexport function sumDistinct(expression: SQLWrapper): SQL<string | null> {\n\treturn sql`sum(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the maximum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the highest salary\n * db.select({ value: max(employees.salary) }).from(employees)\n * ```\n */\nexport function max<T extends SQLWrapper>(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n\treturn sql`max(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n\n/**\n * Returns the minimum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the lowest salary\n * db.select({ value: min(employees.salary) }).from(employees)\n * ```\n */\nexport function min<T extends SQLWrapper>(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n\treturn sql`min(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n","import { count, eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { endpoint } from \"@/lib/drizzle/schema\";\n\n// Endpoints are uniform 240px-wide pill cards on /db, kept to the left of the table\n// gutter (negative x). The previous layout stacked every endpoint in one column at\n// y = i * 110, so a real backend like Beacon ended up with a 4000px-tall stack the\n// user had to scroll past. We now wrap into a multi-column grid that grows leftward,\n// so the canvas reads as a compact block instead of a fence.\n\nconst EP_ROW_HEIGHT = 60;\nconst EP_COL_WIDTH = 280;\nconst EP_BASE_X = -300; // closest column to the tables on the right\nconst EP_ROWS_PER_COL = 12;\nconst EP_CARD_WIDTH = 240;\nconst EP_CARD_HEIGHT = 50;\n\n/**\n * Bounding-box overlap check ingest uses to decide whether to self-heal the column.\n * Endpoint cards are uniform 240px wide × ~40px tall pills — anything overlapping\n * means an old single-column ingest left a stack behind, or two ingest runs collided.\n */\nexport function endpointsOverlap(\n eps: ReadonlyArray<{ x: number; y: number }>,\n): boolean {\n for (let i = 0; i < eps.length; i++) {\n for (let j = i + 1; j < eps.length; j++) {\n const a = eps[i];\n const b = eps[j];\n if (\n a.x < b.x + EP_CARD_WIDTH &&\n a.x + EP_CARD_WIDTH > b.x &&\n a.y < b.y + EP_CARD_HEIGHT &&\n a.y + EP_CARD_HEIGHT > b.y\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function gridPositionForEndpoint(index: number): { x: number; y: number } {\n const col = Math.floor(index / EP_ROWS_PER_COL);\n const row = index % EP_ROWS_PER_COL;\n return { x: EP_BASE_X - col * EP_COL_WIDTH, y: row * EP_ROW_HEIGHT };\n}\n\n/**\n * One-off repair: re-pack every endpoint into a clean grid. Stable order — sorts by\n * current (y, x) so the user's visual ordering carries over across the change, then by\n * id as a tiebreaker.\n */\nexport async function relayoutEndpoints(prisma: DB = db): Promise<number> {\n const eps = await prisma.query.endpoint.findMany({\n orderBy: (t, { asc, desc }) => [asc(t.y), desc(t.x), asc(t.id)],\n });\n if (eps.length === 0) return 0;\n let moved = 0;\n for (let i = 0; i < eps.length; i++) {\n const { x, y } = gridPositionForEndpoint(i);\n const e = eps[i];\n if (e.x === x && e.y === y) continue;\n await prisma.update(endpoint).set({ x, y }).where(eq(endpoint.id, e.id));\n moved++;\n }\n return moved;\n}\n\n/**\n * Where to drop the next NEW endpoint so it lands in the first unfilled grid slot.\n * Used by ingest to keep code-derived endpoints from re-stacking the old single column.\n */\nexport async function nextEndpointSlot(prisma: DB = db): Promise<{ x: number; y: number }> {\n const [{ n }] = await prisma.select({ n: count() }).from(endpoint);\n return gridPositionForEndpoint(n);\n}\n\n/**\n * Where to drop a freshly-proposed draft on the /db canvas so it doesn't land on top of\n * the existing tables/endpoints. Returns the largest y in use plus a margin, or 0 if the\n * canvas is empty.\n */\nconst DRAFT_MARGIN = 280;\nexport async function computeDraftOriginY(prisma: DB = db): Promise<number> {\n const [topTbl, topEp] = await Promise.all([\n prisma.query.dbTable.findFirst({ orderBy: (t, { desc }) => desc(t.y) }),\n prisma.query.endpoint.findFirst({ orderBy: (t, { desc }) => desc(t.y) }),\n ]);\n const maxY = Math.max(topTbl?.y ?? 0, topEp?.y ?? 0);\n return maxY > 0 ? maxY + DRAFT_MARGIN : 0;\n}\n","import { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { endpoint } from \"@/lib/drizzle/schema\";\n\n// Plans and code rarely share a path prefix: a feature designed as `/orgs` ships at\n// `/api/v1/orgs`. We collapse a planned (MANUAL) endpoint into its code-derived\n// (INTROSPECTION) twin when the verbs match and the code path ends with the planned path\n// on a segment boundary, ignoring path-param names.\n\nconst normalize = (path: string) => path.replace(/\\{[^}]*\\}/g, \"{}\");\n\nexport function isImplementedBy(\n planned: { method: string; path: string },\n code: { method: string; path: string },\n): boolean {\n if (planned.method.toUpperCase() !== code.method.toUpperCase()) return false;\n const p = normalize(planned.path);\n const c = normalize(code.path);\n // planned paths start with \"/\", so endsWith() already lands on a segment boundary.\n return c === p || c.endsWith(p);\n}\n\nexport interface ReconcileReport {\n collapsed: number;\n mappings: { planned: string; code: string }[];\n}\n\n/**\n * Deletes planned endpoints (anything not code-derived — drafts approved as MANUAL, init/\n * session scaffolds) once they have an INTROSPECTION twin, so the canvas shows reality\n * instead of duplicates. Unbuilt plans are left intact. Returns what was collapsed (also\n * surfaces the planned→code path discrepancy to the caller).\n */\nexport async function reconcilePlannedEndpoints(prisma: DB = db): Promise<ReconcileReport> {\n const [planned, code] = await Promise.all([\n prisma.query.endpoint.findMany({ where: (t, { ne }) => ne(t.source, \"INTROSPECTION\") }),\n prisma.query.endpoint.findMany({ where: (t, { eq }) => eq(t.source, \"INTROSPECTION\") }),\n ]);\n\n const report: ReconcileReport = { collapsed: 0, mappings: [] };\n for (const m of planned) {\n const twin = code.find((c) => isImplementedBy(m, c));\n if (!twin) continue;\n await prisma.delete(endpoint).where(eq(endpoint.id, m.id));\n report.collapsed++;\n report.mappings.push({ planned: `${m.method} ${m.path}`, code: `${twin.method} ${twin.path}` });\n }\n return report;\n}\n","import { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable } from \"@/lib/drizzle/schema\";\n\n// Layout constants for /db. Tables are 232px wide cards whose height is dominated by\n// their column count; the previous fixed grid (`y = floor(i/4) * 260`) silently stacked\n// tall tables on top of their neighbours. We pack into four columns masonry-style: each\n// column tracks its cumulative bottom and the next table goes into whichever column has\n// the most room. Same shape ingest seeds use, same shape `relayoutTables` uses to repair.\n\nexport const TABLE_COL_WIDTH = 320;\nexport const TABLE_COL_COUNT = 4;\nexport const TABLE_GAP_PX = 50;\nconst TABLE_HEADER_PX = 36;\nconst TABLE_ROW_PX = 30;\nconst TABLE_PADDING_PX = 16;\n\nexport function estimateTableHeight(columnCount: number): number {\n return TABLE_HEADER_PX + Math.max(0, columnCount) * TABLE_ROW_PX + TABLE_PADDING_PX;\n}\n\nexport interface NewTable {\n key: string;\n columnCount: number;\n}\nexport interface PlacedTable {\n x: number;\n y: number;\n columnCount: number;\n}\n\n/**\n * Assigns (x, y) to each `newTables` entry using a masonry pack across `TABLE_COL_COUNT`\n * columns, treating `existing` as already-occupied slots so we never land on top of a\n * persisted table. Returns a Map keyed by the entry's `key` (id or name — caller's choice).\n */\nexport function packTablesMasonry(\n newTables: NewTable[],\n existing: PlacedTable[] = [],\n): Map<string, { x: number; y: number }> {\n const bottoms = new Array<number>(TABLE_COL_COUNT).fill(0);\n for (const e of existing) {\n const col = Math.max(\n 0,\n Math.min(TABLE_COL_COUNT - 1, Math.round(e.x / TABLE_COL_WIDTH)),\n );\n const bottom = e.y + estimateTableHeight(e.columnCount) + TABLE_GAP_PX;\n if (bottom > bottoms[col]) bottoms[col] = bottom;\n }\n const out = new Map<string, { x: number; y: number }>();\n for (const t of newTables) {\n let col = 0;\n for (let i = 1; i < TABLE_COL_COUNT; i++) if (bottoms[i] < bottoms[col]) col = i;\n const x = col * TABLE_COL_WIDTH;\n const y = bottoms[col];\n out.set(t.key, { x, y });\n bottoms[col] = y + estimateTableHeight(t.columnCount) + TABLE_GAP_PX;\n }\n return out;\n}\n\n/**\n * Bounding-box overlap check used by ingest to decide whether to self-heal the layout.\n * Card width is `TABLE_COL_WIDTH - 20` (the visible card sits inside its column slot).\n */\nexport function tablesOverlap(\n placed: ReadonlyArray<{ x: number; y: number; columnCount: number }>,\n): boolean {\n const w = TABLE_COL_WIDTH - 20;\n for (let i = 0; i < placed.length; i++) {\n for (let j = i + 1; j < placed.length; j++) {\n const a = placed[i];\n const b = placed[j];\n const ah = estimateTableHeight(a.columnCount);\n const bh = estimateTableHeight(b.columnCount);\n if (a.x < b.x + w && a.x + w > b.x && a.y < b.y + bh && a.y + ah > b.y) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Self-heal for the /db canvas: re-packs all INTROSPECTION tables into a masonry\n * layout sized to each table's actual column count. Called automatically by ingest\n * when the post-upsert positions still overlap (a stale layout from before the\n * masonry formula, or a hand-placement that drifted into a neighbour). Manual\n * (non-introspection) tables keep their positions — they're drafts the user is\n * composing or hand-placed. Ordering by name keeps the result stable across re-syncs.\n */\nexport async function relayoutTables(prisma: DB = db): Promise<number> {\n const tables = await prisma.query.dbTable.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n with: { columns: { columns: { id: true } } },\n orderBy: (t, { asc }) => asc(t.name),\n });\n if (tables.length === 0) return 0;\n const positions = packTablesMasonry(\n tables.map((t) => ({ key: t.id, columnCount: t.columns.length })),\n );\n let moved = 0;\n for (const t of tables) {\n const p = positions.get(t.id);\n if (!p) continue;\n if (Math.round(p.x) === Math.round(t.x) && Math.round(p.y) === Math.round(t.y)) continue;\n await prisma.update(dbTable).set({ x: p.x, y: p.y }).where(eq(dbTable.id, t.id));\n moved++;\n }\n return moved;\n}\n","import { z } from \"zod\";\nimport { and, count, eq, inArray, notInArray, or, sql } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable, dbColumn, dbRelation, endpoint, endpointTable, syncState } from \"@/lib/drizzle/schema\";\nimport {\n endpointsOverlap,\n gridPositionForEndpoint,\n relayoutEndpoints,\n} from \"@/lib/endpoint-layout\";\nimport { reconcilePlannedEndpoints } from \"@/lib/endpoint-reconcile\";\nimport { packTablesMasonry, relayoutTables, tablesOverlap } from \"@/lib/table-layout\";\n\n// ── Snapshot contract (what the intel daemon POSTs) ─────────────────────────\n\nexport const snapshotSchema = z.object({\n tables: z\n .array(\n z.object({\n name: z.string().trim().min(1),\n domain: z.string().nullish(),\n description: z.string().nullish(),\n columns: z\n .array(\n z.object({\n name: z.string().trim().min(1),\n type: z.string().trim().min(1),\n isPk: z.boolean().optional(),\n isFk: z.boolean().optional(),\n nullable: z.boolean().optional(),\n note: z.string().nullish(),\n }),\n )\n .default([]),\n }),\n )\n .default([]),\n relations: z\n .array(\n z.object({\n fromTable: z.string(),\n fromColumn: z.string(),\n toTable: z.string(),\n toColumn: z.string(),\n label: z.string().nullish(),\n }),\n )\n .default([]),\n endpoints: z\n .array(\n z.object({\n method: z.string().trim().min(1),\n path: z.string().trim().min(1),\n domain: z.string().nullish(),\n description: z.string().nullish(),\n uses: z\n .array(\n z.object({\n table: z.string(),\n access: z.string().default(\"read\"),\n }),\n )\n .default([]),\n }),\n )\n .default([]),\n});\nexport type Snapshot = z.input<typeof snapshotSchema>;\n\ntype Prisma = DB;\n\nexport async function getVersion(prisma: Prisma = db): Promise<number> {\n const s = await prisma.query.syncState.findFirst({ where: (t, { eq }) => eq(t.id, \"singleton\") });\n return s?.version ?? 0;\n}\n\nexport async function bumpVersion(prisma: Prisma = db): Promise<number> {\n const [s] = await prisma\n .insert(syncState)\n .values({ id: \"singleton\", version: 1 })\n .onConflictDoUpdate({\n target: syncState.id,\n set: { version: sql`${syncState.version} + 1` },\n })\n .returning();\n return s.version;\n}\n\n/**\n * Upserts a code-derived snapshot. Full-replace of `source=INTROSPECTION`\n * entities: upsert by stable key (name / method+path) preserving manual x/y,\n * delete introspected entities absent from the snapshot. Manual entities and\n * the roadmap are never touched. Bumps the sync version.\n */\nexport async function ingestSnapshot(input: unknown, prisma: Prisma = db) {\n const snap = snapshotSchema.parse(input);\n\n // tables ----------------------------------------------------------------\n const keepTables = snap.tables.map((t) => t.name);\n await prisma\n .delete(dbTable)\n .where(\n keepTables.length\n ? and(eq(dbTable.source, \"INTROSPECTION\"), notInArray(dbTable.name, keepTables))\n : eq(dbTable.source, \"INTROSPECTION\"),\n );\n\n // Position NEW tables with a masonry pack sized to each table's column count, anchored\n // against whatever tables are already on the canvas. The old `(i%4)*320, floor(i/4)*260`\n // grid silently stacked tall tables (Node, DbColumn) on top of their neighbours.\n const allExisting = await prisma.query.dbTable.findMany({\n columns: { name: true, x: true, y: true },\n with: { columns: { columns: { id: true } } },\n });\n const existingByName = new Map(allExisting.map((t) => [t.name, t]));\n const newTablePositions = packTablesMasonry(\n snap.tables\n .filter((t) => !existingByName.has(t.name))\n .map((t) => ({ key: t.name, columnCount: t.columns.length })),\n allExisting.map((t) => ({ x: t.x, y: t.y, columnCount: t.columns.length })),\n );\n\n const tableIdByName = new Map<string, string>();\n for (const t of snap.tables) {\n const existing = existingByName.get(t.name);\n const pos = newTablePositions.get(t.name);\n const x = existing?.x ?? pos?.x ?? 0;\n const y = existing?.y ?? pos?.y ?? 0;\n const [saved] = await prisma\n .insert(dbTable)\n .values({\n name: t.name,\n domain: t.domain ?? null,\n description: t.description ?? null,\n source: \"INTROSPECTION\",\n x,\n y,\n })\n .onConflictDoUpdate({\n target: dbTable.name,\n set: {\n domain: t.domain ?? null,\n description: t.description ?? null,\n source: \"INTROSPECTION\",\n },\n })\n .returning();\n tableIdByName.set(t.name, saved.id);\n await prisma.delete(dbColumn).where(eq(dbColumn.tableId, saved.id));\n if (t.columns.length) {\n await prisma.insert(dbColumn).values(\n t.columns.map((c, i) => ({\n tableId: saved.id,\n name: c.name,\n type: c.type,\n isPk: c.isPk ?? false,\n isFk: c.isFk ?? false,\n nullable: c.nullable ?? true,\n note: c.note ?? null,\n ord: i,\n })),\n );\n }\n }\n\n // relations (rebuild those touching an introspected table) ---------------\n const introTableIds = [...tableIdByName.values()];\n if (introTableIds.length) {\n await prisma\n .delete(dbRelation)\n .where(\n or(\n inArray(dbRelation.fromTableId, introTableIds),\n inArray(dbRelation.toTableId, introTableIds),\n ),\n );\n }\n for (const r of snap.relations) {\n const fromId = tableIdByName.get(r.fromTable);\n const toId = tableIdByName.get(r.toTable);\n if (!fromId || !toId) continue;\n await prisma.insert(dbRelation).values({\n fromTableId: fromId,\n toTableId: toId,\n fromColumn: r.fromColumn,\n toColumn: r.toColumn,\n label: r.label ?? `${r.fromColumn} → ${r.toTable}.${r.toColumn}`,\n });\n }\n\n // endpoints --------------------------------------------------------------\n const keepEp = new Set(snap.endpoints.map((e) => `${e.method} ${e.path}`));\n const introEps = await prisma.query.endpoint.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n });\n const stale = introEps.filter((e) => !keepEp.has(`${e.method} ${e.path}`)).map((e) => e.id);\n if (stale.length) await prisma.delete(endpoint).where(inArray(endpoint.id, stale));\n\n // For NEW endpoints we drop into the next free slot of the multi-column grid (the\n // single-column stack made a real backend's endpoints into a 4000px-tall fence).\n let nextSlotIndex = (await prisma.select({ n: count() }).from(endpoint))[0].n;\n for (const e of snap.endpoints) {\n const existing = await prisma.query.endpoint.findFirst({\n where: (t, { and, eq }) => and(eq(t.method, e.method), eq(t.path, e.path)),\n });\n let x: number, y: number;\n if (existing) {\n x = existing.x;\n y = existing.y;\n } else {\n const slot = gridPositionForEndpoint(nextSlotIndex);\n x = slot.x;\n y = slot.y;\n nextSlotIndex++;\n }\n const [saved] = await prisma\n .insert(endpoint)\n .values({\n method: e.method,\n path: e.path,\n domain: e.domain ?? null,\n description: e.description ?? null,\n source: \"INTROSPECTION\",\n x,\n y,\n })\n .onConflictDoUpdate({\n target: [endpoint.method, endpoint.path],\n set: {\n domain: e.domain ?? null,\n description: e.description ?? null,\n source: \"INTROSPECTION\",\n },\n })\n .returning();\n await prisma.delete(endpointTable).where(eq(endpointTable.endpointId, saved.id));\n for (const u of e.uses) {\n const tid =\n tableIdByName.get(u.table) ??\n (\n await prisma.query.dbTable.findFirst({ where: (t, { eq }) => eq(t.name, u.table) })\n )?.id;\n if (!tid) continue;\n await prisma.insert(endpointTable).values({\n endpointId: saved.id,\n tableId: tid,\n access: u.access,\n });\n }\n }\n\n // Collapse planned endpoints that this scan just proved are implemented in code.\n await reconcilePlannedEndpoints(prisma);\n\n // Self-heal layout: if any pair of tables or endpoints overlaps after the upserts\n // (a stale layout from before the masonry/grid formulas, or a hand-placement that\n // drifted into a neighbour), repack them. Drag-and-drop positions that don't\n // collide are preserved — the heal only fires when the canvas is actually broken.\n const placedTables = await prisma.query.dbTable.findMany({\n where: (t, { eq }) => eq(t.source, \"INTROSPECTION\"),\n columns: { x: true, y: true },\n with: { columns: { columns: { id: true } } },\n });\n if (\n tablesOverlap(\n placedTables.map((t) => ({ x: t.x, y: t.y, columnCount: t.columns.length })),\n )\n ) {\n await relayoutTables(prisma);\n }\n const placedEps = await prisma.select({ x: endpoint.x, y: endpoint.y }).from(endpoint);\n if (endpointsOverlap(placedEps)) await relayoutEndpoints(prisma);\n\n const version = await bumpVersion(prisma);\n return {\n tables: snap.tables.length,\n relations: snap.relations.length,\n endpoints: snap.endpoints.length,\n version,\n };\n}\n","import { z } from \"zod\";\nimport { eq, notInArray } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { codeFile, codeFileEdge, syncState } from \"@/lib/drizzle/schema\";\nimport { bumpVersion } from \"@/lib/ingest\";\n\n// Persistence for the file-import graph the watcher rebuilds each tick. Every\n// row is introspection-derived (there is no manual code-file editing), so the\n// shape is simpler than ingestSnapshot: full-replace files, full-replace edges,\n// preserve x/y across re-scans. Circular-edge flagging runs here (not in the\n// extractor) because it's a property of the global graph, not of any single file.\n\nexport const codeGraphSchema = z.object({\n files: z\n .array(\n z.object({\n path: z.string().trim().min(1),\n root: z.string().nullish(),\n lang: z.string().nullish(),\n mtimeMs: z.number().nullish(),\n size: z.number().nullish(),\n }),\n )\n .default([]),\n edges: z\n .array(\n z.object({\n from: z.string().trim().min(1),\n to: z.string().trim().min(1),\n }),\n )\n .default([]),\n});\nexport type CodeGraphInput = z.input<typeof codeGraphSchema>;\n\n/**\n * Tarjan's SCC, iterative (avoids recursion depth on deep import chains).\n * Returns a Set of \"from→to\" keys for edges that sit inside a non-trivial SCC\n * — i.e. edges that participate in some import cycle.\n */\nexport function findCircularEdges(\n nodes: string[],\n edges: { from: string; to: string }[],\n): Set<string> {\n const adj = new Map<string, string[]>();\n for (const n of nodes) adj.set(n, []);\n for (const e of edges) adj.get(e.from)?.push(e.to);\n\n const indexOf = new Map<string, number>();\n const lowlink = new Map<string, number>();\n const onStack = new Set<string>();\n const tarStack: string[] = [];\n const sccOf = new Map<string, number>();\n const sccSizes: number[] = [];\n let index = 0;\n let sccCount = 0;\n\n type Frame = { v: string; iter: number };\n for (const start of nodes) {\n if (indexOf.has(start)) continue;\n const callStack: Frame[] = [{ v: start, iter: 0 }];\n indexOf.set(start, index);\n lowlink.set(start, index);\n index++;\n tarStack.push(start);\n onStack.add(start);\n\n while (callStack.length) {\n const top = callStack[callStack.length - 1];\n const succ = adj.get(top.v) ?? [];\n if (top.iter < succ.length) {\n const w = succ[top.iter++];\n if (!indexOf.has(w)) {\n indexOf.set(w, index);\n lowlink.set(w, index);\n index++;\n tarStack.push(w);\n onStack.add(w);\n callStack.push({ v: w, iter: 0 });\n } else if (onStack.has(w)) {\n lowlink.set(top.v, Math.min(lowlink.get(top.v)!, indexOf.get(w)!));\n }\n } else {\n if (lowlink.get(top.v) === indexOf.get(top.v)) {\n let size = 0;\n let w: string;\n do {\n w = tarStack.pop()!;\n onStack.delete(w);\n sccOf.set(w, sccCount);\n size++;\n } while (w !== top.v);\n sccSizes.push(size);\n sccCount++;\n }\n callStack.pop();\n // Propagate lowlink back to caller (the recursive \"return\" step).\n const caller = callStack[callStack.length - 1];\n if (caller) {\n lowlink.set(\n caller.v,\n Math.min(lowlink.get(caller.v)!, lowlink.get(top.v)!),\n );\n }\n }\n }\n }\n\n const out = new Set<string>();\n for (const e of edges) {\n const si = sccOf.get(e.from);\n if (si !== undefined && si === sccOf.get(e.to) && sccSizes[si] > 1) {\n out.add(`${e.from}|${e.to}`);\n }\n }\n return out;\n}\n\n/**\n * Upsert a code-graph snapshot. Idempotent. Preserves CodeFile.x/y across runs.\n * Edges are full-replaced (the table is small and the PK is (from,to) so a\n * blanket deleteMany + createMany is cheaper than diffing).\n */\nexport async function ingestCodeGraph(input: unknown, prisma: DB = db) {\n const snap = codeGraphSchema.parse(input);\n const keep = snap.files.map((f) => f.path);\n const keepSet = new Set(keep);\n\n // Valid edges (drop danglers + self-loops), cycle flags, and per-file degrees —\n // computed once up front so the file upserts below can cache inDegree/outDegree.\n const valid = snap.edges.filter(\n (e) => keepSet.has(e.from) && keepSet.has(e.to) && e.from !== e.to,\n );\n const circular = findCircularEdges(keep, valid);\n const inDeg = new Map<string, number>();\n const outDeg = new Map<string, number>();\n for (const e of valid) {\n outDeg.set(e.from, (outDeg.get(e.from) ?? 0) + 1);\n inDeg.set(e.to, (inDeg.get(e.to) ?? 0) + 1);\n }\n\n // Drop files that vanished from this scan. Cascade drops their edges too.\n await prisma.delete(codeFile).where(notInArray(codeFile.path, keep));\n\n // Upsert present files with metadata + cached degrees. `updatedAt` is @updatedAt,\n // so a no-op update still bumps it — that's how we tell the UI the row was touched.\n for (const f of snap.files) {\n const data = {\n root: f.root ?? null,\n lang: f.lang ?? null,\n mtimeMs: f.mtimeMs ?? null,\n size: f.size ?? null,\n inDegree: inDeg.get(f.path) ?? 0,\n outDegree: outDeg.get(f.path) ?? 0,\n };\n await prisma\n .insert(codeFile)\n .values({ path: f.path, ...data })\n .onConflictDoUpdate({ target: codeFile.path, set: data });\n }\n\n // Edges: full-replace (small table, PK (from,to) → blanket delete + createMany).\n await prisma.delete(codeFileEdge);\n let circularCount = 0;\n if (valid.length) {\n await prisma.insert(codeFileEdge).values(\n valid.map((e) => {\n const isCircular = circular.has(`${e.from}|${e.to}`);\n if (isCircular) circularCount++;\n return { fromPath: e.from, toPath: e.to, circular: isCircular };\n }),\n );\n }\n\n const version = await bumpVersion(prisma);\n // Staleness signal: stamp WHEN the code graph last fully synced. bumpVersion just\n // upserted the row, so the update is safe. (Only the code-graph sync sets this — the\n // schema/endpoint ingest in lib/ingest.ts bumps the version but not this field.)\n await prisma.update(syncState).set({ codeGraphSyncedAt: new Date() }).where(eq(syncState.id, \"singleton\"));\n return {\n files: snap.files.length,\n edges: valid.length,\n circular: circularCount,\n version,\n };\n}\n\n// ── Blast radius ───────────────────────────────────────────────────────────\n\nconst NODE_CAP = 200; // max transitive nodes returned before we flag `truncated`\nconst HUB_FLOOR = 3; // a file needs at least this many importers to be a hub at all\n\nexport interface BlastNode {\n path: string;\n depth: number;\n lang: string | null;\n}\n\nexport interface BlastRadiusResult {\n path: string;\n exists: boolean;\n hub: { inDegree: number; outDegree: number; isHub: boolean };\n imports: { to: string; circular: boolean }[]; // 1-hop out\n importedBy: { from: string; circular: boolean }[]; // 1-hop in\n transitive: { upstream: BlastNode[]; downstream: BlastNode[]; truncated: boolean };\n}\n\n/**\n * BFS over the import graph from `start`, one direction:\n * \"down\" follows INCOMING edges (importers) — \"who depends on me\", the blast radius.\n * \"up\" follows OUTGOING edges (imports) — \"what I depend on\".\n * Stops at `maxDepth` or once NODE_CAP nodes are collected (then `truncated`).\n */\nasync function bfs(\n prisma: DB,\n start: string,\n maxDepth: number,\n dir: \"down\" | \"up\",\n): Promise<{ order: { path: string; depth: number }[]; truncated: boolean }> {\n const visited = new Set([start]);\n const order: { path: string; depth: number }[] = [];\n let frontier = [start];\n let truncated = false;\n for (let depth = 1; depth <= maxDepth && frontier.length; depth++) {\n const neighbors =\n dir === \"down\"\n ? (\n await prisma.query.codeFileEdge.findMany({\n where: (t, { inArray: inA }) => inA(t.toPath, frontier),\n columns: { fromPath: true },\n })\n ).map((r) => r.fromPath)\n : (\n await prisma.query.codeFileEdge.findMany({\n where: (t, { inArray: inA }) => inA(t.fromPath, frontier),\n columns: { toPath: true },\n })\n ).map((r) => r.toPath);\n const next: string[] = [];\n for (const p of neighbors) {\n if (visited.has(p)) continue;\n visited.add(p);\n order.push({ path: p, depth });\n next.push(p);\n if (order.length >= NODE_CAP) {\n truncated = true;\n break;\n }\n }\n if (truncated) break;\n frontier = next;\n }\n return { order, truncated };\n}\n\n/**\n * Rich, deterministic blast radius for a file: 1-hop imports/importedBy (unchanged),\n * transitive depth-N reachability both directions, and hub/centrality scoring from the\n * cached degrees. Reuses the existing CodeFileEdge rows — no new tables, no AI.\n */\nexport async function blastRadius(\n prisma: DB,\n path: string,\n opts: { depth?: number } = {},\n): Promise<BlastRadiusResult> {\n const file = await prisma.query.codeFile.findFirst({\n where: (t, { eq }) => eq(t.path, path),\n columns: { inDegree: true, outDegree: true },\n });\n if (!file) {\n return {\n path,\n exists: false,\n hub: { inDegree: 0, outDegree: 0, isHub: false },\n imports: [],\n importedBy: [],\n transitive: { upstream: [], downstream: [], truncated: false },\n };\n }\n const depth = Math.min(Math.max(Math.floor(opts.depth ?? 2), 1), 5);\n\n const [out1, in1, downBfs, upBfs, allDeg] = await Promise.all([\n prisma.query.codeFileEdge.findMany({\n where: (t, { eq }) => eq(t.fromPath, path),\n columns: { toPath: true, circular: true },\n }),\n prisma.query.codeFileEdge.findMany({\n where: (t, { eq }) => eq(t.toPath, path),\n columns: { fromPath: true, circular: true },\n }),\n bfs(prisma, path, depth, \"down\"),\n bfs(prisma, path, depth, \"up\"),\n prisma.query.codeFile.findMany({ columns: { inDegree: true } }),\n ]);\n\n // Batch-fetch lang for every transitive node.\n const nodePaths = [...new Set([...downBfs.order, ...upBfs.order].map((n) => n.path))];\n const langRows = nodePaths.length\n ? await prisma.query.codeFile.findMany({\n where: (t, { inArray: inA }) => inA(t.path, nodePaths),\n columns: { path: true, lang: true },\n })\n : [];\n const langByPath = new Map(langRows.map((r) => [r.path, r.lang]));\n const withLang = (n: { path: string; depth: number }): BlastNode => ({\n path: n.path,\n depth: n.depth,\n lang: langByPath.get(n.path) ?? null,\n });\n\n // Hub: inDegree at or above max(floor, 90th-percentile of nonzero inDegrees).\n const nonzero = allDeg.map((f) => f.inDegree).filter((n) => n > 0).sort((a, b) => a - b);\n const p90 = nonzero.length ? nonzero[Math.min(nonzero.length - 1, Math.floor(nonzero.length * 0.9))] : 0;\n const isHub = file.inDegree > 0 && file.inDegree >= Math.max(HUB_FLOOR, p90);\n\n return {\n path,\n exists: true,\n hub: { inDegree: file.inDegree, outDegree: file.outDegree, isHub },\n imports: out1.map((e) => ({ to: e.toPath, circular: e.circular })),\n importedBy: in1.map((e) => ({ from: e.fromPath, circular: e.circular })),\n transitive: {\n upstream: upBfs.order.map(withLang),\n downstream: downBfs.order.map(withLang),\n truncated: upBfs.truncated || downBfs.truncated,\n },\n };\n}\n","import { db } from \"@/lib/db-drizzle\";\nimport { getActiveId, workspaceIdFromRequest } from \"@/lib/workspaces\";\nimport { ensureWatcher, isWatching } from \"@/intel/watch-manager\";\n\n// Staleness signal for the code graph, attached to blast-radius / context responses so\n// the agent knows whether the data it's reading is current. Also LAZILY warms a watcher\n// for the queried repo (the recently-opened-subset boot may not cover it) — so the first\n// query \"wakes up\" the repo and subsequent ones are live.\n//\n// Server-only: pulls in intel/watch-manager (→ chokidar). Never import from lib/code-graph\n// (which the test suite loads) — keep this out of that import graph.\nexport async function codeGraphFreshness(\n req: Request,\n): Promise<{ syncedAt: string | null; watching: boolean }> {\n const wsId = workspaceIdFromRequest(req) ?? getActiveId();\n if (wsId) ensureWatcher(wsId);\n const s = await db.query.syncState.findFirst({\n where: (t, { eq }) => eq(t.id, \"singleton\"),\n columns: { codeGraphSyncedAt: true },\n });\n return {\n syncedAt: s?.codeGraphSyncedAt ? s.codeGraphSyncedAt.toISOString() : null,\n watching: wsId ? isWatching(wsId) : false,\n };\n}\n","import { blastRadius } from \"@/lib/code-graph\";\nimport { codeGraphFreshness } from \"@/lib/code-graph-freshness\";\nimport { db, runWithWorkspace } from \"@/lib/db-drizzle\";\nimport { workspaceIdFromRequest } from \"@/lib/workspaces\";\n\n// \"Blast radius\" for a single file: 1-hop imports + importedBy (unchanged), PLUS\n// transitive depth-N reachability both directions and hub/centrality scoring, plus\n// every feature/component that has attached this file. The answer to \"I'm about to\n// touch this — what else cares?\" without grepping the repo. `?depth=` (default 2,\n// cap 5) controls how far the transitive walk goes.\n\nexport async function GET(req: Request) {\n return runWithWorkspace(workspaceIdFromRequest(req), () => handle(req));\n}\n\nasync function handle(req: Request) {\n const url = new URL(req.url);\n const path = url.searchParams.get(\"path\");\n if (!path) {\n return new Response(\"missing ?path=\", { status: 400 });\n }\n const depthRaw = Number(url.searchParams.get(\"depth\"));\n const depth = Number.isFinite(depthRaw) && depthRaw > 0 ? depthRaw : undefined;\n\n const [radius, codeGraph] = await Promise.all([\n blastRadius(db, path, { depth }),\n codeGraphFreshness(req),\n ]);\n if (!radius.exists) {\n return Response.json({\n ...radius,\n attachedTo: [],\n codeGraph,\n note: \"Beacon doesn't have this file indexed. The intel watcher may not have run yet, or the path is wrong (paths are repo-relative POSIX).\",\n });\n }\n\n const attachments = await db.query.nodeFile.findMany({\n where: (t, { eq }) => eq(t.path, path),\n with: {\n node: {\n columns: { id: true, view: true, title: true, cluster: true, status: true, role: true },\n },\n },\n });\n\n return Response.json({\n ...radius,\n attachedTo: attachments.map((a) => ({\n id: a.node.id,\n view: a.node.view,\n title: a.node.title,\n cluster: a.node.cluster,\n status: a.node.status,\n role: a.node.role,\n })),\n codeGraph,\n });\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n type AppRouteUserlandModule,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\nimport * as userland from 'VAR_USERLAND'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The static import is used for initialization (methods, dynamic, etc.).\n userland: userland as AppRouteUserlandModule,\n // In Turbopack dev mode, also provide a getter that calls require() on every\n // request. This re-reads from devModuleCache so HMR updates are picked up,\n // and the async wrapper unwraps async-module Promises (ESM-only\n // serverExternalPackages) automatically.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () => import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n } else {\n span.updateName(`${method} ${srcPage}`)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n context.renderOpts.pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["EP_ROW_HEIGHT","EP_COL_WIDTH","EP_BASE_X","EP_ROWS_PER_COL","EP_CARD_WIDTH","EP_CARD_HEIGHT","endpointsOverlap","eps","i","length","j","a","b","x","y","gridPositionForEndpoint","index","col","Math","floor","row","relayoutEndpoints","prisma","query","endpoint","findMany","orderBy","t","asc","desc","id","moved","e","update","set","where","nextEndpointSlot","n","select","from","DRAFT_MARGIN","computeDraftOriginY","topTbl","topEp","Promise","all","dbTable","findFirst","maxY","max","normalize","path","replace","isImplementedBy","planned","code","method","toUpperCase","p","c","endsWith","reconcilePlannedEndpoints","ne","source","eq","report","collapsed","mappings","m","twin","find","delete","push","TABLE_COL_WIDTH","TABLE_COL_COUNT","TABLE_GAP_PX","TABLE_HEADER_PX","TABLE_ROW_PX","TABLE_PADDING_PX","estimateTableHeight","columnCount","packTablesMasonry","newTables","existing","bottoms","Array","fill","min","round","bottom","out","Map","key","tablesOverlap","placed","w","ah","bh","relayoutTables","tables","with","columns","name","positions","map","get","snapshotSchema","object","array","string","trim","domain","nullish","description","type","isPk","boolean","optional","isFk","nullable","note","default","relations","fromTable","fromColumn","toTable","toColumn","label","endpoints","uses","table","access","getVersion","s","syncState","version","bumpVersion","insert","values","onConflictDoUpdate","target","returning","ingestSnapshot","input","snap","parse","keepTables","allExisting","existingByName","newTablePositions","filter","has","tableIdByName","pos","saved","tableId","ord","introTableIds","fromTableId","toTableId","r","fromId","toId","keepEp","Set","introEps","stale","nextSlotIndex","and","slot","endpointId","u","tid","placedTables","placedEps","codeGraphSchema","files","root","lang","mtimeMs","number","size","edges","to","findCircularEdges","nodes","adj","indexOf","lowlink","onStack","tarStack","sccOf","sccSizes","sccCount","start","callStack","v","iter","add","top","succ","pop","caller","si","undefined","ingestCodeGraph","keep","f","keepSet","valid","circular","inDeg","outDeg","data","inDegree","outDegree","circularCount","isCircular","fromPath","toPath","codeGraphSyncedAt","Date","NODE_CAP","HUB_FLOOR","bfs","maxDepth","dir","visited","order","frontier","truncated","depth","neighbors","codeFileEdge","inArray","inA","next","blastRadius","opts","file","codeFile","exists","hub","isHub","imports","importedBy","transitive","upstream","downstream","out1","in1","downBfs","upBfs","allDeg","nodePaths","langRows","langByPath","withLang","nonzero","sort","p90","codeGraphFreshness","req","wsId","syncedAt","toISOString","watching","GET","handle","url","URL","searchParams","Response","status","depthRaw","Number","isFinite","radius","codeGraph","json","attachedTo","attachments","nodeFile","node","view","title","cluster","role","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","body","Buffer","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes"],"mappings":"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","ignoreList":[8]}