trybeacon 0.1.14 → 0.1.16

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 (297) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -8
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +14 -6
  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/bug-flags/[id]/route.js +1 -0
  29. package/.next/server/app/api/bug-flags/[id]/route.js.nft.json +1 -0
  30. package/.next/server/app/api/bug-flags/[id]/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/bug-flags/route.js +1 -0
  32. package/.next/server/app/api/{settings → bug-flags}/route.js.nft.json +1 -1
  33. package/.next/server/app/api/bug-flags/route_client-reference-manifest.js +1 -0
  34. package/.next/server/app/api/code-graph/position/route.js +1 -1
  35. package/.next/server/app/api/code-graph/route.js +1 -1
  36. package/.next/server/app/api/context/feature/route.js +1 -1
  37. package/.next/server/app/api/context/file/route.js +1 -1
  38. package/.next/server/app/api/context/route.js +1 -1
  39. package/.next/server/app/api/db/arrange/route.js +1 -1
  40. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  41. package/.next/server/app/api/db/position/route.js +1 -1
  42. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  43. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  44. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  45. package/.next/server/app/api/draft/approve/route.js +2 -2
  46. package/.next/server/app/api/draft/route.js +2 -2
  47. package/.next/server/app/api/draft/status/route.js +1 -1
  48. package/.next/server/app/api/edges/[id]/route.js +1 -1
  49. package/.next/server/app/api/edges/route.js +1 -1
  50. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  51. package/.next/server/app/api/entities/route.js +1 -1
  52. package/.next/server/app/api/feedback/[id]/route.js +1 -1
  53. package/.next/server/app/api/feedback/[id]/vote/route.js +1 -1
  54. package/.next/server/app/api/feedback/route.js +1 -1
  55. package/.next/server/app/api/ingest/route.js +2 -2
  56. package/.next/server/app/api/init/route.js +2 -2
  57. package/.next/server/app/api/map/describe/route.js +2 -2
  58. package/.next/server/app/api/map/files/route.js +1 -1
  59. package/.next/server/app/api/map/finish/route.js +1 -1
  60. package/.next/server/app/api/map/route.js +1 -1
  61. package/.next/server/app/api/map/start/route.js +1 -1
  62. package/.next/server/app/api/map/touch-active/route.js +1 -1
  63. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  64. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  65. package/.next/server/app/api/nodes/positions/route.js +1 -1
  66. package/.next/server/app/api/nodes/route.js +1 -1
  67. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  68. package/.next/server/app/api/notes/[id]/route.js +1 -1
  69. package/.next/server/app/api/notes/route.js +1 -1
  70. package/.next/server/app/api/open/route.js +1 -1
  71. package/.next/server/app/api/plan/annotations/route.js +3 -3
  72. package/.next/server/app/api/plan/approve/route.js +2 -2
  73. package/.next/server/app/api/plan/history/route.js +1 -1
  74. package/.next/server/app/api/plan/markdown/route.js +1 -1
  75. package/.next/server/app/api/plan/presence/route.js +1 -1
  76. package/.next/server/app/api/plan/route.js +1 -1
  77. package/.next/server/app/api/plan/verdict/route.js +2 -2
  78. package/.next/server/app/api/preferences/route.js +1 -1
  79. package/.next/server/app/api/reset/route.js +1 -1
  80. package/.next/server/app/api/stream/route.js +2 -2
  81. package/.next/server/app/api/version/route.js +1 -1
  82. package/.next/server/app/api/workspace/activate/route.js +1 -1
  83. package/.next/server/app/api/workspace/route.js +1 -1
  84. package/.next/server/app/apple-icon.png/route.js +1 -1
  85. package/.next/server/app/docs/page.js +2 -2
  86. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  87. package/.next/server/app/docs.html +1 -1
  88. package/.next/server/app/docs.rsc +2 -2
  89. package/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  90. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  91. package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  92. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  93. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  94. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  95. package/.next/server/app/feedback/page.js +2 -2
  96. package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
  97. package/.next/server/app/feedback.html +1 -1
  98. package/.next/server/app/feedback.rsc +2 -2
  99. package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
  100. package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
  101. package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
  102. package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
  103. package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
  104. package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
  105. package/.next/server/app/help/page.js +2 -2
  106. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/help.html +1 -1
  108. package/.next/server/app/help.rsc +20 -19
  109. package/.next/server/app/help.segments/_full.segment.rsc +20 -19
  110. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  111. package/.next/server/app/help.segments/_index.segment.rsc +2 -2
  112. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  113. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  114. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  115. package/.next/server/app/icon.svg/route.js +1 -1
  116. package/.next/server/app/index.html +1 -1
  117. package/.next/server/app/index.rsc +3 -3
  118. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  119. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  120. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  121. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  122. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  123. package/.next/server/app/map/page.js +2 -2
  124. package/.next/server/app/map/page.js.nft.json +1 -1
  125. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  126. package/.next/server/app/page.js +2 -2
  127. package/.next/server/app/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/plan/page.js +2 -2
  129. package/.next/server/app/plan/page.js.nft.json +1 -1
  130. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/settings/page.js +2 -2
  132. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  133. package/.next/server/app-paths-manifest.json +9 -8
  134. package/.next/server/chunks/1130.js +1 -1
  135. package/.next/server/chunks/1263.js +1 -0
  136. package/.next/server/chunks/{3968.js → 2574.js} +2 -2
  137. package/.next/server/chunks/2933.js +1 -1
  138. package/.next/server/chunks/9683.js +1 -1
  139. package/.next/server/instrumentation.js +1 -1
  140. package/.next/server/middleware-build-manifest.js +1 -1
  141. package/.next/server/middleware.js +3 -3
  142. package/.next/server/pages/404.html +1 -1
  143. package/.next/server/pages/500.html +1 -1
  144. package/.next/server/server-reference-manifest.js +1 -1
  145. package/.next/server/server-reference-manifest.json +1 -1
  146. package/.next/static/chunks/1202-dfeac8ec49693586.js +1 -0
  147. package/.next/static/chunks/6666-31528aed4743588c.js +1 -0
  148. package/.next/static/chunks/app/_global-error/{page-3b9ad860c9e9f7cb.js → page-0fdd2f2bb2631a50.js} +1 -1
  149. package/.next/static/chunks/app/api/board-annotations/[id]/{route-3b9ad860c9e9f7cb.js → route-0fdd2f2bb2631a50.js} +1 -1
  150. package/.next/static/chunks/app/api/board-annotations/{route-3b9ad860c9e9f7cb.js → route-0fdd2f2bb2631a50.js} +1 -1
  151. package/.next/static/chunks/app/api/{code-graph/position/route-3b9ad860c9e9f7cb.js → bug-flags/[id]/route-0fdd2f2bb2631a50.js} +1 -1
  152. package/.next/static/chunks/app/api/bug-flags/route-0fdd2f2bb2631a50.js +1 -0
  153. package/.next/static/chunks/app/api/code-graph/position/route-0fdd2f2bb2631a50.js +1 -0
  154. package/.next/static/chunks/app/api/code-graph/route-0fdd2f2bb2631a50.js +1 -0
  155. package/.next/static/chunks/app/api/context/feature/route-0fdd2f2bb2631a50.js +1 -0
  156. package/.next/static/chunks/app/api/context/file/route-0fdd2f2bb2631a50.js +1 -0
  157. package/.next/static/chunks/app/api/context/route-0fdd2f2bb2631a50.js +1 -0
  158. package/.next/static/chunks/app/api/db/arrange/route-0fdd2f2bb2631a50.js +1 -0
  159. package/.next/static/chunks/app/api/db/backfill-access/route-0fdd2f2bb2631a50.js +1 -0
  160. package/.next/static/chunks/app/api/db/position/route-0fdd2f2bb2631a50.js +1 -0
  161. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-0fdd2f2bb2631a50.js +1 -0
  162. package/.next/static/chunks/app/api/db/relations/[id]/route-0fdd2f2bb2631a50.js +1 -0
  163. package/.next/static/chunks/app/api/db/tables/[id]/route-0fdd2f2bb2631a50.js +1 -0
  164. package/.next/static/chunks/app/api/draft/approve/route-0fdd2f2bb2631a50.js +1 -0
  165. package/.next/static/chunks/app/api/draft/route-0fdd2f2bb2631a50.js +1 -0
  166. package/.next/static/chunks/app/api/draft/status/route-0fdd2f2bb2631a50.js +1 -0
  167. package/.next/static/chunks/app/api/edges/[id]/route-0fdd2f2bb2631a50.js +1 -0
  168. package/.next/static/chunks/app/api/edges/route-0fdd2f2bb2631a50.js +1 -0
  169. package/.next/static/chunks/app/api/endpoints/[id]/route-0fdd2f2bb2631a50.js +1 -0
  170. package/.next/static/chunks/app/api/entities/route-0fdd2f2bb2631a50.js +1 -0
  171. package/.next/static/chunks/app/api/feedback/[id]/route-0fdd2f2bb2631a50.js +1 -0
  172. package/.next/static/chunks/app/api/feedback/[id]/vote/route-0fdd2f2bb2631a50.js +1 -0
  173. package/.next/static/chunks/app/api/feedback/route-0fdd2f2bb2631a50.js +1 -0
  174. package/.next/static/chunks/app/api/ingest/route-0fdd2f2bb2631a50.js +1 -0
  175. package/.next/static/chunks/app/api/init/route-0fdd2f2bb2631a50.js +1 -0
  176. package/.next/static/chunks/app/api/map/describe/route-0fdd2f2bb2631a50.js +1 -0
  177. package/.next/static/chunks/app/api/map/files/route-0fdd2f2bb2631a50.js +1 -0
  178. package/.next/static/chunks/app/api/map/finish/route-0fdd2f2bb2631a50.js +1 -0
  179. package/.next/static/chunks/app/api/map/route-0fdd2f2bb2631a50.js +1 -0
  180. package/.next/static/chunks/app/api/map/start/route-0fdd2f2bb2631a50.js +1 -0
  181. package/.next/static/chunks/app/api/map/touch-active/route-0fdd2f2bb2631a50.js +1 -0
  182. package/.next/static/chunks/app/api/nodes/[id]/position/route-0fdd2f2bb2631a50.js +1 -0
  183. package/.next/static/chunks/app/api/nodes/[id]/route-0fdd2f2bb2631a50.js +1 -0
  184. package/.next/static/chunks/app/api/nodes/positions/route-0fdd2f2bb2631a50.js +1 -0
  185. package/.next/static/chunks/app/api/nodes/route-0fdd2f2bb2631a50.js +1 -0
  186. package/.next/static/chunks/app/api/nodes/subtasks/route-0fdd2f2bb2631a50.js +1 -0
  187. package/.next/static/chunks/app/api/notes/[id]/route-0fdd2f2bb2631a50.js +1 -0
  188. package/.next/static/chunks/app/api/notes/route-0fdd2f2bb2631a50.js +1 -0
  189. package/.next/static/chunks/app/api/open/route-0fdd2f2bb2631a50.js +1 -0
  190. package/.next/static/chunks/app/api/plan/annotations/route-0fdd2f2bb2631a50.js +1 -0
  191. package/.next/static/chunks/app/api/plan/approve/route-0fdd2f2bb2631a50.js +1 -0
  192. package/.next/static/chunks/app/api/plan/history/route-0fdd2f2bb2631a50.js +1 -0
  193. package/.next/static/chunks/app/api/plan/markdown/route-0fdd2f2bb2631a50.js +1 -0
  194. package/.next/static/chunks/app/api/plan/presence/route-0fdd2f2bb2631a50.js +1 -0
  195. package/.next/static/chunks/app/api/plan/route-0fdd2f2bb2631a50.js +1 -0
  196. package/.next/static/chunks/app/api/plan/verdict/route-0fdd2f2bb2631a50.js +1 -0
  197. package/.next/static/chunks/app/api/preferences/route-0fdd2f2bb2631a50.js +1 -0
  198. package/.next/static/chunks/app/api/reset/route-0fdd2f2bb2631a50.js +1 -0
  199. package/.next/static/chunks/app/api/stream/route-0fdd2f2bb2631a50.js +1 -0
  200. package/.next/static/chunks/app/api/version/route-0fdd2f2bb2631a50.js +1 -0
  201. package/.next/static/chunks/app/api/workspace/activate/route-0fdd2f2bb2631a50.js +1 -0
  202. package/.next/static/chunks/app/api/workspace/route-0fdd2f2bb2631a50.js +1 -0
  203. package/.next/static/chunks/app/map/{page-834f326619f2477b.js → page-5020db02dba43678.js} +1 -1
  204. package/.next/static/chunks/app/page-2c4582b256e877c0.js +1 -0
  205. package/.next/static/chunks/app/plan/{page-86a130ff444297a1.js → page-cd3785902dd95dce.js} +1 -1
  206. package/.next/static/chunks/next/dist/client/components/builtin/app-error-0fdd2f2bb2631a50.js +1 -0
  207. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-0fdd2f2bb2631a50.js +1 -0
  208. package/.next/static/chunks/next/dist/client/components/builtin/not-found-0fdd2f2bb2631a50.js +1 -0
  209. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0fdd2f2bb2631a50.js +1 -0
  210. package/.next/static/css/f0c8ee0772c6d74d.css +1 -0
  211. package/.next/static/{dmwr94-U2a-24WsqmRue9 → fnj-duECSYw_AlTFP7r7a}/_buildManifest.js +1 -1
  212. package/.next/trace +37 -37
  213. package/.next/trace-build +1 -1
  214. package/.next/types/app/api/bug-flags/[id]/route.ts +351 -0
  215. package/.next/types/app/api/{settings → bug-flags}/route.ts +3 -3
  216. package/.next/types/routes.d.ts +3 -2
  217. package/.next/types/validator.ts +18 -9
  218. package/dist/bin/beacon.js +6 -6
  219. package/dist/bin/doctor.js +54 -36
  220. package/dist/bin/hook.js +53 -34
  221. package/dist/bin/mcp.js +63 -45
  222. package/dist/bin/plan.js +57 -35
  223. package/dist/bin/prompt.js +1 -1
  224. package/dist/bin/stop-hook.js +2 -2
  225. package/dist/bin/uninstall.js +54 -36
  226. package/dist/lib/assets.js +27 -22
  227. package/dist/lib/global-install.js +52 -34
  228. package/drizzle/0002_square_firestar.sql +2 -0
  229. package/drizzle/0003_glorious_stick.sql +12 -0
  230. package/drizzle/0004_fair_namora.sql +1 -0
  231. package/drizzle/meta/0002_snapshot.json +1655 -0
  232. package/drizzle/meta/0003_snapshot.json +1737 -0
  233. package/drizzle/meta/0004_snapshot.json +1730 -0
  234. package/drizzle/meta/_journal.json +21 -0
  235. package/package.json +1 -2
  236. package/.next/server/app/api/settings/route.js +0 -1
  237. package/.next/server/app/api/settings/route_client-reference-manifest.js +0 -1
  238. package/.next/server/chunks/8465.js +0 -1
  239. package/.next/static/chunks/3973-c52f930a38c6c787.js +0 -1
  240. package/.next/static/chunks/58-aec6c638db75ae0a.js +0 -1
  241. package/.next/static/chunks/app/api/code-graph/route-3b9ad860c9e9f7cb.js +0 -1
  242. package/.next/static/chunks/app/api/context/feature/route-3b9ad860c9e9f7cb.js +0 -1
  243. package/.next/static/chunks/app/api/context/file/route-3b9ad860c9e9f7cb.js +0 -1
  244. package/.next/static/chunks/app/api/context/route-3b9ad860c9e9f7cb.js +0 -1
  245. package/.next/static/chunks/app/api/db/arrange/route-3b9ad860c9e9f7cb.js +0 -1
  246. package/.next/static/chunks/app/api/db/backfill-access/route-3b9ad860c9e9f7cb.js +0 -1
  247. package/.next/static/chunks/app/api/db/position/route-3b9ad860c9e9f7cb.js +0 -1
  248. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-3b9ad860c9e9f7cb.js +0 -1
  249. package/.next/static/chunks/app/api/db/relations/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  250. package/.next/static/chunks/app/api/db/tables/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  251. package/.next/static/chunks/app/api/draft/approve/route-3b9ad860c9e9f7cb.js +0 -1
  252. package/.next/static/chunks/app/api/draft/route-3b9ad860c9e9f7cb.js +0 -1
  253. package/.next/static/chunks/app/api/draft/status/route-3b9ad860c9e9f7cb.js +0 -1
  254. package/.next/static/chunks/app/api/edges/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  255. package/.next/static/chunks/app/api/edges/route-3b9ad860c9e9f7cb.js +0 -1
  256. package/.next/static/chunks/app/api/endpoints/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  257. package/.next/static/chunks/app/api/entities/route-3b9ad860c9e9f7cb.js +0 -1
  258. package/.next/static/chunks/app/api/feedback/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  259. package/.next/static/chunks/app/api/feedback/[id]/vote/route-3b9ad860c9e9f7cb.js +0 -1
  260. package/.next/static/chunks/app/api/feedback/route-3b9ad860c9e9f7cb.js +0 -1
  261. package/.next/static/chunks/app/api/ingest/route-3b9ad860c9e9f7cb.js +0 -1
  262. package/.next/static/chunks/app/api/init/route-3b9ad860c9e9f7cb.js +0 -1
  263. package/.next/static/chunks/app/api/map/describe/route-3b9ad860c9e9f7cb.js +0 -1
  264. package/.next/static/chunks/app/api/map/files/route-3b9ad860c9e9f7cb.js +0 -1
  265. package/.next/static/chunks/app/api/map/finish/route-3b9ad860c9e9f7cb.js +0 -1
  266. package/.next/static/chunks/app/api/map/route-3b9ad860c9e9f7cb.js +0 -1
  267. package/.next/static/chunks/app/api/map/start/route-3b9ad860c9e9f7cb.js +0 -1
  268. package/.next/static/chunks/app/api/map/touch-active/route-3b9ad860c9e9f7cb.js +0 -1
  269. package/.next/static/chunks/app/api/nodes/[id]/position/route-3b9ad860c9e9f7cb.js +0 -1
  270. package/.next/static/chunks/app/api/nodes/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  271. package/.next/static/chunks/app/api/nodes/positions/route-3b9ad860c9e9f7cb.js +0 -1
  272. package/.next/static/chunks/app/api/nodes/route-3b9ad860c9e9f7cb.js +0 -1
  273. package/.next/static/chunks/app/api/nodes/subtasks/route-3b9ad860c9e9f7cb.js +0 -1
  274. package/.next/static/chunks/app/api/notes/[id]/route-3b9ad860c9e9f7cb.js +0 -1
  275. package/.next/static/chunks/app/api/notes/route-3b9ad860c9e9f7cb.js +0 -1
  276. package/.next/static/chunks/app/api/open/route-3b9ad860c9e9f7cb.js +0 -1
  277. package/.next/static/chunks/app/api/plan/annotations/route-3b9ad860c9e9f7cb.js +0 -1
  278. package/.next/static/chunks/app/api/plan/approve/route-3b9ad860c9e9f7cb.js +0 -1
  279. package/.next/static/chunks/app/api/plan/history/route-3b9ad860c9e9f7cb.js +0 -1
  280. package/.next/static/chunks/app/api/plan/markdown/route-3b9ad860c9e9f7cb.js +0 -1
  281. package/.next/static/chunks/app/api/plan/presence/route-3b9ad860c9e9f7cb.js +0 -1
  282. package/.next/static/chunks/app/api/plan/route-3b9ad860c9e9f7cb.js +0 -1
  283. package/.next/static/chunks/app/api/plan/verdict/route-3b9ad860c9e9f7cb.js +0 -1
  284. package/.next/static/chunks/app/api/preferences/route-3b9ad860c9e9f7cb.js +0 -1
  285. package/.next/static/chunks/app/api/reset/route-3b9ad860c9e9f7cb.js +0 -1
  286. package/.next/static/chunks/app/api/settings/route-3b9ad860c9e9f7cb.js +0 -1
  287. package/.next/static/chunks/app/api/stream/route-3b9ad860c9e9f7cb.js +0 -1
  288. package/.next/static/chunks/app/api/version/route-3b9ad860c9e9f7cb.js +0 -1
  289. package/.next/static/chunks/app/api/workspace/activate/route-3b9ad860c9e9f7cb.js +0 -1
  290. package/.next/static/chunks/app/api/workspace/route-3b9ad860c9e9f7cb.js +0 -1
  291. package/.next/static/chunks/app/page-ccb55081f850db63.js +0 -1
  292. package/.next/static/chunks/next/dist/client/components/builtin/app-error-3b9ad860c9e9f7cb.js +0 -1
  293. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-3b9ad860c9e9f7cb.js +0 -1
  294. package/.next/static/chunks/next/dist/client/components/builtin/not-found-3b9ad860c9e9f7cb.js +0 -1
  295. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3b9ad860c9e9f7cb.js +0 -1
  296. package/.next/static/css/0745ea0e6e3229f6.css +0 -1
  297. /package/.next/static/{dmwr94-U2a-24WsqmRue9 → fnj-duECSYw_AlTFP7r7a}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"434":{"*":{"id":"41616","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"42337","name":"*","chunks":[],"async":false}},"3872":{"*":{"id":"69643","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"70813","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"25623","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"19276","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"86925","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"33161","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"54728","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"59953","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"81166","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"18718","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"95151","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"10549","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"81281","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"88264","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"1237","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"69370","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"67344","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"41164","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/globals.css":{"id":66872,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/ai/main-region.tsx":{"id":52174,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/live-refresh.tsx":{"id":30165,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-context.tsx":{"id":81984,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-drawer.tsx":{"id":1494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-bar.tsx":{"id":434,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-context.tsx":{"id":48484,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/top-nav.tsx":{"id":96848,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/update-banner.tsx":{"id":33082,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":35353,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":63494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/feedback/page.tsx":{"id":90546,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":71265,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/docs/docs.tsx":{"id":73954,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/landing/landing.tsx":{"id":31698,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-ccb55081f850db63.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/context-card.tsx":{"id":81453,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/danger-card.tsx":{"id":71423,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/permission-mode-card.tsx":{"id":67787,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/@base-ui/react/esm/button/Button.js":{"id":6539,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/db-map-client.tsx":{"id":26856,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/files-map-client.tsx":{"id":15373,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/map-client.tsx":{"id":3872,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-workspace.tsx":{"id":10396,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/wenzorithelly/Desktop/beacon/":[],"/Users/wenzorithelly/Desktop/beacon/app/layout":[{"inlined":false,"path":"static/css/0745ea0e6e3229f6.css"},{"inlined":false,"path":"static/css/e02ab5db9ff2dca2.css"}],"/Users/wenzorithelly/Desktop/beacon/app/page":[{"inlined":false,"path":"static/css/e63457bec0b3ee27.css"}],"/Users/wenzorithelly/Desktop/beacon/app/settings/page":[]},"rscModuleMapping":{"434":{"*":{"id":"81974","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"30818","name":"*","chunks":[],"async":false}},"3872":{"*":{"id":"56030","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"2739","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"478","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"42696","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"7239","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"60867","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"67878","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"17017","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"48136","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"7572","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"74069","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"47613","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"44919","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"42590","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"13255","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"71412","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"64549","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"77946","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"23318","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"434":{"*":{"id":"41616","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"42337","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"70813","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"25623","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"19276","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"86925","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"33161","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"54728","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"59953","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"81166","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"18718","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"95151","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"10549","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"81281","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"88264","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"1237","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"69370","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87187":{"*":{"id":"52921","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"67344","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"41164","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/globals.css":{"id":66872,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/ai/main-region.tsx":{"id":52174,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/live-refresh.tsx":{"id":30165,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-context.tsx":{"id":81984,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/notes/notes-drawer.tsx":{"id":1494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-bar.tsx":{"id":434,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-context.tsx":{"id":48484,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/top-nav.tsx":{"id":96848,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/update-banner.tsx":{"id":33082,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist\",\"arguments\":[{\"variable\":\"--font-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistSans\"}":{"id":35353,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Geist_Mono\",\"arguments\":[{\"variable\":\"--font-geist-mono\",\"subsets\":[\"latin\"]}],\"variableName\":\"geistMono\"}":{"id":63494,"name":"*","chunks":["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-407808fee210eca2.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","7886","static/chunks/7886-46eaf3a9533310f7.js","7177","static/chunks/app/layout-d4b764b7fd4ec5c6.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/app/feedback/page.tsx":{"id":90546,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":71265,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/next/dist/esm/client/app-dir/link.js":{"id":98500,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/docs/docs.tsx":{"id":73954,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/landing/landing.tsx":{"id":31698,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","8974","static/chunks/app/page-2c4582b256e877c0.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/context-card.tsx":{"id":81453,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/danger-card.tsx":{"id":71423,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/permission-mode-card.tsx":{"id":67787,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/node_modules/@base-ui/react/esm/button/Button.js":{"id":6539,"name":"*","chunks":["8500","static/chunks/8500-f62a38ff68ab7f42.js","4294","static/chunks/4294-0e5034f9c5643c3f.js","766","static/chunks/766-242213d211df0afd.js","4662","static/chunks/app/settings/page-36505744af5d38d8.js"],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/plan/plan-workspace.tsx":{"id":10396,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/db-map-client.tsx":{"id":26856,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/files-map-client.tsx":{"id":15373,"name":"*","chunks":[],"async":false},"/Users/wenzorithelly/Desktop/beacon/components/graph/map-client.tsx":{"id":87187,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/wenzorithelly/Desktop/beacon/":[],"/Users/wenzorithelly/Desktop/beacon/app/layout":[{"inlined":false,"path":"static/css/f0c8ee0772c6d74d.css"},{"inlined":false,"path":"static/css/e02ab5db9ff2dca2.css"}],"/Users/wenzorithelly/Desktop/beacon/app/page":[{"inlined":false,"path":"static/css/e63457bec0b3ee27.css"}],"/Users/wenzorithelly/Desktop/beacon/app/settings/page":[]},"rscModuleMapping":{"434":{"*":{"id":"81974","name":"*","chunks":[],"async":false}},"1494":{"*":{"id":"30818","name":"*","chunks":[],"async":false}},"6539":{"*":{"id":"2739","name":"*","chunks":[],"async":false}},"10396":{"*":{"id":"478","name":"*","chunks":[],"async":false}},"15373":{"*":{"id":"42696","name":"*","chunks":[],"async":false}},"26856":{"*":{"id":"7239","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30165":{"*":{"id":"60867","name":"*","chunks":[],"async":false}},"31698":{"*":{"id":"67878","name":"*","chunks":[],"async":false}},"33082":{"*":{"id":"17017","name":"*","chunks":[],"async":false}},"48484":{"*":{"id":"48136","name":"*","chunks":[],"async":false}},"52174":{"*":{"id":"7572","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67787":{"*":{"id":"74069","name":"*","chunks":[],"async":false}},"71265":{"*":{"id":"47613","name":"*","chunks":[],"async":false}},"71423":{"*":{"id":"44919","name":"*","chunks":[],"async":false}},"73954":{"*":{"id":"42590","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"81453":{"*":{"id":"13255","name":"*","chunks":[],"async":false}},"81984":{"*":{"id":"71412","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87187":{"*":{"id":"56030","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90546":{"*":{"id":"64549","name":"*","chunks":[],"async":false}},"96848":{"*":{"id":"77946","name":"*","chunks":[],"async":false}},"98500":{"*":{"id":"23318","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -9,8 +9,10 @@
9
9
  "/api/nodes/subtasks/route": "app/api/nodes/subtasks/route.js",
10
10
  "/apple-icon.png/route": "app/apple-icon.png/route.js",
11
11
  "/icon.svg/route": "app/icon.svg/route.js",
12
- "/api/board-annotations/[id]/route": "app/api/board-annotations/[id]/route.js",
13
12
  "/api/board-annotations/route": "app/api/board-annotations/route.js",
13
+ "/api/board-annotations/[id]/route": "app/api/board-annotations/[id]/route.js",
14
+ "/api/bug-flags/[id]/route": "app/api/bug-flags/[id]/route.js",
15
+ "/api/bug-flags/route": "app/api/bug-flags/route.js",
14
16
  "/api/code-graph/position/route": "app/api/code-graph/position/route.js",
15
17
  "/api/context/route": "app/api/context/route.js",
16
18
  "/api/db/arrange/route": "app/api/db/arrange/route.js",
@@ -20,18 +22,18 @@
20
22
  "/api/db/relations/[id]/route": "app/api/db/relations/[id]/route.js",
21
23
  "/api/db/tables/[id]/route": "app/api/db/tables/[id]/route.js",
22
24
  "/api/draft/approve/route": "app/api/draft/approve/route.js",
23
- "/api/draft/route": "app/api/draft/route.js",
24
25
  "/api/draft/status/route": "app/api/draft/status/route.js",
26
+ "/api/draft/route": "app/api/draft/route.js",
25
27
  "/api/edges/[id]/route": "app/api/edges/[id]/route.js",
26
28
  "/api/edges/route": "app/api/edges/route.js",
27
29
  "/api/endpoints/[id]/route": "app/api/endpoints/[id]/route.js",
28
30
  "/api/feedback/[id]/route": "app/api/feedback/[id]/route.js",
29
31
  "/api/entities/route": "app/api/entities/route.js",
30
- "/api/feedback/route": "app/api/feedback/route.js",
31
32
  "/api/ingest/route": "app/api/ingest/route.js",
32
- "/api/map/describe/route": "app/api/map/describe/route.js",
33
+ "/api/feedback/route": "app/api/feedback/route.js",
33
34
  "/api/map/files/route": "app/api/map/files/route.js",
34
35
  "/api/map/finish/route": "app/api/map/finish/route.js",
36
+ "/api/map/describe/route": "app/api/map/describe/route.js",
35
37
  "/api/map/route": "app/api/map/route.js",
36
38
  "/api/map/start/route": "app/api/map/start/route.js",
37
39
  "/api/map/touch-active/route": "app/api/map/touch-active/route.js",
@@ -50,10 +52,9 @@
50
52
  "/api/plan/annotations/route": "app/api/plan/annotations/route.js",
51
53
  "/api/preferences/route": "app/api/preferences/route.js",
52
54
  "/api/reset/route": "app/api/reset/route.js",
53
- "/api/settings/route": "app/api/settings/route.js",
55
+ "/api/plan/route": "app/api/plan/route.js",
54
56
  "/api/stream/route": "app/api/stream/route.js",
55
57
  "/api/version/route": "app/api/version/route.js",
56
- "/api/plan/route": "app/api/plan/route.js",
57
58
  "/api/workspace/activate/route": "app/api/workspace/activate/route.js",
58
59
  "/api/workspace/route": "app/api/workspace/route.js",
59
60
  "/feedback/page": "app/feedback/page.js",
@@ -61,6 +62,6 @@
61
62
  "/docs/page": "app/docs/page.js",
62
63
  "/page": "app/page.js",
63
64
  "/settings/page": "app/settings/page.js",
64
- "/map/page": "app/map/page.js",
65
- "/plan/page": "app/plan/page.js"
65
+ "/plan/page": "app/plan/page.js",
66
+ "/map/page": "app/map/page.js"
66
67
  }
@@ -1 +1 @@
1
- "use strict";exports.id=1130,exports.ids=[1130],exports.modules={13560:(a,b,c)=>{c.d(b,{$Y:()=>h,gY:()=>g,hj:()=>j,tI:()=>i});var d=c(44046);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let g=d.Ik({id:d.Yj().trim().min(1).max(64).optional(),view:e,title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),h=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),status:f.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()}),i=d.Ik({x:d.ai(),y:d.ai()}),j=d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},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)}}},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},38356:(a,b,c)=>{c.d(b,{AG:()=>g,Ey:()=>h,Kn:()=>e,oA:()=>f});var d=c(29833);function e(a){let b=a.map(a=>{let b=[],c=a.cluster??a.category??a.domain??null;return c&&c.trim()||b.push("category"),null==a.priority&&b.push("priority"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===b.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand. Missing:\n"+b.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low). Set BOTH on EVERY feature; don't rely on defaults."}function f(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.`}let c=(0,d.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 g(a,b){let c=b.map(a=>({id:a.id,title:a.title})),e=a.map(a=>{let e=(0,d.mk)(a.title??"",c);return e.best?{title:a.title,hit:b.find(a=>a.id===e.best.id)}:null}).filter(a=>null!==a);return e.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+e.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 h(a,b){let c=(a??"").trim();if(!c)return null;let e=(0,d.mk)(c,b);if(e.best)return null;let f=e.candidates.length?` Did you mean: ${e.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.`}},45301:(a,b,c)=>{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))}},70299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AS:()=>C,Nh:()=>w,Ol:()=>E,P_:()=>x,Pq:()=>y,hL:()=>D,nV:()=>u,y2:()=>z});var e=c(44046),f=c(34216),g=c(40377),h=c(56727),i=c(30046),j=c(19734),k=c(29833),l=c(38356),m=c(71584),n=c(90497),o=c(90435),p=c(89908),q=c(45301),r=c(76223),s=a([h,j,p,r]);async function t(a){await (0,r.Z)({currentFeatureId:a})}async function u(){let a=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{asc:b})=>b(a.createdAt)});return{fronts:a.filter(a=>!a.parentId).map(b=>({id:b.id,title:b.title,status:b.status,tasks:a.filter(a=>a.parentId===b.id).map(a=>({id:a.id,title:a.title,status:a.status,workingOn:"IN_PROGRESS"===a.status}))}))}}async function v(a,b){await h.db.update(i.node).set({status:b}).where((0,f.eq)(i.node.id,a)),await w(a),await (0,j.Bx)()}[h,j,p,r]=s.then?(await s)():s;let F=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),G=new Set(["IN_PROGRESS","BLOCKED"]),H=new Set(["CANCELLED","DEPRIORITIZED"]);async function w(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||H.has(e.status))return;let g=(d=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>F.has(a))?"DONE":d.some(a=>G.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===g)return;await h.db.update(i.node).set({status:g}).where((0,f.eq)(i.node.id,e.id)),c=e.id}}async function x(){let a=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,source:!0,x:!0,y:!0}})).filter(a=>"DRAFT"!==a.source);if(a.length<2)return;let b=a.map(a=>a.id),c=await h.db.query.edge.findMany({where:(a,{and:c,eq:d})=>c(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,b),(0,f.RV)(a.toId,b)),columns:{fromId:!0,toId:!0}}),d=(0,o.cA)(b,c);if((0,o.wU)()===d)return;let e=(0,n.u)(a.map(a=>({id:a.id,parentId:a.parentId})),c),g=[];for(let b of a){let a=e.get(b.id);a&&(Math.round(a.x)!==Math.round(b.x)||Math.round(a.y)!==Math.round(b.y))&&g.push(h.db.update(i.node).set({x:a.x,y:a.y}).where((0,f.eq)(i.node.id,b.id)))}await Promise.all(g),(0,o.hd)(d)}async function y(a){let b=a.title.trim();if(!b)throw Error("title required");let c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let b=c.find(b=>b.id===a.id);if(b)return await v(b.id,"IN_PROGRESS"),await t(b.id),{action:"flagged",id:b.id,title:b.title,via:"id"}}let{best:d,candidates:e}=(0,k.mk)(b,c.map(a=>({id:a.id,title:a.title})));if(d)return await v(d.id,"IN_PROGRESS"),await t(d.id),{action:"flagged",id:d.id,title:d.title,via:"match",score:d.score};if(e.length)return{action:"ambiguous",candidates:e};let f=c.filter(a=>!a.parentId),g=a.front?.trim()||"",n=g?(0,l.Ey)(g,f.map(a=>({id:a.id,title:a.title}))):null;if(n)return{action:"rejected",message:n};let o=null,p=null,q=null;if(g){let a=(0,k.mk)(g,f.map(a=>({id:a.id,title:a.title}))).best;o=a.id,p=a.title,q=c.find(b=>b.id===a.id)?.cluster??null}let r=(a.cluster?.trim()||q)??null,s=(0,l.oA)({title:b,category:r,existing:c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status}))});if(s)return{action:"rejected",message:s};let u=o?c.filter(a=>a.parentId===o).length:f.length,y=(0,m.B)(c.map(a=>({x:a.x,y:a.y})),{x:o?f.find(a=>a.id===o)?.x??0:300*u,y:o?160+110*u:0}),[z]=await h.db.insert(i.node).values({view:"ROADMAP",title:b,plain:a.detail??null,cluster:r,status:"IN_PROGRESS",source:"SESSION",parentId:o,x:y.x,y:y.y}).returning();return await w(z.id),await x(),await (0,j.Bx)(),await t(z.id),{action:"created",id:z.id,title:b,front:p}}async function z(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let c=b.find(b=>b.id===a.id);if(c)return await v(c.id,"DONE"),{ok:!0,id:c.id}}if(!a.title)return{ok:!1};let{best:c,candidates:d}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));return c?(await v(c.id,"DONE"),{ok:!0,id:c.id}):{ok:!1,candidates:d.length?d:void 0}}function A(a){let b=a.trim(),c=(0,q.jv)();return b.startsWith(c)&&(b=b.slice(c.length)),b.replace(/^[./]+/,"").trim()}let I=new Set(["KEEP","REBUILD","REPLACE","DROP"]),J=e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional()});async function B(a){let b=e.YO(J).parse(a),c=new Map;for(let a of b)c.set(a.title.toLowerCase(),a);let d=Array.from(c.values());if(!d.length)return 0;let g=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ARCHITECTURE")}),j=new Map(g.map(a=>[a.title.toLowerCase(),a])),k=new Map(g.map(a=>[a.title.toLowerCase(),a.id])),l=new Map,m=new Map;for(let a of g){let b=(a.cluster??"").trim()||"—";l.has(b)||l.set(b,a.x),m.set(b,Math.max(m.get(b)??-150,a.y))}let n=g.length?Math.max(...g.map(a=>a.x))+320:0;for(let a of d){let b=a.title.toLowerCase(),c=a.status&&I.has(a.status)?a.status:"KEEP",d=j.get(b);if(d)await h.db.update(i.node).set({cluster:a.domain,role:a.role??d.role,plain:a.plain??d.plain,status:c}).where((0,f.eq)(i.node.id,d.id)),a.files?.length&&(await h.db.delete(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)),await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:d.id,path:a}))));else{let d=a.domain.trim()||"—",e=l.get(d);void 0===e&&(e=n,n+=320,l.set(d,e));let f=(m.get(d)??-150)+150;m.set(d,f);let[g]=await h.db.insert(i.node).values({view:"ARCHITECTURE",source:"MANUAL",cluster:a.domain,title:a.title,role:a.role??null,plain:a.plain??null,status:c,x:e,y:f}).returning();a.files?.length&&await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:g.id,path:a}))),k.set(b,g.id)}}for(let a of d){let b=k.get(a.title.toLowerCase());if(b)for(let c of a.depends??[]){let a=k.get(c.trim().toLowerCase());a&&a!==b&&(await h.db.query.edge.findFirst({where:(c,{and:d,eq:e})=>d(e(c.fromId,b),e(c.toId,a),e(c.kind,"DEPENDS"))})||await h.db.insert(i.edge).values({fromId:b,toId:a,kind:"DEPENDS"}).catch(()=>{}))}}return d.length}async function C(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),c=a.id?b.find(b=>b.id===a.id):void 0;if(!c&&a.title){let{best:d,candidates:e}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));if(d)c=b.find(a=>a.id===d.id);else if(e.length)return{ok:!1,candidates:e}}if(!c)return{ok:!1};if(await h.db.update(i.node).set({plain:a.description,status:"DONE"}).where((0,f.eq)(i.node.id,c.id)),await w(c.id),a.files?.length)for(let b of Array.from(new Set(a.files.map(A).filter(Boolean))))await h.db.insert(i.nodeFile).values({nodeId:c.id,path:b}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});return await h.db.update(i.appSetting).set({currentFeatureId:null}).where((0,f.eq)(i.appSetting.currentFeatureId,c.id)),a.architecture?.length&&await B(a.architecture),await (0,j.Bx)(),{ok:!0,id:c.id}}async function D(a){let b=Array.from(new Set((a.files??[]).map(A).filter(Boolean))),c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),d=a.id?c.find(b=>b.id===a.id):void 0;if(!d&&a.title){let{best:b,candidates:e}=(0,k.mk)(a.title,c.map(a=>({id:a.id,title:a.title})));if(b)d=c.find(a=>a.id===b.id);else if(e.length)return{ok:!1,candidates:e}}if(!d)return{ok:!1};for(let a of b)await h.db.insert(i.nodeFile).values({nodeId:d.id,path:a}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});await (0,j.Bx)();let e=(await h.db.select({n:(0,g.U9)()}).from(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)))[0].n;return{ok:!0,id:d.id,count:e}}async function E(a){let b,c=a.items.filter(a=>a.title.trim());if(!c.length)return{ok:!1,reason:"no_items"};if(a.parentId)b=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId)});else if(a.parentTitle&&a.parentTitle.trim()){let c=await h.db.query.node.findMany({where:(a,{isNull:b})=>b(a.parentId),columns:{id:!0,title:!0,cluster:!0,status:!0}}),{best:d,candidates:e}=(0,k.mk)(a.parentTitle.trim(),c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status})));if(d)b=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,d.id)});else if(e.length)return{ok:!1,reason:"ambiguous",candidates:e}}if(!b)return{ok:!1,reason:"parent_not_found"};let d=b,e=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,d.id),columns:{id:!0,title:!0}}),f=c.filter(a=>(0,k.mk)(a.title.trim(),e).best);if(f.length)return{ok:!1,reason:"duplicate",message:`⛔ These sub-tasks already exist under "${d.title}": ${f.map(a=>`"${a.title.trim()}"`).join(", ")}. Drop the duplicates — only add genuinely new sub-tasks.`};let g=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,d.view),columns:{x:!0,y:!0}})).map(a=>({x:a.x,y:a.y})),i=[];for(let a=0;a<c.length;a++){let b=c[a],e=(0,m.B)(g,{x:d.x+240*a,y:d.y+200});g.push(e);let f=await (0,p.RM)({view:d.view,title:b.title.trim(),plain:b.plain??null,cluster:d.cluster??null,parentId:d.id,x:e.x,y:e.y});i.push({id:f.id,title:f.title})}return i.length&&await w(i[0].id),await (0,j.Bx)(),{ok:!0,parent:{id:d.id,title:d.title},created:i}}d()}catch(a){d(a)}})},71584:(a,b,c)=>{c.d(b,{B:()=>d});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}},76223:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,t:()=>h});var e=c(56727),f=c(30046),g=a([e]);async function h(a=e.db){let[b]=await a.insert(f.appSetting).values({id:"singleton"}).onConflictDoUpdate({target:f.appSetting.id,set:{id:"singleton"}}).returning();return b}async function i(a,b=e.db){let[c]=await b.insert(f.appSetting).values({id:"singleton",...a}).onConflictDoUpdate({target:f.appSetting.id,set:a}).returning();return c}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>n,B2:()=>q,CB:()=>r,OK:()=>m,Qd:()=>l,RM:()=>k,jO:()=>o,k5:()=>p});var e=c(34216),f=c(56727),g=c(30046),h=c(70299),i=c(13560),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({...b.id?{id:b.id}:{},view:b.view,title:b.title,cluster:b.cluster??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a){let b=i.hj.parse(a);if(b.fromId===b.toId)throw Error("Self-edge not allowed");let c=b.kind??"DEPENDS",d=await f.db.query.edge.findFirst({where:(a,{and:d,eq:e})=>d(e(a.fromId,b.fromId),e(a.toId,b.toId),e(a.kind,c))});if(d)return d;let[e]=await f.db.insert(g.edge).values({fromId:b.fromId,toId:b.toId,kind:c,label:b.label??null,sourceHandle:b.sourceHandle??null,targetHandle:b.targetHandle??null}).returning();return e}async function m(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}async function o(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.node).set(d).where((0,e.eq)(g.node.id,a)).returning();return h}async function p(a){return await Promise.all(a.map(a=>{let b=i.tI.parse({x:a.x,y:a.y});return f.db.update(g.node).set(b).where((0,e.eq)(g.node.id,a.id))})),a.length}async function q(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.dbTable).set(d).where((0,e.eq)(g.dbTable.id,a)).returning();return h}async function r(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.endpoint).set(d).where((0,e.eq)(g.endpoint.id,a)).returning();return h}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},90435:(a,b,c)=>{c.d(b,{cA:()=>h,hd:()=>k,wU:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(a,b){let c=[...a].sort().join(","),d=b.map(a=>`${a.fromId}>${a.toId}`).sort().join(",");return`force-2|${a.length}|${c}|${d}`}function i(){return(0,e.join)((0,f.KS)(),"roadmap-layout-sig.json")}function j(){try{return JSON.parse((0,d.readFileSync)(i(),"utf8")).sig??null}catch{return null}}function k(a){(0,g.q)(i(),{sig:a})}},90497:(a,b,c)=>{c.d(b,{u:()=>i});var d=c(61661),e=c(52648),f=c(61639),g=c(62088),h=c(19125);function i(a,b,c={}){let j,k=c.linkDistance??210,l=c.charge??-450,m=c.collideRadius??132,n=c.ticks??500,o=[...a].sort((a,b)=>a.id<b.id?-1:+(a.id>b.id)),p=new Set(o.map(a=>a.id)),q=o.map(a=>({id:a.id})),r=[];for(let a of b)a.fromId!==a.toId&&p.has(a.fromId)&&p.has(a.toId)&&r.push({source:a.fromId,target:a.toId});for(let a of o)a.parentId&&p.has(a.parentId)&&r.push({source:a.id,target:a.parentId});let s=(0,d.A)(q).randomSource((j=0x9e3779b9,()=>{let a=j=j+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000})).force("link",(0,e.A)(r).id(a=>a.id).distance(k).strength(.6)).force("charge",(0,f.A)().strength(l).distanceMax(1200)).force("collide",(0,g.A)().radius(m).strength(1)).force("center",(0,h.A)(0,0).strength(.08)).stop();for(let a=0;a<n;a++)s.tick();let t=new Map;for(let a of q)t.set(a.id,{x:Math.round(a.x??0),y:Math.round(a.y??0)});return t}}};
1
+ "use strict";exports.id=1130,exports.ids=[1130],exports.modules={13560:(a,b,c)=>{c.d(b,{$Y:()=>j,Kq:()=>g,gY:()=>i,hj:()=>l,tI:()=>k});var d=c(44046);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["FEATURE","BUG"]),g=d.k5(["user","agent"]),h=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let i=d.Ik({id:d.Yj().trim().min(1).max(64).optional(),view:e,kind:f.optional(),title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:h.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),j=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),kind:f.optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),status:h.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()}),k=d.Ik({x:d.ai(),y:d.ai()}),l=d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},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)}}},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},38356:(a,b,c)=>{c.d(b,{AG:()=>g,Ey:()=>h,Kn:()=>e,oA:()=>f});var d=c(29833);function e(a){let b=a.map(a=>{let b=[],c=a.cluster??a.category??a.domain??null;return c&&c.trim()||b.push("category"),null==a.priority&&b.push("priority"),b.length?` • "${a.title?.trim()||"(untitled)"}" — missing ${b.join(" + ")}`:null}).filter(a=>null!==a);return 0===b.length?null:"⛔ Every roadmap feature needs a category AND a priority — they drive grouping and ordering on the board, and the user shouldn't have to add them by hand. Missing:\n"+b.join("\n")+"\n\nRe-present with each feature carrying its category as `category` (or `cluster` — both work; e.g. AUTH, SEARCH, DATA, INTEL, BILLING …) and `priority` (0 = P0 critical, 1 = P1 high, 2 = P2 medium, 3 = P3 low). Set BOTH on EVERY feature; don't rely on defaults."}function f(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.`}let c=(0,d.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 g(a,b){let c=b.map(a=>({id:a.id,title:a.title})),e=a.map(a=>{let e=(0,d.mk)(a.title??"",c);return e.best?{title:a.title,hit:b.find(a=>a.id===e.best.id)}:null}).filter(a=>null!==a);return e.length?"⛔ These proposed features already exist on the roadmap — reuse them instead of creating duplicates:\n"+e.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 h(a,b){let c=(a??"").trim();if(!c)return null;let e=(0,d.mk)(c,b);if(e.best)return null;let f=e.candidates.length?` Did you mean: ${e.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.`}},45301:(a,b,c)=>{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))}},70299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AS:()=>D,N5:()=>E,Nh:()=>w,Ol:()=>G,P_:()=>y,Pq:()=>z,hL:()=>F,nV:()=>u,y2:()=>A});var e=c(44046),f=c(34216),g=c(40377),h=c(56727),i=c(30046),j=c(19734),k=c(29833),l=c(38356),m=c(71584),n=c(90497),o=c(90435),p=c(89908),q=c(45301),r=c(76223),s=a([h,j,p,r]);async function t(a){await (0,r.Z)({currentFeatureId:a})}async function u(){let a=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{asc:b})=>b(a.createdAt)});return{fronts:a.filter(a=>!a.parentId).map(b=>({id:b.id,title:b.title,status:b.status,tasks:a.filter(a=>a.parentId===b.id).map(a=>({id:a.id,title:a.title,status:a.status,workingOn:"IN_PROGRESS"===a.status}))}))}}async function v(a,b){await h.db.update(i.node).set({status:b}).where((0,f.eq)(i.node.id,a)),await w(a),await (0,j.Bx)()}[h,j,p,r]=s.then?(await s)():s;let H=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),I=new Set(["IN_PROGRESS","BLOCKED"]),J=new Set(["CANCELLED","DEPRIORITIZED"]);async function w(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||J.has(e.status))return;let g=(d=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>H.has(a))?"DONE":d.some(a=>I.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===g)return;await h.db.update(i.node).set({status:g}).where((0,f.eq)(i.node.id,e.id)),c=e.id}}let K=new Set(["PENDING","IN_PROGRESS"]);async function x(a){let b=[],c=[],d=new Set([a]),e=[a];for(;e.length;){let a=await h.db.query.node.findMany({where:(a,{and:b,eq:c,inArray:d})=>b(d(a.parentId,e),c(a.view,"ROADMAP")),columns:{id:!0,title:!0,status:!0}});for(let f of(e=[],a))d.has(f.id)||(d.add(f.id),e.push(f.id),K.has(f.status)?b.push(f.id):"BLOCKED"===f.status&&c.push(f))}return b.length&&await h.db.update(i.node).set({status:"DONE"}).where((0,f.RV)(i.node.id,b)),{completed:b.length,blocked:c}}async function y(){let a=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,source:!0,x:!0,y:!0}})).filter(a=>"DRAFT"!==a.source);if(a.length<2)return;let b=a.map(a=>a.id),c=await h.db.query.edge.findMany({where:(a,{and:c,eq:d})=>c(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,b),(0,f.RV)(a.toId,b)),columns:{fromId:!0,toId:!0}}),d=(0,o.cA)(b,c);if((0,o.wU)()===d)return;let e=(0,n.u)(a.map(a=>({id:a.id,parentId:a.parentId})),c),g=[];for(let b of a){let a=e.get(b.id);a&&(Math.round(a.x)!==Math.round(b.x)||Math.round(a.y)!==Math.round(b.y))&&g.push(h.db.update(i.node).set({x:a.x,y:a.y}).where((0,f.eq)(i.node.id,b.id)))}await Promise.all(g),(0,o.hd)(d)}async function z(a){let b=a.title.trim();if(!b)throw Error("title required");let c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")});if(a.id){let b=c.find(b=>b.id===a.id);if(b)return await v(b.id,"IN_PROGRESS"),await t(b.id),{action:"flagged",id:b.id,title:b.title,via:"id"}}let{best:d,candidates:e}=(0,k.mk)(b,c.map(a=>({id:a.id,title:a.title})));if(d)return await v(d.id,"IN_PROGRESS"),await t(d.id),{action:"flagged",id:d.id,title:d.title,via:"match",score:d.score};if(e.length)return{action:"ambiguous",candidates:e};let f=c.filter(a=>!a.parentId),g=a.front?.trim()||"",n=g?(0,l.Ey)(g,f.map(a=>({id:a.id,title:a.title}))):null;if(n)return{action:"rejected",message:n};let o=null,p=null,q=null;if(g){let a=(0,k.mk)(g,f.map(a=>({id:a.id,title:a.title}))).best;o=a.id,p=a.title,q=c.find(b=>b.id===a.id)?.cluster??null}let r=(a.cluster?.trim()||q)??null,s=(0,l.oA)({title:b,category:r,existing:c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status}))});if(s)return{action:"rejected",message:s};let u=o?c.filter(a=>a.parentId===o).length:f.length,x=(0,m.B)(c.map(a=>({x:a.x,y:a.y})),{x:o?f.find(a=>a.id===o)?.x??0:300*u,y:o?160+110*u:0}),[z]=await h.db.insert(i.node).values({view:"ROADMAP",title:b,plain:a.detail??null,cluster:r,status:"IN_PROGRESS",source:"SESSION",parentId:o,x:x.x,y:x.y}).returning();return await w(z.id),await y(),await (0,j.Bx)(),await t(z.id),{action:"created",id:z.id,title:b,front:p}}async function A(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),c=async a=>{let b=await x(a);return await v(a,"DONE"),{ok:!0,id:a,subtasksCompleted:b.completed||void 0,subtasksBlocked:b.blocked.length?b.blocked:void 0}};if(a.id){let d=b.find(b=>b.id===a.id);if(d)return c(d.id)}if(!a.title)return{ok:!1};let{best:d,candidates:e}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));return d?c(d.id):{ok:!1,candidates:e.length?e:void 0}}function B(a){let b=a.trim(),c=(0,q.jv)();return b.startsWith(c)&&(b=b.slice(c.length)),b.replace(/^[./]+/,"").trim()}let L=new Set(["KEEP","REBUILD","REPLACE","DROP"]),M=e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional(),bugs:e.YO(e.Ik({note:e.Yj().trim().min(1).max(2e3)})).optional()});async function C(a){let b=e.YO(M).parse(a),c=new Map;for(let a of b)c.set(a.title.toLowerCase(),a);let d=Array.from(c.values());if(!d.length)return 0;let g=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ARCHITECTURE")}),j=new Map(g.map(a=>[a.title.toLowerCase(),a])),k=new Map(g.map(a=>[a.title.toLowerCase(),a.id])),l=new Map,m=new Map;for(let a of g){let b=(a.cluster??"").trim()||"—";l.has(b)||l.set(b,a.x),m.set(b,Math.max(m.get(b)??-150,a.y))}let n=g.length?Math.max(...g.map(a=>a.x))+320:0;for(let a of d){let b=a.title.toLowerCase(),c=a.status&&L.has(a.status)?a.status:"KEEP",d=j.get(b);if(d)await h.db.update(i.node).set({cluster:a.domain,role:a.role??d.role,plain:a.plain??d.plain,status:c}).where((0,f.eq)(i.node.id,d.id)),a.files?.length&&(await h.db.delete(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)),await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:d.id,path:a}))));else{let d=a.domain.trim()||"—",e=l.get(d);void 0===e&&(e=n,n+=320,l.set(d,e));let f=(m.get(d)??-150)+150;m.set(d,f);let[g]=await h.db.insert(i.node).values({view:"ARCHITECTURE",source:"MANUAL",cluster:a.domain,title:a.title,role:a.role??null,plain:a.plain??null,status:c,x:e,y:f}).returning();a.files?.length&&await h.db.insert(i.nodeFile).values(Array.from(new Set(a.files)).map(a=>({nodeId:g.id,path:a}))),k.set(b,g.id)}}for(let a of d){let b=k.get(a.title.toLowerCase());if(b)for(let c of a.depends??[]){let a=k.get(c.trim().toLowerCase());a&&a!==b&&(await h.db.query.edge.findFirst({where:(c,{and:d,eq:e})=>d(e(c.fromId,b),e(c.toId,a),e(c.kind,"DEPENDS"))})||await h.db.insert(i.edge).values({fromId:b,toId:a,kind:"DEPENDS"}).catch(()=>{}))}}for(let a of d){if(!a.bugs?.length)continue;let b=k.get(a.title.toLowerCase());if(b)for(let c of a.bugs)await h.db.query.bugFlag.findFirst({where:(a,{and:d,eq:e,isNull:f})=>d(e(a.nodeId,b),e(a.note,c.note),f(a.resolvedAt))})||await h.db.insert(i.bugFlag).values({nodeId:b,by:"agent",note:c.note})}return d.length}async function D(a){let b=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),c=a.id?b.find(b=>b.id===a.id):void 0;if(!c&&a.title){let{best:d,candidates:e}=(0,k.mk)(a.title,b.map(a=>({id:a.id,title:a.title})));if(d)c=b.find(a=>a.id===d.id);else if(e.length)return{ok:!1,candidates:e}}if(!c)return{ok:!1};await h.db.update(i.node).set({plain:a.description,status:"DONE"}).where((0,f.eq)(i.node.id,c.id));let d=await x(c.id);if(await w(c.id),a.files?.length)for(let b of Array.from(new Set(a.files.map(B).filter(Boolean))))await h.db.insert(i.nodeFile).values({nodeId:c.id,path:b}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});return await h.db.update(i.appSetting).set({currentFeatureId:null}).where((0,f.eq)(i.appSetting.currentFeatureId,c.id)),a.architecture?.length&&await C(a.architecture),await (0,j.Bx)(),{ok:!0,id:c.id,subtasksCompleted:d.completed||void 0,subtasksBlocked:d.blocked.length?d.blocked:void 0}}async function E(a){let b=[];for(let c of a){let a=await D(c);b.push({...a,title:c.title})}return{results:b}}async function F(a){let b=Array.from(new Set((a.files??[]).map(B).filter(Boolean))),c=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP")}),d=a.id?c.find(b=>b.id===a.id):void 0;if(!d&&a.title){let{best:b,candidates:e}=(0,k.mk)(a.title,c.map(a=>({id:a.id,title:a.title})));if(b)d=c.find(a=>a.id===b.id);else if(e.length)return{ok:!1,candidates:e}}if(!d)return{ok:!1};for(let a of b)await h.db.insert(i.nodeFile).values({nodeId:d.id,path:a}).onConflictDoNothing({target:[i.nodeFile.nodeId,i.nodeFile.path]});await (0,j.Bx)();let e=(await h.db.select({n:(0,g.U9)()}).from(i.nodeFile).where((0,f.eq)(i.nodeFile.nodeId,d.id)))[0].n;return{ok:!0,id:d.id,count:e}}async function G(a){let b,c=a.items.filter(a=>a.title.trim());if(!c.length)return{ok:!1,reason:"no_items"};if(a.parentId)b=await h.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId)});else if(a.parentTitle&&a.parentTitle.trim()){let c=await h.db.query.node.findMany({where:(a,{isNull:b})=>b(a.parentId),columns:{id:!0,title:!0,cluster:!0,status:!0}}),{best:d,candidates:e}=(0,k.mk)(a.parentTitle.trim(),c.map(a=>({id:a.id,title:a.title,cluster:a.cluster,status:a.status})));if(d)b=await h.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,d.id)});else if(e.length)return{ok:!1,reason:"ambiguous",candidates:e}}if(!b)return{ok:!1,reason:"parent_not_found"};let d=b,e=await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,d.id),columns:{id:!0,title:!0}}),f=c.filter(a=>(0,k.mk)(a.title.trim(),e).best);if(f.length)return{ok:!1,reason:"duplicate",message:`⛔ These sub-tasks already exist under "${d.title}": ${f.map(a=>`"${a.title.trim()}"`).join(", ")}. Drop the duplicates — only add genuinely new sub-tasks.`};let g=(await h.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,d.view),columns:{x:!0,y:!0}})).map(a=>({x:a.x,y:a.y})),i=[];for(let a=0;a<c.length;a++){let b=c[a],e=(0,m.B)(g,{x:d.x+240*a,y:d.y+200});g.push(e);let f=await (0,p.RM)({view:d.view,title:b.title.trim(),plain:b.plain??null,cluster:d.cluster??null,parentId:d.id,x:e.x,y:e.y});i.push({id:f.id,title:f.title})}return i.length&&await w(i[0].id),await (0,j.Bx)(),{ok:!0,parent:{id:d.id,title:d.title},created:i}}d()}catch(a){d(a)}})},71584:(a,b,c)=>{c.d(b,{B:()=>d});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}},76223:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,t:()=>h});var e=c(56727),f=c(30046),g=a([e]);async function h(a=e.db){let[b]=await a.insert(f.appSetting).values({id:"singleton"}).onConflictDoUpdate({target:f.appSetting.id,set:{id:"singleton"}}).returning();return b}async function i(a,b=e.db){let[c]=await b.insert(f.appSetting).values({id:"singleton",...a}).onConflictDoUpdate({target:f.appSetting.id,set:a}).returning();return c}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89908:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>n,B2:()=>q,CB:()=>r,OK:()=>m,Qd:()=>l,RM:()=>k,jO:()=>o,k5:()=>p});var e=c(34216),f=c(56727),g=c(30046),h=c(70299),i=c(13560),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({...b.id?{id:b.id}:{},view:b.view,kind:b.kind??"FEATURE",title:b.title,cluster:b.cluster??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a){let b=i.hj.parse(a);if(b.fromId===b.toId)throw Error("Self-edge not allowed");let c=b.kind??"DEPENDS",d=await f.db.query.edge.findFirst({where:(a,{and:d,eq:e})=>d(e(a.fromId,b.fromId),e(a.toId,b.toId),e(a.kind,c))});if(d)return d;let[e]=await f.db.insert(g.edge).values({fromId:b.fromId,toId:b.toId,kind:c,label:b.label??null,sourceHandle:b.sourceHandle??null,targetHandle:b.targetHandle??null}).returning();return e}async function m(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}async function o(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.node).set(d).where((0,e.eq)(g.node.id,a)).returning();return h}async function p(a){return await Promise.all(a.map(a=>{let b=i.tI.parse({x:a.x,y:a.y});return f.db.update(g.node).set(b).where((0,e.eq)(g.node.id,a.id))})),a.length}async function q(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.dbTable).set(d).where((0,e.eq)(g.dbTable.id,a)).returning();return h}async function r(a,b,c){let d=i.tI.parse({x:b,y:c}),[h]=await f.db.update(g.endpoint).set(d).where((0,e.eq)(g.endpoint.id,a)).returning();return h}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},90435:(a,b,c)=>{c.d(b,{cA:()=>h,hd:()=>k,wU:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(a,b){let c=[...a].sort().join(","),d=b.map(a=>`${a.fromId}>${a.toId}`).sort().join(",");return`force-2|${a.length}|${c}|${d}`}function i(){return(0,e.join)((0,f.KS)(),"roadmap-layout-sig.json")}function j(){try{return JSON.parse((0,d.readFileSync)(i(),"utf8")).sig??null}catch{return null}}function k(a){(0,g.q)(i(),{sig:a})}},90497:(a,b,c)=>{c.d(b,{u:()=>i});var d=c(61661),e=c(52648),f=c(61639),g=c(62088),h=c(19125);function i(a,b,c={}){let j,k=c.linkDistance??210,l=c.charge??-450,m=c.collideRadius??132,n=c.ticks??500,o=[...a].sort((a,b)=>a.id<b.id?-1:+(a.id>b.id)),p=new Set(o.map(a=>a.id)),q=o.map(a=>({id:a.id})),r=[];for(let a of b)a.fromId!==a.toId&&p.has(a.fromId)&&p.has(a.toId)&&r.push({source:a.fromId,target:a.toId});for(let a of o)a.parentId&&p.has(a.parentId)&&r.push({source:a.id,target:a.parentId});let s=(0,d.A)(q).randomSource((j=0x9e3779b9,()=>{let a=j=j+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000})).force("link",(0,e.A)(r).id(a=>a.id).distance(k).strength(.6)).force("charge",(0,f.A)().strength(l).distanceMax(1200)).force("collide",(0,g.A)().radius(m).strength(1)).force("center",(0,h.A)(0,0).strength(.08)).stop();for(let a=0;a<n;a++)s.tick();let t=new Map;for(let a of q)t.set(a.id,{x:Math.round(a.x??0),y:Math.round(a.y??0)});return t}}};