trybeacon 0.1.88 → 0.1.90

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 (385) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-path-routes-manifest.json +17 -15
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/routes-manifest.json +12 -0
  7. package/.next/server/app/@modal/(.)settings/page.js +2 -2
  8. package/.next/server/app/@modal/(.)settings/page.js.nft.json +1 -1
  9. package/.next/server/app/@modal/(.)settings/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error/page.js +3 -3
  11. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/_not-found/page.js +2 -2
  21. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/_not-found.html +1 -1
  24. package/.next/server/app/_not-found.rsc +3 -3
  25. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  26. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  28. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  30. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/server/app/api/ask/answer/route.js +1 -1
  32. package/.next/server/app/api/ask/deliver/route.js +1 -0
  33. package/.next/server/app/api/ask/deliver/route.js.nft.json +1 -0
  34. package/.next/server/app/api/ask/deliver/route_client-reference-manifest.js +1 -0
  35. package/.next/server/app/api/ask/route.js +1 -1
  36. package/.next/server/app/api/ask/verdict/route.js +1 -1
  37. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  38. package/.next/server/app/api/board-annotations/route.js +1 -1
  39. package/.next/server/app/api/board-layout/route.js +1 -1
  40. package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
  41. package/.next/server/app/api/bug-flags/route.js +1 -1
  42. package/.next/server/app/api/changes/comment/answer/route.js +2 -2
  43. package/.next/server/app/api/changes/comment/claim/route.js +2 -2
  44. package/.next/server/app/api/changes/comment/route.js +2 -2
  45. package/.next/server/app/api/changes/quality/route.js +1 -1
  46. package/.next/server/app/api/changes/route.js +1 -1
  47. package/.next/server/app/api/changes/viewed/route.js +1 -1
  48. package/.next/server/app/api/code-graph/position/route.js +1 -1
  49. package/.next/server/app/api/code-graph/route.js +1 -1
  50. package/.next/server/app/api/context/feature/route.js +1 -1
  51. package/.next/server/app/api/context/file/route.js +1 -1
  52. package/.next/server/app/api/context/route.js +1 -1
  53. package/.next/server/app/api/db/arrange/route.js +1 -1
  54. package/.next/server/app/api/db/backfill-access/route.js +1 -1
  55. package/.next/server/app/api/db/position/route.js +1 -1
  56. package/.next/server/app/api/db/prune-planned/route.js +1 -1
  57. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  58. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  59. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  60. package/.next/server/app/api/deliverer/route.js +1 -0
  61. package/.next/server/app/api/deliverer/route.js.nft.json +1 -0
  62. package/.next/server/app/api/deliverer/route_client-reference-manifest.js +1 -0
  63. package/.next/server/app/api/draft/approve/route.js +1 -1
  64. package/.next/server/app/api/draft/route.js +1 -1
  65. package/.next/server/app/api/draft/status/route.js +1 -1
  66. package/.next/server/app/api/edges/[id]/route.js +1 -1
  67. package/.next/server/app/api/edges/route.js +1 -1
  68. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  69. package/.next/server/app/api/entities/route.js +1 -1
  70. package/.next/server/app/api/ingest/route.js +1 -1
  71. package/.next/server/app/api/init/route.js +1 -1
  72. package/.next/server/app/api/lesson/close/route.js +1 -1
  73. package/.next/server/app/api/lesson/presence/route.js +1 -1
  74. package/.next/server/app/api/lesson/questions/route.js +1 -1
  75. package/.next/server/app/api/lesson/route.js +1 -1
  76. package/.next/server/app/api/lesson/save/route.js +1 -1
  77. package/.next/server/app/api/lesson/verdict/route.js +1 -1
  78. package/.next/server/app/api/linear/route.js +1 -1
  79. package/.next/server/app/api/linear/scopes/route.js +2 -2
  80. package/.next/server/app/api/linear/sync/route.js +1 -1
  81. package/.next/server/app/api/map/describe/route.js +1 -1
  82. package/.next/server/app/api/map/files/route.js +1 -1
  83. package/.next/server/app/api/map/finish/route.js +1 -1
  84. package/.next/server/app/api/map/route.js +1 -1
  85. package/.next/server/app/api/map/start/route.js +1 -1
  86. package/.next/server/app/api/map/touch-active/route.js +1 -1
  87. package/.next/server/app/api/mention-search/route.js +1 -1
  88. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  89. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  90. package/.next/server/app/api/nodes/positions/route.js +1 -1
  91. package/.next/server/app/api/nodes/route.js +1 -1
  92. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  93. package/.next/server/app/api/notes/[id]/route.js +1 -1
  94. package/.next/server/app/api/notes/route.js +1 -1
  95. package/.next/server/app/api/open/route.js +1 -1
  96. package/.next/server/app/api/plan/annotations/route.js +2 -2
  97. package/.next/server/app/api/plan/approve/route.js +1 -1
  98. package/.next/server/app/api/plan/history/route.js +1 -1
  99. package/.next/server/app/api/plan/markdown/route.js +1 -1
  100. package/.next/server/app/api/plan/presence/route.js +1 -1
  101. package/.next/server/app/api/plan/route.js +1 -1
  102. package/.next/server/app/api/plan/verdict/route.js +1 -1
  103. package/.next/server/app/api/preferences/route.js +1 -1
  104. package/.next/server/app/api/project-meta/route.js +1 -1
  105. package/.next/server/app/api/reset/route.js +1 -1
  106. package/.next/server/app/api/scope-guard/check/route.js +2 -2
  107. package/.next/server/app/api/share/create/route.js +1 -1
  108. package/.next/server/app/api/share/route.js +1 -1
  109. package/.next/server/app/api/stream/route.js +2 -2
  110. package/.next/server/app/api/tab/nav/route.js +1 -1
  111. package/.next/server/app/api/tab/park/route.js +1 -1
  112. package/.next/server/app/api/tab/presence/route.js +1 -1
  113. package/.next/server/app/api/tab/view/route.js +1 -1
  114. package/.next/server/app/api/telemetry/route.js +1 -1
  115. package/.next/server/app/api/telemetry/stats/route.js +1 -1
  116. package/.next/server/app/api/version/route.js +1 -1
  117. package/.next/server/app/api/workspace/activate/route.js +1 -1
  118. package/.next/server/app/api/workspace/route.js +1 -1
  119. package/.next/server/app/apple-icon.png/route.js +1 -1
  120. package/.next/server/app/docs/page.js +2 -2
  121. package/.next/server/app/docs/page.js.nft.json +1 -1
  122. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/docs.html +1 -1
  124. package/.next/server/app/docs.rsc +3 -3
  125. package/.next/server/app/docs.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  126. package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
  127. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  128. package/.next/server/app/docs.segments/_index.segment.rsc +3 -3
  129. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  130. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  131. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  132. package/.next/server/app/help/page.js +2 -2
  133. package/.next/server/app/help/page.js.nft.json +1 -1
  134. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  135. package/.next/server/app/help.html +1 -1
  136. package/.next/server/app/help.rsc +3 -3
  137. package/.next/server/app/help.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  138. package/.next/server/app/help.segments/_full.segment.rsc +3 -3
  139. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  140. package/.next/server/app/help.segments/_index.segment.rsc +3 -3
  141. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  142. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  143. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  144. package/.next/server/app/icon.svg/route.js +1 -1
  145. package/.next/server/app/index.html +1 -1
  146. package/.next/server/app/index.rsc +3 -3
  147. package/.next/server/app/index.segments/@modal/__DEFAULT__.segment.rsc +1 -1
  148. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  149. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  150. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  151. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  152. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  153. package/.next/server/app/learn/page.js +3 -3
  154. package/.next/server/app/learn/page.js.nft.json +1 -1
  155. package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/map/page.js +2 -2
  157. package/.next/server/app/map/page.js.nft.json +1 -1
  158. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/page.js +2 -2
  160. package/.next/server/app/page.js.nft.json +1 -1
  161. package/.next/server/app/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/parked/page.js +2 -2
  163. package/.next/server/app/parked/page.js.nft.json +1 -1
  164. package/.next/server/app/parked/page_client-reference-manifest.js +1 -1
  165. package/.next/server/app/plan/page.js +3 -3
  166. package/.next/server/app/plan/page.js.nft.json +1 -1
  167. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/s/[token]/page.js +2 -2
  169. package/.next/server/app/s/[token]/page.js.nft.json +1 -1
  170. package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  171. package/.next/server/app/settings/page.js +2 -2
  172. package/.next/server/app/settings/page.js.nft.json +1 -1
  173. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app-paths-manifest.json +17 -15
  175. package/.next/server/chunks/2031.js +1 -1
  176. package/.next/server/chunks/2806.js +1 -0
  177. package/.next/server/chunks/{5704.js → 5332.js} +2 -2
  178. package/.next/server/chunks/5623.js +1 -1
  179. package/.next/server/middleware-build-manifest.js +1 -1
  180. package/.next/server/pages/404.html +1 -1
  181. package/.next/server/pages/500.html +1 -1
  182. package/.next/server/server-reference-manifest.js +1 -1
  183. package/.next/server/server-reference-manifest.json +1 -1
  184. package/.next/static/chunks/6930-1231a4681af2ad3f.js +1 -0
  185. package/.next/static/chunks/app/@modal/default-ae4502d569ac0303.js +1 -0
  186. package/.next/static/chunks/app/_global-error/page-ae4502d569ac0303.js +1 -0
  187. package/.next/static/chunks/app/api/ask/answer/route-ae4502d569ac0303.js +1 -0
  188. package/.next/static/chunks/app/api/ask/deliver/route-ae4502d569ac0303.js +1 -0
  189. package/.next/static/chunks/app/api/ask/route-ae4502d569ac0303.js +1 -0
  190. package/.next/static/chunks/app/api/ask/verdict/route-ae4502d569ac0303.js +1 -0
  191. package/.next/static/chunks/app/api/board-annotations/[id]/route-ae4502d569ac0303.js +1 -0
  192. package/.next/static/chunks/app/api/board-annotations/route-ae4502d569ac0303.js +1 -0
  193. package/.next/static/chunks/app/api/board-layout/route-ae4502d569ac0303.js +1 -0
  194. package/.next/static/chunks/app/api/bug-flags/[id]/route-ae4502d569ac0303.js +1 -0
  195. package/.next/static/chunks/app/api/bug-flags/route-ae4502d569ac0303.js +1 -0
  196. package/.next/static/chunks/app/api/changes/comment/answer/route-ae4502d569ac0303.js +1 -0
  197. package/.next/static/chunks/app/api/changes/comment/claim/route-ae4502d569ac0303.js +1 -0
  198. package/.next/static/chunks/app/api/changes/comment/route-ae4502d569ac0303.js +1 -0
  199. package/.next/static/chunks/app/api/changes/quality/route-ae4502d569ac0303.js +1 -0
  200. package/.next/static/chunks/app/api/changes/route-ae4502d569ac0303.js +1 -0
  201. package/.next/static/chunks/app/api/changes/viewed/route-ae4502d569ac0303.js +1 -0
  202. package/.next/static/chunks/app/api/code-graph/position/route-ae4502d569ac0303.js +1 -0
  203. package/.next/static/chunks/app/api/code-graph/route-ae4502d569ac0303.js +1 -0
  204. package/.next/static/chunks/app/api/context/feature/route-ae4502d569ac0303.js +1 -0
  205. package/.next/static/chunks/app/api/context/file/route-ae4502d569ac0303.js +1 -0
  206. package/.next/static/chunks/app/api/context/route-ae4502d569ac0303.js +1 -0
  207. package/.next/static/chunks/app/api/db/arrange/route-ae4502d569ac0303.js +1 -0
  208. package/.next/static/chunks/app/api/db/backfill-access/route-ae4502d569ac0303.js +1 -0
  209. package/.next/static/chunks/app/api/db/position/route-ae4502d569ac0303.js +1 -0
  210. package/.next/static/chunks/app/api/db/prune-planned/route-ae4502d569ac0303.js +1 -0
  211. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-ae4502d569ac0303.js +1 -0
  212. package/.next/static/chunks/app/api/db/relations/[id]/route-ae4502d569ac0303.js +1 -0
  213. package/.next/static/chunks/app/api/db/tables/[id]/route-ae4502d569ac0303.js +1 -0
  214. package/.next/static/chunks/app/api/deliverer/route-ae4502d569ac0303.js +1 -0
  215. package/.next/static/chunks/app/api/draft/approve/route-ae4502d569ac0303.js +1 -0
  216. package/.next/static/chunks/app/api/draft/route-ae4502d569ac0303.js +1 -0
  217. package/.next/static/chunks/app/api/draft/status/route-ae4502d569ac0303.js +1 -0
  218. package/.next/static/chunks/app/api/edges/[id]/route-ae4502d569ac0303.js +1 -0
  219. package/.next/static/chunks/app/api/edges/route-ae4502d569ac0303.js +1 -0
  220. package/.next/static/chunks/app/api/endpoints/[id]/route-ae4502d569ac0303.js +1 -0
  221. package/.next/static/chunks/app/api/entities/route-ae4502d569ac0303.js +1 -0
  222. package/.next/static/chunks/app/api/ingest/route-ae4502d569ac0303.js +1 -0
  223. package/.next/static/chunks/app/api/init/route-ae4502d569ac0303.js +1 -0
  224. package/.next/static/chunks/app/api/lesson/close/route-ae4502d569ac0303.js +1 -0
  225. package/.next/static/chunks/app/api/lesson/presence/route-ae4502d569ac0303.js +1 -0
  226. package/.next/static/chunks/app/api/lesson/questions/route-ae4502d569ac0303.js +1 -0
  227. package/.next/static/chunks/app/api/lesson/route-ae4502d569ac0303.js +1 -0
  228. package/.next/static/chunks/app/api/lesson/save/route-ae4502d569ac0303.js +1 -0
  229. package/.next/static/chunks/app/api/lesson/verdict/route-ae4502d569ac0303.js +1 -0
  230. package/.next/static/chunks/app/api/linear/route-ae4502d569ac0303.js +1 -0
  231. package/.next/static/chunks/app/api/linear/scopes/route-ae4502d569ac0303.js +1 -0
  232. package/.next/static/chunks/app/api/linear/sync/route-ae4502d569ac0303.js +1 -0
  233. package/.next/static/chunks/app/api/map/describe/route-ae4502d569ac0303.js +1 -0
  234. package/.next/static/chunks/app/api/map/files/route-ae4502d569ac0303.js +1 -0
  235. package/.next/static/chunks/app/api/map/finish/route-ae4502d569ac0303.js +1 -0
  236. package/.next/static/chunks/app/api/map/route-ae4502d569ac0303.js +1 -0
  237. package/.next/static/chunks/app/api/map/start/route-ae4502d569ac0303.js +1 -0
  238. package/.next/static/chunks/app/api/map/touch-active/route-ae4502d569ac0303.js +1 -0
  239. package/.next/static/chunks/app/api/mention-search/route-ae4502d569ac0303.js +1 -0
  240. package/.next/static/chunks/app/api/nodes/[id]/position/route-ae4502d569ac0303.js +1 -0
  241. package/.next/static/chunks/app/api/nodes/[id]/route-ae4502d569ac0303.js +1 -0
  242. package/.next/static/chunks/app/api/nodes/positions/route-ae4502d569ac0303.js +1 -0
  243. package/.next/static/chunks/app/api/nodes/route-ae4502d569ac0303.js +1 -0
  244. package/.next/static/chunks/app/api/nodes/subtasks/route-ae4502d569ac0303.js +1 -0
  245. package/.next/static/chunks/app/api/notes/[id]/route-ae4502d569ac0303.js +1 -0
  246. package/.next/static/chunks/app/api/notes/route-ae4502d569ac0303.js +1 -0
  247. package/.next/static/chunks/app/api/open/route-ae4502d569ac0303.js +1 -0
  248. package/.next/static/chunks/app/api/plan/annotations/route-ae4502d569ac0303.js +1 -0
  249. package/.next/static/chunks/app/api/plan/approve/route-ae4502d569ac0303.js +1 -0
  250. package/.next/static/chunks/app/api/plan/history/route-ae4502d569ac0303.js +1 -0
  251. package/.next/static/chunks/app/api/plan/markdown/route-ae4502d569ac0303.js +1 -0
  252. package/.next/static/chunks/app/api/plan/presence/route-ae4502d569ac0303.js +1 -0
  253. package/.next/static/chunks/app/api/plan/route-ae4502d569ac0303.js +1 -0
  254. package/.next/static/chunks/app/api/plan/verdict/route-ae4502d569ac0303.js +1 -0
  255. package/.next/static/chunks/app/api/preferences/route-ae4502d569ac0303.js +1 -0
  256. package/.next/static/chunks/app/api/project-meta/route-ae4502d569ac0303.js +1 -0
  257. package/.next/static/chunks/app/api/reset/route-ae4502d569ac0303.js +1 -0
  258. package/.next/static/chunks/app/api/scope-guard/check/route-ae4502d569ac0303.js +1 -0
  259. package/.next/static/chunks/app/api/share/create/route-ae4502d569ac0303.js +1 -0
  260. package/.next/static/chunks/app/api/share/route-ae4502d569ac0303.js +1 -0
  261. package/.next/static/chunks/app/api/stream/route-ae4502d569ac0303.js +1 -0
  262. package/.next/static/chunks/app/api/tab/nav/route-ae4502d569ac0303.js +1 -0
  263. package/.next/static/chunks/app/api/tab/park/route-ae4502d569ac0303.js +1 -0
  264. package/.next/static/chunks/app/api/tab/presence/route-ae4502d569ac0303.js +1 -0
  265. package/.next/static/chunks/app/api/tab/view/route-ae4502d569ac0303.js +1 -0
  266. package/.next/static/chunks/app/api/telemetry/route-ae4502d569ac0303.js +1 -0
  267. package/.next/static/chunks/app/api/telemetry/stats/route-ae4502d569ac0303.js +1 -0
  268. package/.next/static/chunks/app/api/version/route-ae4502d569ac0303.js +1 -0
  269. package/.next/static/chunks/app/api/workspace/activate/route-ae4502d569ac0303.js +1 -0
  270. package/.next/static/chunks/app/api/workspace/route-ae4502d569ac0303.js +1 -0
  271. package/.next/static/chunks/app/layout-a8bb07fb86893add.js +1 -0
  272. package/.next/static/chunks/app/learn/{page-9242d1cf07061b79.js → page-49bdcae5bf2a7a49.js} +1 -1
  273. package/.next/static/chunks/app/map/{page-4e82a74041f231c0.js → page-6e32f55c7b69bfa0.js} +1 -1
  274. package/.next/static/chunks/app/plan/{page-e53f4b260c16df74.js → page-b8b89d7171a582ce.js} +2 -2
  275. package/.next/static/chunks/app/s/[token]/{page-cfd3c186ba4c4c91.js → page-7ebe66049fae02ce.js} +1 -1
  276. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ae4502d569ac0303.js +1 -0
  277. package/.next/static/chunks/next/dist/client/components/builtin/default-null-ae4502d569ac0303.js +1 -0
  278. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae4502d569ac0303.js +1 -0
  279. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ae4502d569ac0303.js +1 -0
  280. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae4502d569ac0303.js +1 -0
  281. package/.next/static/css/56890131dbc6daff.css +1 -0
  282. package/.next/static/l2BAGl1tReuc34hH3NvPZ/_buildManifest.js +1 -0
  283. package/.next/trace +47 -47
  284. package/.next/trace-build +1 -1
  285. package/.next/types/app/api/ask/deliver/route.ts +351 -0
  286. package/.next/types/app/api/deliverer/route.ts +351 -0
  287. package/.next/types/routes.d.ts +3 -1
  288. package/.next/types/validator.ts +18 -0
  289. package/dist/bin/ask.js +2 -2
  290. package/package.json +1 -1
  291. package/.next/server/chunks/297.js +0 -1
  292. package/.next/static/LKQRsrATBF5LppZpLPoZ6/_buildManifest.js +0 -1
  293. package/.next/static/chunks/4734-ec7d86c0bdede706.js +0 -1
  294. package/.next/static/chunks/app/@modal/default-4438349a80c812db.js +0 -1
  295. package/.next/static/chunks/app/_global-error/page-4438349a80c812db.js +0 -1
  296. package/.next/static/chunks/app/api/ask/answer/route-4438349a80c812db.js +0 -1
  297. package/.next/static/chunks/app/api/ask/route-4438349a80c812db.js +0 -1
  298. package/.next/static/chunks/app/api/ask/verdict/route-4438349a80c812db.js +0 -1
  299. package/.next/static/chunks/app/api/board-annotations/[id]/route-4438349a80c812db.js +0 -1
  300. package/.next/static/chunks/app/api/board-annotations/route-4438349a80c812db.js +0 -1
  301. package/.next/static/chunks/app/api/board-layout/route-4438349a80c812db.js +0 -1
  302. package/.next/static/chunks/app/api/bug-flags/[id]/route-4438349a80c812db.js +0 -1
  303. package/.next/static/chunks/app/api/bug-flags/route-4438349a80c812db.js +0 -1
  304. package/.next/static/chunks/app/api/changes/comment/answer/route-4438349a80c812db.js +0 -1
  305. package/.next/static/chunks/app/api/changes/comment/claim/route-4438349a80c812db.js +0 -1
  306. package/.next/static/chunks/app/api/changes/comment/route-4438349a80c812db.js +0 -1
  307. package/.next/static/chunks/app/api/changes/quality/route-4438349a80c812db.js +0 -1
  308. package/.next/static/chunks/app/api/changes/route-4438349a80c812db.js +0 -1
  309. package/.next/static/chunks/app/api/changes/viewed/route-4438349a80c812db.js +0 -1
  310. package/.next/static/chunks/app/api/code-graph/position/route-4438349a80c812db.js +0 -1
  311. package/.next/static/chunks/app/api/code-graph/route-4438349a80c812db.js +0 -1
  312. package/.next/static/chunks/app/api/context/feature/route-4438349a80c812db.js +0 -1
  313. package/.next/static/chunks/app/api/context/file/route-4438349a80c812db.js +0 -1
  314. package/.next/static/chunks/app/api/context/route-4438349a80c812db.js +0 -1
  315. package/.next/static/chunks/app/api/db/arrange/route-4438349a80c812db.js +0 -1
  316. package/.next/static/chunks/app/api/db/backfill-access/route-4438349a80c812db.js +0 -1
  317. package/.next/static/chunks/app/api/db/position/route-4438349a80c812db.js +0 -1
  318. package/.next/static/chunks/app/api/db/prune-planned/route-4438349a80c812db.js +0 -1
  319. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-4438349a80c812db.js +0 -1
  320. package/.next/static/chunks/app/api/db/relations/[id]/route-4438349a80c812db.js +0 -1
  321. package/.next/static/chunks/app/api/db/tables/[id]/route-4438349a80c812db.js +0 -1
  322. package/.next/static/chunks/app/api/draft/approve/route-4438349a80c812db.js +0 -1
  323. package/.next/static/chunks/app/api/draft/route-4438349a80c812db.js +0 -1
  324. package/.next/static/chunks/app/api/draft/status/route-4438349a80c812db.js +0 -1
  325. package/.next/static/chunks/app/api/edges/[id]/route-4438349a80c812db.js +0 -1
  326. package/.next/static/chunks/app/api/edges/route-4438349a80c812db.js +0 -1
  327. package/.next/static/chunks/app/api/endpoints/[id]/route-4438349a80c812db.js +0 -1
  328. package/.next/static/chunks/app/api/entities/route-4438349a80c812db.js +0 -1
  329. package/.next/static/chunks/app/api/ingest/route-4438349a80c812db.js +0 -1
  330. package/.next/static/chunks/app/api/init/route-4438349a80c812db.js +0 -1
  331. package/.next/static/chunks/app/api/lesson/close/route-4438349a80c812db.js +0 -1
  332. package/.next/static/chunks/app/api/lesson/presence/route-4438349a80c812db.js +0 -1
  333. package/.next/static/chunks/app/api/lesson/questions/route-4438349a80c812db.js +0 -1
  334. package/.next/static/chunks/app/api/lesson/route-4438349a80c812db.js +0 -1
  335. package/.next/static/chunks/app/api/lesson/save/route-4438349a80c812db.js +0 -1
  336. package/.next/static/chunks/app/api/lesson/verdict/route-4438349a80c812db.js +0 -1
  337. package/.next/static/chunks/app/api/linear/route-4438349a80c812db.js +0 -1
  338. package/.next/static/chunks/app/api/linear/scopes/route-4438349a80c812db.js +0 -1
  339. package/.next/static/chunks/app/api/linear/sync/route-4438349a80c812db.js +0 -1
  340. package/.next/static/chunks/app/api/map/describe/route-4438349a80c812db.js +0 -1
  341. package/.next/static/chunks/app/api/map/files/route-4438349a80c812db.js +0 -1
  342. package/.next/static/chunks/app/api/map/finish/route-4438349a80c812db.js +0 -1
  343. package/.next/static/chunks/app/api/map/route-4438349a80c812db.js +0 -1
  344. package/.next/static/chunks/app/api/map/start/route-4438349a80c812db.js +0 -1
  345. package/.next/static/chunks/app/api/map/touch-active/route-4438349a80c812db.js +0 -1
  346. package/.next/static/chunks/app/api/mention-search/route-4438349a80c812db.js +0 -1
  347. package/.next/static/chunks/app/api/nodes/[id]/position/route-4438349a80c812db.js +0 -1
  348. package/.next/static/chunks/app/api/nodes/[id]/route-4438349a80c812db.js +0 -1
  349. package/.next/static/chunks/app/api/nodes/positions/route-4438349a80c812db.js +0 -1
  350. package/.next/static/chunks/app/api/nodes/route-4438349a80c812db.js +0 -1
  351. package/.next/static/chunks/app/api/nodes/subtasks/route-4438349a80c812db.js +0 -1
  352. package/.next/static/chunks/app/api/notes/[id]/route-4438349a80c812db.js +0 -1
  353. package/.next/static/chunks/app/api/notes/route-4438349a80c812db.js +0 -1
  354. package/.next/static/chunks/app/api/open/route-4438349a80c812db.js +0 -1
  355. package/.next/static/chunks/app/api/plan/annotations/route-4438349a80c812db.js +0 -1
  356. package/.next/static/chunks/app/api/plan/approve/route-4438349a80c812db.js +0 -1
  357. package/.next/static/chunks/app/api/plan/history/route-4438349a80c812db.js +0 -1
  358. package/.next/static/chunks/app/api/plan/markdown/route-4438349a80c812db.js +0 -1
  359. package/.next/static/chunks/app/api/plan/presence/route-4438349a80c812db.js +0 -1
  360. package/.next/static/chunks/app/api/plan/route-4438349a80c812db.js +0 -1
  361. package/.next/static/chunks/app/api/plan/verdict/route-4438349a80c812db.js +0 -1
  362. package/.next/static/chunks/app/api/preferences/route-4438349a80c812db.js +0 -1
  363. package/.next/static/chunks/app/api/project-meta/route-4438349a80c812db.js +0 -1
  364. package/.next/static/chunks/app/api/reset/route-4438349a80c812db.js +0 -1
  365. package/.next/static/chunks/app/api/scope-guard/check/route-4438349a80c812db.js +0 -1
  366. package/.next/static/chunks/app/api/share/create/route-4438349a80c812db.js +0 -1
  367. package/.next/static/chunks/app/api/share/route-4438349a80c812db.js +0 -1
  368. package/.next/static/chunks/app/api/stream/route-4438349a80c812db.js +0 -1
  369. package/.next/static/chunks/app/api/tab/nav/route-4438349a80c812db.js +0 -1
  370. package/.next/static/chunks/app/api/tab/park/route-4438349a80c812db.js +0 -1
  371. package/.next/static/chunks/app/api/tab/presence/route-4438349a80c812db.js +0 -1
  372. package/.next/static/chunks/app/api/tab/view/route-4438349a80c812db.js +0 -1
  373. package/.next/static/chunks/app/api/telemetry/route-4438349a80c812db.js +0 -1
  374. package/.next/static/chunks/app/api/telemetry/stats/route-4438349a80c812db.js +0 -1
  375. package/.next/static/chunks/app/api/version/route-4438349a80c812db.js +0 -1
  376. package/.next/static/chunks/app/api/workspace/activate/route-4438349a80c812db.js +0 -1
  377. package/.next/static/chunks/app/api/workspace/route-4438349a80c812db.js +0 -1
  378. package/.next/static/chunks/app/layout-d71bf93c16d42bc0.js +0 -1
  379. package/.next/static/chunks/next/dist/client/components/builtin/app-error-4438349a80c812db.js +0 -1
  380. package/.next/static/chunks/next/dist/client/components/builtin/default-null-4438349a80c812db.js +0 -1
  381. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-4438349a80c812db.js +0 -1
  382. package/.next/static/chunks/next/dist/client/components/builtin/not-found-4438349a80c812db.js +0 -1
  383. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-4438349a80c812db.js +0 -1
  384. package/.next/static/css/664b23c4403cdb49.css +0 -1
  385. /package/.next/static/{LKQRsrATBF5LppZpLPoZ6 → l2BAGl1tReuc34hH3NvPZ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" data-theme="dark" data-surface="glass" class="dark __variable_246ccd __variable_c29908 h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e02ab5db9ff2dca2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/664b23c4403cdb49.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/008a05b0ad6b854a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/53e84df868515cf7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/83755b1f39ccf91d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-62aea110c2700d74.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-cef5038dc7aa126a.js" async=""></script><script src="/_next/static/chunks/main-app-1a32dc335629e4e4.js" async=""></script><script src="/_next/static/chunks/70e0d97a-bbb0ec05083da54f.js" async=""></script><script src="/_next/static/chunks/54a60aa6-0378818fce5a4dc5.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4888-911c0da3c2d785d2.js" async=""></script><script src="/_next/static/chunks/2114-74736df56930b46c.js" async=""></script><script src="/_next/static/chunks/5547-2c07851028a9033a.js" async=""></script><script src="/_next/static/chunks/app/layout-d71bf93c16d42bc0.js" async=""></script><script src="/_next/static/chunks/1a258343-954e0e6619585d3c.js" async=""></script><script src="/_next/static/chunks/8710-6b2685272a1e1ff7.js" async=""></script><script src="/_next/static/chunks/app/page-62c53092bdab1224.js" async=""></script><meta name="next-size-adjust" content=""/><title>Beacon — the visual planning surface for the coding agent in your terminal</title><meta name="description" content="Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo."/><link rel="icon" href="/icon.svg?bb93a1375ed3c298" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?f9d64651576bd776" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><script>(function(){try{var d=document.documentElement,t=localStorage.getItem("beacon-theme")||"dark",s=localStorage.getItem("beacon-surface")||"glass",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();</script><header data-app-nav="true" class="pointer-events-none fixed left-3 top-3 z-30"><div class="glass pointer-events-auto flex h-10 items-center gap-1 rounded-full pl-3 pr-1.5"><div class="flex items-center gap-1"><a class="mr-1 flex items-center gap-2 text-sm font-semibold tracking-tight" href="/"><svg width="18" height="18" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><span class="hidden lg:inline">Beacon</span></a><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><span class="font-mono text-xs text-muted-foreground">· <!-- -->beacon</span><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><nav class="flex items-center gap-0.5 text-sm"><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/plan">Plans</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/map">Map</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/learn">Learn</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/settings">Settings</a></nav><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><button type="button" aria-pressed="false" aria-label="Notes" title="Notes" class="flex items-center justify-center rounded-full p-1.5 transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg></button></div></div></header><main class="flex flex-1 flex-col"><div class="welcome"><div class="welcome-bg" aria-hidden="true"></div><header class="fixed inset-x-0 top-0 z-50"><div class="mx-auto max-w-6xl px-6"><div class="w-load mt-4 glass flex items-center justify-between rounded-full py-2.5 pl-5 pr-3" style="animation-delay:.05s"><a class="flex items-center gap-2.5" href="#top"><svg width="20" height="20" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><span class="font-semibold tracking-tight">Beacon</span></a><nav class="flex items-center gap-4 text-sm w-muted sm:gap-6"><a href="#how" class="transition-colors hover:text-foreground">The loop</a><a href="#quickstart" class="hidden transition-colors hover:text-foreground sm:block">Quickstart</a><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="https://github.com/wenzorithelly/beacon" target="_blank" rel="noreferrer" class="glass-soft w-hover inline-flex items-center gap-2 rounded-full py-1.5 pl-3 pr-3.5 text-foreground" aria-label="Beacon on GitHub"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg><span class="hidden sm:inline">GitHub</span></a></nav></div></div></header><span id="top"></span><section class="px-6 pb-16 pt-20 md:pt-24"><div class="mx-auto grid max-w-6xl items-center gap-12 lg:grid-cols-[1fr_1.1fr]"><div class="min-w-0"><div class="w-load glass-soft mb-6 inline-flex items-center gap-2 rounded-full px-3.5 py-1.5" style="animation-delay:.12s"><span class="w-live h-1.5 w-1.5 rounded-full" style="background:#ff7a45;box-shadow:0 0 8px #ff7a45"></span><span class="w-mono w-eyebrow w-muted">See your codebase · steer your agent</span></div><h1 class="w-load font-semibold text-[clamp(2.2rem,4.6vw,3.4rem)]" style="letter-spacing:-0.025em;line-height:1.06;animation-delay:.18s">Give your coding agent <span class="w-signal">eyes</span> and hands.</h1><p class="w-load w-muted mt-5 max-w-md text-[1.02rem] leading-relaxed" style="animation-delay:.26s">The session in your terminal is the brain. Beacon is where its plans become visible: features, tables, and endpoints on a canvas you annotate, edit, and approve with one click.</p><div class="w-load mt-8" style="animation-delay:.34s"><div class="glass flex max-w-lg items-center gap-3 rounded-lg py-2.5 pl-4 pr-2"><code class="w-mono w-scrollbar-none min-w-0 flex-1 overflow-x-auto whitespace-nowrap text-[0.85rem]"><span class="w-signal select-none">$</span><span class="ml-2">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span><span class="w-caret ml-1 inline-block h-3.5 w-1.5 align-middle" style="background:#ff7a45"></span></code><button class="glass-soft w-hover grid h-8 w-8 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy w-muted" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><p class="w-mono w-muted mt-3 text-[0.78rem]">then run <span class="text-foreground">beacon</span> inside any repo</p></div><div class="w-load mt-9 flex flex-wrap items-center gap-x-5 gap-y-2" style="animation-delay:.42s"><span class="w-mono w-eyebrow w-muted">Works with</span><span class="flex items-center gap-2 text-sm text-foreground/90"><svg width="15" height="15" viewBox="0 0 24 24" fill="#D97757" aria-hidden="true"><path d="m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z"></path></svg> Claude Code</span><span class="flex items-center gap-2 text-sm text-foreground/90"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"></path></svg> Codex</span></div></div><div class="w-load min-w-0" style="animation-delay:.3s"><div class="bm-window glass"><div class="bm-tabs"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="bm-tab active ml-2">Roadmap</span><span class="bm-tab">Database</span><span class="w-mono ml-auto hidden text-[0.66rem] w-muted min-[400px]:block">/plan · review</span></div><div class="bm-canvas" style="aspect-ratio:620 / 392"><div class="bm-stage" style="width:620px;height:392px;transform:scale(1)"><svg class="bm-edges" width="620" height="392" viewBox="0 0 620 392" aria-hidden="true"><path class="bm-edge" style="animation-delay:1s" pathLength="1" d="M 135 111 C 135 148 165 168 165 210"></path><path class="bm-edge" style="animation-delay:1.15s" pathLength="1" d="M 244 78 C 300 78 320 150 374 150"></path><path class="bm-edge bm-edge-tail" style="animation-delay:1.7s" pathLength="1" d="M 596 205 C 596 230 576 242 558 252"></path></svg><div class="bm-node bm-node-draft" style="left:26px;top:38px;width:218px;animation-delay:.45s"><div class="bm-title">Magic-link sign-in</div><div class="bm-role">Email a one-time link, no passwords</div><div class="bm-chiprow"><span class="chip chip-sky">feature</span><span class="chip chip-violet">auth</span><span class="chip chip-amber" style="margin-left:auto">Pending</span></div></div><div class="bm-node bm-node-draft" style="left:70px;top:210px;width:190px;animation-delay:.75s"><div class="bm-title">Issue + verify token</div><div class="bm-chiprow"><span class="chip chip-zinc">sub-task</span><span class="chip chip-amber" style="margin-left:auto">Pending</span></div></div><div class="bm-table" style="left:374px;top:96px;width:222px;animation-delay:.6s"><div class="bm-table-head"><span>auth_tokens</span><span class="chip chip-green">new</span></div><div class="bm-trow"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-key-round" aria-hidden="true" style="color:#fde68a"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"></path><circle cx="16.5" cy="7.5" r=".5" fill="currentColor"></circle></svg><span>id</span><span class="t">uuid</span></div><div class="bm-trow"><span style="width:9px"></span><span>token_hash</span><span class="t">text</span></div><div class="bm-trow"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 lucide-link-2" aria-hidden="true" style="color:#7dd3fc"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg><span>user_id</span><span class="t">→ users</span></div><div class="bm-trow"><span style="width:9px"></span><span>expires_at</span><span class="t">timestamp</span></div></div><span class="bm-dot" style="left:135px;top:111px;animation-delay:1s"></span><span class="bm-dot" style="left:165px;top:210px;animation-delay:1.3s"></span><span class="bm-dot" style="left:244px;top:78px;animation-delay:1.15s"></span><span class="bm-dot" style="left:374px;top:150px;animation-delay:1.45s"></span><span class="bm-pin" style="left:596px;top:201px;animation-delay:1.55s">1</span><div class="bm-bubble" style="left:356px;top:252px;width:226px;animation-delay:1.85s"><div class="lab">annotation · you</div><div class="txt">Expire links after 15 min, not 24 h.</div></div><div class="bm-bar" style="animation-delay:2.15s"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles" aria-hidden="true" style="color:#6ee7b7"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg><span class="ready">plan ready · waiting for your verdict</span><span class="bm-btn bm-btn-approve"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg> Approve</span><span class="bm-btn bm-btn-ghost"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-plus" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path><path d="M12 8v6"></path><path d="M9 11h6"></path></svg> Feedback</span><span class="bm-btn bm-btn-ghost"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2 lucide-trash-2" aria-hidden="true"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg> Discard</span></div></div></div></div></div></div><a href="#how" class="w-load mx-auto mt-12 flex w-fit flex-col items-center gap-2 w-muted transition-colors hover:text-foreground md:mt-20" style="animation-delay:.6s"><span class="w-mono w-eyebrow">The loop</span><svg class="w-cue" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></a></section><section id="how" class="px-6 py-16 md:py-24"><div class="mx-auto max-w-5xl"><div class="w-reveal mb-14 text-center"><p class="w-mono w-eyebrow w-signal mb-4">The loop</p><h2 class="text-[clamp(1.9rem,4vw,2.75rem)] font-semibold tracking-tight">Propose. Review. Verdict. Repeat.</h2><div class="w-accent-line mx-auto mt-6 h-px w-40"></div></div><div class="grid gap-10 md:grid-cols-3"><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">01</p><h3 class="mb-2 font-semibold">Propose</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">Ask the session in your terminal to plan a feature. It calls<!-- --> <span class="w-mono text-foreground">beacon_propose_plan</span> and blocks until you decide. No fire-and-forget.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span class="w-signal">›</span> plan: magic-link sign-in</code></div><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">02</p><h3 class="mb-2 font-semibold">Review</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">The plan renders as feature nodes, tables, and endpoints. Select any passage to annotate it, mark it for deletion, or edit the boards directly.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span class="text-foreground">/plan</span> · 2 features · 1 table</code></div><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">03</p><h3 class="mb-2 font-semibold">Verdict</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">Approve persists the drafts. Feedback sends your notes back and the agent re-plans. Discard throws it away. Every plan is archived either way.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span style="color:#6ee7b7">✓ approved</span> · drafts persisted</code></div></div><p class="w-reveal w-mono w-muted mt-10 text-center text-[0.78rem]">feedback sends the agent back to <span class="w-signal">01</span> · approval persists the drafts</p></div></section><section class="px-6 py-16 md:py-20"><div class="mx-auto max-w-[88rem]"><div class="w-reveal mb-12 text-center"><p class="w-mono w-eyebrow w-signal mb-4">The surfaces</p><h2 class="text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight">Everything the agent plans, drawn</h2></div><div class="w-reveal"><div><div class="mb-9 flex flex-wrap items-center justify-center gap-2"><button class="tour-tab" data-active="true">Roadmap</button><button class="tour-tab" data-active="false">Database</button><button class="tour-tab" data-active="false">Architecture</button><button class="tour-tab" data-active="false">Files</button></div><div class="tour-fade mx-auto w-full max-w-[1360px]"><div class="bm-window glass"><div class="bm-tabs"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-3 text-[0.72rem] w-muted">/map · roadmap</span><span class="w-mono ml-auto hidden text-[0.66rem] text-muted-foreground/70 sm:block">drag the cards →</span></div><div class="bm-rf" style="height:600px"><div data-testid="rf__wrapper" style="width:100%;height:100%;overflow:hidden;position:relative;z-index:0" class="react-flow dark" role="application"><div class="react-flow__renderer" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__pane draggable" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__viewport xyflow__viewport react-flow__container" style="transform:translate(0px,0px) scale(1)"><div class="react-flow__edges"></div><div class="react-flow__edgelabel-renderer"></div><div class="react-flow__nodes" style="position:absolute;width:100%;height:100%;top:0;left:0"></div><div class="react-flow__viewport-portal"></div></div></div></div><svg class="react-flow__background" style="position:absolute;width:100%;height:100%;top:0;left:0;--xy-background-pattern-color-props:rgba(255,255,255,0.10)" data-testid="rf__background"><pattern id="pattern-1" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" patternTransform="translate(-11,-11)"><circle cx="0.5" cy="0.5" r="0.5" class="react-flow__background-pattern dots"></circle></pattern><rect x="0" y="0" width="100%" height="100%" fill="url(#pattern-1)"></rect></svg><div id="react-flow__node-desc-1" style="display:none">Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.</div><div id="react-flow__edge-desc-1" style="display:none">Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.</div><div id="react-flow__aria-live-1" aria-live="assertive" aria-atomic="true" style="position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(0px, 0px, 0px, 0px);clip-path:inset(100%)"></div></div></div></div></div><div class="tour-fade mx-auto mt-6 max-w-2xl text-center"><p class="text-[1.02rem] font-semibold tracking-tight"><span class="w-mono text-[0.9rem] w-signal">/map</span><span class="mx-2 w-muted">·</span>Steer the agent&#x27;s work order</p><p class="w-muted mt-1.5 text-[0.92rem] leading-relaxed">Features, sub-tasks and dependencies as a graph — priority on the border, a layer stripe for frontend or backend, and the work-on-next ring marking the agent&#x27;s next move.</p></div></div></div></div></section><section id="quickstart" class="px-6 py-16 md:py-24"><div class="mx-auto max-w-3xl"><div class="w-reveal mb-12 text-center"><p class="w-mono w-eyebrow w-signal mb-4">Quickstart</p><h2 class="text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight">Five lines to your first approved plan</h2></div><div class="w-reveal glass overflow-hidden rounded-lg"><div class="flex items-center gap-2 border-b px-4 py-3" style="border-color:var(--border)"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-2 text-[0.72rem] w-muted">your-repo — terminal</span></div><div class="px-5 py-4"><div class="ql"><code class="cmd w-scrollbar-none"><span class="w-signal select-none">$ </span>curl -fsSL https://www.trybeacon.sh/install.sh | sh</code><span class="note">01 · one binary, nothing to configure</span><button class="glass-soft w-hover grid h-8 w-8 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy w-muted" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="ql"><code class="cmd"><span class="w-signal select-none">$ </span>cd your-repo &amp;&amp; beacon</code><span class="note">02 · registers the repo, opens the panel</span></div><div class="ql"><code class="cmd"><span class="w-signal select-none">› </span>/beacon-init</code><span class="note">03 · maps architecture, schema, roadmap</span></div><div class="ql"><code class="cmd"><span class="w-signal select-none">› </span>plan: magic-link sign-in</code><span class="note">04 · the plan streams onto /plan</span></div><div class="ql"><code class="cmd"><span class="select-none" style="color:#6ee7b7">✓<!-- --> </span>approve · feedback · discard</code><span class="note">05 · the verdict returns to your session</span></div></div></div></div><div class="mx-auto mt-16 max-w-5xl"><div class="w-reveal glass grid overflow-hidden rounded-lg md:grid-cols-3 md:divide-x md:divide-y-0 divide-y" style="border-color:var(--border)"><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Reuse first</p><p class="w-muted text-[0.9rem] leading-relaxed">Beacon blocks duplicate features. Check the map before you create.</p></div><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Design data first</p><p class="w-muted text-[0.9rem] leading-relaxed">Tables and endpoints before code. Review the schema as a draft on<!-- --> <span class="text-foreground">/db</span>.</p></div><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Close every loop</p><p class="w-muted text-[0.9rem] leading-relaxed">Register finished work so the map stays accurate next session.</p></div></div></div></section><footer class="px-6 pb-12 pt-8"><div class="mx-auto max-w-5xl"><div class="w-accent-line mb-8 h-px w-full opacity-60"></div><div class="flex flex-col items-center justify-between gap-5 md:flex-row"><div class="flex items-center gap-2.5"><svg width="26" height="26" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><div><p class="font-semibold leading-tight">Beacon</p><p class="w-mono w-muted text-[0.72rem]">the visual planning surface for your terminal</p></div></div><nav class="flex items-center gap-6 text-sm w-muted"><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="#" class="transition-colors hover:text-foreground">Changelog</a><a href="https://github.com/wenzorithelly/beacon/blob/main/LICENSE" target="_blank" rel="noreferrer" class="transition-colors hover:text-foreground">Apache 2.0</a></nav><p class="w-mono w-muted text-[0.72rem]">Created by<!-- --> <a href="https://www.instagram.com/wenzorithelly/" target="_blank" rel="noreferrer" class="w-signal inline-flex items-center gap-1 underline decoration-dotted underline-offset-2 transition-opacity hover:opacity-80"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>Wenzo</a><span class="mx-2 opacity-40">·</span>© 2026 Beacon</p></div></div></footer></div><!--$--><!--/$--></main><div aria-hidden="true" class="fixed inset-y-0 right-0 z-40 flex transition-transform duration-300 ease-out pointer-events-none translate-x-full"><div class="glass relative isolate overflow-hidden flex h-full w-[420px] flex-col rounded-l-2xl border-l border-border"><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit]" style="background:radial-gradient(90% 60% at 0% 0%, oklch(1 0 0 / 0.04), transparent 42%)"></span><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit] opacity-[0.035] mix-blend-overlay" style="background-image:url(&quot;data:image/svg+xml,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; width=&#x27;120&#x27; height=&#x27;120&#x27;%3E%3Cfilter id=&#x27;n&#x27;%3E%3CfeTurbulence type=&#x27;fractalNoise&#x27; baseFrequency=&#x27;0.85&#x27; numOctaves=&#x27;2&#x27; stitchTiles=&#x27;stitch&#x27;/%3E%3C/filter%3E%3Crect width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; filter=&#x27;url(%23n)&#x27;/%3E%3C/svg%3E&quot;);background-size:120px 120px"></span><div class="flex items-center gap-2 border-b border-border px-3 py-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4 text-[var(--accent-2,#ff7a45)]" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg><span class="text-sm font-semibold tracking-tight">Notes</span><span class="ml-auto"></span><button type="button" aria-label="New note" title="New note" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button type="button" aria-label="Close notes" title="Close" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x size-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div class="max-h-44 shrink-0 overflow-y-auto border-b border-border p-1.5"><p class="px-2 py-3 text-[13px] text-muted-foreground">No notes yet. Hit <span class="text-foreground">+</span> to start one.</p></div><div class="flex flex-1 items-center justify-center p-6 text-center text-[13px] text-muted-foreground">Select a note, or create one. Then <span class="px-1 text-foreground">@</span>-mention it in your terminal to turn it into features.</div></div></div><script src="/_next/static/chunks/webpack-62aea110c2700d74.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:I[64777,[],\"HTTPAccessFallbackBoundary\"]\n2:I[99589,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-0378818fce5a4dc5.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4888\",\"static/chunks/4888-911c0da3c2d785d2.js\",\"2114\",\"static/chunks/2114-74736df56930b46c.js\",\"5547\",\"static/chunks/5547-2c07851028a9033a.js\",\"7177\",\"static/chunks/app/layout-d71bf93c16d42bc0.js\"],\"AppShell\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:\"$Sreact.fragment\"\n6:I[21904,[\"3862\",\"static/chunks/1a258343-954e0e6619585d3c.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4888\",\"static/chunks/4888-911c0da3c2d785d2.js\",\"8710\",\"static/chunks/8710-6b2685272a1e1ff7.js\",\"8974\",\"static/chunks/app/page-62c53092bdab1224.js\"],\"Landing\"]\n7:I[90484,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/e02ab5db9ff2dca2.css\",\"style\"]\n:HL[\"/_next/static/css/664b23c4403cdb49.css\",\"style\"]\n:HL[\"/_next/static/css/008a05b0ad6b854a.css\",\"style\"]\n:HL[\"/_next/static/css/53e84df868515cf7.css\",\"style\"]\n:HL[\"/_next/static/css/83755b1f39ccf91d.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}],\"modal\":[\"__DEFAULT__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$L1\",\"c\",{\"notFound\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e02ab5db9ff2dca2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/664b23c4403cdb49.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"dark\",\"data-surface\":\"glass\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var d=document.documentElement,t=localStorage.getItem(\\\"beacon-theme\\\")||\\\"dark\\\",s=localStorage.getItem(\\\"beacon-surface\\\")||\\\"glass\\\",m=t==='dark'||(t==='auto'\u0026\u0026window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();\"}}],[\"$\",\"$L2\",null,{\"modal\":\"$undefined\",\"repo\":\"beacon\",\"appVersion\":\"0.1.88\",\"children\":[[],[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0\"]]}]]}]}]],\"children\":[\"$0:f:0:1:0:props:notFound:0\",[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"dark\",\"data-surface\":\"glass\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var d=document.documentElement,t=localStorage.getItem(\\\"beacon-theme\\\")||\\\"dark\\\",s=localStorage.getItem(\\\"beacon-surface\\\")||\\\"glass\\\",m=t==='dark'||(t==='auto'\u0026\u0026window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();\"}}],[\"$\",\"$L2\",null,{\"modal\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"modal\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],\"repo\":\"beacon\",\"appVersion\":\"0.1.88\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]]}],{\"children\":[[\"$\",\"$5\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/008a05b0ad6b854a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/53e84df868515cf7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/83755b1f39ccf91d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null],\"modal\":[[\"$\",\"$5\",\"c\",{\"children\":[null,null,null]}],{},null,false,null]},null,false,null],[\"$\",\"$5\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"LKQRsrATBF5LppZpLPoZ6\"}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n9:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Beacon — the visual planning surface for the coding agent in your terminal\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?bb93a1375ed3c298\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?f9d64651576bd776\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$Lf\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" data-theme="dark" data-surface="glass" class="dark __variable_246ccd __variable_c29908 h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/7d4881bb7e1bf84d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/e02ab5db9ff2dca2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/56890131dbc6daff.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/008a05b0ad6b854a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/53e84df868515cf7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/83755b1f39ccf91d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-62aea110c2700d74.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-cef5038dc7aa126a.js" async=""></script><script src="/_next/static/chunks/main-app-1a32dc335629e4e4.js" async=""></script><script src="/_next/static/chunks/70e0d97a-bbb0ec05083da54f.js" async=""></script><script src="/_next/static/chunks/54a60aa6-0378818fce5a4dc5.js" async=""></script><script src="/_next/static/chunks/8500-f62a38ff68ab7f42.js" async=""></script><script src="/_next/static/chunks/4888-911c0da3c2d785d2.js" async=""></script><script src="/_next/static/chunks/2114-74736df56930b46c.js" async=""></script><script src="/_next/static/chunks/5547-2c07851028a9033a.js" async=""></script><script src="/_next/static/chunks/app/layout-a8bb07fb86893add.js" async=""></script><script src="/_next/static/chunks/1a258343-954e0e6619585d3c.js" async=""></script><script src="/_next/static/chunks/8710-6b2685272a1e1ff7.js" async=""></script><script src="/_next/static/chunks/app/page-62c53092bdab1224.js" async=""></script><meta name="next-size-adjust" content=""/><title>Beacon — the visual planning surface for the coding agent in your terminal</title><meta name="description" content="Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo."/><link rel="icon" href="/icon.svg?bb93a1375ed3c298" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?f9d64651576bd776" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><script>(function(){try{var d=document.documentElement,t=localStorage.getItem("beacon-theme")||"dark",s=localStorage.getItem("beacon-surface")||"glass",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();</script><header data-app-nav="true" class="pointer-events-none fixed left-3 top-3 z-30"><div class="glass pointer-events-auto flex h-10 items-center gap-1 rounded-full pl-3 pr-1.5"><div class="flex items-center gap-1"><a class="mr-1 flex items-center gap-2 text-sm font-semibold tracking-tight" href="/"><svg width="18" height="18" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><span class="hidden lg:inline">Beacon</span></a><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><span class="font-mono text-xs text-muted-foreground">· <!-- -->beacon</span><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><nav class="flex items-center gap-0.5 text-sm"><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/plan">Plans</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/map">Map</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/learn">Learn</a><a class="rounded-full px-3 py-1 text-[13px] tracking-tight transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground" href="/settings">Settings</a></nav><span aria-hidden="true" class="mx-1 h-5 w-px bg-border"></span><button type="button" aria-pressed="false" aria-label="Notes" title="Notes" class="flex items-center justify-center rounded-full p-1.5 transition-colors text-muted-foreground hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg></button></div></div></header><main class="flex flex-1 flex-col"><div class="welcome"><div class="welcome-bg" aria-hidden="true"></div><header class="fixed inset-x-0 top-0 z-50"><div class="mx-auto max-w-6xl px-6"><div class="w-load mt-4 glass flex items-center justify-between rounded-full py-2.5 pl-5 pr-3" style="animation-delay:.05s"><a class="flex items-center gap-2.5" href="#top"><svg width="20" height="20" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><span class="font-semibold tracking-tight">Beacon</span></a><nav class="flex items-center gap-4 text-sm w-muted sm:gap-6"><a href="#how" class="transition-colors hover:text-foreground">The loop</a><a href="#quickstart" class="hidden transition-colors hover:text-foreground sm:block">Quickstart</a><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="https://github.com/wenzorithelly/beacon" target="_blank" rel="noreferrer" class="glass-soft w-hover inline-flex items-center gap-2 rounded-full py-1.5 pl-3 pr-3.5 text-foreground" aria-label="Beacon on GitHub"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg><span class="hidden sm:inline">GitHub</span></a></nav></div></div></header><span id="top"></span><section class="px-6 pb-16 pt-20 md:pt-24"><div class="mx-auto grid max-w-6xl items-center gap-12 lg:grid-cols-[1fr_1.1fr]"><div class="min-w-0"><div class="w-load glass-soft mb-6 inline-flex items-center gap-2 rounded-full px-3.5 py-1.5" style="animation-delay:.12s"><span class="w-live h-1.5 w-1.5 rounded-full" style="background:#ff7a45;box-shadow:0 0 8px #ff7a45"></span><span class="w-mono w-eyebrow w-muted">See your codebase · steer your agent</span></div><h1 class="w-load font-semibold text-[clamp(2.2rem,4.6vw,3.4rem)]" style="letter-spacing:-0.025em;line-height:1.06;animation-delay:.18s">Give your coding agent <span class="w-signal">eyes</span> and hands.</h1><p class="w-load w-muted mt-5 max-w-md text-[1.02rem] leading-relaxed" style="animation-delay:.26s">The session in your terminal is the brain. Beacon is where its plans become visible: features, tables, and endpoints on a canvas you annotate, edit, and approve with one click.</p><div class="w-load mt-8" style="animation-delay:.34s"><div class="glass flex max-w-lg items-center gap-3 rounded-lg py-2.5 pl-4 pr-2"><code class="w-mono w-scrollbar-none min-w-0 flex-1 overflow-x-auto whitespace-nowrap text-[0.85rem]"><span class="w-signal select-none">$</span><span class="ml-2">curl -fsSL https://www.trybeacon.sh/install.sh | sh</span><span class="w-caret ml-1 inline-block h-3.5 w-1.5 align-middle" style="background:#ff7a45"></span></code><button class="glass-soft w-hover grid h-8 w-8 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy w-muted" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><p class="w-mono w-muted mt-3 text-[0.78rem]">then run <span class="text-foreground">beacon</span> inside any repo</p></div><div class="w-load mt-9 flex flex-wrap items-center gap-x-5 gap-y-2" style="animation-delay:.42s"><span class="w-mono w-eyebrow w-muted">Works with</span><span class="flex items-center gap-2 text-sm text-foreground/90"><svg width="15" height="15" viewBox="0 0 24 24" fill="#D97757" aria-hidden="true"><path d="m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z"></path></svg> Claude Code</span><span class="flex items-center gap-2 text-sm text-foreground/90"><svg width="15" height="15" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"></path></svg> Codex</span></div></div><div class="w-load min-w-0" style="animation-delay:.3s"><div class="bm-window glass"><div class="bm-tabs"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="bm-tab active ml-2">Roadmap</span><span class="bm-tab">Database</span><span class="w-mono ml-auto hidden text-[0.66rem] w-muted min-[400px]:block">/plan · review</span></div><div class="bm-canvas" style="aspect-ratio:620 / 392"><div class="bm-stage" style="width:620px;height:392px;transform:scale(1)"><svg class="bm-edges" width="620" height="392" viewBox="0 0 620 392" aria-hidden="true"><path class="bm-edge" style="animation-delay:1s" pathLength="1" d="M 135 111 C 135 148 165 168 165 210"></path><path class="bm-edge" style="animation-delay:1.15s" pathLength="1" d="M 244 78 C 300 78 320 150 374 150"></path><path class="bm-edge bm-edge-tail" style="animation-delay:1.7s" pathLength="1" d="M 596 205 C 596 230 576 242 558 252"></path></svg><div class="bm-node bm-node-draft" style="left:26px;top:38px;width:218px;animation-delay:.45s"><div class="bm-title">Magic-link sign-in</div><div class="bm-role">Email a one-time link, no passwords</div><div class="bm-chiprow"><span class="chip chip-sky">feature</span><span class="chip chip-violet">auth</span><span class="chip chip-amber" style="margin-left:auto">Pending</span></div></div><div class="bm-node bm-node-draft" style="left:70px;top:210px;width:190px;animation-delay:.75s"><div class="bm-title">Issue + verify token</div><div class="bm-chiprow"><span class="chip chip-zinc">sub-task</span><span class="chip chip-amber" style="margin-left:auto">Pending</span></div></div><div class="bm-table" style="left:374px;top:96px;width:222px;animation-delay:.6s"><div class="bm-table-head"><span>auth_tokens</span><span class="chip chip-green">new</span></div><div class="bm-trow"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-key-round" aria-hidden="true" style="color:#fde68a"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"></path><circle cx="16.5" cy="7.5" r=".5" fill="currentColor"></circle></svg><span>id</span><span class="t">uuid</span></div><div class="bm-trow"><span style="width:9px"></span><span>token_hash</span><span class="t">text</span></div><div class="bm-trow"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 lucide-link-2" aria-hidden="true" style="color:#7dd3fc"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg><span>user_id</span><span class="t">→ users</span></div><div class="bm-trow"><span style="width:9px"></span><span>expires_at</span><span class="t">timestamp</span></div></div><span class="bm-dot" style="left:135px;top:111px;animation-delay:1s"></span><span class="bm-dot" style="left:165px;top:210px;animation-delay:1.3s"></span><span class="bm-dot" style="left:244px;top:78px;animation-delay:1.15s"></span><span class="bm-dot" style="left:374px;top:150px;animation-delay:1.45s"></span><span class="bm-pin" style="left:596px;top:201px;animation-delay:1.55s">1</span><div class="bm-bubble" style="left:356px;top:252px;width:226px;animation-delay:1.85s"><div class="lab">annotation · you</div><div class="txt">Expire links after 15 min, not 24 h.</div></div><div class="bm-bar" style="animation-delay:2.15s"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles" aria-hidden="true" style="color:#6ee7b7"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg><span class="ready">plan ready · waiting for your verdict</span><span class="bm-btn bm-btn-approve"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg> Approve</span><span class="bm-btn bm-btn-ghost"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-plus" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path><path d="M12 8v6"></path><path d="M9 11h6"></path></svg> Feedback</span><span class="bm-btn bm-btn-ghost"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2 lucide-trash-2" aria-hidden="true"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg> Discard</span></div></div></div></div></div></div><a href="#how" class="w-load mx-auto mt-12 flex w-fit flex-col items-center gap-2 w-muted transition-colors hover:text-foreground md:mt-20" style="animation-delay:.6s"><span class="w-mono w-eyebrow">The loop</span><svg class="w-cue" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></a></section><section id="how" class="px-6 py-16 md:py-24"><div class="mx-auto max-w-5xl"><div class="w-reveal mb-14 text-center"><p class="w-mono w-eyebrow w-signal mb-4">The loop</p><h2 class="text-[clamp(1.9rem,4vw,2.75rem)] font-semibold tracking-tight">Propose. Review. Verdict. Repeat.</h2><div class="w-accent-line mx-auto mt-6 h-px w-40"></div></div><div class="grid gap-10 md:grid-cols-3"><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">01</p><h3 class="mb-2 font-semibold">Propose</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">Ask the session in your terminal to plan a feature. It calls<!-- --> <span class="w-mono text-foreground">beacon_propose_plan</span> and blocks until you decide. No fire-and-forget.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span class="w-signal">›</span> plan: magic-link sign-in</code></div><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">02</p><h3 class="mb-2 font-semibold">Review</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">The plan renders as feature nodes, tables, and endpoints. Select any passage to annotate it, mark it for deletion, or edit the boards directly.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span class="text-foreground">/plan</span> · 2 features · 1 table</code></div><div class="loop-card w-reveal glass w-hover rounded-lg p-6"><p class="w-mono w-eyebrow w-signal mb-3">03</p><h3 class="mb-2 font-semibold">Verdict</h3><p class="w-muted mb-4 text-[0.92rem] leading-relaxed">Approve persists the drafts. Feedback sends your notes back and the agent re-plans. Discard throws it away. Every plan is archived either way.</p><code class="w-mono glass-soft inline-block rounded-md px-3 py-1.5 text-[0.74rem]"><span style="color:#6ee7b7">✓ approved</span> · drafts persisted</code></div></div><p class="w-reveal w-mono w-muted mt-10 text-center text-[0.78rem]">feedback sends the agent back to <span class="w-signal">01</span> · approval persists the drafts</p></div></section><section class="px-6 py-16 md:py-20"><div class="mx-auto max-w-[88rem]"><div class="w-reveal mb-12 text-center"><p class="w-mono w-eyebrow w-signal mb-4">The surfaces</p><h2 class="text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight">Everything the agent plans, drawn</h2></div><div class="w-reveal"><div><div class="mb-9 flex flex-wrap items-center justify-center gap-2"><button class="tour-tab" data-active="true">Roadmap</button><button class="tour-tab" data-active="false">Database</button><button class="tour-tab" data-active="false">Architecture</button><button class="tour-tab" data-active="false">Files</button></div><div class="tour-fade mx-auto w-full max-w-[1360px]"><div class="bm-window glass"><div class="bm-tabs"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-3 text-[0.72rem] w-muted">/map · roadmap</span><span class="w-mono ml-auto hidden text-[0.66rem] text-muted-foreground/70 sm:block">drag the cards →</span></div><div class="bm-rf" style="height:600px"><div data-testid="rf__wrapper" style="width:100%;height:100%;overflow:hidden;position:relative;z-index:0" class="react-flow dark" role="application"><div class="react-flow__renderer" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__pane draggable" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__viewport xyflow__viewport react-flow__container" style="transform:translate(0px,0px) scale(1)"><div class="react-flow__edges"></div><div class="react-flow__edgelabel-renderer"></div><div class="react-flow__nodes" style="position:absolute;width:100%;height:100%;top:0;left:0"></div><div class="react-flow__viewport-portal"></div></div></div></div><svg class="react-flow__background" style="position:absolute;width:100%;height:100%;top:0;left:0;--xy-background-pattern-color-props:rgba(255,255,255,0.10)" data-testid="rf__background"><pattern id="pattern-1" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" patternTransform="translate(-11,-11)"><circle cx="0.5" cy="0.5" r="0.5" class="react-flow__background-pattern dots"></circle></pattern><rect x="0" y="0" width="100%" height="100%" fill="url(#pattern-1)"></rect></svg><div id="react-flow__node-desc-1" style="display:none">Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.</div><div id="react-flow__edge-desc-1" style="display:none">Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.</div><div id="react-flow__aria-live-1" aria-live="assertive" aria-atomic="true" style="position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(0px, 0px, 0px, 0px);clip-path:inset(100%)"></div></div></div></div></div><div class="tour-fade mx-auto mt-6 max-w-2xl text-center"><p class="text-[1.02rem] font-semibold tracking-tight"><span class="w-mono text-[0.9rem] w-signal">/map</span><span class="mx-2 w-muted">·</span>Steer the agent&#x27;s work order</p><p class="w-muted mt-1.5 text-[0.92rem] leading-relaxed">Features, sub-tasks and dependencies as a graph — priority on the border, a layer stripe for frontend or backend, and the work-on-next ring marking the agent&#x27;s next move.</p></div></div></div></div></section><section id="quickstart" class="px-6 py-16 md:py-24"><div class="mx-auto max-w-3xl"><div class="w-reveal mb-12 text-center"><p class="w-mono w-eyebrow w-signal mb-4">Quickstart</p><h2 class="text-[clamp(1.6rem,3.4vw,2.25rem)] font-semibold tracking-tight">Five lines to your first approved plan</h2></div><div class="w-reveal glass overflow-hidden rounded-lg"><div class="flex items-center gap-2 border-b px-4 py-3" style="border-color:var(--border)"><span class="h-3 w-3 rounded-full" style="background:#ff7a45;box-shadow:0 0 7px rgba(255,122,69,.7)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="h-3 w-3 rounded-full" style="background:oklch(1 0 0 / .16)"></span><span class="w-mono ml-2 text-[0.72rem] w-muted">your-repo — terminal</span></div><div class="px-5 py-4"><div class="ql"><code class="cmd w-scrollbar-none"><span class="w-signal select-none">$ </span>curl -fsSL https://www.trybeacon.sh/install.sh | sh</code><span class="note">01 · one binary, nothing to configure</span><button class="glass-soft w-hover grid h-8 w-8 shrink-0 place-items-center rounded-md" aria-label="Copy install command"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy w-muted" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div><div class="ql"><code class="cmd"><span class="w-signal select-none">$ </span>cd your-repo &amp;&amp; beacon</code><span class="note">02 · registers the repo, opens the panel</span></div><div class="ql"><code class="cmd"><span class="w-signal select-none">› </span>/beacon-init</code><span class="note">03 · maps architecture, schema, roadmap</span></div><div class="ql"><code class="cmd"><span class="w-signal select-none">› </span>plan: magic-link sign-in</code><span class="note">04 · the plan streams onto /plan</span></div><div class="ql"><code class="cmd"><span class="select-none" style="color:#6ee7b7">✓<!-- --> </span>approve · feedback · discard</code><span class="note">05 · the verdict returns to your session</span></div></div></div></div><div class="mx-auto mt-16 max-w-5xl"><div class="w-reveal glass grid overflow-hidden rounded-lg md:grid-cols-3 md:divide-x md:divide-y-0 divide-y" style="border-color:var(--border)"><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Reuse first</p><p class="w-muted text-[0.9rem] leading-relaxed">Beacon blocks duplicate features. Check the map before you create.</p></div><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Design data first</p><p class="w-muted text-[0.9rem] leading-relaxed">Tables and endpoints before code. Review the schema as a draft on<!-- --> <span class="text-foreground">/db</span>.</p></div><div class="p-6" style="border-color:oklch(1 0 0 / 0.07)"><p class="w-mono w-eyebrow w-signal mb-2.5">Close every loop</p><p class="w-muted text-[0.9rem] leading-relaxed">Register finished work so the map stays accurate next session.</p></div></div></div></section><footer class="px-6 pb-12 pt-8"><div class="mx-auto max-w-5xl"><div class="w-accent-line mb-8 h-px w-full opacity-60"></div><div class="flex flex-col items-center justify-between gap-5 md:flex-row"><div class="flex items-center gap-2.5"><svg width="26" height="26" viewBox="20 22 56 56" fill="none" class="text-foreground" aria-hidden="true"><path d="M48 33 L72.5 73 L23.5 73 Z" fill="none" stroke="var(--accent-2, #ff7a45)" stroke-width="7" stroke-linejoin="round" stroke-linecap="round"></path><circle cx="48" cy="29.5" r="7" fill="var(--accent-2, #ff7a45)"></circle></svg><div><p class="font-semibold leading-tight">Beacon</p><p class="w-mono w-muted text-[0.72rem]">the visual planning surface for your terminal</p></div></div><nav class="flex items-center gap-6 text-sm w-muted"><a href="/docs" class="transition-colors hover:text-foreground">Docs</a><a href="#" class="transition-colors hover:text-foreground">Changelog</a><a href="https://github.com/wenzorithelly/beacon/blob/main/LICENSE" target="_blank" rel="noreferrer" class="transition-colors hover:text-foreground">Apache 2.0</a></nav><p class="w-mono w-muted text-[0.72rem]">Created by<!-- --> <a href="https://www.instagram.com/wenzorithelly/" target="_blank" rel="noreferrer" class="w-signal inline-flex items-center gap-1 underline decoration-dotted underline-offset-2 transition-opacity hover:opacity-80"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>Wenzo</a><span class="mx-2 opacity-40">·</span>© 2026 Beacon</p></div></div></footer></div><!--$--><!--/$--></main><div aria-hidden="true" class="fixed inset-y-0 right-0 z-40 flex transition-transform duration-300 ease-out pointer-events-none translate-x-full"><div class="glass relative isolate overflow-hidden flex h-full w-[420px] flex-col rounded-l-2xl border-l border-border"><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit]" style="background:radial-gradient(90% 60% at 0% 0%, oklch(1 0 0 / 0.04), transparent 42%)"></span><span aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10 rounded-[inherit] opacity-[0.035] mix-blend-overlay" style="background-image:url(&quot;data:image/svg+xml,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; width=&#x27;120&#x27; height=&#x27;120&#x27;%3E%3Cfilter id=&#x27;n&#x27;%3E%3CfeTurbulence type=&#x27;fractalNoise&#x27; baseFrequency=&#x27;0.85&#x27; numOctaves=&#x27;2&#x27; stitchTiles=&#x27;stitch&#x27;/%3E%3C/filter%3E%3Crect width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; filter=&#x27;url(%23n)&#x27;/%3E%3C/svg%3E&quot;);background-size:120px 120px"></span><div class="flex items-center gap-2 border-b border-border px-3 py-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sticky-note size-4 text-[var(--accent-2,#ff7a45)]" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z"></path><path d="M15 3v5a1 1 0 0 0 1 1h5"></path></svg><span class="text-sm font-semibold tracking-tight">Notes</span><span class="ml-auto"></span><button type="button" aria-label="New note" title="New note" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button type="button" aria-label="Close notes" title="Close" class="rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-[var(--ink-hover)] hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x size-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div class="max-h-44 shrink-0 overflow-y-auto border-b border-border p-1.5"><p class="px-2 py-3 text-[13px] text-muted-foreground">No notes yet. Hit <span class="text-foreground">+</span> to start one.</p></div><div class="flex flex-1 items-center justify-center p-6 text-center text-[13px] text-muted-foreground">Select a note, or create one. Then <span class="px-1 text-foreground">@</span>-mention it in your terminal to turn it into features.</div></div></div><script src="/_next/static/chunks/webpack-62aea110c2700d74.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:I[64777,[],\"HTTPAccessFallbackBoundary\"]\n2:I[99589,[\"5004\",\"static/chunks/70e0d97a-bbb0ec05083da54f.js\",\"277\",\"static/chunks/54a60aa6-0378818fce5a4dc5.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4888\",\"static/chunks/4888-911c0da3c2d785d2.js\",\"2114\",\"static/chunks/2114-74736df56930b46c.js\",\"5547\",\"static/chunks/5547-2c07851028a9033a.js\",\"7177\",\"static/chunks/app/layout-a8bb07fb86893add.js\"],\"AppShell\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:\"$Sreact.fragment\"\n6:I[21904,[\"3862\",\"static/chunks/1a258343-954e0e6619585d3c.js\",\"8500\",\"static/chunks/8500-f62a38ff68ab7f42.js\",\"4888\",\"static/chunks/4888-911c0da3c2d785d2.js\",\"8710\",\"static/chunks/8710-6b2685272a1e1ff7.js\",\"8974\",\"static/chunks/app/page-62c53092bdab1224.js\"],\"Landing\"]\n7:I[90484,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7d4881bb7e1bf84d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/e02ab5db9ff2dca2.css\",\"style\"]\n:HL[\"/_next/static/css/56890131dbc6daff.css\",\"style\"]\n:HL[\"/_next/static/css/008a05b0ad6b854a.css\",\"style\"]\n:HL[\"/_next/static/css/53e84df868515cf7.css\",\"style\"]\n:HL[\"/_next/static/css/83755b1f39ccf91d.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}],\"modal\":[\"__DEFAULT__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$L1\",\"c\",{\"notFound\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e02ab5db9ff2dca2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/56890131dbc6daff.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"dark\",\"data-surface\":\"glass\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var d=document.documentElement,t=localStorage.getItem(\\\"beacon-theme\\\")||\\\"dark\\\",s=localStorage.getItem(\\\"beacon-surface\\\")||\\\"glass\\\",m=t==='dark'||(t==='auto'\u0026\u0026window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();\"}}],[\"$\",\"$L2\",null,{\"modal\":\"$undefined\",\"repo\":\"beacon\",\"appVersion\":\"0.1.90\",\"children\":[[],[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0\"]]}]]}]}]],\"children\":[\"$0:f:0:1:0:props:notFound:0\",[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-theme\":\"dark\",\"data-surface\":\"glass\",\"className\":\"dark __variable_246ccd __variable_c29908 h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-background text-foreground\",\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var d=document.documentElement,t=localStorage.getItem(\\\"beacon-theme\\\")||\\\"dark\\\",s=localStorage.getItem(\\\"beacon-surface\\\")||\\\"glass\\\",m=t==='dark'||(t==='auto'\u0026\u0026window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();\"}}],[\"$\",\"$L2\",null,{\"modal\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"modal\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],\"repo\":\"beacon\",\"appVersion\":\"0.1.90\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]]}],{\"children\":[[\"$\",\"$5\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/008a05b0ad6b854a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/53e84df868515cf7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/83755b1f39ccf91d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null],\"modal\":[[\"$\",\"$5\",\"c\",{\"children\":[null,null,null]}],{},null,false,null]},null,false,null],[\"$\",\"$5\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"l2BAGl1tReuc34hH3NvPZ\"}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n9:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Beacon — the visual planning surface for the coding agent in your terminal\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?bb93a1375ed3c298\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?f9d64651576bd776\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$Lf\",\"4\",{}]]\n"])</script></body></html>
@@ -1,5 +1,5 @@
1
1
  1:I[64777,[],"HTTPAccessFallbackBoundary"]
2
- 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-d71bf93c16d42bc0.js"],"AppShell"]
2
+ 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-a8bb07fb86893add.js"],"AppShell"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
5
  5:"$Sreact.fragment"
@@ -12,11 +12,11 @@ e:I[27123,[],"default",1]
12
12
  :HL["/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
13
13
  :HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
14
14
  :HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
15
- :HL["/_next/static/css/664b23c4403cdb49.css","style"]
15
+ :HL["/_next/static/css/56890131dbc6daff.css","style"]
16
16
  :HL["/_next/static/css/008a05b0ad6b854a.css","style"]
17
17
  :HL["/_next/static/css/53e84df868515cf7.css","style"]
18
18
  :HL["/_next/static/css/83755b1f39ccf91d.css","style"]
19
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}],"modal":["__DEFAULT__",{}]},"$undefined","$undefined",16],[["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/664b23c4403cdb49.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":"$undefined","repo":"beacon","appVersion":"0.1.88","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:f:0:1:0:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],"repo":"beacon","appVersion":"0.1.88","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$5","c",{"children":[["$","$L6",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null],"modal":[["$","$5","c",{"children":[null,null,null]}],{},null,false,null]},null,false,null],["$","$5","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"LKQRsrATBF5LppZpLPoZ6"}
19
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}],"modal":["__DEFAULT__",{}]},"$undefined","$undefined",16],[["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/56890131dbc6daff.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":"$undefined","repo":"beacon","appVersion":"0.1.90","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:f:0:1:0:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],"repo":"beacon","appVersion":"0.1.90","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$5","c",{"children":[["$","$L6",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null],"modal":[["$","$5","c",{"children":[null,null,null]}],{},null,false,null]},null,false,null],["$","$5","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"l2BAGl1tReuc34hH3NvPZ"}
20
20
  b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
21
21
  f:I[86869,[],"IconMark"]
22
22
  9:null
@@ -1,2 +1,2 @@
1
1
  1:"$Sreact.fragment"
2
- 0:{"rsc":["$","$1","c",{"children":[null,null,null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"LKQRsrATBF5LppZpLPoZ6"}
2
+ 0:{"rsc":["$","$1","c",{"children":[null,null,null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"l2BAGl1tReuc34hH3NvPZ"}
@@ -5,5 +5,5 @@
5
5
  :HL["/_next/static/css/008a05b0ad6b854a.css","style"]
6
6
  :HL["/_next/static/css/53e84df868515cf7.css","style"]
7
7
  :HL["/_next/static/css/83755b1f39ccf91d.css","style"]
8
- 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next"}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"LKQRsrATBF5LppZpLPoZ6"}
8
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next"}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"l2BAGl1tReuc34hH3NvPZ"}
9
9
  5:null
@@ -1,5 +1,5 @@
1
1
  1:I[64777,[],"HTTPAccessFallbackBoundary"]
2
- 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-d71bf93c16d42bc0.js"],"AppShell"]
2
+ 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-a8bb07fb86893add.js"],"AppShell"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
5
  5:"$Sreact.fragment"
@@ -12,11 +12,11 @@ e:I[27123,[],"default",1]
12
12
  :HL["/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
13
13
  :HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
14
14
  :HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
15
- :HL["/_next/static/css/664b23c4403cdb49.css","style"]
15
+ :HL["/_next/static/css/56890131dbc6daff.css","style"]
16
16
  :HL["/_next/static/css/008a05b0ad6b854a.css","style"]
17
17
  :HL["/_next/static/css/53e84df868515cf7.css","style"]
18
18
  :HL["/_next/static/css/83755b1f39ccf91d.css","style"]
19
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}],"modal":["__DEFAULT__",{}]},"$undefined","$undefined",16],[["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/664b23c4403cdb49.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":"$undefined","repo":"beacon","appVersion":"0.1.88","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:f:0:1:0:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],"repo":"beacon","appVersion":"0.1.88","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$5","c",{"children":[["$","$L6",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null],"modal":[["$","$5","c",{"children":[null,null,null]}],{},null,false,null]},null,false,null],["$","$5","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"LKQRsrATBF5LppZpLPoZ6"}
19
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}],"modal":["__DEFAULT__",{}]},"$undefined","$undefined",16],[["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/56890131dbc6daff.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":"$undefined","repo":"beacon","appVersion":"0.1.90","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:f:0:1:0:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],"repo":"beacon","appVersion":"0.1.90","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$0:f:0:1:0:props:notFound:1:props:children:props:children:1:props:children:1","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}],{"children":[["$","$5","c",{"children":[["$","$L6",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/008a05b0ad6b854a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/53e84df868515cf7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/83755b1f39ccf91d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null],"modal":[["$","$5","c",{"children":[null,null,null]}],{},null,false,null]},null,false,null],["$","$5","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"l2BAGl1tReuc34hH3NvPZ"}
20
20
  b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
21
21
  f:I[86869,[],"IconMark"]
22
22
  9:null
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Beacon — the visual planning surface for the coding agent in your terminal"}],["$","meta","1",{"name":"description","content":"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo."}],["$","link","2",{"rel":"icon","href":"/icon.svg?bb93a1375ed3c298","type":"image/svg+xml","sizes":"any"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.png?f9d64651576bd776","type":"image/png","sizes":"180x180"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"LKQRsrATBF5LppZpLPoZ6"}
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Beacon — the visual planning surface for the coding agent in your terminal"}],["$","meta","1",{"name":"description","content":"Propose a feature plan, review it on a canvas instead of a wall of text, and approve with a click. Local-first, one binary, runs in any repo."}],["$","link","2",{"rel":"icon","href":"/icon.svg?bb93a1375ed3c298","type":"image/svg+xml","sizes":"any"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.png?f9d64651576bd776","type":"image/png","sizes":"180x180"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"l2BAGl1tReuc34hH3NvPZ"}
@@ -1,7 +1,7 @@
1
1
  1:I[64777,[],"HTTPAccessFallbackBoundary"]
2
- 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-d71bf93c16d42bc0.js"],"AppShell"]
2
+ 2:I[99589,["5004","static/chunks/70e0d97a-bbb0ec05083da54f.js","277","static/chunks/54a60aa6-0378818fce5a4dc5.js","8500","static/chunks/8500-f62a38ff68ab7f42.js","4888","static/chunks/4888-911c0da3c2d785d2.js","2114","static/chunks/2114-74736df56930b46c.js","5547","static/chunks/5547-2c07851028a9033a.js","7177","static/chunks/app/layout-a8bb07fb86893add.js"],"AppShell"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
5
  :HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
6
- :HL["/_next/static/css/664b23c4403cdb49.css","style"]
7
- 0:{"rsc":["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/664b23c4403cdb49.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"repo":"beacon","appVersion":"0.1.88","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:rsc:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:rsc:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","template":["$","$L4",null,{}]}],"repo":"beacon","appVersion":"0.1.88","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":"$0:rsc:props:notFound:1:props:children:props:children:1:props:children:1"}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"LKQRsrATBF5LppZpLPoZ6"}
6
+ :HL["/_next/static/css/56890131dbc6daff.css","style"]
7
+ 0:{"rsc":["$","$L1","c",{"notFound":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e02ab5db9ff2dca2.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/56890131dbc6daff.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"repo":"beacon","appVersion":"0.1.90","children":[[],[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"$0:rsc:props:notFound:1:props:children:props:children:1:props:children:0"]]}]]}]}]],"children":["$0:rsc:props:notFound:0",["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-theme":"dark","data-surface":"glass","className":"dark __variable_246ccd __variable_c29908 h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col bg-background text-foreground","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var d=document.documentElement,t=localStorage.getItem(\"beacon-theme\")||\"dark\",s=localStorage.getItem(\"beacon-surface\")||\"glass\",m=t==='dark'||(t==='auto'&&window.matchMedia('(prefers-color-scheme:dark)').matches);d.dataset.theme=m?'dark':'light';d.classList.toggle('dark',m);d.dataset.surface=s;}catch(e){}})();"}}],["$","$L2",null,{"modal":["$","$L3",null,{"parallelRouterKey":"modal","template":["$","$L4",null,{}]}],"repo":"beacon","appVersion":"0.1.90","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":"$0:rsc:props:notFound:1:props:children:props:children:1:props:children:1"}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"l2BAGl1tReuc34hH3NvPZ"}
@@ -1,8 +1,8 @@
1
1
  :HL["/_next/static/media/22a5144ee8d83bca-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
2
2
  :HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
3
3
  :HL["/_next/static/css/e02ab5db9ff2dca2.css","style"]
4
- :HL["/_next/static/css/664b23c4403cdb49.css","style"]
4
+ :HL["/_next/static/css/56890131dbc6daff.css","style"]
5
5
  :HL["/_next/static/css/008a05b0ad6b854a.css","style"]
6
6
  :HL["/_next/static/css/53e84df868515cf7.css","style"]
7
7
  :HL["/_next/static/css/83755b1f39ccf91d.css","style"]
8
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null},"modal":{"name":"__DEFAULT__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"LKQRsrATBF5LppZpLPoZ6"}
8
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null},"modal":{"name":"__DEFAULT__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"l2BAGl1tReuc34hH3NvPZ"}