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 @@
1
+ {"version":3,"sources":["../../../lib/api-workspace.ts","../../../lib/access.ts","../../../lib/draft-store.ts","../../../lib/reset.ts","../../../app/api/reset/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["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","// Read/write/read-write is a per-link field on an endpoint→table usage, NOT the HTTP\n// method. But when nobody sets it explicitly, the only sane default comes from the verb:\n// safe methods read, mutating methods write. Used as the default in the design schema,\n// for canvas-drawn links, and to repair endpoints that were stored before this existed.\n\nconst READ_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\nexport function accessForMethod(method: string): \"read\" | \"write\" {\n return READ_METHODS.has(method.trim().toUpperCase()) ? \"read\" : \"write\";\n}\n","import { randomUUID } from \"node:crypto\";\nimport { readFileSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { z } from \"zod\";\nimport { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable, dbColumn, dbRelation, endpoint, endpointTable } from \"@/lib/drizzle/schema\";\nimport { dataDir } from \"@/lib/project\";\nimport { writeJsonAtomic } from \"@/lib/atomic-write\";\nimport { bumpVersion } from \"@/lib/ingest\";\nimport { accessForMethod } from \"@/lib/access\";\nimport { estimateTableHeight, packTablesMasonry } from \"@/lib/table-layout\";\nimport type { DraftGraph } from \"@/lib/design\";\nimport type { DraftDoc, DraftEndpointT, DraftTableT } from \"@/components/graph/db-types\";\n\n// The DB-designer draft lives as ONE JSON object on disk (dataDir()/draft.json) so a\n// Claude Code session can propose one and the browser can pick it up. The browser edits\n// it locally (undo/redo, connections) and only \"Aprovar\" writes it into the real schema.\n// A small verdict file records the last approve/discard so the blocking beacon_draft_table\n// MCP tool can poll the outcome and tell Claude to proceed.\n\ntype Prisma = DB;\n\nfunction draftPath(): string {\n return join(dataDir(), \"draft.json\");\n}\nfunction verdictPath(): string {\n return join(dataDir(), \"draft-verdict.json\");\n}\n\nexport function readDraftDoc(): DraftDoc | null {\n try {\n return JSON.parse(readFileSync(draftPath(), \"utf8\")) as DraftDoc;\n } catch {\n return null;\n }\n}\n\nfunction writeDoc(doc: DraftDoc): void {\n writeJsonAtomic(draftPath(), doc);\n}\n\n/**\n * Position a name-keyed proposal into a DraftDoc with stable ids + a grid layout.\n * `originY` shifts the whole draft down so it doesn't land on top of existing canvas content\n * (default 0 keeps the old behavior for tests and code paths that already pick a position).\n */\nexport function graphToDoc(graph: DraftGraph, proposedAt: number, originY = 0): DraftDoc {\n const idByName = new Map<string, string>();\n // Mirror the persisted /db layout: masonry pack the proposed tables so a tall draft\n // (10+ columns) doesn't render under its neighbour the moment it shows up on the canvas.\n const positions = packTablesMasonry(\n graph.tables.map((t) => ({ key: t.name, columnCount: t.columns.length })),\n );\n let bottom = 0;\n const tables: DraftTableT[] = graph.tables.map((t) => {\n const id = randomUUID();\n idByName.set(t.name, id);\n const p = positions.get(t.name) ?? { x: 0, y: 0 };\n bottom = Math.max(bottom, p.y + estimateTableHeight(t.columns.length));\n return {\n id,\n name: t.name,\n domain: t.domain ?? null,\n description: t.description ?? null,\n x: p.x,\n y: originY + p.y,\n columns: t.columns.map((c) => ({\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 })),\n };\n });\n\n const relations = graph.relations.flatMap((r) => {\n const fromTableId = idByName.get(r.fromTable);\n const toTableId = idByName.get(r.toTable);\n if (!fromTableId || !toTableId) return [];\n return [\n {\n id: randomUUID(),\n fromTableId,\n toTableId,\n fromColumn: r.fromColumn,\n toColumn: r.toColumn,\n label: r.label ?? `${r.fromColumn} → ${r.toTable}.${r.toColumn}`,\n },\n ];\n });\n\n const baseY = originY + bottom + 280;\n const endpoints: DraftEndpointT[] = graph.endpoints.map((e, i) => ({\n id: randomUUID(),\n method: e.method,\n path: e.path,\n domain: e.domain ?? null,\n description: e.description ?? null,\n x: (i % 3) * 320 + 40,\n y: baseY + Math.floor(i / 3) * 120,\n links: e.uses.flatMap((u) => {\n const tableId = idByName.get(u.table);\n return tableId ? [{ tableId, access: u.access }] : [];\n }),\n }));\n\n return { proposedAt, status: \"pending\", tables, relations, endpoints };\n}\n\n/** A fresh proposal from Claude / the generator. Supersedes any prior draft + verdict.\n * `originY` (computed by callers via computeDraftOriginY) shifts the layout below the\n * existing canvas so a fresh draft doesn't land on top of real tables. */\nexport function writeProposal(graph: DraftGraph, originY = 0, now = Date.now()): DraftDoc {\n const doc = graphToDoc(graph, now, originY);\n writeDoc(doc);\n rmSync(verdictPath(), { force: true });\n return doc;\n}\n\nexport function clearDraftDoc(): void {\n rmSync(draftPath(), { force: true });\n}\n\n/** Wipe the draft + its verdict entirely (used by the destructive reset). */\nexport function purgeDraft(): void {\n rmSync(draftPath(), { force: true });\n rmSync(verdictPath(), { force: true });\n}\n\n// ── Verdict (so the blocking MCP tool learns the user's decision) ────────────\n\ninterface DraftVerdict {\n proposedAt: number;\n status: \"approved\" | \"discarded\";\n summary: string;\n detail?: string; // full approved schema (Claude reads the edited columns from here)\n}\n\n// A readable snapshot of exactly what the user approved — including columns they added or\n// edited on the canvas and their notes — so the blocking MCP tool hands the agent the\n// source of truth instead of letting it implement from the draft it originally proposed.\n// Approve = \"build this final schema.\" Any \"you proposed X, the user changed Y\" diff\n// flows through the SUBMIT-FEEDBACK path (lib/plan-feedback.ts), not here.\nexport function describeApprovedDoc(doc: DraftDoc): string {\n const nameById = new Map(doc.tables.map((t) => [t.id, t.name]));\n const lines: string[] = [\"## Approved schema\", \"\", \"### Tables\"];\n for (const t of doc.tables) {\n lines.push(`- **${t.name}**${t.domain ? ` (${t.domain})` : \"\"}`);\n for (const c of t.columns) {\n const flags = [c.isPk && \"PK\", c.isFk && \"FK\", c.nullable ? \"NULL\" : \"NOT NULL\"]\n .filter(Boolean)\n .join(\" \");\n lines.push(` - ${c.name} ${c.type}${flags ? ` ${flags}` : \"\"}${c.note ? ` — ${c.note}` : \"\"}`);\n }\n }\n\n if (doc.relations.length) {\n lines.push(\"\", \"### Relations (FKs)\");\n for (const r of doc.relations) {\n const from = nameById.get(r.fromTableId) ?? r.fromTableId;\n const to = nameById.get(r.toTableId) ?? r.toTableId;\n lines.push(`- ${from}.${r.fromColumn} → ${to}.${r.toColumn}`);\n }\n }\n\n if (doc.endpoints.length) {\n lines.push(\"\", \"### Endpoints\");\n for (const e of doc.endpoints) {\n const uses = e.links\n .map((l) => `${nameById.get(l.tableId) ?? l.tableId} (${l.access})`)\n .join(\", \");\n lines.push(`- ${e.method} ${e.path}${uses ? ` — ${uses}` : \"\"}`);\n }\n }\n\n return lines.join(\"\\n\");\n}\n\n/** Human-readable lines describing additions/removals/retypes between the originally\n * proposed draft and the doc the user later approved or surfaced as feedback. Covers\n * tables/columns plus relation and endpoint add/remove signals — enough to tell the\n * agent \"you proposed X, the user wants Y instead.\" */\nexport function diffDocs(orig: DraftDoc, current: DraftDoc): string[] {\n const lines: string[] = [];\n const origByName = new Map(orig.tables.map((t) => [t.name, t]));\n const currentByName = new Map(current.tables.map((t) => [t.name, t]));\n\n for (const t of current.tables) {\n if (!origByName.has(t.name)) lines.push(`added table **${t.name}**`);\n }\n for (const t of orig.tables) {\n if (!currentByName.has(t.name)) lines.push(`removed table **${t.name}**`);\n }\n\n for (const a of current.tables) {\n const o = origByName.get(a.name);\n if (!o) continue;\n const origCols = new Map(o.columns.map((c) => [c.name, c]));\n const currentCols = new Map(a.columns.map((c) => [c.name, c]));\n for (const c of a.columns) {\n const prior = origCols.get(c.name);\n if (!prior) {\n lines.push(`added column **${a.name}.${c.name}** (${c.type})`);\n continue;\n }\n const diffs: string[] = [];\n if (prior.type !== c.type) diffs.push(`type ${prior.type} → ${c.type}`);\n if (prior.isPk !== c.isPk) diffs.push(c.isPk ? \"now PK\" : \"no longer PK\");\n if (prior.isFk !== c.isFk) diffs.push(c.isFk ? \"now FK\" : \"no longer FK\");\n if (prior.nullable !== c.nullable)\n diffs.push(c.nullable ? \"now accepts NULL\" : \"now NOT NULL\");\n if ((prior.note ?? \"\") !== (c.note ?? \"\")) diffs.push(`note: \"${c.note ?? \"\"}\"`);\n if (diffs.length) lines.push(`changed **${a.name}.${c.name}** — ${diffs.join(\"; \")}`);\n }\n for (const c of o.columns) {\n if (!currentCols.has(c.name))\n lines.push(`removed column **${a.name}.${c.name}** (was ${c.type})`);\n }\n }\n\n // Relations: identify by from/to table name + from/to column. Renames against a still-\n // existing table count as a change; renames against a dropped table fall out as \"removed\".\n const relKey = (\n r: { fromTableId: string; toTableId: string; fromColumn: string; toColumn: string },\n nameById: Map<string, string>,\n ) =>\n `${nameById.get(r.fromTableId) ?? r.fromTableId}.${r.fromColumn}→${nameById.get(r.toTableId) ?? r.toTableId}.${r.toColumn}`;\n const origRelNames = new Map(orig.tables.map((t) => [t.id, t.name]));\n const currRelNames = new Map(current.tables.map((t) => [t.id, t.name]));\n const origRels = new Set(orig.relations.map((r) => relKey(r, origRelNames)));\n const currRels = new Set(current.relations.map((r) => relKey(r, currRelNames)));\n for (const key of currRels) if (!origRels.has(key)) lines.push(`added relation ${key}`);\n for (const key of origRels) if (!currRels.has(key)) lines.push(`removed relation ${key}`);\n\n // Endpoints: identity is method + path. Usage-link changes ride along under the\n // endpoint that owns them.\n const epKey = (e: { method: string; path: string }) => `${e.method} ${e.path}`;\n const origEps = new Map(orig.endpoints.map((e) => [epKey(e), e]));\n const currEps = new Map(current.endpoints.map((e) => [epKey(e), e]));\n for (const [k, e] of currEps) {\n if (!origEps.has(k)) {\n const uses = e.links\n .map((l) => `${currRelNames.get(l.tableId) ?? l.tableId} (${l.access})`)\n .join(\", \");\n lines.push(`added endpoint **${k}**${uses ? ` — ${uses}` : \"\"}`);\n }\n }\n for (const [k] of origEps) {\n if (!currEps.has(k)) lines.push(`removed endpoint **${k}**`);\n }\n\n return lines;\n}\nfunction writeVerdict(v: DraftVerdict): void {\n writeJsonAtomic(verdictPath(), v);\n}\nfunction readVerdict(): DraftVerdict | null {\n try {\n return JSON.parse(readFileSync(verdictPath(), \"utf8\")) as DraftVerdict;\n } catch {\n return null;\n }\n}\n\nexport function discardDraft(): void {\n const doc = readDraftDoc();\n if (doc)\n writeVerdict({\n proposedAt: doc.proposedAt,\n status: \"discarded\",\n summary: \"The user discarded the draft.\",\n });\n clearDraftDoc();\n}\n\nexport type DraftState =\n | { state: \"pending\"; proposedAt: number }\n | { state: \"approved\" | \"discarded\"; proposedAt: number; summary: string; detail?: string }\n | { state: \"none\" };\n\nexport function draftState(): DraftState {\n const doc = readDraftDoc();\n if (doc) return { state: \"pending\", proposedAt: doc.proposedAt };\n const v = readVerdict();\n if (v) return { state: v.status, proposedAt: v.proposedAt, summary: v.summary, detail: v.detail };\n return { state: \"none\" };\n}\n\n// ── Approve: persist the (possibly edited) draft into the real schema ────────\n\nconst draftDocSchema = z.object({\n proposedAt: z.number(),\n status: z.string(),\n tables: z.array(\n z.object({\n id: z.string(),\n name: z.string().trim().min(1),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n columns: z.array(\n z.object({\n name: z.string().trim().min(1),\n type: z.string(),\n isPk: z.boolean(),\n isFk: z.boolean(),\n nullable: z.boolean(),\n note: z.string().nullable(),\n }),\n ),\n }),\n ),\n relations: z.array(\n z.object({\n id: z.string(),\n fromTableId: z.string(),\n toTableId: z.string(),\n fromColumn: z.string(),\n toColumn: z.string(),\n label: z.string().nullable(),\n }),\n ),\n endpoints: z.array(\n z.object({\n id: z.string(),\n method: z.string().trim().min(1),\n path: z.string().trim().min(1),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n links: z.array(z.object({ tableId: z.string(), access: z.string() })),\n }),\n ),\n});\n\nexport async function approveDraft(\n input: unknown,\n prisma: Prisma = db,\n): Promise<{ tables: number; relations: number; endpoints: number }> {\n const doc = draftDocSchema.parse(input) as DraftDoc;\n const nameById = new Map(doc.tables.map((t) => [t.id, t.name]));\n const realIdByName = new Map<string, string>();\n\n // Tables → upsert by name (source MANUAL = approved/planned, renders solid). Columns replaced.\n for (const t of doc.tables) {\n const [saved] = await prisma\n .insert(dbTable)\n .values({\n name: t.name,\n domain: t.domain,\n description: t.description,\n source: \"MANUAL\",\n x: t.x,\n y: t.y,\n })\n .onConflictDoUpdate({\n target: dbTable.name,\n set: { domain: t.domain, description: t.description },\n })\n .returning();\n realIdByName.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,\n isFk: c.isFk,\n nullable: c.nullable,\n note: c.note,\n ord: i,\n })),\n );\n }\n\n // A draft/real table id → the real DbTable id it maps to (links can point at either).\n const resolveRealId = async (id: string): Promise<string | null> => {\n const name = nameById.get(id);\n if (name) return realIdByName.get(name) ?? null;\n const t = await prisma.query.dbTable\n .findFirst({ where: (x, { eq }) => eq(x.id, id) })\n .catch(() => null);\n return t ? t.id : null;\n };\n\n // Relations → DbRelation (skip dups + unresolvable).\n for (const rel of doc.relations) {\n const fromId = await resolveRealId(rel.fromTableId);\n const toId = await resolveRealId(rel.toTableId);\n if (!fromId || !toId) continue;\n const exists = await prisma.query.dbRelation.findFirst({\n where: (x, { and, eq }) =>\n and(\n eq(x.fromTableId, fromId),\n eq(x.toTableId, toId),\n eq(x.fromColumn, rel.fromColumn),\n eq(x.toColumn, rel.toColumn),\n ),\n });\n if (exists) continue;\n await prisma.insert(dbRelation).values({\n fromTableId: fromId,\n toTableId: toId,\n fromColumn: rel.fromColumn,\n toColumn: rel.toColumn,\n label: rel.label,\n });\n }\n\n // Endpoints → upsert by method+path; usage links → EndpointTable (now real ids exist).\n for (const e of doc.endpoints) {\n const [saved] = await prisma\n .insert(endpoint)\n .values({\n method: e.method,\n path: e.path,\n domain: e.domain,\n description: e.description,\n source: \"MANUAL\",\n x: e.x,\n y: e.y,\n })\n .onConflictDoUpdate({\n target: [endpoint.method, endpoint.path],\n set: { domain: e.domain, description: e.description },\n })\n .returning();\n await prisma.delete(endpointTable).where(eq(endpointTable.endpointId, saved.id));\n for (const link of e.links) {\n const tid = await resolveRealId(link.tableId);\n if (!tid) continue;\n await prisma\n .insert(endpointTable)\n .values({ endpointId: saved.id, tableId: tid, access: link.access })\n .catch(() => {}); // ignore the unique([endpointId,tableId]) clash on duplicate links\n }\n }\n\n const summary = `${doc.tables.length} table(s), ${doc.relations.length} relation(s) and ${doc.endpoints.length} endpoint(s) approved and persisted to the schema.`;\n writeVerdict({\n proposedAt: doc.proposedAt,\n status: \"approved\",\n summary,\n detail: describeApprovedDoc(doc),\n });\n clearDraftDoc();\n await bumpVersion(prisma);\n return { tables: doc.tables.length, relations: doc.relations.length, endpoints: doc.endpoints.length };\n}\n\n/**\n * Repair endpoints stored before access was inferred from the method: a mutating endpoint\n * (POST/PUT/PATCH/DELETE) whose table link defaulted to \"read\" is bumped to \"write\". GET\n * reads and explicit \"write\"/\"read-write\" links are left untouched. Returns links updated.\n */\nexport async function backfillEndpointAccess(prisma: Prisma = db): Promise<number> {\n const eps = await prisma.query.endpoint.findMany({ with: { tables: true } });\n let fixed = 0;\n for (const e of eps) {\n if (accessForMethod(e.method) !== \"write\") continue;\n for (const link of e.tables) {\n if (link.access !== \"read\") continue;\n await prisma.update(endpointTable).set({ access: \"write\" }).where(eq(endpointTable.id, link.id));\n fixed++;\n }\n }\n return fixed;\n}\n","import { db, type DB } from \"@/lib/db-drizzle\";\nimport {\n appSetting,\n dbColumn,\n dbRelation,\n dbTable,\n draftColumn,\n draftRelation,\n draftTable,\n edge,\n endpoint,\n endpointTable,\n node,\n nodeFile,\n note,\n projectMeta,\n tag,\n} from \"@/lib/drizzle/schema\";\nimport { bumpVersion } from \"@/lib/ingest\";\nimport { purgeDraft } from \"@/lib/draft-store\";\n\n// Wipes every piece of project data so the panel starts from zero: the roadmap/\n// architecture graph, the DB map, drafts, the code graph and the derived project\n// overview. Deletes children before parents (FK-safe). Keeps the user's\n// provider/editor preferences in AppSetting, just drops the dangling feature pointer.\nexport async function resetAllData(prisma: DB = db): Promise<void> {\n // DB map (introspected schema)\n await prisma.delete(endpointTable);\n await prisma.delete(endpoint);\n await prisma.delete(dbRelation);\n await prisma.delete(dbColumn);\n await prisma.delete(dbTable);\n\n // DB designer drafts: legacy DB rows + the current JSON draft/verdict files\n await prisma.delete(draftRelation);\n await prisma.delete(draftColumn);\n await prisma.delete(draftTable);\n purgeDraft();\n\n // Roadmap / architecture graph (NodeFile cascades from Node)\n await prisma.delete(edge);\n await prisma.delete(note);\n await prisma.delete(nodeFile);\n await prisma.delete(node);\n await prisma.delete(tag);\n\n // Derived project meta\n await prisma.delete(projectMeta);\n\n // Keep provider/editor prefs; clear the now-dangling \"current feature\" pointer.\n await prisma.update(appSetting).set({ currentFeatureId: null });\n\n await bumpVersion(prisma); // nudge the live SSE refresh so open views go empty\n}\n","import { resetAllData } from \"@/lib/reset\";\nimport { pinned } from \"@/lib/api-workspace\";\n\nexport const dynamic = \"force-dynamic\";\n\n// Destructive: wipes all project data (graph, DB map, drafts, code graph, project meta).\n// Triggered from the red button in Settings. Keeps provider/editor prefs. Pinned so it\n// wipes the workspace the browser is viewing (beacon_ws cookie), NOT whatever a background\n// agent left as the global active — a reset hitting the wrong repo would be unrecoverable.\nexport const POST = pinned(async () => {\n try {\n await resetAllData();\n return Response.json({ ok: true });\n } catch (e) {\n return new Response(`reset failed: ${e instanceof Error ? e.message : \"error\"}`, {\n status: 500,\n });\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":["pinned","handler","req","rest","id","READ_METHODS","Set","accessForMethod","method","has","trim","toUpperCase","draftPath","verdictPath","readDraftDoc","JSON","parse","writeDoc","doc","graphToDoc","graph","proposedAt","originY","idByName","Map","positions","tables","map","t","key","name","columnCount","columns","length","bottom","set","p","get","x","y","Math","max","domain","description","c","type","isPk","isFk","nullable","note","relations","flatMap","r","fromTableId","fromTable","toTableId","toTable","fromColumn","toColumn","label","baseY","endpoints","e","i","path","floor","links","uses","u","tableId","table","access","status","writeProposal","now","Date","force","clearDraftDoc","purgeDraft","describeApprovedDoc","nameById","lines","push","flags","filter","Boolean","join","from","to","l","diffDocs","orig","current","origByName","currentByName","a","o","origCols","currentCols","prior","diffs","relKey","origRelNames","currRelNames","origRels","currRels","epKey","origEps","currEps","k","writeVerdict","v","readVerdict","discardDraft","summary","draftState","state","detail","draftDocSchema","object","number","string","array","min","boolean","approveDraft","input","prisma","realIdByName","saved","insert","values","source","onConflictDoUpdate","target","returning","delete","where","ord","resolveRealId","query","dbTable","findFirst","eq","catch","rel","fromId","toId","exists","dbRelation","and","endpointId","link","tid","backfillEndpointAccess","eps","endpoint","findMany","with","fixed","update","resetAllData","currentFeatureId","dynamic","POST","Response","json","ok","Error","message","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","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","body","Buffer","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","isMiss","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[5]}
@@ -0,0 +1,3 @@
1
+ module.exports=[89122,e=>{"use strict";var t=e.i(14859);e.s(["pinned",0,function(e){return async(n,...a)=>{let o=await (0,t.resolveRequestWorkspaceId)(n);return o&&await (0,t.ensureWorkspaceDb)(o),(0,t.runWithWorkspace)(o,async()=>e(n,...a))}}])},39513,e=>{"use strict";let t=new Set(["GET","HEAD","OPTIONS"]);e.s(["accessForMethod",0,function(e){return t.has(e.trim().toUpperCase())?"read":"write"}])},23737,e=>e.a(async(t,n)=>{try{var a=e.i(66680),o=e.i(2157),r=e.i(50227),i=e.i(69719),l=e.i(75225),s=e.i(91426),d=e.i(34700),u=e.i(38752),p=e.i(94930),c=e.i(6659),m=e.i(39513),f=e.i(96902),h=t([s,c,f]);function b(){return(0,r.join)((0,u.dataDir)(),"draft.json")}function g(){return(0,r.join)((0,u.dataDir)(),"draft-verdict.json")}function w(){try{return JSON.parse((0,o.readFileSync)(b(),"utf8"))}catch{return null}}function y(){(0,o.rmSync)(b(),{force:!0})}function v(e){let t=new Map(e.tables.map(e=>[e.id,e.name])),n=["## Approved schema","","### Tables"];for(let t of e.tables)for(let e of(n.push(`- **${t.name}**${t.domain?` (${t.domain})`:""}`),t.columns)){let t=[e.isPk&&"PK",e.isFk&&"FK",e.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");n.push(` - ${e.name} ${e.type}${t?` ${t}`:""}${e.note?` — ${e.note}`:""}`)}if(e.relations.length)for(let a of(n.push("","### Relations (FKs)"),e.relations)){let e=t.get(a.fromTableId)??a.fromTableId,o=t.get(a.toTableId)??a.toTableId;n.push(`- ${e}.${a.fromColumn} → ${o}.${a.toColumn}`)}if(e.endpoints.length)for(let a of(n.push("","### Endpoints"),e.endpoints)){let e=a.links.map(e=>`${t.get(e.tableId)??e.tableId} (${e.access})`).join(", ");n.push(`- ${a.method} ${a.path}${e?` — ${e}`:""}`)}return n.join("\n")}function C(e){(0,p.writeJsonAtomic)(g(),e)}[s,c,f]=h.then?(await h)():h;let T=i.z.object({proposedAt:i.z.number(),status:i.z.string(),tables:i.z.array(i.z.object({id:i.z.string(),name:i.z.string().trim().min(1),domain:i.z.string().nullable(),description:i.z.string().nullable(),x:i.z.number(),y:i.z.number(),columns:i.z.array(i.z.object({name:i.z.string().trim().min(1),type:i.z.string(),isPk:i.z.boolean(),isFk:i.z.boolean(),nullable:i.z.boolean(),note:i.z.string().nullable()}))})),relations:i.z.array(i.z.object({id:i.z.string(),fromTableId:i.z.string(),toTableId:i.z.string(),fromColumn:i.z.string(),toColumn:i.z.string(),label:i.z.string().nullable()})),endpoints:i.z.array(i.z.object({id:i.z.string(),method:i.z.string().trim().min(1),path:i.z.string().trim().min(1),domain:i.z.string().nullable(),description:i.z.string().nullable(),x:i.z.number(),y:i.z.number(),links:i.z.array(i.z.object({tableId:i.z.string(),access:i.z.string()}))}))});async function R(e,t=s.db){let n=T.parse(e),a=new Map(n.tables.map(e=>[e.id,e.name])),o=new Map;for(let e of n.tables){let[n]=await t.insert(d.dbTable).values({name:e.name,domain:e.domain,description:e.description,source:"MANUAL",x:e.x,y:e.y}).onConflictDoUpdate({target:d.dbTable.name,set:{domain:e.domain,description:e.description}}).returning();o.set(e.name,n.id),await t.delete(d.dbColumn).where((0,l.eq)(d.dbColumn.tableId,n.id)),e.columns.length&&await t.insert(d.dbColumn).values(e.columns.map((e,t)=>({tableId:n.id,name:e.name,type:e.type,isPk:e.isPk,isFk:e.isFk,nullable:e.nullable,note:e.note,ord:t})))}let r=async e=>{let n=a.get(e);if(n)return o.get(n)??null;let r=await t.query.dbTable.findFirst({where:(t,{eq:n})=>n(t.id,e)}).catch(()=>null);return r?r.id:null};for(let e of n.relations){let n=await r(e.fromTableId),a=await r(e.toTableId);n&&a&&(await t.query.dbRelation.findFirst({where:(t,{and:o,eq:r})=>o(r(t.fromTableId,n),r(t.toTableId,a),r(t.fromColumn,e.fromColumn),r(t.toColumn,e.toColumn))})||await t.insert(d.dbRelation).values({fromTableId:n,toTableId:a,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label}))}for(let e of n.endpoints){let[n]=await t.insert(d.endpoint).values({method:e.method,path:e.path,domain:e.domain,description:e.description,source:"MANUAL",x:e.x,y:e.y}).onConflictDoUpdate({target:[d.endpoint.method,d.endpoint.path],set:{domain:e.domain,description:e.description}}).returning();for(let a of(await t.delete(d.endpointTable).where((0,l.eq)(d.endpointTable.endpointId,n.id)),e.links)){let e=await r(a.tableId);e&&await t.insert(d.endpointTable).values({endpointId:n.id,tableId:e,access:a.access}).catch(()=>{})}}let i=`${n.tables.length} table(s), ${n.relations.length} relation(s) and ${n.endpoints.length} endpoint(s) approved and persisted to the schema.`;return C({proposedAt:n.proposedAt,status:"approved",summary:i,detail:v(n)}),y(),await (0,c.bumpVersion)(t),{tables:n.tables.length,relations:n.relations.length,endpoints:n.endpoints.length}}async function $(e=s.db){let t=await e.query.endpoint.findMany({with:{tables:!0}}),n=0;for(let a of t)if("write"===(0,m.accessForMethod)(a.method))for(let t of a.tables)"read"===t.access&&(await e.update(d.endpointTable).set({access:"write"}).where((0,l.eq)(d.endpointTable.id,t.id)),n++);return n}e.s(["approveDraft",0,R,"backfillEndpointAccess",0,$,"clearDraftDoc",0,y,"describeApprovedDoc",0,v,"diffDocs",0,function(e,t){let n=[],a=new Map(e.tables.map(e=>[e.name,e])),o=new Map(t.tables.map(e=>[e.name,e]));for(let e of t.tables)a.has(e.name)||n.push(`added table **${e.name}**`);for(let t of e.tables)o.has(t.name)||n.push(`removed table **${t.name}**`);for(let e of t.tables){let t=a.get(e.name);if(!t)continue;let o=new Map(t.columns.map(e=>[e.name,e])),r=new Map(e.columns.map(e=>[e.name,e]));for(let t of e.columns){let a=o.get(t.name);if(!a){n.push(`added column **${e.name}.${t.name}** (${t.type})`);continue}let r=[];a.type!==t.type&&r.push(`type ${a.type} → ${t.type}`),a.isPk!==t.isPk&&r.push(t.isPk?"now PK":"no longer PK"),a.isFk!==t.isFk&&r.push(t.isFk?"now FK":"no longer FK"),a.nullable!==t.nullable&&r.push(t.nullable?"now accepts NULL":"now NOT NULL"),(a.note??"")!==(t.note??"")&&r.push(`note: "${t.note??""}"`),r.length&&n.push(`changed **${e.name}.${t.name}** — ${r.join("; ")}`)}for(let a of t.columns)r.has(a.name)||n.push(`removed column **${e.name}.${a.name}** (was ${a.type})`)}let r=(e,t)=>`${t.get(e.fromTableId)??e.fromTableId}.${e.fromColumn}→${t.get(e.toTableId)??e.toTableId}.${e.toColumn}`,i=new Map(e.tables.map(e=>[e.id,e.name])),l=new Map(t.tables.map(e=>[e.id,e.name])),s=new Set(e.relations.map(e=>r(e,i))),d=new Set(t.relations.map(e=>r(e,l)));for(let e of d)s.has(e)||n.push(`added relation ${e}`);for(let e of s)d.has(e)||n.push(`removed relation ${e}`);let u=e=>`${e.method} ${e.path}`,p=new Map(e.endpoints.map(e=>[u(e),e])),c=new Map(t.endpoints.map(e=>[u(e),e]));for(let[e,t]of c)if(!p.has(e)){let a=t.links.map(e=>`${l.get(e.tableId)??e.tableId} (${e.access})`).join(", ");n.push(`added endpoint **${e}**${a?` — ${a}`:""}`)}for(let[e]of p)c.has(e)||n.push(`removed endpoint **${e}**`);return n},"discardDraft",0,function(){let e=w();e&&C({proposedAt:e.proposedAt,status:"discarded",summary:"The user discarded the draft."}),y()},"draftState",0,function(){let e=w();if(e)return{state:"pending",proposedAt:e.proposedAt};let t=function(){try{return JSON.parse((0,o.readFileSync)(g(),"utf8"))}catch{return null}}();return t?{state:t.status,proposedAt:t.proposedAt,summary:t.summary,detail:t.detail}:{state:"none"}},"purgeDraft",0,function(){(0,o.rmSync)(b(),{force:!0}),(0,o.rmSync)(g(),{force:!0})},"readDraftDoc",0,w,"writeProposal",0,function(e,t=0,n=Date.now()){let r=function(e,t,n=0){let o=new Map,r=(0,f.packTablesMasonry)(e.tables.map(e=>({key:e.name,columnCount:e.columns.length}))),i=0,l=e.tables.map(e=>{let t=(0,a.randomUUID)();o.set(e.name,t);let l=r.get(e.name)??{x:0,y:0};return i=Math.max(i,l.y+(0,f.estimateTableHeight)(e.columns.length)),{id:t,name:e.name,domain:e.domain??null,description:e.description??null,x:l.x,y:n+l.y,columns:e.columns.map(e=>({name:e.name,type:e.type,isPk:e.isPk??!1,isFk:e.isFk??!1,nullable:e.nullable??!0,note:e.note??null}))}}),s=e.relations.flatMap(e=>{let t=o.get(e.fromTable),n=o.get(e.toTable);return t&&n?[{id:(0,a.randomUUID)(),fromTableId:t,toTableId:n,fromColumn:e.fromColumn,toColumn:e.toColumn,label:e.label??`${e.fromColumn} → ${e.toTable}.${e.toColumn}`}]:[]}),d=n+i+280,u=e.endpoints.map((e,t)=>({id:(0,a.randomUUID)(),method:e.method,path:e.path,domain:e.domain??null,description:e.description??null,x:t%3*320+40,y:d+120*Math.floor(t/3),links:e.uses.flatMap(e=>{let t=o.get(e.table);return t?[{tableId:t,access:e.access}]:[]})}));return{proposedAt:t,status:"pending",tables:l,relations:s,endpoints:u}}(e,n,t);return(0,p.writeJsonAtomic)(b(),r),(0,o.rmSync)(g(),{force:!0}),r}]),n()}catch(e){n(e)}},!1),15863,e=>e.a(async(t,n)=>{try{var a=e.i(89122),o=e.i(23737),r=e.i(6659),i=t([o,r]);[o,r]=i.then?(await i)():i;let l=(0,a.pinned)(async()=>{let e=await (0,o.backfillEndpointAccess)();return await (0,r.bumpVersion)(),Response.json({ok:!0,fixed:e})});e.s(["POST",0,l,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),75083,e=>e.a(async(t,n)=>{try{var a=e.i(47909),o=e.i(74017),r=e.i(96250),i=e.i(59756),l=e.i(61916),s=e.i(74677),d=e.i(69741),u=e.i(16795),p=e.i(87718),c=e.i(95169),m=e.i(47587),f=e.i(66012),h=e.i(70101),b=e.i(26937),g=e.i(10372),w=e.i(93695);e.i(20232);var y=e.i(220),v=e.i(15863),C=t([v]);[v]=C.then?(await C)():C;let $=new a.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/db/backfill-access/route",pathname:"/api/db/backfill-access",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/db/backfill-access/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:A,serverHooks:k}=$;async function R(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),$.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/db/backfill-access/route";a=a.replace(/\/index$/,"")||"/";let r=await $.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,deploymentId:C,params:R,nextConfig:T,parsedUrl:A,isDraftMode:k,prerenderManifest:I,routerServerContext:E,isOnDemandRevalidate:x,revalidateOnlyGenerated:z,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:N}=r,S=(0,d.normalizeAppPath)(a),D=!!(I.dynamicRoutes[S]||I.routes[P]),U=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!I.routes[P],t=I.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await U();throw new w.NoFallbackError}}let O=null;!D||$.isDev||k||(O=P,O="/index"===O?"/":O);let F=!0===$.isDev||!D,q=D&&!F;N&&M&&(0,s.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:N});let _=e.method||"GET",j=(0,l.getTracer)(),H=j.getActiveScopeSpan(),K=!!(null==E?void 0:E.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await $.getIncrementalCache(e,T,I,L);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let W={params:R,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:F,incrementalCache:B,cacheLifeProfiles:T.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,o)=>$.onRequestError(e,t,a,o,E)},sharedContext:{buildId:v,deploymentId:C}},V=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),J=p.NextRequestAdapter.fromNodeNextRequest(V,(0,p.signalFromNodeResponse)(t));try{let r,i=async e=>$.handle(J,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=j.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.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 o=n.get("next.route");if(o){let t=`${_} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",o),r.updateName(t))}else e.updateName(`${_} ${a}`)}),s=async r=>{var l,s;let d=async({previousCacheEntry:o})=>{try{if(!L&&x&&z&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(r);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let s=W.renderOpts.collectedTags;if(!D)return await (0,f.sendResponse)(V,G,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,o=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:x})},!1,E),t}},u=await $.handleResponse({req:e,nextConfig:T,cacheKey:O,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:z,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:L});if(!D)return null;if((null==u||null==(l=u.value)?void 0:l.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",x?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&D||p.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,b.getCacheControlHeader)(u.cacheControl)),await (0,f.sendResponse)(V,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};K&&H?await s(H):(r=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(c.BaseServerSpan.handleRequest,{spanName:`${_} ${a}`,kind:l.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},s),void 0,!K))}catch(t){if(t instanceof w.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:x})},!1,E),D)throw t;return await (0,f.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:A})},"routeModule",0,$,"serverHooks",0,k,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,A]),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=_1p13_nj._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/api-workspace.ts","../../../lib/access.ts","../../../lib/draft-store.ts","../../../app/api/db/backfill-access/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["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","// Read/write/read-write is a per-link field on an endpoint→table usage, NOT the HTTP\n// method. But when nobody sets it explicitly, the only sane default comes from the verb:\n// safe methods read, mutating methods write. Used as the default in the design schema,\n// for canvas-drawn links, and to repair endpoints that were stored before this existed.\n\nconst READ_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\nexport function accessForMethod(method: string): \"read\" | \"write\" {\n return READ_METHODS.has(method.trim().toUpperCase()) ? \"read\" : \"write\";\n}\n","import { randomUUID } from \"node:crypto\";\nimport { readFileSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { z } from \"zod\";\nimport { eq } from \"drizzle-orm\";\nimport { db, type DB } from \"@/lib/db-drizzle\";\nimport { dbTable, dbColumn, dbRelation, endpoint, endpointTable } from \"@/lib/drizzle/schema\";\nimport { dataDir } from \"@/lib/project\";\nimport { writeJsonAtomic } from \"@/lib/atomic-write\";\nimport { bumpVersion } from \"@/lib/ingest\";\nimport { accessForMethod } from \"@/lib/access\";\nimport { estimateTableHeight, packTablesMasonry } from \"@/lib/table-layout\";\nimport type { DraftGraph } from \"@/lib/design\";\nimport type { DraftDoc, DraftEndpointT, DraftTableT } from \"@/components/graph/db-types\";\n\n// The DB-designer draft lives as ONE JSON object on disk (dataDir()/draft.json) so a\n// Claude Code session can propose one and the browser can pick it up. The browser edits\n// it locally (undo/redo, connections) and only \"Aprovar\" writes it into the real schema.\n// A small verdict file records the last approve/discard so the blocking beacon_draft_table\n// MCP tool can poll the outcome and tell Claude to proceed.\n\ntype Prisma = DB;\n\nfunction draftPath(): string {\n return join(dataDir(), \"draft.json\");\n}\nfunction verdictPath(): string {\n return join(dataDir(), \"draft-verdict.json\");\n}\n\nexport function readDraftDoc(): DraftDoc | null {\n try {\n return JSON.parse(readFileSync(draftPath(), \"utf8\")) as DraftDoc;\n } catch {\n return null;\n }\n}\n\nfunction writeDoc(doc: DraftDoc): void {\n writeJsonAtomic(draftPath(), doc);\n}\n\n/**\n * Position a name-keyed proposal into a DraftDoc with stable ids + a grid layout.\n * `originY` shifts the whole draft down so it doesn't land on top of existing canvas content\n * (default 0 keeps the old behavior for tests and code paths that already pick a position).\n */\nexport function graphToDoc(graph: DraftGraph, proposedAt: number, originY = 0): DraftDoc {\n const idByName = new Map<string, string>();\n // Mirror the persisted /db layout: masonry pack the proposed tables so a tall draft\n // (10+ columns) doesn't render under its neighbour the moment it shows up on the canvas.\n const positions = packTablesMasonry(\n graph.tables.map((t) => ({ key: t.name, columnCount: t.columns.length })),\n );\n let bottom = 0;\n const tables: DraftTableT[] = graph.tables.map((t) => {\n const id = randomUUID();\n idByName.set(t.name, id);\n const p = positions.get(t.name) ?? { x: 0, y: 0 };\n bottom = Math.max(bottom, p.y + estimateTableHeight(t.columns.length));\n return {\n id,\n name: t.name,\n domain: t.domain ?? null,\n description: t.description ?? null,\n x: p.x,\n y: originY + p.y,\n columns: t.columns.map((c) => ({\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 })),\n };\n });\n\n const relations = graph.relations.flatMap((r) => {\n const fromTableId = idByName.get(r.fromTable);\n const toTableId = idByName.get(r.toTable);\n if (!fromTableId || !toTableId) return [];\n return [\n {\n id: randomUUID(),\n fromTableId,\n toTableId,\n fromColumn: r.fromColumn,\n toColumn: r.toColumn,\n label: r.label ?? `${r.fromColumn} → ${r.toTable}.${r.toColumn}`,\n },\n ];\n });\n\n const baseY = originY + bottom + 280;\n const endpoints: DraftEndpointT[] = graph.endpoints.map((e, i) => ({\n id: randomUUID(),\n method: e.method,\n path: e.path,\n domain: e.domain ?? null,\n description: e.description ?? null,\n x: (i % 3) * 320 + 40,\n y: baseY + Math.floor(i / 3) * 120,\n links: e.uses.flatMap((u) => {\n const tableId = idByName.get(u.table);\n return tableId ? [{ tableId, access: u.access }] : [];\n }),\n }));\n\n return { proposedAt, status: \"pending\", tables, relations, endpoints };\n}\n\n/** A fresh proposal from Claude / the generator. Supersedes any prior draft + verdict.\n * `originY` (computed by callers via computeDraftOriginY) shifts the layout below the\n * existing canvas so a fresh draft doesn't land on top of real tables. */\nexport function writeProposal(graph: DraftGraph, originY = 0, now = Date.now()): DraftDoc {\n const doc = graphToDoc(graph, now, originY);\n writeDoc(doc);\n rmSync(verdictPath(), { force: true });\n return doc;\n}\n\nexport function clearDraftDoc(): void {\n rmSync(draftPath(), { force: true });\n}\n\n/** Wipe the draft + its verdict entirely (used by the destructive reset). */\nexport function purgeDraft(): void {\n rmSync(draftPath(), { force: true });\n rmSync(verdictPath(), { force: true });\n}\n\n// ── Verdict (so the blocking MCP tool learns the user's decision) ────────────\n\ninterface DraftVerdict {\n proposedAt: number;\n status: \"approved\" | \"discarded\";\n summary: string;\n detail?: string; // full approved schema (Claude reads the edited columns from here)\n}\n\n// A readable snapshot of exactly what the user approved — including columns they added or\n// edited on the canvas and their notes — so the blocking MCP tool hands the agent the\n// source of truth instead of letting it implement from the draft it originally proposed.\n// Approve = \"build this final schema.\" Any \"you proposed X, the user changed Y\" diff\n// flows through the SUBMIT-FEEDBACK path (lib/plan-feedback.ts), not here.\nexport function describeApprovedDoc(doc: DraftDoc): string {\n const nameById = new Map(doc.tables.map((t) => [t.id, t.name]));\n const lines: string[] = [\"## Approved schema\", \"\", \"### Tables\"];\n for (const t of doc.tables) {\n lines.push(`- **${t.name}**${t.domain ? ` (${t.domain})` : \"\"}`);\n for (const c of t.columns) {\n const flags = [c.isPk && \"PK\", c.isFk && \"FK\", c.nullable ? \"NULL\" : \"NOT NULL\"]\n .filter(Boolean)\n .join(\" \");\n lines.push(` - ${c.name} ${c.type}${flags ? ` ${flags}` : \"\"}${c.note ? ` — ${c.note}` : \"\"}`);\n }\n }\n\n if (doc.relations.length) {\n lines.push(\"\", \"### Relations (FKs)\");\n for (const r of doc.relations) {\n const from = nameById.get(r.fromTableId) ?? r.fromTableId;\n const to = nameById.get(r.toTableId) ?? r.toTableId;\n lines.push(`- ${from}.${r.fromColumn} → ${to}.${r.toColumn}`);\n }\n }\n\n if (doc.endpoints.length) {\n lines.push(\"\", \"### Endpoints\");\n for (const e of doc.endpoints) {\n const uses = e.links\n .map((l) => `${nameById.get(l.tableId) ?? l.tableId} (${l.access})`)\n .join(\", \");\n lines.push(`- ${e.method} ${e.path}${uses ? ` — ${uses}` : \"\"}`);\n }\n }\n\n return lines.join(\"\\n\");\n}\n\n/** Human-readable lines describing additions/removals/retypes between the originally\n * proposed draft and the doc the user later approved or surfaced as feedback. Covers\n * tables/columns plus relation and endpoint add/remove signals — enough to tell the\n * agent \"you proposed X, the user wants Y instead.\" */\nexport function diffDocs(orig: DraftDoc, current: DraftDoc): string[] {\n const lines: string[] = [];\n const origByName = new Map(orig.tables.map((t) => [t.name, t]));\n const currentByName = new Map(current.tables.map((t) => [t.name, t]));\n\n for (const t of current.tables) {\n if (!origByName.has(t.name)) lines.push(`added table **${t.name}**`);\n }\n for (const t of orig.tables) {\n if (!currentByName.has(t.name)) lines.push(`removed table **${t.name}**`);\n }\n\n for (const a of current.tables) {\n const o = origByName.get(a.name);\n if (!o) continue;\n const origCols = new Map(o.columns.map((c) => [c.name, c]));\n const currentCols = new Map(a.columns.map((c) => [c.name, c]));\n for (const c of a.columns) {\n const prior = origCols.get(c.name);\n if (!prior) {\n lines.push(`added column **${a.name}.${c.name}** (${c.type})`);\n continue;\n }\n const diffs: string[] = [];\n if (prior.type !== c.type) diffs.push(`type ${prior.type} → ${c.type}`);\n if (prior.isPk !== c.isPk) diffs.push(c.isPk ? \"now PK\" : \"no longer PK\");\n if (prior.isFk !== c.isFk) diffs.push(c.isFk ? \"now FK\" : \"no longer FK\");\n if (prior.nullable !== c.nullable)\n diffs.push(c.nullable ? \"now accepts NULL\" : \"now NOT NULL\");\n if ((prior.note ?? \"\") !== (c.note ?? \"\")) diffs.push(`note: \"${c.note ?? \"\"}\"`);\n if (diffs.length) lines.push(`changed **${a.name}.${c.name}** — ${diffs.join(\"; \")}`);\n }\n for (const c of o.columns) {\n if (!currentCols.has(c.name))\n lines.push(`removed column **${a.name}.${c.name}** (was ${c.type})`);\n }\n }\n\n // Relations: identify by from/to table name + from/to column. Renames against a still-\n // existing table count as a change; renames against a dropped table fall out as \"removed\".\n const relKey = (\n r: { fromTableId: string; toTableId: string; fromColumn: string; toColumn: string },\n nameById: Map<string, string>,\n ) =>\n `${nameById.get(r.fromTableId) ?? r.fromTableId}.${r.fromColumn}→${nameById.get(r.toTableId) ?? r.toTableId}.${r.toColumn}`;\n const origRelNames = new Map(orig.tables.map((t) => [t.id, t.name]));\n const currRelNames = new Map(current.tables.map((t) => [t.id, t.name]));\n const origRels = new Set(orig.relations.map((r) => relKey(r, origRelNames)));\n const currRels = new Set(current.relations.map((r) => relKey(r, currRelNames)));\n for (const key of currRels) if (!origRels.has(key)) lines.push(`added relation ${key}`);\n for (const key of origRels) if (!currRels.has(key)) lines.push(`removed relation ${key}`);\n\n // Endpoints: identity is method + path. Usage-link changes ride along under the\n // endpoint that owns them.\n const epKey = (e: { method: string; path: string }) => `${e.method} ${e.path}`;\n const origEps = new Map(orig.endpoints.map((e) => [epKey(e), e]));\n const currEps = new Map(current.endpoints.map((e) => [epKey(e), e]));\n for (const [k, e] of currEps) {\n if (!origEps.has(k)) {\n const uses = e.links\n .map((l) => `${currRelNames.get(l.tableId) ?? l.tableId} (${l.access})`)\n .join(\", \");\n lines.push(`added endpoint **${k}**${uses ? ` — ${uses}` : \"\"}`);\n }\n }\n for (const [k] of origEps) {\n if (!currEps.has(k)) lines.push(`removed endpoint **${k}**`);\n }\n\n return lines;\n}\nfunction writeVerdict(v: DraftVerdict): void {\n writeJsonAtomic(verdictPath(), v);\n}\nfunction readVerdict(): DraftVerdict | null {\n try {\n return JSON.parse(readFileSync(verdictPath(), \"utf8\")) as DraftVerdict;\n } catch {\n return null;\n }\n}\n\nexport function discardDraft(): void {\n const doc = readDraftDoc();\n if (doc)\n writeVerdict({\n proposedAt: doc.proposedAt,\n status: \"discarded\",\n summary: \"The user discarded the draft.\",\n });\n clearDraftDoc();\n}\n\nexport type DraftState =\n | { state: \"pending\"; proposedAt: number }\n | { state: \"approved\" | \"discarded\"; proposedAt: number; summary: string; detail?: string }\n | { state: \"none\" };\n\nexport function draftState(): DraftState {\n const doc = readDraftDoc();\n if (doc) return { state: \"pending\", proposedAt: doc.proposedAt };\n const v = readVerdict();\n if (v) return { state: v.status, proposedAt: v.proposedAt, summary: v.summary, detail: v.detail };\n return { state: \"none\" };\n}\n\n// ── Approve: persist the (possibly edited) draft into the real schema ────────\n\nconst draftDocSchema = z.object({\n proposedAt: z.number(),\n status: z.string(),\n tables: z.array(\n z.object({\n id: z.string(),\n name: z.string().trim().min(1),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n columns: z.array(\n z.object({\n name: z.string().trim().min(1),\n type: z.string(),\n isPk: z.boolean(),\n isFk: z.boolean(),\n nullable: z.boolean(),\n note: z.string().nullable(),\n }),\n ),\n }),\n ),\n relations: z.array(\n z.object({\n id: z.string(),\n fromTableId: z.string(),\n toTableId: z.string(),\n fromColumn: z.string(),\n toColumn: z.string(),\n label: z.string().nullable(),\n }),\n ),\n endpoints: z.array(\n z.object({\n id: z.string(),\n method: z.string().trim().min(1),\n path: z.string().trim().min(1),\n domain: z.string().nullable(),\n description: z.string().nullable(),\n x: z.number(),\n y: z.number(),\n links: z.array(z.object({ tableId: z.string(), access: z.string() })),\n }),\n ),\n});\n\nexport async function approveDraft(\n input: unknown,\n prisma: Prisma = db,\n): Promise<{ tables: number; relations: number; endpoints: number }> {\n const doc = draftDocSchema.parse(input) as DraftDoc;\n const nameById = new Map(doc.tables.map((t) => [t.id, t.name]));\n const realIdByName = new Map<string, string>();\n\n // Tables → upsert by name (source MANUAL = approved/planned, renders solid). Columns replaced.\n for (const t of doc.tables) {\n const [saved] = await prisma\n .insert(dbTable)\n .values({\n name: t.name,\n domain: t.domain,\n description: t.description,\n source: \"MANUAL\",\n x: t.x,\n y: t.y,\n })\n .onConflictDoUpdate({\n target: dbTable.name,\n set: { domain: t.domain, description: t.description },\n })\n .returning();\n realIdByName.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,\n isFk: c.isFk,\n nullable: c.nullable,\n note: c.note,\n ord: i,\n })),\n );\n }\n\n // A draft/real table id → the real DbTable id it maps to (links can point at either).\n const resolveRealId = async (id: string): Promise<string | null> => {\n const name = nameById.get(id);\n if (name) return realIdByName.get(name) ?? null;\n const t = await prisma.query.dbTable\n .findFirst({ where: (x, { eq }) => eq(x.id, id) })\n .catch(() => null);\n return t ? t.id : null;\n };\n\n // Relations → DbRelation (skip dups + unresolvable).\n for (const rel of doc.relations) {\n const fromId = await resolveRealId(rel.fromTableId);\n const toId = await resolveRealId(rel.toTableId);\n if (!fromId || !toId) continue;\n const exists = await prisma.query.dbRelation.findFirst({\n where: (x, { and, eq }) =>\n and(\n eq(x.fromTableId, fromId),\n eq(x.toTableId, toId),\n eq(x.fromColumn, rel.fromColumn),\n eq(x.toColumn, rel.toColumn),\n ),\n });\n if (exists) continue;\n await prisma.insert(dbRelation).values({\n fromTableId: fromId,\n toTableId: toId,\n fromColumn: rel.fromColumn,\n toColumn: rel.toColumn,\n label: rel.label,\n });\n }\n\n // Endpoints → upsert by method+path; usage links → EndpointTable (now real ids exist).\n for (const e of doc.endpoints) {\n const [saved] = await prisma\n .insert(endpoint)\n .values({\n method: e.method,\n path: e.path,\n domain: e.domain,\n description: e.description,\n source: \"MANUAL\",\n x: e.x,\n y: e.y,\n })\n .onConflictDoUpdate({\n target: [endpoint.method, endpoint.path],\n set: { domain: e.domain, description: e.description },\n })\n .returning();\n await prisma.delete(endpointTable).where(eq(endpointTable.endpointId, saved.id));\n for (const link of e.links) {\n const tid = await resolveRealId(link.tableId);\n if (!tid) continue;\n await prisma\n .insert(endpointTable)\n .values({ endpointId: saved.id, tableId: tid, access: link.access })\n .catch(() => {}); // ignore the unique([endpointId,tableId]) clash on duplicate links\n }\n }\n\n const summary = `${doc.tables.length} table(s), ${doc.relations.length} relation(s) and ${doc.endpoints.length} endpoint(s) approved and persisted to the schema.`;\n writeVerdict({\n proposedAt: doc.proposedAt,\n status: \"approved\",\n summary,\n detail: describeApprovedDoc(doc),\n });\n clearDraftDoc();\n await bumpVersion(prisma);\n return { tables: doc.tables.length, relations: doc.relations.length, endpoints: doc.endpoints.length };\n}\n\n/**\n * Repair endpoints stored before access was inferred from the method: a mutating endpoint\n * (POST/PUT/PATCH/DELETE) whose table link defaulted to \"read\" is bumped to \"write\". GET\n * reads and explicit \"write\"/\"read-write\" links are left untouched. Returns links updated.\n */\nexport async function backfillEndpointAccess(prisma: Prisma = db): Promise<number> {\n const eps = await prisma.query.endpoint.findMany({ with: { tables: true } });\n let fixed = 0;\n for (const e of eps) {\n if (accessForMethod(e.method) !== \"write\") continue;\n for (const link of e.tables) {\n if (link.access !== \"read\") continue;\n await prisma.update(endpointTable).set({ access: \"write\" }).where(eq(endpointTable.id, link.id));\n fixed++;\n }\n }\n return fixed;\n}\n","import { pinned } from \"@/lib/api-workspace\";\nimport { backfillEndpointAccess } from \"@/lib/draft-store\";\nimport { bumpVersion } from \"@/lib/ingest\";\n\nexport const dynamic = \"force-dynamic\";\n\n// One-off repair: endpoints stored before access was inferred from the HTTP method had every\n// table link defaulted to \"read\". This bumps mutating endpoints (POST/PUT/PATCH/DELETE) whose\n// links are still \"read\" up to \"write\", on the active workspace, then nudges the open canvas.\nexport const POST = pinned(async () => {\n const fixed = await backfillEndpointAccess();\n await bumpVersion();\n return Response.json({ ok: true, fixed });\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":["pinned","handler","req","rest","id","READ_METHODS","Set","accessForMethod","method","has","trim","toUpperCase","draftPath","verdictPath","readDraftDoc","JSON","parse","writeDoc","doc","graphToDoc","graph","proposedAt","originY","idByName","Map","positions","tables","map","t","key","name","columnCount","columns","length","bottom","set","p","get","x","y","Math","max","domain","description","c","type","isPk","isFk","nullable","note","relations","flatMap","r","fromTableId","fromTable","toTableId","toTable","fromColumn","toColumn","label","baseY","endpoints","e","i","path","floor","links","uses","u","tableId","table","access","status","writeProposal","now","Date","force","clearDraftDoc","purgeDraft","describeApprovedDoc","nameById","lines","push","flags","filter","Boolean","join","from","to","l","diffDocs","orig","current","origByName","currentByName","a","o","origCols","currentCols","prior","diffs","relKey","origRelNames","currRelNames","origRels","currRels","epKey","origEps","currEps","k","writeVerdict","v","readVerdict","discardDraft","summary","draftState","state","detail","draftDocSchema","object","number","string","array","min","boolean","approveDraft","input","prisma","realIdByName","saved","insert","values","source","onConflictDoUpdate","target","returning","delete","where","ord","resolveRealId","query","dbTable","findFirst","eq","catch","rel","fromId","toId","exists","dbRelation","and","endpointId","link","tid","backfillEndpointAccess","eps","endpoint","findMany","with","fixed","update","dynamic","POST","Response","json","ok","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","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","revalidate","collectedRevalidate","expire","collectedExpire","value","body","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":[4]}
@@ -0,0 +1,11 @@
1
+ module.exports=[23092,e=>e.a(async(t,n)=>{try{var a=e.i(91426),r=e.i(34700),i=t([a]);async function o(e=a.db){let[t]=await e.insert(r.projectMeta).values({id:"singleton"}).onConflictDoUpdate({target:r.projectMeta.id,set:{id:"singleton"}}).returning();return t}async function s(e,t=a.db){let n={};null!=e.overview&&(n.overview=e.overview),e.conventions&&(n.conventions=JSON.stringify(e.conventions)),0===Object.keys(n).length&&(n.id="singleton");let[i]=await t.insert(r.projectMeta).values({id:"singleton",overview:e.overview??null,conventions:JSON.stringify(e.conventions??[])}).onConflictDoUpdate({target:r.projectMeta.id,set:n}).returning();return i}[a]=i.then?(await i)():i,e.s(["getProjectMeta",0,o,"setProjectMeta",0,s]),n()}catch(e){n(e)}},!1),81494,e=>e.a(async(t,n)=>{try{var a=e.i(2157),r=e.i(50227),i=e.i(91426),o=e.i(38752),s=e.i(23092),l=t([i,s]);[i,s]=l.then?(await l)():l;let p="<!-- beacon:start -->",h="<!-- beacon:end -->";async function u(){let e=await (0,s.getProjectMeta)(),t=[];try{t=JSON.parse(e.conventions)}catch{t=[]}let n=await i.db.query.node.findMany({where:(e,{eq:t})=>t(e.view,"ARCHITECTURE"),with:{files:{columns:{path:!0}}},orderBy:(e,{asc:t})=>t(e.cluster)}),l=await i.db.query.dbTable.findMany({with:{columns:{orderBy:(e,{asc:t})=>t(e.ord)}},orderBy:(e,{asc:t})=>t(e.name)}),u=await i.db.query.endpoint.findMany({orderBy:(e,{asc:t})=>[t(e.domain),t(e.path)]}),c=function(e){let t={};try{let n=JSON.parse((0,a.readFileSync)((0,r.join)(e,"package.json"),"utf8"));for(let e of["dev","build","test","lint","start"])n.scripts?.[e]&&(t[e]=`npm run ${e}`)}catch{}try{let n=(0,a.readFileSync)((0,r.join)(e,"Makefile"),"utf8");for(let e of["dev","up","build","test","lint"])RegExp(`^${e}:`,"m").test(n)&&(t[e]=`make ${e}`)}catch{}return!t.test&&((0,a.existsSync)((0,r.join)(e,"pyproject.toml"))||(0,a.existsSync)((0,r.join)(e,"requirements.txt")))&&(t.test="pytest"),t}((0,o.repoRoot)()),d=[`## Project: ${(0,o.repoName)()}`];if(e.overview&&d.push("",e.overview),Object.keys(c).length)for(let[e,t]of(d.push("","### Commands"),Object.entries(c)))d.push(`- ${e}: \`${t}\``);if(n.length){d.push("","### Architecture");let e=new Map;for(let t of n){let n=t.cluster??"MISC";e.has(n)||e.set(n,[]),e.get(n).push(t)}for(let[t,n]of e)for(let e of(d.push(`- **${t}**`),n)){let t=e.files.map(e=>e.path).slice(0,6).join(", ");d.push(` - ${e.title}${e.role?` — ${e.role}`:""}${t?` (${t})`:""}`)}}if(l.length)for(let e of(d.push("","### Database"),l))d.push(`- \`${e.name}\`: ${e.columns.map(e=>e.name).slice(0,12).join(", ")}`);if(u.length)for(let e of(d.push("","### Endpoints"),u.slice(0,40)))d.push(`- ${e.method} ${e.path}`);if(t.length)for(let e of(d.push("","### Conventions & gotchas"),t))d.push(`- ${e}`);return d.push("","_Maintained by Beacon — edit outside the markers; this block is regenerated._"),d.join("\n")}function c(e,t,n){let r=`${p}
2
+ ${t}
3
+ ${h}`,i=(0,a.existsSync)(e)?(0,a.readFileSync)(e,"utf8"):"";i=i.includes(p)&&i.includes(h)?i.replace(RegExp(`${p}[\\s\\S]*?${h}`),r):i.trim()?`${i.trim()}
4
+
5
+ ${r}
6
+ `:`${n}
7
+
8
+ ${r}
9
+ `,(0,a.writeFileSync)(e,i)}async function d(e={}){let t=(0,o.repoRoot)(),n=(0,r.join)(t,"AGENTS.md"),i=(0,r.join)(t,"CLAUDE.md");if(e.onlyIfManaged&&!((0,a.existsSync)(n)&&(0,a.readFileSync)(n,"utf8").includes(p)))return[];let s=[];c(n,await u(),"# AGENTS.md"),s.push(n);let l=(0,a.existsSync)(i)?(0,a.readFileSync)(i,"utf8"):"";return/@?AGENTS\.md/.test(l)||(c(i,"@AGENTS.md","# CLAUDE.md"),s.push(i)),s}e.s(["writeContextFiles",0,d]),n()}catch(e){n(e)}},!1),52637,e=>e.a(async(t,n)=>{try{var a=e.i(91426),r=e.i(14859),i=e.i(62391),o=e.i(81494),s=t([a,i,o]);async function l(e){let t=(0,r.workspaceIdFromRequest)(e);return(0,r.runWithWorkspace)(t,async()=>{let e=await (0,i.approvePlan)();return t&&await (0,o.writeContextFiles)({onlyIfManaged:!0}).catch(()=>{}),Response.json({ok:!0,db:e.db,features:e.features})})}[a,i,o]=s.then?(await s)():s,e.s(["POST",0,l,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),22564,e=>e.a(async(t,n)=>{try{var a=e.i(47909),r=e.i(74017),i=e.i(96250),o=e.i(59756),s=e.i(61916),l=e.i(74677),u=e.i(69741),c=e.i(16795),d=e.i(87718),p=e.i(95169),h=e.i(47587),f=e.i(66012),v=e.i(70101),y=e.i(26937),m=e.i(10372),w=e.i(93695);e.i(20232);var g=e.i(220),R=e.i(52637),E=t([R]);[R]=E.then?(await E)():E;let S=new a.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/plan/approve/route",pathname:"/api/plan/approve",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/plan/approve/route.ts",nextConfigOutput:"",userland:R,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:x,serverHooks:A}=S;async function C(e,t,n){n.requestMeta&&(0,o.setRequestMeta)(e,n.requestMeta),S.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/plan/approve/route";a=a.replace(/\/index$/,"")||"/";let i=await S.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:R,deploymentId:E,params:C,nextConfig:b,parsedUrl:x,isDraftMode:A,prerenderManifest:$,routerServerContext:N,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,resolvedPathname:M,clientReferenceManifest:P,serverActionsManifest:O}=i,_=(0,u.normalizeAppPath)(a),k=!!($.dynamicRoutes[_]||$.routes[M]),q=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,x,!1):t.end("This page could not be found"),null);if(k&&!A){let e=!!$.routes[M],t=$.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await q();throw new w.NoFallbackError}}let I=null;!k||S.isDev||A||(I=M,I="/index"===I?"/":I);let U=!0===S.isDev||!k,D=k&&!U;O&&P&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:P,serverActionsManifest:O});let H=e.method||"GET",F=(0,s.getTracer)(),B=F.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),G=!!(0,o.getRequestMeta)(e,"minimalMode"),L=(0,o.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,$,G);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let W={params:C,previewProps:$.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:U,incrementalCache:L,cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>S.onRequestError(e,t,a,r,N)},sharedContext:{buildId:R,deploymentId:E}},J=new c.NodeNextRequest(e),V=new c.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t));try{let i,o=async e=>S.handle(X,W).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=`${H} ${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(`${H} ${a}`)}),l=async i=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!G&&T&&j&&!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=W.renderOpts.fetchMetrics;let s=W.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let l=W.renderOpts.collectedTags;if(!k)return await (0,f.sendResponse)(J,V,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:g.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:T})},!1,N),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:$,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:G});if(!k)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,v.fromNodeOutgoingHttpHeaders)(c.value.headers);return G&&k||d.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,y.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(J,V,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};K&&B?await l(B):(i=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${H} ${a}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l),void 0,!K))}catch(t){if(t instanceof w.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:T})},!1,N),k)throw t;return await (0,f.sendResponse)(J,V,new Response(null,{status:500})),null}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:x})},"routeModule",0,S,"serverHooks",0,A,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,x]),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)))}];
10
+
11
+ //# sourceMappingURL=_1v92m46._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/project-meta.ts","../../../lib/context-files.ts","../../../app/api/plan/approve/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { db, type DB } from \"@/lib/db-drizzle\";\nimport { projectMeta } from \"@/lib/drizzle/schema\";\n\nexport async function getProjectMeta(prisma: DB = db) {\n const [row] = await prisma\n .insert(projectMeta)\n .values({ id: \"singleton\" })\n .onConflictDoUpdate({ target: projectMeta.id, set: { id: \"singleton\" } })\n .returning();\n return row;\n}\n\nexport async function setProjectMeta(\n data: { overview?: string | null; conventions?: string[] },\n prisma: DB = db,\n) {\n // Only the explicitly-provided fields are updated (Prisma `update` with `undefined` =\n // leave unchanged). Drizzle drops `undefined` set-values, but rejects a fully-empty set,\n // so fall back to a PK no-op when nothing was provided.\n const set: { overview?: string | null; conventions?: string; id?: string } = {};\n if (data.overview != null) set.overview = data.overview; // matches Prisma `?? undefined`: null/undefined → unchanged\n if (data.conventions) set.conventions = JSON.stringify(data.conventions);\n if (Object.keys(set).length === 0) set.id = \"singleton\";\n const [row] = await prisma\n .insert(projectMeta)\n .values({\n id: \"singleton\",\n overview: data.overview ?? null,\n conventions: JSON.stringify(data.conventions ?? []),\n })\n .onConflictDoUpdate({ target: projectMeta.id, set })\n .returning();\n return row;\n}\n","import { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { db } from \"@/lib/db-drizzle\";\nimport { repoName, repoRoot } from \"@/lib/project\";\nimport { getProjectMeta } from \"@/lib/project-meta\";\n\n// Generates a Beacon-managed project context block. Writes it to AGENTS.md (the\n// cross-tool standard — read natively by Cursor, Codex, Aider…) and ensures CLAUDE.md\n// @imports AGENTS.md so Claude Code reads it too. Both writes are marker-delimited so\n// they never clobber content you wrote yourself.\n\nconst START = \"<!-- beacon:start -->\";\nconst END = \"<!-- beacon:end -->\";\n\nfunction deriveCommands(root: string): Record<string, string> {\n const cmds: Record<string, string> = {};\n try {\n const pkg = JSON.parse(readFileSync(join(root, \"package.json\"), \"utf8\"));\n for (const k of [\"dev\", \"build\", \"test\", \"lint\", \"start\"]) {\n if (pkg.scripts?.[k]) cmds[k] = `npm run ${k}`;\n }\n } catch {\n /* no package.json */\n }\n try {\n const mk = readFileSync(join(root, \"Makefile\"), \"utf8\");\n for (const k of [\"dev\", \"up\", \"build\", \"test\", \"lint\"]) {\n if (new RegExp(`^${k}:`, \"m\").test(mk)) cmds[k] = `make ${k}`;\n }\n } catch {\n /* no Makefile */\n }\n if (!cmds.test && (existsSync(join(root, \"pyproject.toml\")) || existsSync(join(root, \"requirements.txt\")))) {\n cmds.test = \"pytest\";\n }\n return cmds;\n}\n\n/** The Beacon-managed markdown body (architecture + db + commands + conventions). */\nexport async function buildContext(): Promise<string> {\n const meta = await getProjectMeta();\n let conventions: string[] = [];\n try {\n conventions = JSON.parse(meta.conventions);\n } catch {\n conventions = [];\n }\n\n const arch = await db.query.node.findMany({\n where: (t, { eq }) => eq(t.view, \"ARCHITECTURE\"),\n with: { files: { columns: { path: true } } },\n orderBy: (t, { asc }) => asc(t.cluster),\n });\n const tables = await db.query.dbTable.findMany({\n with: { columns: { orderBy: (c, { asc }) => asc(c.ord) } },\n orderBy: (t, { asc }) => asc(t.name),\n });\n const endpoints = await db.query.endpoint.findMany({\n orderBy: (t, { asc }) => [asc(t.domain), asc(t.path)],\n });\n const cmds = deriveCommands(repoRoot());\n\n const lines: string[] = [`## Project: ${repoName()}`];\n if (meta.overview) lines.push(\"\", meta.overview);\n\n if (Object.keys(cmds).length) {\n lines.push(\"\", \"### Commands\");\n for (const [k, v] of Object.entries(cmds)) lines.push(`- ${k}: \\`${v}\\``);\n }\n\n if (arch.length) {\n lines.push(\"\", \"### Architecture\");\n const byDomain = new Map<string, typeof arch>();\n for (const n of arch) {\n const d = n.cluster ?? \"MISC\";\n if (!byDomain.has(d)) byDomain.set(d, []);\n byDomain.get(d)!.push(n);\n }\n for (const [domain, comps] of byDomain) {\n lines.push(`- **${domain}**`);\n for (const c of comps) {\n const files = c.files.map((f) => f.path).slice(0, 6).join(\", \");\n lines.push(` - ${c.title}${c.role ? ` — ${c.role}` : \"\"}${files ? ` (${files})` : \"\"}`);\n }\n }\n }\n\n if (tables.length) {\n lines.push(\"\", \"### Database\");\n for (const t of tables) {\n lines.push(`- \\`${t.name}\\`: ${t.columns.map((c) => c.name).slice(0, 12).join(\", \")}`);\n }\n }\n\n if (endpoints.length) {\n lines.push(\"\", \"### Endpoints\");\n for (const e of endpoints.slice(0, 40)) lines.push(`- ${e.method} ${e.path}`);\n }\n\n if (conventions.length) {\n lines.push(\"\", \"### Conventions & gotchas\");\n for (const c of conventions) lines.push(`- ${c}`);\n }\n\n lines.push(\"\", \"_Maintained by Beacon — edit outside the markers; this block is regenerated._\");\n return lines.join(\"\\n\");\n}\n\nfunction upsertBlock(file: string, block: string, headerIfNew: string) {\n const section = `${START}\\n${block}\\n${END}`;\n let content = existsSync(file) ? readFileSync(file, \"utf8\") : \"\";\n if (content.includes(START) && content.includes(END)) {\n content = content.replace(new RegExp(`${START}[\\\\s\\\\S]*?${END}`), section);\n } else {\n content = content.trim() ? `${content.trim()}\\n\\n${section}\\n` : `${headerIfNew}\\n\\n${section}\\n`;\n }\n writeFileSync(file, content);\n}\n\n/** Write AGENTS.md (body) + ensure CLAUDE.md @imports it. Returns the files written. */\nexport async function writeContextFiles(opts: { onlyIfManaged?: boolean } = {}): Promise<string[]> {\n const root = repoRoot();\n const agents = join(root, \"AGENTS.md\");\n const claude = join(root, \"CLAUDE.md\");\n\n // In auto/keep-fresh mode, only touch files Beacon already manages.\n if (opts.onlyIfManaged) {\n const managed =\n existsSync(agents) && readFileSync(agents, \"utf8\").includes(START);\n if (!managed) return [];\n }\n\n const written: string[] = [];\n upsertBlock(agents, await buildContext(), \"# AGENTS.md\");\n written.push(agents);\n\n // Ensure Claude Code reads it: CLAUDE.md must @import AGENTS.md.\n const claudeContent = existsSync(claude) ? readFileSync(claude, \"utf8\") : \"\";\n if (!/@?AGENTS\\.md/.test(claudeContent)) {\n upsertBlock(claude, \"@AGENTS.md\", \"# CLAUDE.md\");\n written.push(claude);\n }\n return written;\n}\n","import { runWithWorkspace } from \"@/lib/db-drizzle\";\nimport { approvePlan } from \"@/lib/plan-resolve\";\nimport { writeContextFiles } from \"@/lib/context-files\";\nimport { workspaceIdFromRequest } from \"@/lib/workspaces\";\n\nexport const dynamic = \"force-dynamic\";\n\n// Unified \"Approve plan\" — commits BOTH layers (DB draft + roadmap feature drafts), archives\n// the plan, and writes the authoritative plan-verdict. All of that lives in approvePlan so the\n// /db canvas's own Approve button (which sends the edited doc) behaves identically. Pinned to\n// the agent's repo. Inline column edits done in /db are NOT included here — for those, use the\n// /db canvas's own Approve button which posts the edited doc.\nexport async function POST(req: Request) {\n const ws = workspaceIdFromRequest(req);\n return runWithWorkspace(ws, async () => {\n const r = await approvePlan();\n // Auto-refresh the agent-facing context (AGENTS.md Architecture/Database/Endpoints) from the\n // now-current nodes, so a plan run leaves the map accurate without a manual /beacon-refresh.\n // Only for a real workspace request (bare test calls skip); never fail the approval.\n if (ws) await writeContextFiles({ onlyIfManaged: true }).catch(() => {});\n return Response.json({ ok: true, db: r.db, features: r.features });\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":["getProjectMeta","prisma","row","insert","values","id","onConflictDoUpdate","target","set","returning","setProjectMeta","data","overview","conventions","JSON","stringify","Object","keys","length","START","END","deriveCommands","root","cmds","pkg","parse","k","scripts","mk","RegExp","test","buildContext","meta","arch","query","node","findMany","where","t","eq","view","with","files","columns","path","orderBy","asc","cluster","tables","dbTable","c","ord","name","endpoints","endpoint","domain","lines","push","v","entries","byDomain","Map","n","d","has","get","comps","map","f","slice","join","title","role","e","method","upsertBlock","file","block","headerIfNew","section","content","includes","replace","trim","writeContextFiles","opts","agents","claude","onlyIfManaged","managed","written","claudeContent","dynamic","POST","req","ws","r","catch","Response","json","ok","db","features","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","userland","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","cacheComponents","cacheLifeProfiles","cacheLife","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[3]}
@@ -0,0 +1,3 @@
1
+ module.exports=[7732,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_code-graph_position_route_actions_0ddmfq8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[88971,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_code-graph_route_actions_107oiy1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[30860,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_context_embed-backfill_route_actions_0fddf11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[3587,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_context_feature_route_actions_0g4_r0t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[22628,(e,o,d)=>{}];
2
+
3
+ //# sourceMappingURL=_next-internal_server_app_api_context_file_route_actions_1v15k33.js.map