trybeacon 0.1.47 → 0.1.49

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 (335) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +14 -12
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +12 -0
  6. package/.next/server/app/_global-error/page.js +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  27. package/.next/server/app/api/board-annotations/route.js +1 -1
  28. package/.next/server/app/api/board-layout/route.js +1 -1
  29. package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
  30. package/.next/server/app/api/bug-flags/route.js +1 -1
  31. package/.next/server/app/api/code-graph/position/route.js +1 -1
  32. package/.next/server/app/api/code-graph/route.js +1 -1
  33. package/.next/server/app/api/context/feature/route.js +1 -1
  34. package/.next/server/app/api/context/file/route.js +1 -1
  35. package/.next/server/app/api/context/route.js +2 -2
  36. package/.next/server/app/api/db/arrange/route.js +1 -1
  37. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  38. package/.next/server/app/api/db/position/route.js +1 -1
  39. package/.next/server/app/api/db/prune-planned/route.js +1 -1
  40. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  41. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  42. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  43. package/.next/server/app/api/draft/approve/route.js +1 -1
  44. package/.next/server/app/api/draft/route.js +1 -1
  45. package/.next/server/app/api/draft/status/route.js +1 -1
  46. package/.next/server/app/api/edges/[id]/route.js +1 -1
  47. package/.next/server/app/api/edges/route.js +1 -1
  48. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  49. package/.next/server/app/api/entities/route.js +1 -1
  50. package/.next/server/app/api/feedback/[id]/route.js +1 -1
  51. package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
  52. package/.next/server/app/api/feedback/route.js +1 -1
  53. package/.next/server/app/api/flags/route.js +1 -0
  54. package/.next/server/app/api/flags/route.js.nft.json +1 -0
  55. package/.next/server/app/api/flags/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/ingest/route.js +2 -2
  57. package/.next/server/app/api/init/route.js +1 -1
  58. package/.next/server/app/api/map/describe/route.js +2 -2
  59. package/.next/server/app/api/map/files/route.js +1 -1
  60. package/.next/server/app/api/map/finish/route.js +1 -1
  61. package/.next/server/app/api/map/route.js +1 -1
  62. package/.next/server/app/api/map/start/route.js +1 -1
  63. package/.next/server/app/api/map/touch-active/route.js +1 -1
  64. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  65. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  66. package/.next/server/app/api/nodes/positions/route.js +1 -1
  67. package/.next/server/app/api/nodes/route.js +1 -1
  68. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  69. package/.next/server/app/api/notes/[id]/route.js +1 -1
  70. package/.next/server/app/api/notes/route.js +1 -1
  71. package/.next/server/app/api/open/route.js +1 -1
  72. package/.next/server/app/api/plan/annotations/route.js +3 -3
  73. package/.next/server/app/api/plan/approve/route.js +2 -2
  74. package/.next/server/app/api/plan/history/route.js +1 -1
  75. package/.next/server/app/api/plan/markdown/route.js +1 -1
  76. package/.next/server/app/api/plan/presence/route.js +1 -1
  77. package/.next/server/app/api/plan/route.js +1 -1
  78. package/.next/server/app/api/plan/verdict/route.js +1 -1
  79. package/.next/server/app/api/preferences/route.js +1 -1
  80. package/.next/server/app/api/project-meta/route.js +1 -1
  81. package/.next/server/app/api/reset/route.js +1 -1
  82. package/.next/server/app/api/scope-guard/check/route.js +1 -0
  83. package/.next/server/app/api/scope-guard/check/route.js.nft.json +1 -0
  84. package/.next/server/app/api/scope-guard/check/route_client-reference-manifest.js +1 -0
  85. package/.next/server/app/api/stream/route.js +2 -2
  86. package/.next/server/app/api/tab/nav/route.js +1 -1
  87. package/.next/server/app/api/tab/presence/route.js +1 -1
  88. package/.next/server/app/api/telemetry/route.js +1 -1
  89. package/.next/server/app/api/telemetry/stats/route.js +1 -1
  90. package/.next/server/app/api/version/route.js +1 -1
  91. package/.next/server/app/api/workspace/activate/route.js +1 -1
  92. package/.next/server/app/api/workspace/route.js +1 -1
  93. package/.next/server/app/apple-icon.png/route.js +1 -1
  94. package/.next/server/app/docs/page.js +2 -2
  95. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  96. package/.next/server/app/docs.html +1 -1
  97. package/.next/server/app/docs.rsc +2 -2
  98. package/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  99. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  100. package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  101. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  102. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  103. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  104. package/.next/server/app/feedback/page.js +2 -2
  105. package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/feedback.html +1 -1
  107. package/.next/server/app/feedback.rsc +2 -2
  108. package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
  109. package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  110. package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
  111. package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  112. package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  113. package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  114. package/.next/server/app/help/page.js +2 -2
  115. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/help.html +1 -1
  117. package/.next/server/app/help.rsc +2 -2
  118. package/.next/server/app/help.segments/_full.segment.rsc +2 -2
  119. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  120. package/.next/server/app/help.segments/_index.segment.rsc +2 -2
  121. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  122. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  123. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  124. package/.next/server/app/icon.svg/route.js +1 -1
  125. package/.next/server/app/index.html +1 -1
  126. package/.next/server/app/index.rsc +3 -3
  127. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  128. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  129. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  130. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  131. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  132. package/.next/server/app/map/page.js +2 -2
  133. package/.next/server/app/map/page.js.nft.json +1 -1
  134. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  135. package/.next/server/app/page.js +2 -2
  136. package/.next/server/app/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/plan/page.js +2 -2
  138. package/.next/server/app/plan/page.js.nft.json +1 -1
  139. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  140. package/.next/server/app/settings/page.js +2 -2
  141. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app-paths-manifest.json +14 -12
  143. package/.next/server/chunks/1341.js +1 -1
  144. package/.next/server/chunks/249.js +1 -1
  145. package/.next/server/chunks/2933.js +1 -1
  146. package/.next/server/chunks/{7208.js → 2999.js} +3 -3
  147. package/.next/server/chunks/3221.js +2 -2
  148. package/.next/server/chunks/3622.js +1 -1
  149. package/.next/server/chunks/4378.js +1 -1
  150. package/.next/server/chunks/4940.js +1 -1
  151. package/.next/server/chunks/7331.js +1 -0
  152. package/.next/server/chunks/9213.js +1 -1
  153. package/.next/server/chunks/9683.js +1 -1
  154. package/.next/server/chunks/9734.js +1 -1
  155. package/.next/server/middleware-build-manifest.js +1 -1
  156. package/.next/server/pages/404.html +1 -1
  157. package/.next/server/pages/500.html +1 -1
  158. package/.next/server/server-reference-manifest.js +1 -1
  159. package/.next/server/server-reference-manifest.json +1 -1
  160. package/.next/static/chunks/3343-af1292b51a276724.js +1 -0
  161. package/.next/static/chunks/7323-480fb88e9d24f9e9.js +1 -0
  162. package/.next/static/chunks/app/_global-error/page-dc3f0f4fd9e88c4e.js +1 -0
  163. package/.next/static/chunks/app/api/board-annotations/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  164. package/.next/static/chunks/app/api/board-annotations/route-dc3f0f4fd9e88c4e.js +1 -0
  165. package/.next/static/chunks/app/api/board-layout/route-dc3f0f4fd9e88c4e.js +1 -0
  166. package/.next/static/chunks/app/api/bug-flags/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  167. package/.next/static/chunks/app/api/bug-flags/route-dc3f0f4fd9e88c4e.js +1 -0
  168. package/.next/static/chunks/app/api/code-graph/position/route-dc3f0f4fd9e88c4e.js +1 -0
  169. package/.next/static/chunks/app/api/code-graph/route-dc3f0f4fd9e88c4e.js +1 -0
  170. package/.next/static/chunks/app/api/context/feature/route-dc3f0f4fd9e88c4e.js +1 -0
  171. package/.next/static/chunks/app/api/context/file/route-dc3f0f4fd9e88c4e.js +1 -0
  172. package/.next/static/chunks/app/api/context/route-dc3f0f4fd9e88c4e.js +1 -0
  173. package/.next/static/chunks/app/api/db/arrange/route-dc3f0f4fd9e88c4e.js +1 -0
  174. package/.next/static/chunks/app/api/db/backfill-access/route-dc3f0f4fd9e88c4e.js +1 -0
  175. package/.next/static/chunks/app/api/db/position/route-dc3f0f4fd9e88c4e.js +1 -0
  176. package/.next/static/chunks/app/api/db/prune-planned/route-dc3f0f4fd9e88c4e.js +1 -0
  177. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-dc3f0f4fd9e88c4e.js +1 -0
  178. package/.next/static/chunks/app/api/db/relations/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  179. package/.next/static/chunks/app/api/db/tables/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  180. package/.next/static/chunks/app/api/draft/approve/route-dc3f0f4fd9e88c4e.js +1 -0
  181. package/.next/static/chunks/app/api/draft/route-dc3f0f4fd9e88c4e.js +1 -0
  182. package/.next/static/chunks/app/api/draft/status/route-dc3f0f4fd9e88c4e.js +1 -0
  183. package/.next/static/chunks/app/api/edges/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  184. package/.next/static/chunks/app/api/edges/route-dc3f0f4fd9e88c4e.js +1 -0
  185. package/.next/static/chunks/app/api/endpoints/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  186. package/.next/static/chunks/app/api/entities/route-dc3f0f4fd9e88c4e.js +1 -0
  187. package/.next/static/chunks/app/api/feedback/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  188. package/.next/static/chunks/app/api/feedback/[id]/vote/route-dc3f0f4fd9e88c4e.js +1 -0
  189. package/.next/static/chunks/app/api/feedback/route-dc3f0f4fd9e88c4e.js +1 -0
  190. package/.next/static/chunks/app/api/flags/route-dc3f0f4fd9e88c4e.js +1 -0
  191. package/.next/static/chunks/app/api/ingest/route-dc3f0f4fd9e88c4e.js +1 -0
  192. package/.next/static/chunks/app/api/init/route-dc3f0f4fd9e88c4e.js +1 -0
  193. package/.next/static/chunks/app/api/map/describe/route-dc3f0f4fd9e88c4e.js +1 -0
  194. package/.next/static/chunks/app/api/map/files/route-dc3f0f4fd9e88c4e.js +1 -0
  195. package/.next/static/chunks/app/api/map/finish/route-dc3f0f4fd9e88c4e.js +1 -0
  196. package/.next/static/chunks/app/api/map/route-dc3f0f4fd9e88c4e.js +1 -0
  197. package/.next/static/chunks/app/api/map/start/route-dc3f0f4fd9e88c4e.js +1 -0
  198. package/.next/static/chunks/app/api/map/touch-active/route-dc3f0f4fd9e88c4e.js +1 -0
  199. package/.next/static/chunks/app/api/nodes/[id]/position/route-dc3f0f4fd9e88c4e.js +1 -0
  200. package/.next/static/chunks/app/api/nodes/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  201. package/.next/static/chunks/app/api/nodes/positions/route-dc3f0f4fd9e88c4e.js +1 -0
  202. package/.next/static/chunks/app/api/nodes/route-dc3f0f4fd9e88c4e.js +1 -0
  203. package/.next/static/chunks/app/api/nodes/subtasks/route-dc3f0f4fd9e88c4e.js +1 -0
  204. package/.next/static/chunks/app/api/notes/[id]/route-dc3f0f4fd9e88c4e.js +1 -0
  205. package/.next/static/chunks/app/api/notes/route-dc3f0f4fd9e88c4e.js +1 -0
  206. package/.next/static/chunks/app/api/open/route-dc3f0f4fd9e88c4e.js +1 -0
  207. package/.next/static/chunks/app/api/plan/annotations/route-dc3f0f4fd9e88c4e.js +1 -0
  208. package/.next/static/chunks/app/api/plan/approve/route-dc3f0f4fd9e88c4e.js +1 -0
  209. package/.next/static/chunks/app/api/plan/history/route-dc3f0f4fd9e88c4e.js +1 -0
  210. package/.next/static/chunks/app/api/plan/markdown/route-dc3f0f4fd9e88c4e.js +1 -0
  211. package/.next/static/chunks/app/api/plan/presence/route-dc3f0f4fd9e88c4e.js +1 -0
  212. package/.next/static/chunks/app/api/plan/route-dc3f0f4fd9e88c4e.js +1 -0
  213. package/.next/static/chunks/app/api/plan/verdict/route-dc3f0f4fd9e88c4e.js +1 -0
  214. package/.next/static/chunks/app/api/preferences/route-dc3f0f4fd9e88c4e.js +1 -0
  215. package/.next/static/chunks/app/api/project-meta/route-dc3f0f4fd9e88c4e.js +1 -0
  216. package/.next/static/chunks/app/api/reset/route-dc3f0f4fd9e88c4e.js +1 -0
  217. package/.next/static/chunks/app/api/scope-guard/check/route-dc3f0f4fd9e88c4e.js +1 -0
  218. package/.next/static/chunks/app/api/stream/route-dc3f0f4fd9e88c4e.js +1 -0
  219. package/.next/static/chunks/app/api/tab/nav/route-dc3f0f4fd9e88c4e.js +1 -0
  220. package/.next/static/chunks/app/api/tab/presence/route-dc3f0f4fd9e88c4e.js +1 -0
  221. package/.next/static/chunks/app/api/telemetry/route-dc3f0f4fd9e88c4e.js +1 -0
  222. package/.next/static/chunks/app/api/telemetry/stats/route-dc3f0f4fd9e88c4e.js +1 -0
  223. package/.next/static/chunks/app/api/version/route-dc3f0f4fd9e88c4e.js +1 -0
  224. package/.next/static/chunks/app/api/workspace/activate/route-dc3f0f4fd9e88c4e.js +1 -0
  225. package/.next/static/chunks/app/api/workspace/route-dc3f0f4fd9e88c4e.js +1 -0
  226. package/.next/static/chunks/app/map/page-66d71744ae3363d7.js +1 -0
  227. package/.next/static/chunks/app/page-541e900d67f17dae.js +1 -0
  228. package/.next/static/chunks/app/plan/page-e7d16fa2a3713a92.js +1 -0
  229. package/.next/static/chunks/app/settings/page-7e176d120b1effa9.js +1 -0
  230. package/.next/static/chunks/next/dist/client/components/builtin/app-error-dc3f0f4fd9e88c4e.js +1 -0
  231. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-dc3f0f4fd9e88c4e.js +1 -0
  232. package/.next/static/chunks/next/dist/client/components/builtin/not-found-dc3f0f4fd9e88c4e.js +1 -0
  233. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-dc3f0f4fd9e88c4e.js +1 -0
  234. package/.next/static/css/629ab377241de9ca.css +1 -0
  235. package/.next/static/qeqVD-yeoYO_3C0pw9kHg/_buildManifest.js +1 -0
  236. package/.next/trace +39 -39
  237. package/.next/trace-build +1 -1
  238. package/.next/types/app/api/flags/route.ts +351 -0
  239. package/.next/types/app/api/scope-guard/check/route.ts +351 -0
  240. package/.next/types/routes.d.ts +3 -1
  241. package/.next/types/validator.ts +18 -0
  242. package/dist/bin/beacon.js +7 -7
  243. package/dist/bin/doctor.js +33 -26
  244. package/dist/bin/guard.js +3 -0
  245. package/dist/bin/hook.js +33 -26
  246. package/dist/bin/mcp.js +42 -35
  247. package/dist/bin/plan.js +34 -27
  248. package/dist/bin/remove.js +7 -6
  249. package/dist/bin/uninstall.js +33 -26
  250. package/dist/lib/assets.js +20 -13
  251. package/dist/lib/codex-install.js +30 -23
  252. package/dist/lib/global-install.js +30 -23
  253. package/dist/lib/telemetry.js +1 -1
  254. package/dist/lib/workspaces.js +1 -1
  255. package/drizzle/0008_good_lucky_pierre.sql +21 -0
  256. package/drizzle/meta/0008_snapshot.json +1904 -0
  257. package/drizzle/meta/_journal.json +7 -0
  258. package/package.json +1 -1
  259. package/public/install.sh +37 -6
  260. package/.next/server/chunks/142.js +0 -1
  261. package/.next/static/OO5fwNXOYFYnu4W91Z44C/_buildManifest.js +0 -1
  262. package/.next/static/chunks/5811-4d1f942c37146b40.js +0 -1
  263. package/.next/static/chunks/8074-a6b2725786399e2c.js +0 -1
  264. package/.next/static/chunks/app/_global-error/page-16ca2ed05a1d74d1.js +0 -1
  265. package/.next/static/chunks/app/api/board-annotations/[id]/route-16ca2ed05a1d74d1.js +0 -1
  266. package/.next/static/chunks/app/api/board-annotations/route-16ca2ed05a1d74d1.js +0 -1
  267. package/.next/static/chunks/app/api/board-layout/route-16ca2ed05a1d74d1.js +0 -1
  268. package/.next/static/chunks/app/api/bug-flags/[id]/route-16ca2ed05a1d74d1.js +0 -1
  269. package/.next/static/chunks/app/api/bug-flags/route-16ca2ed05a1d74d1.js +0 -1
  270. package/.next/static/chunks/app/api/code-graph/position/route-16ca2ed05a1d74d1.js +0 -1
  271. package/.next/static/chunks/app/api/code-graph/route-16ca2ed05a1d74d1.js +0 -1
  272. package/.next/static/chunks/app/api/context/feature/route-16ca2ed05a1d74d1.js +0 -1
  273. package/.next/static/chunks/app/api/context/file/route-16ca2ed05a1d74d1.js +0 -1
  274. package/.next/static/chunks/app/api/context/route-16ca2ed05a1d74d1.js +0 -1
  275. package/.next/static/chunks/app/api/db/arrange/route-16ca2ed05a1d74d1.js +0 -1
  276. package/.next/static/chunks/app/api/db/backfill-access/route-16ca2ed05a1d74d1.js +0 -1
  277. package/.next/static/chunks/app/api/db/position/route-16ca2ed05a1d74d1.js +0 -1
  278. package/.next/static/chunks/app/api/db/prune-planned/route-16ca2ed05a1d74d1.js +0 -1
  279. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-16ca2ed05a1d74d1.js +0 -1
  280. package/.next/static/chunks/app/api/db/relations/[id]/route-16ca2ed05a1d74d1.js +0 -1
  281. package/.next/static/chunks/app/api/db/tables/[id]/route-16ca2ed05a1d74d1.js +0 -1
  282. package/.next/static/chunks/app/api/draft/approve/route-16ca2ed05a1d74d1.js +0 -1
  283. package/.next/static/chunks/app/api/draft/route-16ca2ed05a1d74d1.js +0 -1
  284. package/.next/static/chunks/app/api/draft/status/route-16ca2ed05a1d74d1.js +0 -1
  285. package/.next/static/chunks/app/api/edges/[id]/route-16ca2ed05a1d74d1.js +0 -1
  286. package/.next/static/chunks/app/api/edges/route-16ca2ed05a1d74d1.js +0 -1
  287. package/.next/static/chunks/app/api/endpoints/[id]/route-16ca2ed05a1d74d1.js +0 -1
  288. package/.next/static/chunks/app/api/entities/route-16ca2ed05a1d74d1.js +0 -1
  289. package/.next/static/chunks/app/api/feedback/[id]/route-16ca2ed05a1d74d1.js +0 -1
  290. package/.next/static/chunks/app/api/feedback/[id]/vote/route-16ca2ed05a1d74d1.js +0 -1
  291. package/.next/static/chunks/app/api/feedback/route-16ca2ed05a1d74d1.js +0 -1
  292. package/.next/static/chunks/app/api/ingest/route-16ca2ed05a1d74d1.js +0 -1
  293. package/.next/static/chunks/app/api/init/route-16ca2ed05a1d74d1.js +0 -1
  294. package/.next/static/chunks/app/api/map/describe/route-16ca2ed05a1d74d1.js +0 -1
  295. package/.next/static/chunks/app/api/map/files/route-16ca2ed05a1d74d1.js +0 -1
  296. package/.next/static/chunks/app/api/map/finish/route-16ca2ed05a1d74d1.js +0 -1
  297. package/.next/static/chunks/app/api/map/route-16ca2ed05a1d74d1.js +0 -1
  298. package/.next/static/chunks/app/api/map/start/route-16ca2ed05a1d74d1.js +0 -1
  299. package/.next/static/chunks/app/api/map/touch-active/route-16ca2ed05a1d74d1.js +0 -1
  300. package/.next/static/chunks/app/api/nodes/[id]/position/route-16ca2ed05a1d74d1.js +0 -1
  301. package/.next/static/chunks/app/api/nodes/[id]/route-16ca2ed05a1d74d1.js +0 -1
  302. package/.next/static/chunks/app/api/nodes/positions/route-16ca2ed05a1d74d1.js +0 -1
  303. package/.next/static/chunks/app/api/nodes/route-16ca2ed05a1d74d1.js +0 -1
  304. package/.next/static/chunks/app/api/nodes/subtasks/route-16ca2ed05a1d74d1.js +0 -1
  305. package/.next/static/chunks/app/api/notes/[id]/route-16ca2ed05a1d74d1.js +0 -1
  306. package/.next/static/chunks/app/api/notes/route-16ca2ed05a1d74d1.js +0 -1
  307. package/.next/static/chunks/app/api/open/route-16ca2ed05a1d74d1.js +0 -1
  308. package/.next/static/chunks/app/api/plan/annotations/route-16ca2ed05a1d74d1.js +0 -1
  309. package/.next/static/chunks/app/api/plan/approve/route-16ca2ed05a1d74d1.js +0 -1
  310. package/.next/static/chunks/app/api/plan/history/route-16ca2ed05a1d74d1.js +0 -1
  311. package/.next/static/chunks/app/api/plan/markdown/route-16ca2ed05a1d74d1.js +0 -1
  312. package/.next/static/chunks/app/api/plan/presence/route-16ca2ed05a1d74d1.js +0 -1
  313. package/.next/static/chunks/app/api/plan/route-16ca2ed05a1d74d1.js +0 -1
  314. package/.next/static/chunks/app/api/plan/verdict/route-16ca2ed05a1d74d1.js +0 -1
  315. package/.next/static/chunks/app/api/preferences/route-16ca2ed05a1d74d1.js +0 -1
  316. package/.next/static/chunks/app/api/project-meta/route-16ca2ed05a1d74d1.js +0 -1
  317. package/.next/static/chunks/app/api/reset/route-16ca2ed05a1d74d1.js +0 -1
  318. package/.next/static/chunks/app/api/stream/route-16ca2ed05a1d74d1.js +0 -1
  319. package/.next/static/chunks/app/api/tab/nav/route-16ca2ed05a1d74d1.js +0 -1
  320. package/.next/static/chunks/app/api/tab/presence/route-16ca2ed05a1d74d1.js +0 -1
  321. package/.next/static/chunks/app/api/telemetry/route-16ca2ed05a1d74d1.js +0 -1
  322. package/.next/static/chunks/app/api/telemetry/stats/route-16ca2ed05a1d74d1.js +0 -1
  323. package/.next/static/chunks/app/api/version/route-16ca2ed05a1d74d1.js +0 -1
  324. package/.next/static/chunks/app/api/workspace/activate/route-16ca2ed05a1d74d1.js +0 -1
  325. package/.next/static/chunks/app/api/workspace/route-16ca2ed05a1d74d1.js +0 -1
  326. package/.next/static/chunks/app/map/page-a0bcd15b8dbfb3d3.js +0 -1
  327. package/.next/static/chunks/app/page-968dd5a6f667bff9.js +0 -1
  328. package/.next/static/chunks/app/plan/page-376f36858e187c73.js +0 -1
  329. package/.next/static/chunks/app/settings/page-67cab634be8bfef2.js +0 -1
  330. package/.next/static/chunks/next/dist/client/components/builtin/app-error-16ca2ed05a1d74d1.js +0 -1
  331. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-16ca2ed05a1d74d1.js +0 -1
  332. package/.next/static/chunks/next/dist/client/components/builtin/not-found-16ca2ed05a1d74d1.js +0 -1
  333. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-16ca2ed05a1d74d1.js +0 -1
  334. package/.next/static/css/2d019ca6e0582481.css +0 -1
  335. /package/.next/static/{OO5fwNXOYFYnu4W91Z44C → qeqVD-yeoYO_3C0pw9kHg}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=3221,exports.ids=[3221],exports.modules={18072:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bk:()=>x,Ph:()=>v,Ze:()=>y,sS:()=>w});var e=c(77598),f=c(34216),g=c(56727),h=c(30046),i=c(72179),j=c(50101),k=c(61024),l=c(71584),m=c(79935),n=c(24433),o=c(54655),p=c(89049),q=c(70809),r=c(19734),s=a([g,i,j,n,r]);async function t(){let a=(0,o.Fn)(),b=(0,i.iL)(),c=await (0,j.C5)(),d=(0,q.YV)(),e=a?.description??"(no description)",f=a?.markdown?(0,n.J)(a.markdown).prose:(0,m.j)(e,b,c);return{description:e,markdown:f,draftDoc:b,featureGraph:c,annotations:d.annotations,globalComment:d.globalComment}}async function u(){await (0,j.t7)(),(0,i.Vs)(),(0,o.E9)(),(0,q.nb)()}async function v(a){let b=(0,o.Fn)(),c=await t(),d=a?.doc??c.draftDoc,j=(0,e.randomUUID)().slice(0,8),m=d?await (0,i.XF)(d,g.db,{planId:j}):null,n=await g.db.update(h.node).set({source:"MANUAL",planId:j}).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP"))).returning({id:h.node.id,title:h.node.title,cluster:h.node.cluster}),q={count:n.length};if(n.length){let a=await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,cluster:!0,x:!0,y:!0}}),b=new Set(n.map(a=>a.id)),c=a=>(a??"").trim()||"—",d=a.filter(a=>!b.has(a.id)).map(a=>({x:a.x,y:a.y,group:c(a.cluster),top:!a.parentId}));for(let a of n){let b=c(a.cluster),e=(0,l.E)(d.filter(a=>a.top&&a.group===b),d);await g.db.update(h.node).set({x:e.x,y:e.y}).where((0,f.eq)(h.node.id,a.id)),d.push({x:e.x,y:e.y,group:b,top:!0})}}(0,k.WH)({id:j,description:c.description,markdown:c.markdown,verdict:"approved",annotations:c.annotations,globalComment:c.globalComment,draftDoc:c.draftDoc,featureGraph:c.featureGraph});let s=[];m&&s.push(`${m.tables} table(s), ${m.relations} relation(s) and ${m.endpoints} endpoint(s)`),q.count&&s.push(`${q.count} feature(s)`);let v=s.length?`${s.join(" and ")} approved and persisted.`:"Plan approved.";return(0,p.Af)({proposedAt:b?.proposedAt??0,status:"approved",summary:v,detail:d?(0,i.zO)(d):void 0,features:n.map(a=>({title:a.title,id:a.id})),decidedAt:Date.now()}),await u(),await (0,r.Bx)(),{db:m,features:q.count}}async function w(){let a=(0,o.Fn)(),b=await t();(b.draftDoc&&(b.draftDoc.tables.length||b.draftDoc.endpoints.length)||b.featureGraph.features.length>0||a?.markdown)&&(0,k.WH)({description:b.description,markdown:b.markdown,verdict:"discarded",annotations:b.annotations,globalComment:b.globalComment,draftDoc:b.draftDoc,featureGraph:b.featureGraph}),(0,p.Af)({proposedAt:a?.proposedAt??0,status:"discarded",summary:"The user discarded the plan.",decidedAt:Date.now()}),(0,i.mk)(),await u(),await (0,r.Bx)()}async function x(){let a=(0,q.Z3)();if(a.submitted&&a.feedback)return{kind:"feedback",feedback:a.feedback};let b=(0,p.zC)();if(b)return"approved"===b.status?{kind:"approved",summary:b.summary,detail:b.detail,features:function(a){if(a?.length)return a.map(a=>"string"==typeof a?{title:a,id:""}:{title:a.title,id:a.id})}(b.features)}:{kind:"discarded",summary:b.summary};let c=(0,o.Fn)(),d=(0,i.iL)(),e=await (0,j.C5)();return(d?.tables.length??0)+(d?.endpoints.length??0)+e.features.length>0||c?.markdown?{kind:"pending"}:{kind:"discarded",summary:"The user discarded the plan."}}function y(){(0,q.nb)(),(0,p.mh)()}[g,i,j,n,r]=s.then?(await s)():s,d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},54655:(a,b,c)=>{c.d(b,{E9:()=>k,Fn:()=>i,UC:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-meta.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},61024:(a,b,c)=>{c.d(b,{Pq:()=>k,WH:()=>j,ao:()=>l});var d=c(73024),e=c(76760),f=c(77598),g=c(45301),h=c(32213);function i(){let a=(0,e.join)((0,g.KS)(),"plans","history");return(0,d.mkdirSync)(a,{recursive:!0}),a}function j(a){let b={...a,id:a.id??(0,f.randomUUID)().slice(0,8),archivedAt:Date.now()};return(0,h.q)((0,e.join)(i(),`${b.id}.json`),b,!0),b}function k(){let a;try{a=(0,d.readdirSync)(i())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=(0,e.join)(i(),c),f=(0,d.readFileSync)(a,"utf8"),g=JSON.parse(f);b.push(g)}catch{}return b.sort((a,b)=>b.archivedAt-a.archivedAt)}function l(a){try{let b=(0,d.readFileSync)((0,e.join)(i(),`${a}.json`),"utf8");return JSON.parse(b)}catch{return null}}},70809:(a,b,c)=>{c.d(b,{nb:()=>k,Z3:()=>m,YV:()=>i,Tm:()=>l,D_:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-annotations-current.json")}function i(){try{let a=JSON.parse((0,d.readFileSync)(h(),"utf8"));return{annotations:a.annotations??[],globalComment:a.globalComment??"",submitted:!!a.submitted,submittedAt:a.submittedAt,boardEdits:a.boardEdits??"",questions:a.questions??[]}}catch{return{annotations:[],globalComment:"",submitted:!1,questions:[]}}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}function l(a){let b;return[function(a,b=""){let c=a.filter(a=>(a.kind??"comment")==="comment"&&a.comment.trim()),d=a.filter(a=>"deletion"===a.kind),e=b.trim();if(!c.length&&!d.length&&!e)return"";let f=[];if(e&&f.push(`## Overall feedback
1
+ "use strict";exports.id=3221,exports.ids=[3221],exports.modules={18072:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bk:()=>z,Ph:()=>x,Ze:()=>A,sS:()=>y});var e=c(77598),f=c(34216),g=c(56727),h=c(30046),i=c(72179),j=c(50101),k=c(61024),l=c(71584),m=c(79935),n=c(24433),o=c(54655),p=c(89049),q=c(70809),r=c(19734),s=c(76124),t=c(51695),u=a([g,i,j,n,r,s,t]);async function v(){let a=(0,o.Fn)(),b=(0,i.iL)(),c=await (0,j.C5)(),d=(0,q.YV)(),e=a?.description??"(no description)",f=a?.markdown?(0,n.J)(a.markdown).prose:(0,m.j)(e,b,c);return{description:e,markdown:f,draftDoc:b,featureGraph:c,annotations:d.annotations,globalComment:d.globalComment}}async function w(){await (0,j.t7)(),(0,i.Vs)(),(0,o.E9)(),(0,q.nb)()}async function x(a){let b=(0,o.Fn)(),c=await v(),d=a?.doc??c.draftDoc,j=(0,e.randomUUID)().slice(0,8);(await (0,s.j)("scope-guard")).enabled&&await (0,t.Ek)({planId:j,declaredFiles:b?.contractFiles??[]});let m=d?await (0,i.XF)(d,g.db,{planId:j}):null,n=await g.db.update(h.node).set({source:"MANUAL",planId:j}).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP"))).returning({id:h.node.id,title:h.node.title,cluster:h.node.cluster}),q={count:n.length};if(n.length){let a=await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,cluster:!0,x:!0,y:!0}}),b=new Set(n.map(a=>a.id)),c=a=>(a??"").trim()||"—",d=a.filter(a=>!b.has(a.id)).map(a=>({x:a.x,y:a.y,group:c(a.cluster),top:!a.parentId}));for(let a of n){let b=c(a.cluster),e=(0,l.E)(d.filter(a=>a.top&&a.group===b),d);await g.db.update(h.node).set({x:e.x,y:e.y}).where((0,f.eq)(h.node.id,a.id)),d.push({x:e.x,y:e.y,group:b,top:!0})}}(0,k.WH)({id:j,description:c.description,markdown:c.markdown,verdict:"approved",annotations:c.annotations,globalComment:c.globalComment,draftDoc:c.draftDoc,featureGraph:c.featureGraph});let u=[];m&&u.push(`${m.tables} table(s), ${m.relations} relation(s) and ${m.endpoints} endpoint(s)`),q.count&&u.push(`${q.count} feature(s)`);let x=u.length?`${u.join(" and ")} approved and persisted.`:"Plan approved.";return(0,p.Af)({proposedAt:b?.proposedAt??0,status:"approved",summary:x,detail:d?(0,i.zO)(d):void 0,features:n.map(a=>({title:a.title,id:a.id})),decidedAt:Date.now()}),await w(),await (0,r.Bx)(),{db:m,features:q.count}}async function y(){let a=(0,o.Fn)(),b=await v();(b.draftDoc&&(b.draftDoc.tables.length||b.draftDoc.endpoints.length)||b.featureGraph.features.length>0||a?.markdown)&&(0,k.WH)({description:b.description,markdown:b.markdown,verdict:"discarded",annotations:b.annotations,globalComment:b.globalComment,draftDoc:b.draftDoc,featureGraph:b.featureGraph}),(0,p.Af)({proposedAt:a?.proposedAt??0,status:"discarded",summary:"The user discarded the plan.",decidedAt:Date.now()}),(0,i.mk)(),await w(),await (0,r.Bx)()}async function z(){let a=(0,q.Z3)();if(a.submitted&&a.feedback)return{kind:"feedback",feedback:a.feedback};let b=(0,p.zC)();if(b)return"approved"===b.status?{kind:"approved",summary:b.summary,detail:b.detail,features:function(a){if(a?.length)return a.map(a=>"string"==typeof a?{title:a,id:""}:{title:a.title,id:a.id})}(b.features)}:{kind:"discarded",summary:b.summary};let c=(0,o.Fn)(),d=(0,i.iL)(),e=await (0,j.C5)();return(d?.tables.length??0)+(d?.endpoints.length??0)+e.features.length>0||c?.markdown?{kind:"pending"}:{kind:"discarded",summary:"The user discarded the plan."}}function A(){(0,q.nb)(),(0,p.mh)()}[g,i,j,n,r,s,t]=u.then?(await u)():u,d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},51695:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EM:()=>l,Ek:()=>k,Zt:()=>j,jX:()=>n,m3:()=>m});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}async function j(a=f.db){let b=await a.query.planContract.findFirst({where:(a,{eq:b})=>b(a.active,!0)});return b?{planId:b.planId,declaredFiles:i(b.declaredFiles),authorizedExtras:i(b.authorizedExtras)}:null}async function k(a,b=f.db){await b.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0));let c=JSON.stringify(a.declaredFiles);await b.insert(g.planContract).values({planId:a.planId,declaredFiles:c,authorizedExtras:"[]",active:!0}).onConflictDoUpdate({target:g.planContract.planId,set:{declaredFiles:c,authorizedExtras:"[]",active:!0}})}async function l(a,b,c=f.db){let d=await c.query.planContract.findFirst({where:(b,{eq:c})=>c(b.planId,a)});if(!d)return;let h=i(d.authorizedExtras);h.includes(b)||(h.push(b),await c.update(g.planContract).set({authorizedExtras:JSON.stringify(h)}).where((0,e.eq)(g.planContract.planId,a)))}async function m(a=f.db){await a.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0))}function n(a){let{filePath:b,enabled:c,contract:d,extraAllowed:e=[]}=a;if(!c||!d)return{decision:"allow"};let f=new Set([...d.declaredFiles,...d.authorizedExtras,...e]);return 0===f.size||f.has(b)?{decision:"allow"}:{decision:"ask",reason:`⚠️ This edit touches \`${b}\`, which is outside this plan's declared scope. Authorize this divergence? (The contract is human-owned — only your approval can widen it.)`}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},54655:(a,b,c)=>{c.d(b,{E9:()=>k,Fn:()=>i,UC:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-meta.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},61024:(a,b,c)=>{c.d(b,{Pq:()=>k,WH:()=>j,ao:()=>l});var d=c(73024),e=c(76760),f=c(77598),g=c(45301),h=c(32213);function i(){let a=(0,e.join)((0,g.KS)(),"plans","history");return(0,d.mkdirSync)(a,{recursive:!0}),a}function j(a){let b={...a,id:a.id??(0,f.randomUUID)().slice(0,8),archivedAt:Date.now()};return(0,h.q)((0,e.join)(i(),`${b.id}.json`),b,!0),b}function k(){let a;try{a=(0,d.readdirSync)(i())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=(0,e.join)(i(),c),f=(0,d.readFileSync)(a,"utf8"),g=JSON.parse(f);b.push(g)}catch{}return b.sort((a,b)=>b.archivedAt-a.archivedAt)}function l(a){try{let b=(0,d.readFileSync)((0,e.join)(i(),`${a}.json`),"utf8");return JSON.parse(b)}catch{return null}}},70809:(a,b,c)=>{c.d(b,{nb:()=>k,Z3:()=>m,YV:()=>i,Tm:()=>l,D_:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-annotations-current.json")}function i(){try{let a=JSON.parse((0,d.readFileSync)(h(),"utf8"));return{annotations:a.annotations??[],globalComment:a.globalComment??"",submitted:!!a.submitted,submittedAt:a.submittedAt,boardEdits:a.boardEdits??"",questions:a.questions??[]}}catch{return{annotations:[],globalComment:"",submitted:!1,questions:[]}}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}function l(a){let b;return[function(a,b=""){let c=a.filter(a=>(a.kind??"comment")==="comment"&&a.comment.trim()),d=a.filter(a=>"deletion"===a.kind),e=b.trim();if(!c.length&&!d.length&&!e)return"";let f=[];if(e&&f.push(`## Overall feedback
2
2
 
3
3
  ${e}`),c.length){let a=["## Inline comments",""];for(let b of c){let c=b.excerpt.split("\n").map(a=>`> ${a}`).join("\n");a.push(`${c}
4
4
 
5
- ${b.comment.trim()}`)}f.push(a.join("\n"))}if(d.length){let a=["## Marked for deletion","","The user marked these passages for removal — drop them from the next plan:",""];for(let b of d){let c=b.excerpt.split("\n").map(a=>`> ${a}`).join("\n");a.push(c),a.push("")}f.push(a.join("\n").trim())}return f.join("\n\n").trim()}(a.annotations,a.globalComment),a.boardEdits??"",!(b=(a.questions??[]).filter(a=>a.question.trim())).length?"":["## Questions to answer before approving",...b.map(a=>`- **${a.target}** — ${a.question.trim()}`)].join("\n")].filter(Boolean).join("\n\n")}function m(){let a=i();return{submitted:a.submitted,feedback:a.submitted?l(a):""}}},71584:(a,b,c)=>{function d(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}function e(a,b,c={}){let f=c.colW??320,g=c.rowH??150,h=c.maxCols??4,i=c.bandGap??90;if(0===a.length){if(0===b.length)return{x:0,y:0};let a=Math.max(...b.map(a=>a.y));return d(b,{x:0,y:a+g+i})}let j=Math.min(...a.map(a=>a.x)),k=Math.min(...a.map(a=>a.y)),l=a.map(a=>Math.max(0,Math.round((a.x-j)/f))),m=Math.min(h,Math.max(Math.max(...l)+1,Math.ceil(Math.sqrt(a.length+1)))),n=Array(m).fill(k-g);a.forEach((a,b)=>{let c=Math.min(l[b],m-1);n[c]=Math.max(n[c],a.y)});let o=0;for(let a=1;a<m;a++)n[a]<n[o]&&(o=a);return d(b,{x:j+o*f,y:n[o]+g})}c.d(b,{B:()=>d,E:()=>e})},89049:(a,b,c)=>{c.d(b,{Af:()=>j,mh:()=>k,zC:()=>i});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
5
+ ${b.comment.trim()}`)}f.push(a.join("\n"))}if(d.length){let a=["## Marked for deletion","","The user marked these passages for removal — drop them from the next plan:",""];for(let b of d){let c=b.excerpt.split("\n").map(a=>`> ${a}`).join("\n");a.push(c),a.push("")}f.push(a.join("\n").trim())}return f.join("\n\n").trim()}(a.annotations,a.globalComment),a.boardEdits??"",!(b=(a.questions??[]).filter(a=>a.question.trim())).length?"":["## Questions to answer before approving",...b.map(a=>`- **${a.target}** — ${a.question.trim()}`)].join("\n")].filter(Boolean).join("\n\n")}function m(){let a=i();return{submitted:a.submitted,feedback:a.submitted?l(a):""}}},71584:(a,b,c)=>{function d(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}function e(a,b,c={}){let f=c.colW??320,g=c.rowH??150,h=c.maxCols??4,i=c.bandGap??90;if(0===a.length){if(0===b.length)return{x:0,y:0};let a=Math.max(...b.map(a=>a.y));return d(b,{x:0,y:a+g+i})}let j=Math.min(...a.map(a=>a.x)),k=Math.min(...a.map(a=>a.y)),l=a.map(a=>Math.max(0,Math.round((a.x-j)/f))),m=Math.min(h,Math.max(Math.max(...l)+1,Math.ceil(Math.sqrt(a.length+1)))),n=Array(m).fill(k-g);a.forEach((a,b)=>{let c=Math.min(l[b],m-1);n[c]=Math.max(n[c],a.y)});let o=0;for(let a=1;a<m;a++)n[a]<n[o]&&(o=a);return d(b,{x:j+o*f,y:n[o]+g})}c.d(b,{B:()=>d,E:()=>e})},76124:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>h,l:()=>i});var e=c(56727),f=c(30046),g=a([e]);async function h(a,b=e.db){let c=await b.query.workspaceFlag.findFirst({where:(b,{eq:c})=>c(b.key,a)});return c?{enabled:c.enabled,config:function(a){if(!a)return{};try{let b=JSON.parse(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:{}}catch{return{}}}(c.config)}:{enabled:!1,config:{}}}async function i(a,b,c=e.db){let d={};return void 0!==b.enabled&&(d.enabled=b.enabled),void 0!==b.config&&(d.config=JSON.stringify(b.config)),0===Object.keys(d).length&&(d.key=a),await c.insert(f.workspaceFlag).values({key:a,enabled:b.enabled??!1,config:void 0!==b.config?JSON.stringify(b.config):null}).onConflictDoUpdate({target:f.workspaceFlag.key,set:d}),h(a,c)}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89049:(a,b,c)=>{c.d(b,{Af:()=>j,mh:()=>k,zC:()=>i});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3622,exports.ids=[3622],exports.modules={29833:(a,b,c)=>{c.d(b,{mk:()=>i});let d=new Set(["a","an","the","of","for","to","and","or","in","on","with","via","by","using","use","add","adds","support","implement","implementation","feature","new","build","create","o","os","as","um","uma","de","da","do","das","dos","para","por","com","e","ou","no","na","nos","nas","ao","aos","adicionar","implementar","suporte","suportar","nova","novo","funcionalidade","usar","usando","criar"]);function e(a){return a.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}function f(a){return e(a).split(" ").filter(a=>a&&!d.has(a))}function g(a,b){if(!a.size||!b.size)return 0;let c=0;for(let d of a)b.has(d)&&c++;return 2*c/(a.size+b.size)}function h(a){let b=e(a).replace(/ /g,""),c=new Set;for(let a=0;a<b.length-1;a++)c.add(b.slice(a,a+2));return c}function i(a,b,c={}){let d=c.confident??.72,j=c.consider??.5,k=c.margin??.1,l=b.map(b=>{var c,d;let i,j;return{...b,score:Math.round(100*(c=a,d=b.title,i=e(c),j=e(d),i&&j?i===j?1:Math.min(1,.7*g(new Set(f(c)),new Set(f(d)))+.4*g(h(c),h(d))):0))/100}}).sort((a,b)=>b.score-a.score),m=l[0];if(!m||m.score<j)return{best:null,candidates:[]};let n=l[1]?.score??0,o=1===l.length||m.score-n>=k;return m.score>=d&&o?{best:m,candidates:[]}:{best:null,candidates:l.filter(a=>a.score>=j).slice(0,4)}}},38356:(a,b,c)=>{c.d(b,{AG:()=>h,Ey:()=>i,Kn:()=>f,oA:()=>g});var d=c(32753),e=c(29833);function f(a,b){let c=b?.requireLayer??!1,e=a.map(a=>{let b=[],e=a.cluster??a.category??a.domain??null;return e&&e.trim()||b.push("category"),null==a.priority&&b.push("priority"),c&&!(0,d.jR)(a.layer)&&b.push("layer"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===e.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand."+(c?' This workspace has a frontend surface, so every feature must also carry `layer`: "frontend" | "backend" | "fullstack" — which side of the stack the work lands on.':"")+" Missing:\n"+e.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low)."+(c?" Set `layer` on EVERY feature too.":"")+" Don't rely on defaults."}function g(a){let b=(a.title??"").trim();if(!b)return"⛔ A feature needs a non-empty title.";if(!(a.category??"").trim()){let c=function(a){let b=new Set;for(let c of a){let a=(c.cluster??"").trim();a&&b.add(a)}return[...b].sort()}(a.existing),d=c.length?` Reuse an existing category where it fits: ${c.join(", ")}.`:"";return`⛔ Feature "${b}" has no category. Every roadmap feature needs one — it drives grouping and color on the board.${d} Pass it as \`category\` (e.g. AUTH, SEARCH, DATA, INTEL, BILLING, INFRA …); don't rely on a default.`}if(a.requireLayer&&!(0,d.jR)(a.layer))return`⛔ Feature "${b}" has no layer. This workspace has a frontend surface, so every roadmap feature must say which side of the stack it lands on. Pass it as \`layer\`: "frontend" | "backend" | "fullstack".`;let c=(0,e.mk)(b,a.existing.map(a=>({id:a.id,title:a.title})));if(c.best){let d=a.existing.find(a=>a.id===c.best.id),e=d?.status?` (${d.status})`:"";return`⛔ "${b}" already exists as the feature "${d?.title??c.best.title}"${e}. Don't create a duplicate — mark progress on it with \`beacon_start_feature({ id })\`, add sub-tasks with \`beacon_add_subtasks\`, or finish it with \`beacon_describe_feature\`.`}return null}function h(a,b){let c=b.map(a=>({id:a.id,title:a.title})),d=a.map(a=>{let d=(0,e.mk)(a.title??"",c);return d.best?{title:a.title,hit:b.find(a=>a.id===d.best.id)}:null}).filter(a=>null!==a);return d.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+d.map(a=>` • "${a.title}" → existing "${a.hit.title}"${a.hit.status?` (${a.hit.status})`:""}`).join("\n")+"\n\nDrop the duplicate(s) from the plan; to add work to an existing feature, ship sub-tasks or update it via beacon_describe_feature. Keep only genuinely new features in the proposal.":null}function i(a,b){let c=(a??"").trim();if(!c)return null;let d=(0,e.mk)(c,b);if(d.best)return null;let f=d.candidates.length?` Did you mean: ${d.candidates.map(a=>`"${a.title}"`).join(", ")}?`:"";return`⛔ front "${c}" doesn't match an existing feature.${f} \`front\` nests a feature UNDER an existing parent feature — it is NOT a domain tag. If "${c}" is a domain, pass it as \`category\` instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`}},63622:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,POST:()=>u,dynamic:()=>w});var e=c(77598),f=c(44046),g=c(6324),h=c(50101),i=c(38356),j=c(72179),k=c(24433),l=c(72658),m=c(19734),n=c(18072),o=c(54655),p=c(72595),q=c(56727),r=c(6716),s=a([h,j,k,l,m,n,p,q]);[h,j,k,l,m,n,p,q]=s.then?(await s)():s;let w="force-dynamic",x=f.Ik({description:f.Yj().trim().min(1),markdown:f.Yj().optional(),draft:g.Xg.optional(),features:h.Qy.shape.features.optional()});async function t(a){return(0,q.X_)((0,r.Ck)(a),async()=>{let a=(0,j.iL)(),b=await (0,h.C5)(),c=(0,o.Fn)(),d=(a?.tables.length??0)+(a?.endpoints.length??0)+b.features.length>0||!!c?.markdown;return Response.json({pending:d,description:c?.description??"",proposedAt:c?.proposedAt??0,tables:a?.tables.length??0,endpoints:a?.endpoints.length??0,features:b.features.length})})}async function u(a){try{let b=x.parse(await a.json());return await (0,q.X_)((0,r.Ck)(a),async()=>{let a=(0,e.createHash)("sha256").update(JSON.stringify({d:b.description,m:b.markdown??"",t:b.draft??null,f:b.features??null})).digest("hex"),c=b.draft,d=b.features,f=b.markdown,g=(c?.tables.length??0)>0||(c?.endpoints.length??0)>0||(c?.relations.length??0)>0||(d?.length??0)>0;if(b.markdown&&!g){let a=(0,k.J)(b.markdown);f=a.prose,c=a.draft,d=a.features}let r=(c?.tables.length??0)+(c?.endpoints.length??0)+(d?.length??0)>0,s=(0,o.Fn)();if(s?.contentHash===a&&(s.proposedAt??0)>0){let a=(0,j.iL)(),b=await (0,h.C5)();if((a?.tables.length??0)+(a?.endpoints.length??0)+b.features.length>0||!r)return Response.json({ok:!0,resumed:!0})}if(d&&d.length){let a=await (0,p.jZ)(),b=(0,i.Kn)(d,{requireLayer:a});if(b)return Response.json({error:b},{status:422});let c=await q.db.query.node.findMany({where:(a,{and:b,eq:c,ne:d})=>b(c(a.view,"ROADMAP"),d(a.source,"DRAFT")),columns:{id:!0,title:!0,cluster:!0,status:!0}}),e=(0,i.AG)(d,c);if(e)return Response.json({error:e},{status:422})}let t=0,u=0;if(c&&(c.tables.length||c.endpoints.length)){let a=await (0,l.C)(),b=(0,j.Gf)(c,a);t=b.tables.length,u=b.endpoints.length}let v=0;d&&d.length&&(await (0,h.KR)({features:d}),v=d.length);let w=!!f?.trim();return 0!==t||0!==u||0!==v||w?((0,o.UC)({description:b.description,proposedAt:Math.max(Date.now(),(s?.proposedAt??0)+1),markdown:w?f:s?.description===b.description?s?.markdown:void 0,originalFeatures:d?.map(a=>a.title)??[],contentHash:a}),(0,n.Ze)(),await (0,m.Bx)(),Response.json({ok:!0,tables:t,endpoints:u,features:v})):new Response("plan must include at least one table, endpoint, feature, or markdown",{status:400})})}catch(a){return new Response(`plan failed: ${a instanceof Error?a.message:"error"}`,{status:400})}}async function v(a){return(0,q.X_)((0,r.Ck)(a),async()=>(await (0,n.sS)(),new Response(null,{status:204})))}d()}catch(a){d(a)}})},72595:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wg:()=>k,hA:()=>i,jZ:()=>l,zr:()=>j});var e=c(56727),f=c(30046),g=c(32753),h=a([e]);async function i(a=e.db){let[b]=await a.insert(f.projectMeta).values({id:"singleton"}).onConflictDoUpdate({target:f.projectMeta.id,set:{id:"singleton"}}).returning();return b}async function j(a,b=e.db){let c={};null!=a.overview&&(c.overview=a.overview),a.conventions&&(c.conventions=JSON.stringify(a.conventions)),void 0!==a.hasFrontend&&(c.hasFrontend=a.hasFrontend),a.classificationRoots&&(c.classificationRoots=JSON.stringify(a.classificationRoots)),0===Object.keys(c).length&&(c.id="singleton");let[d]=await b.insert(f.projectMeta).values({id:"singleton",overview:a.overview??null,conventions:JSON.stringify(a.conventions??[]),hasFrontend:a.hasFrontend??null,classificationRoots:JSON.stringify(a.classificationRoots??[])}).onConflictDoUpdate({target:f.projectMeta.id,set:c}).returning();return d}async function k(a=e.db){let b=await i(a);try{let a=JSON.parse(b.classificationRoots??"[]");return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}catch{return[]}}async function l(a=e.db){let b=await i(a);if(null!=b.hasFrontend)return b.hasFrontend;let c=await a.select({path:f.codeFile.path}).from(f.codeFile);return(0,g.EC)(c.map(a=>a.path))}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=3622,exports.ids=[3622],exports.modules={29833:(a,b,c)=>{c.d(b,{mk:()=>i});let d=new Set(["a","an","the","of","for","to","and","or","in","on","with","via","by","using","use","add","adds","support","implement","implementation","feature","new","build","create","o","os","as","um","uma","de","da","do","das","dos","para","por","com","e","ou","no","na","nos","nas","ao","aos","adicionar","implementar","suporte","suportar","nova","novo","funcionalidade","usar","usando","criar"]);function e(a){return a.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+/g," ")}function f(a){return e(a).split(" ").filter(a=>a&&!d.has(a))}function g(a,b){if(!a.size||!b.size)return 0;let c=0;for(let d of a)b.has(d)&&c++;return 2*c/(a.size+b.size)}function h(a){let b=e(a).replace(/ /g,""),c=new Set;for(let a=0;a<b.length-1;a++)c.add(b.slice(a,a+2));return c}function i(a,b,c={}){let d=c.confident??.72,j=c.consider??.5,k=c.margin??.1,l=b.map(b=>{var c,d;let i,j;return{...b,score:Math.round(100*(c=a,d=b.title,i=e(c),j=e(d),i&&j?i===j?1:Math.min(1,.7*g(new Set(f(c)),new Set(f(d)))+.4*g(h(c),h(d))):0))/100}}).sort((a,b)=>b.score-a.score),m=l[0];if(!m||m.score<j)return{best:null,candidates:[]};let n=l[1]?.score??0,o=1===l.length||m.score-n>=k;return m.score>=d&&o?{best:m,candidates:[]}:{best:null,candidates:l.filter(a=>a.score>=j).slice(0,4)}}},38356:(a,b,c)=>{c.d(b,{AG:()=>h,Ey:()=>i,Kn:()=>f,oA:()=>g});var d=c(32753),e=c(29833);function f(a,b){let c=b?.requireLayer??!1,e=a.map(a=>{let b=[],e=a.cluster??a.category??a.domain??null;return e&&e.trim()||b.push("category"),null==a.priority&&b.push("priority"),c&&!(0,d.jR)(a.layer)&&b.push("layer"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===e.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand."+(c?' This workspace has a frontend surface, so every feature must also carry `layer`: "frontend" | "backend" | "fullstack" — which side of the stack the work lands on.':"")+" Missing:\n"+e.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low)."+(c?" Set `layer` on EVERY feature too.":"")+" Don't rely on defaults."}function g(a){let b=(a.title??"").trim();if(!b)return"⛔ A feature needs a non-empty title.";if(!(a.category??"").trim()){let c=function(a){let b=new Set;for(let c of a){let a=(c.cluster??"").trim();a&&b.add(a)}return[...b].sort()}(a.existing),d=c.length?` Reuse an existing category where it fits: ${c.join(", ")}.`:"";return`⛔ Feature "${b}" has no category. Every roadmap feature needs one — it drives grouping and color on the board.${d} Pass it as \`category\` (e.g. AUTH, SEARCH, DATA, INTEL, BILLING, INFRA …); don't rely on a default.`}if(a.requireLayer&&!(0,d.jR)(a.layer))return`⛔ Feature "${b}" has no layer. This workspace has a frontend surface, so every roadmap feature must say which side of the stack it lands on. Pass it as \`layer\`: "frontend" | "backend" | "fullstack".`;let c=(0,e.mk)(b,a.existing.map(a=>({id:a.id,title:a.title})));if(c.best){let d=a.existing.find(a=>a.id===c.best.id),e=d?.status?` (${d.status})`:"";return`⛔ "${b}" already exists as the feature "${d?.title??c.best.title}"${e}. Don't create a duplicate — mark progress on it with \`beacon_start_feature({ id })\`, add sub-tasks with \`beacon_add_subtasks\`, or finish it with \`beacon_describe_feature\`.`}return null}function h(a,b){let c=b.map(a=>({id:a.id,title:a.title})),d=a.map(a=>{let d=(0,e.mk)(a.title??"",c);return d.best?{title:a.title,hit:b.find(a=>a.id===d.best.id)}:null}).filter(a=>null!==a);return d.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+d.map(a=>` • "${a.title}" → existing "${a.hit.title}"${a.hit.status?` (${a.hit.status})`:""}`).join("\n")+"\n\nDrop the duplicate(s) from the plan; to add work to an existing feature, ship sub-tasks or update it via beacon_describe_feature. Keep only genuinely new features in the proposal.":null}function i(a,b){let c=(a??"").trim();if(!c)return null;let d=(0,e.mk)(c,b);if(d.best)return null;let f=d.candidates.length?` Did you mean: ${d.candidates.map(a=>`"${a.title}"`).join(", ")}?`:"";return`⛔ front "${c}" doesn't match an existing feature.${f} \`front\` nests a feature UNDER an existing parent feature — it is NOT a domain tag. If "${c}" is a domain, pass it as \`category\` instead. If it's a real umbrella feature, create it first via beacon_propose_plan.`}},63622:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,POST:()=>u,dynamic:()=>w});var e=c(77598),f=c(44046),g=c(6324),h=c(50101),i=c(38356),j=c(72179),k=c(24433),l=c(72658),m=c(19734),n=c(18072),o=c(54655),p=c(72595),q=c(56727),r=c(6716),s=a([h,j,k,l,m,n,p,q]);[h,j,k,l,m,n,p,q]=s.then?(await s)():s;let w="force-dynamic",x=f.Ik({description:f.Yj().trim().min(1),markdown:f.Yj().optional(),draft:g.Xg.optional(),features:h.Qy.shape.features.optional(),contract:f.YO(f.Yj().trim().min(1)).optional()});async function t(a){return(0,q.X_)((0,r.Ck)(a),async()=>{let a=(0,j.iL)(),b=await (0,h.C5)(),c=(0,o.Fn)(),d=(a?.tables.length??0)+(a?.endpoints.length??0)+b.features.length>0||!!c?.markdown;return Response.json({pending:d,description:c?.description??"",proposedAt:c?.proposedAt??0,tables:a?.tables.length??0,endpoints:a?.endpoints.length??0,features:b.features.length})})}async function u(a){try{let b=x.parse(await a.json());return await (0,q.X_)((0,r.Ck)(a),async()=>{let a=(0,e.createHash)("sha256").update(JSON.stringify({d:b.description,m:b.markdown??"",t:b.draft??null,f:b.features??null})).digest("hex"),c=b.draft,d=b.features,f=b.markdown,g=b.contract,r=(c?.tables.length??0)>0||(c?.endpoints.length??0)>0||(c?.relations.length??0)>0||(d?.length??0)>0;if(b.markdown&&!r){let a=(0,k.J)(b.markdown);f=a.prose,c=a.draft,d=a.features,g=g??a.contract}let s=(c?.tables.length??0)+(c?.endpoints.length??0)+(d?.length??0)>0,t=(0,o.Fn)();if(t?.contentHash===a&&(t.proposedAt??0)>0){let a=(0,j.iL)(),b=await (0,h.C5)();if((a?.tables.length??0)+(a?.endpoints.length??0)+b.features.length>0||!s)return Response.json({ok:!0,resumed:!0})}if(d&&d.length){let a=await (0,p.jZ)(),b=(0,i.Kn)(d,{requireLayer:a});if(b)return Response.json({error:b},{status:422});let c=await q.db.query.node.findMany({where:(a,{and:b,eq:c,ne:d})=>b(c(a.view,"ROADMAP"),d(a.source,"DRAFT")),columns:{id:!0,title:!0,cluster:!0,status:!0}}),e=(0,i.AG)(d,c);if(e)return Response.json({error:e},{status:422})}let u=0,v=0;if(c&&(c.tables.length||c.endpoints.length)){let a=await (0,l.C)(),b=(0,j.Gf)(c,a);u=b.tables.length,v=b.endpoints.length}let w=0;d&&d.length&&(await (0,h.KR)({features:d}),w=d.length);let x=!!f?.trim();return 0!==u||0!==v||0!==w||x?((0,o.UC)({description:b.description,proposedAt:Math.max(Date.now(),(t?.proposedAt??0)+1),markdown:x?f:t?.description===b.description?t?.markdown:void 0,originalFeatures:d?.map(a=>a.title)??[],contractFiles:g??(t?.description===b.description?t?.contractFiles:void 0),contentHash:a}),(0,n.Ze)(),await (0,m.Bx)(),Response.json({ok:!0,tables:u,endpoints:v,features:w})):new Response("plan must include at least one table, endpoint, feature, or markdown",{status:400})})}catch(a){return new Response(`plan failed: ${a instanceof Error?a.message:"error"}`,{status:400})}}async function v(a){return(0,q.X_)((0,r.Ck)(a),async()=>(await (0,n.sS)(),new Response(null,{status:204})))}d()}catch(a){d(a)}})},72595:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wg:()=>k,hA:()=>i,jZ:()=>l,zr:()=>j});var e=c(56727),f=c(30046),g=c(32753),h=a([e]);async function i(a=e.db){let[b]=await a.insert(f.projectMeta).values({id:"singleton"}).onConflictDoUpdate({target:f.projectMeta.id,set:{id:"singleton"}}).returning();return b}async function j(a,b=e.db){let c={};null!=a.overview&&(c.overview=a.overview),a.conventions&&(c.conventions=JSON.stringify(a.conventions)),void 0!==a.hasFrontend&&(c.hasFrontend=a.hasFrontend),a.classificationRoots&&(c.classificationRoots=JSON.stringify(a.classificationRoots)),0===Object.keys(c).length&&(c.id="singleton");let[d]=await b.insert(f.projectMeta).values({id:"singleton",overview:a.overview??null,conventions:JSON.stringify(a.conventions??[]),hasFrontend:a.hasFrontend??null,classificationRoots:JSON.stringify(a.classificationRoots??[])}).onConflictDoUpdate({target:f.projectMeta.id,set:c}).returning();return d}async function k(a=e.db){let b=await i(a);try{let a=JSON.parse(b.classificationRoots??"[]");return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}catch{return[]}}async function l(a=e.db){let b=await i(a);if(null!=b.hasFrontend)return b.hasFrontend;let c=await a.select({path:f.codeFile.path}).from(f.codeFile);return(0,g.EC)(c.map(a=>a.path))}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=4378,exports.ids=[4378],exports.modules={41631:(a,b,c)=>{c.r(b),c.d(b,{bugFlagRelations:()=>h,codeFileEdgeRelations:()=>u,codeFileRelations:()=>t,dbColumnRelations:()=>m,dbRelationRelations:()=>n,dbTableRelations:()=>l,draftColumnRelations:()=>r,draftRelationRelations:()=>s,draftTableRelations:()=>q,edgeRelations:()=>k,endpointRelations:()=>o,endpointTableRelations:()=>p,nodeFileRelations:()=>g,nodeRelations:()=>f,nodeTagsRelations:()=>j,tagRelations:()=>i});var d=c(52856),e=c(99121);let f=(0,d.K1)(e.node,({one:a,many:b})=>({files:b(e.nodeFile),bugFlags:b(e.bugFlag),nodeTags:b(e.nodeTags),edgesOut:b(e.edge,{relationName:"EdgeFrom"}),edgesIn:b(e.edge,{relationName:"EdgeTo"}),parent:a(e.node,{fields:[e.node.parentId],references:[e.node.id],relationName:"NodeTree"}),children:b(e.node,{relationName:"NodeTree"})})),g=(0,d.K1)(e.nodeFile,({one:a})=>({node:a(e.node,{fields:[e.nodeFile.nodeId],references:[e.node.id]})})),h=(0,d.K1)(e.bugFlag,({one:a})=>({node:a(e.node,{fields:[e.bugFlag.nodeId],references:[e.node.id]})})),i=(0,d.K1)(e.tag,({many:a})=>({nodeTags:a(e.nodeTags)})),j=(0,d.K1)(e.nodeTags,({one:a})=>({node:a(e.node,{fields:[e.nodeTags.a],references:[e.node.id]}),tag:a(e.tag,{fields:[e.nodeTags.b],references:[e.tag.id]})})),k=(0,d.K1)(e.edge,({one:a})=>({from:a(e.node,{fields:[e.edge.fromId],references:[e.node.id],relationName:"EdgeFrom"}),to:a(e.node,{fields:[e.edge.toId],references:[e.node.id],relationName:"EdgeTo"})})),l=(0,d.K1)(e.dbTable,({many:a})=>({columns:a(e.dbColumn),fksOut:a(e.dbRelation,{relationName:"FkFrom"}),fksIn:a(e.dbRelation,{relationName:"FkTo"}),usages:a(e.endpointTable)})),m=(0,d.K1)(e.dbColumn,({one:a})=>({table:a(e.dbTable,{fields:[e.dbColumn.tableId],references:[e.dbTable.id]})})),n=(0,d.K1)(e.dbRelation,({one:a})=>({fromTable:a(e.dbTable,{fields:[e.dbRelation.fromTableId],references:[e.dbTable.id],relationName:"FkFrom"}),toTable:a(e.dbTable,{fields:[e.dbRelation.toTableId],references:[e.dbTable.id],relationName:"FkTo"})})),o=(0,d.K1)(e.endpoint,({many:a})=>({tables:a(e.endpointTable)})),p=(0,d.K1)(e.endpointTable,({one:a})=>({endpoint:a(e.endpoint,{fields:[e.endpointTable.endpointId],references:[e.endpoint.id]}),table:a(e.dbTable,{fields:[e.endpointTable.tableId],references:[e.dbTable.id]})})),q=(0,d.K1)(e.draftTable,({many:a})=>({columns:a(e.draftColumn),fksOut:a(e.draftRelation,{relationName:"DraftFkFrom"}),fksIn:a(e.draftRelation,{relationName:"DraftFkTo"})})),r=(0,d.K1)(e.draftColumn,({one:a})=>({table:a(e.draftTable,{fields:[e.draftColumn.tableId],references:[e.draftTable.id]})})),s=(0,d.K1)(e.draftRelation,({one:a})=>({fromTable:a(e.draftTable,{fields:[e.draftRelation.fromTableId],references:[e.draftTable.id],relationName:"DraftFkFrom"}),toTable:a(e.draftTable,{fields:[e.draftRelation.toTableId],references:[e.draftTable.id],relationName:"DraftFkTo"})})),t=(0,d.K1)(e.codeFile,({many:a})=>({edgesOut:a(e.codeFileEdge,{relationName:"CFEFrom"}),edgesIn:a(e.codeFileEdge,{relationName:"CFETo"})})),u=(0,d.K1)(e.codeFileEdge,({one:a})=>({fromFile:a(e.codeFile,{fields:[e.codeFileEdge.fromPath],references:[e.codeFile.path],relationName:"CFEFrom"}),toFile:a(e.codeFile,{fields:[e.codeFileEdge.toPath],references:[e.codeFile.path],relationName:"CFETo"})}))},60455:(a,b,c)=>{c.d(b,{K4:()=>m,Nx:()=>j,UP:()=>n,Y2:()=>l,kO:()=>r,oW:()=>h,p1:()=>p});var d=c(16698);c(31421),c(77598);var e=c(73024),f=c(48161),g=c(76760);function h(){return process.env.BEACON_HOME||(0,g.join)((0,f.homedir)(),".beacon")}function i(a){return(0,g.join)(h(),a)}function j(a){return`file:${(0,g.join)(i(a),"db.sqlite")}`}function k(){try{let a=JSON.parse((0,e.readFileSync)((0,g.join)(h(),"workspaces.json"),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function l(){return k().sort((a,b)=>b.lastOpenedAt.localeCompare(a.lastOpenedAt))}function m(a){return k().find(b=>b.id===a)??null}function n(){try{return(0,e.readFileSync)((0,g.join)(h(),"active"),"utf8").trim()||null}catch{return null}}let o=new d.AsyncLocalStorage;function p(){return o.getStore()??null}let q=new Set;async function r(a){let b=i(a),d=(0,g.join)(b,"db.sqlite"),f=(0,e.existsSync)(d);if(f&&q.has(d))return{ok:!0,created:!1,migrated:!1};try{(0,e.mkdirSync)(b,{recursive:!0});let{provisionDb:g}=await Promise.all([c.e(6774),c.e(5362)]).then(c.bind(c,92981)),h=await g(j(a));return q.add(d),{ok:!0,created:!f,migrated:f&&h.migrated}}catch(a){return{ok:!1,created:!1,migrated:!1,error:a instanceof Error?a.message:String(a)}}}},74378:(a,b,c)=>{c.a(a,async(a,d)=>{try{let n;c.d(b,{Lf:()=>l,db:()=>u,ensureDefaultDb:()=>m});var e=c(96774),f=c(28855),g=c(99121),h=c(41631),i=c(60455),j=a([f,e]);[f,e]=j.then?(await j)():j;let o={...g,...h},p=(n=process.env.DATABASE_URL)&&/^(file:|libsql:|wss?:|https?:|:memory:)/i.test(n)?n:"file:./dev.db";function k(a){let b=(0,f.createClient)({url:a});return b.execute("PRAGMA foreign_keys = ON;"),b.execute("PRAGMA busy_timeout = 5000;"),(0,e.f)(b,{schema:o})}let q=globalThis,r=q.dzDefault??k(p),s=q.dzByUrl??=new Map;function l(a){let b=s.get(a);return b||(b=k(a),s.set(a,b)),b}let t=new Map;function m(a=p){if(!/^file:/i.test(a))return Promise.resolve();let b=t.get(a);return b||(b=c.e(2981).then(c.bind(c,92981)).then(({provisionDb:b})=>b(a)).then(()=>{}).catch(b=>{t.delete(a),console.error("[beacon] fallback db provision failed:",b instanceof Error?b.message:b)}),t.set(a,b)),b}let u=new Proxy({},{get(a,b){let c=function(){if(process.env.BEACON_REPO)return r;let a=(0,i.p1)()??(0,i.UP)();return a?l((0,i.Nx)(a)):r}(),d=c[b];return"function"==typeof d?d.bind(c):d}});d()}catch(a){d(a)}})},99121:(a,b,c)=>{c.r(b),c.d(b,{appSetting:()=>E,boardAnnotation:()=>r,bugFlag:()=>s,codeFile:()=>B,codeFileEdge:()=>C,dbColumn:()=>u,dbRelation:()=>v,dbTable:()=>t,draftColumn:()=>z,draftRelation:()=>A,draftTable:()=>y,edge:()=>o,endpoint:()=>w,endpointTable:()=>x,node:()=>l,nodeFile:()=>m,nodeTags:()=>p,note:()=>q,projectMeta:()=>F,syncState:()=>D,tag:()=>n});var d=c(16360),e=c(14052),f=c(13429),g=c(57805),h=c(47591),i=c(18208),j=c(17530),k=c(7385);let l=(0,d.D)("Node",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),view:(0,e.Qq)().notNull(),kind:(0,e.Qq)().default("FEATURE").notNull(),cluster:(0,e.Qq)(),layer:(0,e.Qq)(),title:(0,e.Qq)().notNull(),role:(0,e.Qq)(),plain:(0,e.Qq)(),status:(0,e.Qq)().default("PENDING").notNull(),priority:(0,f.nd)().default(2).notNull(),progress:(0,f.nd)().default(0).notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),sourceRef:(0,e.Qq)(),externalId:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),parentId:(0,e.Qq)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Node_cluster_idx").on(a.cluster),(0,h.Pe)("Node_parentId_idx").on(a.parentId),(0,h.Pe)("Node_view_idx").on(a.view),(0,i.mt)(()=>({columns:[a.parentId],foreignColumns:[a.id],name:"Node_parentId_Node_id_fk"})).onUpdate("cascade").onDelete("cascade")]),m=(0,d.D)("NodeFile",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),path:(0,e.Qq)().notNull()},a=>[(0,h.GL)("NodeFile_nodeId_path_key").on(a.nodeId,a.path),(0,h.Pe)("NodeFile_nodeId_idx").on(a.nodeId)]),n=(0,d.D)("Tag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),label:(0,e.Qq)().notNull(),color:(0,e.Qq)()},a=>[(0,h.GL)("Tag_label_key").on(a.label)]),o=(0,d.D)("Edge",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),toId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),kind:(0,e.Qq)().default("DEPENDS").notNull(),label:(0,e.Qq)(),sourceHandle:(0,e.Qq)(),targetHandle:(0,e.Qq)()},a=>[(0,h.GL)("Edge_fromId_toId_kind_key").on(a.fromId,a.toId,a.kind),(0,h.Pe)("Edge_toId_idx").on(a.toId),(0,h.Pe)("Edge_fromId_idx").on(a.fromId)]),p=(0,d.D)("_NodeTags",{a:(0,e.Qq)("A").notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),b:(0,e.Qq)("B").notNull().references(()=>n.id,{onDelete:"cascade",onUpdate:"cascade"})},a=>[(0,h.GL)("_NodeTags_AB_unique").on(a.a,a.b),(0,h.Pe)("_NodeTags_B_index").on(a.b)]),q=(0,d.D)("Note",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),title:(0,e.Qq)().default("Untitled").notNull(),body:(0,e.Qq)().default("").notNull(),ord:(0,g.x)().default(0).notNull(),pinned:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Note_updatedAt_idx").on(a.updatedAt)]),r=(0,d.D)("BoardAnnotation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),targetKind:(0,e.Qq)().notNull(),targetId:(0,e.Qq)().notNull(),columnName:(0,e.Qq)(),body:(0,e.Qq)().default("").notNull(),x:(0,g.x)(),y:(0,g.x)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("BoardAnnotation_target_idx").on(a.targetId)]),s=(0,d.D)("BugFlag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),by:(0,e.Qq)().notNull(),note:(0,e.Qq)().notNull(),resolvedAt:(0,f.nd)({mode:"timestamp_ms"}),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.Pe)("BugFlag_nodeId_idx").on(a.nodeId)]),t=(0,d.D)("DbTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("DbTable_domain_idx").on(a.domain),(0,h.GL)("DbTable_name_key").on(a.name)]),u=(0,d.D)("DbColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.GL)("DbColumn_tableId_name_key").on(a.tableId,a.name),(0,h.Pe)("DbColumn_tableId_idx").on(a.tableId)]),v=(0,d.D)("DbRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DbRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DbRelation_fromTableId_idx").on(a.fromTableId)]),w=(0,d.D)("Endpoint",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),method:(0,e.Qq)().notNull(),path:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("Endpoint_method_path_key").on(a.method,a.path),(0,h.Pe)("Endpoint_domain_idx").on(a.domain)]),x=(0,d.D)("EndpointTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),endpointId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),access:(0,e.Qq)().default("read").notNull()},a=>[(0,h.GL)("EndpointTable_endpointId_tableId_key").on(a.endpointId,a.tableId),(0,h.Pe)("EndpointTable_tableId_idx").on(a.tableId)]),y=(0,d.D)("DraftTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.GL)("DraftTable_name_key").on(a.name)]),z=(0,d.D)("DraftColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.Pe)("DraftColumn_tableId_idx").on(a.tableId)]),A=(0,d.D)("DraftRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DraftRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DraftRelation_fromTableId_idx").on(a.fromTableId)]),B=(0,d.D)("CodeFile",{path:(0,e.Qq)().primaryKey(),root:(0,e.Qq)(),lang:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),mtimeMs:(0,g.x)(),size:(0,f.nd)(),inDegree:(0,f.nd)().default(0).notNull(),outDegree:(0,f.nd)().default(0).notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),C=(0,d.D)("CodeFileEdge",{fromPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),toPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),circular:(0,f.nd)({mode:"boolean"}).default(!1).notNull()},a=>[(0,h.Pe)("CodeFileEdge_circular_idx").on(a.circular),(0,h.Pe)("CodeFileEdge_toPath_idx").on(a.toPath),(0,h.Pe)("CodeFileEdge_fromPath_idx").on(a.fromPath),(0,j.ie)({columns:[a.fromPath,a.toPath],name:"CodeFileEdge_fromPath_toPath_pk"})]),D=(0,d.D)("SyncState",{id:(0,e.Qq)().primaryKey().default("singleton"),version:(0,f.nd)().default(0).notNull(),codeGraphSyncedAt:(0,f.nd)({mode:"timestamp_ms"}),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),E=(0,d.D)("AppSetting",{id:(0,e.Qq)().primaryKey().default("singleton"),editor:(0,e.Qq)().default("auto").notNull(),currentFeatureId:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),F=(0,d.D)("ProjectMeta",{id:(0,e.Qq)().primaryKey().default("singleton"),overview:(0,e.Qq)(),conventions:(0,e.Qq)().default("[]").notNull(),hasFrontend:(0,f.nd)({mode:"boolean"}),classificationRoots:(0,e.Qq)().default("[]").notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)})}};
1
+ "use strict";exports.id=4378,exports.ids=[4378],exports.modules={41631:(a,b,c)=>{c.r(b),c.d(b,{bugFlagRelations:()=>h,codeFileEdgeRelations:()=>u,codeFileRelations:()=>t,dbColumnRelations:()=>m,dbRelationRelations:()=>n,dbTableRelations:()=>l,draftColumnRelations:()=>r,draftRelationRelations:()=>s,draftTableRelations:()=>q,edgeRelations:()=>k,endpointRelations:()=>o,endpointTableRelations:()=>p,nodeFileRelations:()=>g,nodeRelations:()=>f,nodeTagsRelations:()=>j,tagRelations:()=>i});var d=c(52856),e=c(99121);let f=(0,d.K1)(e.node,({one:a,many:b})=>({files:b(e.nodeFile),bugFlags:b(e.bugFlag),nodeTags:b(e.nodeTags),edgesOut:b(e.edge,{relationName:"EdgeFrom"}),edgesIn:b(e.edge,{relationName:"EdgeTo"}),parent:a(e.node,{fields:[e.node.parentId],references:[e.node.id],relationName:"NodeTree"}),children:b(e.node,{relationName:"NodeTree"})})),g=(0,d.K1)(e.nodeFile,({one:a})=>({node:a(e.node,{fields:[e.nodeFile.nodeId],references:[e.node.id]})})),h=(0,d.K1)(e.bugFlag,({one:a})=>({node:a(e.node,{fields:[e.bugFlag.nodeId],references:[e.node.id]})})),i=(0,d.K1)(e.tag,({many:a})=>({nodeTags:a(e.nodeTags)})),j=(0,d.K1)(e.nodeTags,({one:a})=>({node:a(e.node,{fields:[e.nodeTags.a],references:[e.node.id]}),tag:a(e.tag,{fields:[e.nodeTags.b],references:[e.tag.id]})})),k=(0,d.K1)(e.edge,({one:a})=>({from:a(e.node,{fields:[e.edge.fromId],references:[e.node.id],relationName:"EdgeFrom"}),to:a(e.node,{fields:[e.edge.toId],references:[e.node.id],relationName:"EdgeTo"})})),l=(0,d.K1)(e.dbTable,({many:a})=>({columns:a(e.dbColumn),fksOut:a(e.dbRelation,{relationName:"FkFrom"}),fksIn:a(e.dbRelation,{relationName:"FkTo"}),usages:a(e.endpointTable)})),m=(0,d.K1)(e.dbColumn,({one:a})=>({table:a(e.dbTable,{fields:[e.dbColumn.tableId],references:[e.dbTable.id]})})),n=(0,d.K1)(e.dbRelation,({one:a})=>({fromTable:a(e.dbTable,{fields:[e.dbRelation.fromTableId],references:[e.dbTable.id],relationName:"FkFrom"}),toTable:a(e.dbTable,{fields:[e.dbRelation.toTableId],references:[e.dbTable.id],relationName:"FkTo"})})),o=(0,d.K1)(e.endpoint,({many:a})=>({tables:a(e.endpointTable)})),p=(0,d.K1)(e.endpointTable,({one:a})=>({endpoint:a(e.endpoint,{fields:[e.endpointTable.endpointId],references:[e.endpoint.id]}),table:a(e.dbTable,{fields:[e.endpointTable.tableId],references:[e.dbTable.id]})})),q=(0,d.K1)(e.draftTable,({many:a})=>({columns:a(e.draftColumn),fksOut:a(e.draftRelation,{relationName:"DraftFkFrom"}),fksIn:a(e.draftRelation,{relationName:"DraftFkTo"})})),r=(0,d.K1)(e.draftColumn,({one:a})=>({table:a(e.draftTable,{fields:[e.draftColumn.tableId],references:[e.draftTable.id]})})),s=(0,d.K1)(e.draftRelation,({one:a})=>({fromTable:a(e.draftTable,{fields:[e.draftRelation.fromTableId],references:[e.draftTable.id],relationName:"DraftFkFrom"}),toTable:a(e.draftTable,{fields:[e.draftRelation.toTableId],references:[e.draftTable.id],relationName:"DraftFkTo"})})),t=(0,d.K1)(e.codeFile,({many:a})=>({edgesOut:a(e.codeFileEdge,{relationName:"CFEFrom"}),edgesIn:a(e.codeFileEdge,{relationName:"CFETo"})})),u=(0,d.K1)(e.codeFileEdge,({one:a})=>({fromFile:a(e.codeFile,{fields:[e.codeFileEdge.fromPath],references:[e.codeFile.path],relationName:"CFEFrom"}),toFile:a(e.codeFile,{fields:[e.codeFileEdge.toPath],references:[e.codeFile.path],relationName:"CFETo"})}))},60455:(a,b,c)=>{c.d(b,{K4:()=>m,Nx:()=>j,UP:()=>n,Y2:()=>l,kO:()=>r,oW:()=>h,p1:()=>p});var d=c(16698);c(31421),c(77598);var e=c(73024),f=c(48161),g=c(76760);function h(){return process.env.BEACON_HOME||(0,g.join)((0,f.homedir)(),".beacon")}function i(a){return(0,g.join)(h(),a)}function j(a){return`file:${(0,g.join)(i(a),"db.sqlite")}`}function k(){try{let a=JSON.parse((0,e.readFileSync)((0,g.join)(h(),"workspaces.json"),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function l(){return k().sort((a,b)=>b.lastOpenedAt.localeCompare(a.lastOpenedAt))}function m(a){return k().find(b=>b.id===a)??null}function n(){try{return(0,e.readFileSync)((0,g.join)(h(),"active"),"utf8").trim()||null}catch{return null}}let o=new d.AsyncLocalStorage;function p(){return o.getStore()??null}let q=new Set;async function r(a){let b=i(a),d=(0,g.join)(b,"db.sqlite"),f=(0,e.existsSync)(d);if(f&&q.has(d))return{ok:!0,created:!1,migrated:!1};try{(0,e.mkdirSync)(b,{recursive:!0});let{provisionDb:g}=await Promise.all([c.e(6774),c.e(5362)]).then(c.bind(c,92981)),h=await g(j(a));return q.add(d),{ok:!0,created:!f,migrated:f&&h.migrated}}catch(a){return{ok:!1,created:!1,migrated:!1,error:a instanceof Error?a.message:String(a)}}}},74378:(a,b,c)=>{c.a(a,async(a,d)=>{try{let n;c.d(b,{Lf:()=>l,db:()=>u,ensureDefaultDb:()=>m});var e=c(96774),f=c(28855),g=c(99121),h=c(41631),i=c(60455),j=a([f,e]);[f,e]=j.then?(await j)():j;let o={...g,...h},p=(n=process.env.DATABASE_URL)&&/^(file:|libsql:|wss?:|https?:|:memory:)/i.test(n)?n:"file:./dev.db";function k(a){let b=(0,f.createClient)({url:a});return b.execute("PRAGMA foreign_keys = ON;"),b.execute("PRAGMA busy_timeout = 5000;"),(0,e.f)(b,{schema:o})}let q=globalThis,r=q.dzDefault??k(p),s=q.dzByUrl??=new Map;function l(a){let b=s.get(a);return b||(b=k(a),s.set(a,b)),b}let t=new Map;function m(a=p){if(!/^file:/i.test(a))return Promise.resolve();let b=t.get(a);return b||(b=c.e(2981).then(c.bind(c,92981)).then(({provisionDb:b})=>b(a)).then(()=>{}).catch(b=>{t.delete(a),console.error("[beacon] fallback db provision failed:",b instanceof Error?b.message:b)}),t.set(a,b)),b}let u=new Proxy({},{get(a,b){let c=function(){if(process.env.BEACON_REPO)return r;let a=(0,i.p1)()??(0,i.UP)();return a?l((0,i.Nx)(a)):r}(),d=c[b];return"function"==typeof d?d.bind(c):d}});d()}catch(a){d(a)}})},99121:(a,b,c)=>{c.r(b),c.d(b,{appSetting:()=>E,boardAnnotation:()=>r,bugFlag:()=>s,codeFile:()=>B,codeFileEdge:()=>C,dbColumn:()=>u,dbRelation:()=>v,dbTable:()=>t,draftColumn:()=>z,draftRelation:()=>A,draftTable:()=>y,edge:()=>o,endpoint:()=>w,endpointTable:()=>x,node:()=>l,nodeFile:()=>m,nodeTags:()=>p,note:()=>q,planContract:()=>H,projectMeta:()=>F,syncState:()=>D,tag:()=>n,workspaceFlag:()=>G});var d=c(16360),e=c(14052),f=c(13429),g=c(57805),h=c(47591),i=c(18208),j=c(17530),k=c(7385);let l=(0,d.D)("Node",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),view:(0,e.Qq)().notNull(),kind:(0,e.Qq)().default("FEATURE").notNull(),cluster:(0,e.Qq)(),layer:(0,e.Qq)(),title:(0,e.Qq)().notNull(),role:(0,e.Qq)(),plain:(0,e.Qq)(),status:(0,e.Qq)().default("PENDING").notNull(),priority:(0,f.nd)().default(2).notNull(),progress:(0,f.nd)().default(0).notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),sourceRef:(0,e.Qq)(),externalId:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),parentId:(0,e.Qq)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Node_cluster_idx").on(a.cluster),(0,h.Pe)("Node_parentId_idx").on(a.parentId),(0,h.Pe)("Node_view_idx").on(a.view),(0,i.mt)(()=>({columns:[a.parentId],foreignColumns:[a.id],name:"Node_parentId_Node_id_fk"})).onUpdate("cascade").onDelete("cascade")]),m=(0,d.D)("NodeFile",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),path:(0,e.Qq)().notNull()},a=>[(0,h.GL)("NodeFile_nodeId_path_key").on(a.nodeId,a.path),(0,h.Pe)("NodeFile_nodeId_idx").on(a.nodeId)]),n=(0,d.D)("Tag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),label:(0,e.Qq)().notNull(),color:(0,e.Qq)()},a=>[(0,h.GL)("Tag_label_key").on(a.label)]),o=(0,d.D)("Edge",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),toId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),kind:(0,e.Qq)().default("DEPENDS").notNull(),label:(0,e.Qq)(),sourceHandle:(0,e.Qq)(),targetHandle:(0,e.Qq)()},a=>[(0,h.GL)("Edge_fromId_toId_kind_key").on(a.fromId,a.toId,a.kind),(0,h.Pe)("Edge_toId_idx").on(a.toId),(0,h.Pe)("Edge_fromId_idx").on(a.fromId)]),p=(0,d.D)("_NodeTags",{a:(0,e.Qq)("A").notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),b:(0,e.Qq)("B").notNull().references(()=>n.id,{onDelete:"cascade",onUpdate:"cascade"})},a=>[(0,h.GL)("_NodeTags_AB_unique").on(a.a,a.b),(0,h.Pe)("_NodeTags_B_index").on(a.b)]),q=(0,d.D)("Note",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),title:(0,e.Qq)().default("Untitled").notNull(),body:(0,e.Qq)().default("").notNull(),ord:(0,g.x)().default(0).notNull(),pinned:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Note_updatedAt_idx").on(a.updatedAt)]),r=(0,d.D)("BoardAnnotation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),targetKind:(0,e.Qq)().notNull(),targetId:(0,e.Qq)().notNull(),columnName:(0,e.Qq)(),body:(0,e.Qq)().default("").notNull(),x:(0,g.x)(),y:(0,g.x)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("BoardAnnotation_target_idx").on(a.targetId)]),s=(0,d.D)("BugFlag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),by:(0,e.Qq)().notNull(),note:(0,e.Qq)().notNull(),resolvedAt:(0,f.nd)({mode:"timestamp_ms"}),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.Pe)("BugFlag_nodeId_idx").on(a.nodeId)]),t=(0,d.D)("DbTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("DbTable_domain_idx").on(a.domain),(0,h.GL)("DbTable_name_key").on(a.name)]),u=(0,d.D)("DbColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.GL)("DbColumn_tableId_name_key").on(a.tableId,a.name),(0,h.Pe)("DbColumn_tableId_idx").on(a.tableId)]),v=(0,d.D)("DbRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DbRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DbRelation_fromTableId_idx").on(a.fromTableId)]),w=(0,d.D)("Endpoint",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),method:(0,e.Qq)().notNull(),path:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("Endpoint_method_path_key").on(a.method,a.path),(0,h.Pe)("Endpoint_domain_idx").on(a.domain)]),x=(0,d.D)("EndpointTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),endpointId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),access:(0,e.Qq)().default("read").notNull()},a=>[(0,h.GL)("EndpointTable_endpointId_tableId_key").on(a.endpointId,a.tableId),(0,h.Pe)("EndpointTable_tableId_idx").on(a.tableId)]),y=(0,d.D)("DraftTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.GL)("DraftTable_name_key").on(a.name)]),z=(0,d.D)("DraftColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.Pe)("DraftColumn_tableId_idx").on(a.tableId)]),A=(0,d.D)("DraftRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DraftRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DraftRelation_fromTableId_idx").on(a.fromTableId)]),B=(0,d.D)("CodeFile",{path:(0,e.Qq)().primaryKey(),root:(0,e.Qq)(),lang:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),mtimeMs:(0,g.x)(),size:(0,f.nd)(),inDegree:(0,f.nd)().default(0).notNull(),outDegree:(0,f.nd)().default(0).notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),C=(0,d.D)("CodeFileEdge",{fromPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),toPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),circular:(0,f.nd)({mode:"boolean"}).default(!1).notNull()},a=>[(0,h.Pe)("CodeFileEdge_circular_idx").on(a.circular),(0,h.Pe)("CodeFileEdge_toPath_idx").on(a.toPath),(0,h.Pe)("CodeFileEdge_fromPath_idx").on(a.fromPath),(0,j.ie)({columns:[a.fromPath,a.toPath],name:"CodeFileEdge_fromPath_toPath_pk"})]),D=(0,d.D)("SyncState",{id:(0,e.Qq)().primaryKey().default("singleton"),version:(0,f.nd)().default(0).notNull(),codeGraphSyncedAt:(0,f.nd)({mode:"timestamp_ms"}),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),E=(0,d.D)("AppSetting",{id:(0,e.Qq)().primaryKey().default("singleton"),editor:(0,e.Qq)().default("auto").notNull(),currentFeatureId:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),F=(0,d.D)("ProjectMeta",{id:(0,e.Qq)().primaryKey().default("singleton"),overview:(0,e.Qq)(),conventions:(0,e.Qq)().default("[]").notNull(),hasFrontend:(0,f.nd)({mode:"boolean"}),classificationRoots:(0,e.Qq)().default("[]").notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),G=(0,d.D)("WorkspaceFlag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),key:(0,e.Qq)().notNull(),enabled:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),config:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("WorkspaceFlag_key_key").on(a.key)]),H=(0,d.D)("PlanContract",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),planId:(0,e.Qq)().notNull(),declaredFiles:(0,e.Qq)().default("[]").notNull(),authorizedExtras:(0,e.Qq)().default("[]").notNull(),active:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("PlanContract_planId_key").on(a.planId),(0,h.Pe)("PlanContract_active_idx").on(a.active)])}};
@@ -1 +1 @@
1
- exports.id=4940,exports.ids=[4940],exports.modules={6716:(a,b,c)=>{"use strict";c.d(b,{AV:()=>J,Ck:()=>H,Dk:()=>F,F2:()=>y,FF:()=>l,K4:()=>w,Lm:()=>O,Nx:()=>s,Q8:()=>I,T_:()=>r,UP:()=>B,VB:()=>E,VO:()=>q,WQ:()=>D,X_:()=>L,Y2:()=>v,_g:()=>C,kO:()=>P,oW:()=>i,p1:()=>M,qh:()=>z});var d=c(16698);c(31421);var e=c(77598),f=c(73024),g=c(48161),h=c(76760);function i(){return process.env.BEACON_HOME||(0,h.join)((0,g.homedir)(),".beacon")}function j(){return(0,h.join)(i(),"workspaces.json")}function k(a){return(0,e.createHash)("sha256").update(a).digest("hex").slice(0,12)}function l(a){let b=(0,h.resolve)(a);return b!==(0,h.resolve)((0,g.homedir)())&&b!==(0,h.parse)(b).root}function m(){return(0,h.join)(i(),"deleted.json")}function n(){try{let a=JSON.parse((0,f.readFileSync)(m(),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function o(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(m(),JSON.stringify(a,null,2))}function p(a){return n().includes(a)}function q(a){let b=n();b.includes(a)||o([...b,a])}function r(a){return(0,h.join)(i(),a)}function s(a){return`file:${(0,h.join)(r(a),"db.sqlite")}`}function t(){try{let a=JSON.parse((0,f.readFileSync)(j(),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function u(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(j(),JSON.stringify(a,null,2))}function v(){return t().sort((a,b)=>b.lastOpenedAt.localeCompare(a.lastOpenedAt))}function w(a){return t().find(b=>b.id===a)??null}function x(a,b,c=new Date().toISOString()){if(!l(a))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${a}`);let d=k(a);if(p(d))throw Error(`beacon: workspace ${d} (${a}) was deleted — run \`beacon\` or /beacon-init to re-add it`);let e=t(),g=e.find(a=>a.id===d),i={id:d,path:a,name:b||g?.name||(0,h.basename)(a),lastOpenedAt:c},j=[i,...e.filter(a=>a.id!==d)];return(0,f.mkdirSync)(r(d),{recursive:!0}),u(j),i}function y(a,b){var c;let d;return c=k(a),(d=n()).includes(c)&&o(d.filter(a=>a!==c)),x(a,b)}function z(a){u(t().filter(b=>b.id!==a)),B()===a&&C(v()[0]?.id??null)}function A(){return(0,h.join)(i(),"active")}function B(){try{return(0,f.readFileSync)(A(),"utf8").trim()||null}catch{return null}}function C(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(A(),a??"")}function D(){let a=B();return a?w(a):null}function E(){let a=M()??B();return a?w(a):null}let F="beacon_ws";function G(a,b){let c=a.headers.get("cookie");if(!c)return null;for(let a of c.split(";")){let c=a.indexOf("=");if(-1!==c&&a.slice(0,c).trim()===b)return decodeURIComponent(a.slice(c+1).trim())}return null}function H(a){let b=a.headers.get("x-beacon-workspace");if(b&&w(b))return b;let c=G(a,F);return c&&w(c)?c:null}let I="x-beacon-workspace-path";async function J(a){let b=a.headers.get("x-beacon-workspace");if(b&&w(b))return b;let c=a.headers.get(I);if(c&&l(c)&&!p(k(c))&&(!b||k(c)===b)){let a=x(c);return await P(a.id),a.id}let d=G(a,F);return d&&w(d)?d:null}let K=new d.AsyncLocalStorage;function L(a,b){return a?K.run(a,b):b()}function M(){return K.getStore()??null}let N=new Set;function O(a){N.delete((0,h.join)(r(a),"db.sqlite"))}async function P(a){let b=r(a),d=(0,h.join)(b,"db.sqlite"),e=(0,f.existsSync)(d);if(e&&N.has(d))return{ok:!0,created:!1,migrated:!1};try{(0,f.mkdirSync)(b,{recursive:!0});let{provisionDb:g}=await Promise.all([c.e(9884),c.e(5871),c.e(5258)]).then(c.bind(c,35258)),h=await g(s(a));return N.add(d),{ok:!0,created:!e,migrated:e&&h.migrated}}catch(a){return{ok:!1,created:!1,migrated:!1,error:a instanceof Error?a.message:String(a)}}}},23318:(a,b,c)=>{let{createProxy:d}=c(78830);a.exports=d("/home/runner/work/beacon/beacon/node_modules/next/dist/client/app-dir/link.js")},44398:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(91986);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var f=c(47613);let g=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},h)=>(0,d.createElement)(f.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c}},45301:(a,b,c)=>{"use strict";c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47613:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/beacon/beacon/node_modules/lucide-react/dist/esm/Icon.mjs\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/beacon/beacon/node_modules/lucide-react/dist/esm/Icon.mjs","default")},63059:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(7904),g=c(5735),h=f._(c(23318));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},78335:()=>{},96487:()=>{}};
1
+ exports.id=4940,exports.ids=[4940],exports.modules={6716:(a,b,c)=>{"use strict";c.d(b,{AV:()=>J,Ck:()=>H,Dk:()=>F,F2:()=>y,FF:()=>l,K4:()=>w,Lm:()=>O,Nx:()=>s,Q8:()=>I,T_:()=>r,UP:()=>B,VB:()=>E,VO:()=>q,WQ:()=>D,X_:()=>L,Y2:()=>v,_g:()=>C,kO:()=>P,oW:()=>i,p1:()=>M,qh:()=>z});var d=c(16698);c(31421);var e=c(77598),f=c(73024),g=c(48161),h=c(76760);function i(){return process.env.BEACON_HOME||(0,h.join)((0,g.homedir)(),".beacon")}function j(){return(0,h.join)(i(),"workspaces.json")}function k(a){return(0,e.createHash)("sha256").update(a).digest("hex").slice(0,12)}function l(a){let b=(0,h.resolve)(a);return b!==(0,h.resolve)((0,g.homedir)())&&b!==(0,h.parse)(b).root}function m(){return(0,h.join)(i(),"deleted.json")}function n(){try{let a=JSON.parse((0,f.readFileSync)(m(),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function o(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(m(),JSON.stringify(a,null,2))}function p(a){return n().includes(a)}function q(a){let b=n();b.includes(a)||o([...b,a])}function r(a){return(0,h.join)(i(),a)}function s(a){return`file:${(0,h.join)(r(a),"db.sqlite")}`}function t(){try{let a=JSON.parse((0,f.readFileSync)(j(),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}}function u(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(j(),JSON.stringify(a,null,2))}function v(){return t().sort((a,b)=>b.lastOpenedAt.localeCompare(a.lastOpenedAt))}function w(a){return t().find(b=>b.id===a)??null}function x(a,b,c=new Date().toISOString()){if(!l(a))throw Error(`beacon: refusing to register a non-repo path as a workspace: ${a}`);let d=k(a);if(p(d))throw Error(`beacon: workspace ${d} (${a}) was deleted — run \`beacon\` or /beacon-init to re-add it`);let e=t(),g=e.find(a=>a.id===d),i={id:d,path:a,name:b||g?.name||(0,h.basename)(a),lastOpenedAt:c},j=[i,...e.filter(a=>a.id!==d)];return(0,f.mkdirSync)(r(d),{recursive:!0}),u(j),i}function y(a,b){var c;let d;return c=k(a),(d=n()).includes(c)&&o(d.filter(a=>a!==c)),x(a,b)}function z(a){u(t().filter(b=>b.id!==a)),B()===a&&C(v()[0]?.id??null)}function A(){return(0,h.join)(i(),"active")}function B(){try{return(0,f.readFileSync)(A(),"utf8").trim()||null}catch{return null}}function C(a){(0,f.mkdirSync)(i(),{recursive:!0}),(0,f.writeFileSync)(A(),a??"")}function D(){let a=B();return a?w(a):null}function E(){let a=M()??B();return a?w(a):null}let F="beacon_ws";function G(a,b){let c=a.headers.get("cookie");if(!c)return null;for(let a of c.split(";")){let c=a.indexOf("=");if(-1!==c&&a.slice(0,c).trim()===b)return decodeURIComponent(a.slice(c+1).trim())}return null}function H(a){let b,c=a.headers.get("x-beacon-workspace");if(c&&w(c))return c;let d=G(a,F);return d&&w(d)?d:1===(b=v()).length?b[0].id:null}let I="x-beacon-workspace-path";async function J(a){let b=a.headers.get("x-beacon-workspace");if(b&&w(b))return b;let c=a.headers.get(I);if(c&&l(c)&&!p(k(c))&&(!b||k(c)===b)){let a=x(c);return await P(a.id),a.id}let d=G(a,F);return d&&w(d)?d:null}let K=new d.AsyncLocalStorage;function L(a,b){return a?K.run(a,b):b()}function M(){return K.getStore()??null}let N=new Set;function O(a){N.delete((0,h.join)(r(a),"db.sqlite"))}async function P(a){let b=r(a),d=(0,h.join)(b,"db.sqlite"),e=(0,f.existsSync)(d);if(e&&N.has(d))return{ok:!0,created:!1,migrated:!1};try{(0,f.mkdirSync)(b,{recursive:!0});let{provisionDb:g}=await Promise.all([c.e(9884),c.e(5871),c.e(5258)]).then(c.bind(c,35258)),h=await g(s(a));return N.add(d),{ok:!0,created:!e,migrated:e&&h.migrated}}catch(a){return{ok:!1,created:!1,migrated:!1,error:a instanceof Error?a.message:String(a)}}}},23318:(a,b,c)=>{let{createProxy:d}=c(78830);a.exports=d("/home/runner/work/beacon/beacon/node_modules/next/dist/client/app-dir/link.js")},44398:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(91986);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var f=c(47613);let g=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},h)=>(0,d.createElement)(f.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c}},45301:(a,b,c)=>{"use strict";c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47613:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/beacon/beacon/node_modules/lucide-react/dist/esm/Icon.mjs\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/beacon/beacon/node_modules/lucide-react/dist/esm/Icon.mjs","default")},63059:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(7904),g=c(5735),h=f._(c(23318));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},78335:()=>{},96487:()=>{}};