trybeacon 0.1.71 → 0.1.73

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 (392) 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 +25 -21
  4. package/.next/build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/routes-manifest.json +30 -6
  7. package/.next/server/app/_global-error/page.js +3 -3
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +11 -11
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/api/board-annotations/[id]/route.js +1 -1
  28. package/.next/server/app/api/board-annotations/route.js +1 -1
  29. package/.next/server/app/api/board-layout/route.js +1 -1
  30. package/.next/server/app/api/bug-flags/[id]/route.js +1 -1
  31. package/.next/server/app/api/bug-flags/route.js +1 -1
  32. package/.next/server/app/api/changes/comment/claim/route.js +1 -0
  33. package/.next/server/app/api/changes/comment/claim/route.js.nft.json +1 -0
  34. package/.next/server/app/api/changes/comment/claim/route_client-reference-manifest.js +1 -0
  35. package/.next/server/app/api/changes/comment/route.js +1 -0
  36. package/.next/server/app/api/changes/comment/route.js.nft.json +1 -0
  37. package/.next/server/app/api/changes/comment/route_client-reference-manifest.js +1 -0
  38. package/.next/server/app/api/changes/quality/route.js +1 -0
  39. package/.next/server/app/api/changes/quality/route.js.nft.json +1 -0
  40. package/.next/server/app/api/changes/quality/route_client-reference-manifest.js +1 -0
  41. package/.next/server/app/api/changes/route.js +1 -0
  42. package/.next/server/app/api/{flags → changes}/route.js.nft.json +1 -1
  43. package/.next/server/app/api/changes/route_client-reference-manifest.js +1 -0
  44. package/.next/server/app/api/changes/viewed/route.js +1 -0
  45. package/.next/server/app/api/changes/viewed/route.js.nft.json +1 -0
  46. package/.next/server/app/api/changes/viewed/route_client-reference-manifest.js +1 -0
  47. package/.next/server/app/api/code-graph/position/route.js +1 -1
  48. package/.next/server/app/api/code-graph/route.js +1 -1
  49. package/.next/server/app/api/context/feature/route.js +1 -1
  50. package/.next/server/app/api/context/file/route.js +1 -1
  51. package/.next/server/app/api/context/route.js +1 -9
  52. package/.next/server/app/api/context/route.js.nft.json +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/position/route.js.nft.json +1 -1
  57. package/.next/server/app/api/db/prune-planned/route.js +1 -1
  58. package/.next/server/app/api/db/reconcile-endpoints/route.js +1 -1
  59. package/.next/server/app/api/db/relations/[id]/route.js +1 -1
  60. package/.next/server/app/api/db/tables/[id]/route.js +1 -1
  61. package/.next/server/app/api/draft/approve/route.js +1 -1
  62. package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
  63. package/.next/server/app/api/draft/route.js +1 -1
  64. package/.next/server/app/api/draft/route.js.nft.json +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/edges/route.js.nft.json +1 -1
  69. package/.next/server/app/api/endpoints/[id]/route.js +1 -1
  70. package/.next/server/app/api/entities/route.js +1 -1
  71. package/.next/server/app/api/ingest/route.js +1 -9
  72. package/.next/server/app/api/ingest/route.js.nft.json +1 -1
  73. package/.next/server/app/api/init/route.js +1 -9
  74. package/.next/server/app/api/init/route.js.nft.json +1 -1
  75. package/.next/server/app/api/lesson/close/route.js +1 -1
  76. package/.next/server/app/api/lesson/presence/route.js +1 -1
  77. package/.next/server/app/api/lesson/questions/route.js +1 -1
  78. package/.next/server/app/api/lesson/route.js +1 -1
  79. package/.next/server/app/api/lesson/save/route.js +1 -1
  80. package/.next/server/app/api/lesson/verdict/route.js +1 -1
  81. package/.next/server/app/api/map/describe/route.js +1 -9
  82. package/.next/server/app/api/map/describe/route.js.nft.json +1 -1
  83. package/.next/server/app/api/map/files/route.js +1 -1
  84. package/.next/server/app/api/map/files/route.js.nft.json +1 -1
  85. package/.next/server/app/api/map/finish/route.js +1 -1
  86. package/.next/server/app/api/map/finish/route.js.nft.json +1 -1
  87. package/.next/server/app/api/map/route.js +1 -1
  88. package/.next/server/app/api/map/route.js.nft.json +1 -1
  89. package/.next/server/app/api/map/start/route.js +1 -1
  90. package/.next/server/app/api/map/start/route.js.nft.json +1 -1
  91. package/.next/server/app/api/map/touch-active/route.js +1 -1
  92. package/.next/server/app/api/map/touch-active/route.js.nft.json +1 -1
  93. package/.next/server/app/api/mention-search/route.js +1 -1
  94. package/.next/server/app/api/nodes/[id]/position/route.js +1 -1
  95. package/.next/server/app/api/nodes/[id]/position/route.js.nft.json +1 -1
  96. package/.next/server/app/api/nodes/[id]/route.js +1 -1
  97. package/.next/server/app/api/nodes/[id]/route.js.nft.json +1 -1
  98. package/.next/server/app/api/nodes/positions/route.js +1 -1
  99. package/.next/server/app/api/nodes/positions/route.js.nft.json +1 -1
  100. package/.next/server/app/api/nodes/route.js +1 -1
  101. package/.next/server/app/api/nodes/route.js.nft.json +1 -1
  102. package/.next/server/app/api/nodes/subtasks/route.js +1 -1
  103. package/.next/server/app/api/nodes/subtasks/route.js.nft.json +1 -1
  104. package/.next/server/app/api/notes/[id]/route.js +1 -1
  105. package/.next/server/app/api/notes/route.js +1 -1
  106. package/.next/server/app/api/open/route.js +1 -1
  107. package/.next/server/app/api/plan/annotations/route.js +3 -3
  108. package/.next/server/app/api/plan/approve/route.js +1 -9
  109. package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
  110. package/.next/server/app/api/plan/history/route.js +1 -1
  111. package/.next/server/app/api/plan/markdown/route.js +1 -1
  112. package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -1
  113. package/.next/server/app/api/plan/presence/route.js +1 -1
  114. package/.next/server/app/api/plan/route.js +1 -1
  115. package/.next/server/app/api/plan/route.js.nft.json +1 -1
  116. package/.next/server/app/api/plan/verdict/route.js +1 -1
  117. package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -1
  118. package/.next/server/app/api/preferences/route.js +1 -1
  119. package/.next/server/app/api/project-meta/route.js +1 -1
  120. package/.next/server/app/api/reset/route.js +1 -1
  121. package/.next/server/app/api/scope-guard/check/route.js +1 -1
  122. package/.next/server/app/api/scope-guard/check/route.js.nft.json +1 -1
  123. package/.next/server/app/api/share/create/route.js +1 -1
  124. package/.next/server/app/api/share/create/route.js.nft.json +1 -1
  125. package/.next/server/app/api/share/route.js +1 -1
  126. package/.next/server/app/api/stream/route.js +2 -2
  127. package/.next/server/app/api/tab/nav/route.js +1 -1
  128. package/.next/server/app/api/tab/presence/route.js +1 -1
  129. package/.next/server/app/api/telemetry/route.js +1 -1
  130. package/.next/server/app/api/telemetry/stats/route.js +1 -1
  131. package/.next/server/app/api/version/route.js +1 -1
  132. package/.next/server/app/api/workspace/activate/route.js +1 -1
  133. package/.next/server/app/api/workspace/route.js +1 -1
  134. package/.next/server/app/apple-icon.png/route.js +1 -1
  135. package/.next/server/app/docs/page.js +2 -2
  136. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/docs.html +1 -1
  138. package/.next/server/app/docs.rsc +11 -11
  139. package/.next/server/app/docs.segments/_full.segment.rsc +11 -11
  140. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  141. package/.next/server/app/docs.segments/_index.segment.rsc +11 -11
  142. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  143. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  144. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  145. package/.next/server/app/help/page.js +2 -2
  146. package/.next/server/app/help/page_client-reference-manifest.js +1 -1
  147. package/.next/server/app/help.html +1 -1
  148. package/.next/server/app/help.rsc +11 -11
  149. package/.next/server/app/help.segments/_full.segment.rsc +11 -11
  150. package/.next/server/app/help.segments/_head.segment.rsc +1 -1
  151. package/.next/server/app/help.segments/_index.segment.rsc +11 -11
  152. package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
  153. package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
  154. package/.next/server/app/help.segments/help.segment.rsc +1 -1
  155. package/.next/server/app/icon.svg/route.js +1 -1
  156. package/.next/server/app/index.html +1 -1
  157. package/.next/server/app/index.rsc +11 -11
  158. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  159. package/.next/server/app/index.segments/_full.segment.rsc +11 -11
  160. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  161. package/.next/server/app/index.segments/_index.segment.rsc +11 -11
  162. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  163. package/.next/server/app/learn/page.js +4 -4
  164. package/.next/server/app/learn/page.js.nft.json +1 -1
  165. package/.next/server/app/learn/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/map/page.js +2 -2
  167. package/.next/server/app/map/page.js.nft.json +1 -1
  168. package/.next/server/app/map/page_client-reference-manifest.js +1 -1
  169. package/.next/server/app/page.js +2 -2
  170. package/.next/server/app/page_client-reference-manifest.js +1 -1
  171. package/.next/server/app/plan/page.js +12 -2
  172. package/.next/server/app/plan/page.js.nft.json +1 -1
  173. package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/s/[token]/page.js +2 -2
  175. package/.next/server/app/s/[token]/page.js.nft.json +1 -1
  176. package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/settings/page.js +2 -2
  178. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  179. package/.next/server/app-paths-manifest.json +25 -21
  180. package/.next/server/chunks/1130.js +1 -1
  181. package/.next/server/chunks/2025.js +1 -1
  182. package/.next/server/chunks/230.js +1 -0
  183. package/.next/server/chunks/2693.js +5 -0
  184. package/.next/server/chunks/4307.js +1 -1
  185. package/.next/server/chunks/6469.js +10 -0
  186. package/.next/server/chunks/8190.js +1 -0
  187. package/.next/server/chunks/8227.js +1 -0
  188. package/.next/server/chunks/8674.js +7 -0
  189. package/.next/server/middleware-build-manifest.js +1 -1
  190. package/.next/server/pages/404.html +1 -1
  191. package/.next/server/pages/500.html +1 -1
  192. package/.next/server/server-reference-manifest.js +1 -1
  193. package/.next/server/server-reference-manifest.json +1 -1
  194. package/.next/static/chunks/4853-0082a1e1b820a293.js +1 -0
  195. package/.next/static/chunks/5909-387573cddda35a48.js +1 -0
  196. package/.next/static/chunks/654-8e68a43e4c589e9c.js +1 -0
  197. package/.next/static/chunks/app/_global-error/page-5f4c3e6e9cc8e6c9.js +1 -0
  198. package/.next/static/chunks/app/api/board-annotations/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  199. package/.next/static/chunks/app/api/board-annotations/route-5f4c3e6e9cc8e6c9.js +1 -0
  200. package/.next/static/chunks/app/api/board-layout/route-5f4c3e6e9cc8e6c9.js +1 -0
  201. package/.next/static/chunks/app/api/bug-flags/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  202. package/.next/static/chunks/app/api/bug-flags/route-5f4c3e6e9cc8e6c9.js +1 -0
  203. package/.next/static/chunks/app/api/changes/comment/claim/route-5f4c3e6e9cc8e6c9.js +1 -0
  204. package/.next/static/chunks/app/api/changes/comment/route-5f4c3e6e9cc8e6c9.js +1 -0
  205. package/.next/static/chunks/app/api/changes/quality/route-5f4c3e6e9cc8e6c9.js +1 -0
  206. package/.next/static/chunks/app/api/changes/route-5f4c3e6e9cc8e6c9.js +1 -0
  207. package/.next/static/chunks/app/api/changes/viewed/route-5f4c3e6e9cc8e6c9.js +1 -0
  208. package/.next/static/chunks/app/api/code-graph/position/route-5f4c3e6e9cc8e6c9.js +1 -0
  209. package/.next/static/chunks/app/api/code-graph/route-5f4c3e6e9cc8e6c9.js +1 -0
  210. package/.next/static/chunks/app/api/context/feature/route-5f4c3e6e9cc8e6c9.js +1 -0
  211. package/.next/static/chunks/app/api/context/file/route-5f4c3e6e9cc8e6c9.js +1 -0
  212. package/.next/static/chunks/app/api/context/route-5f4c3e6e9cc8e6c9.js +1 -0
  213. package/.next/static/chunks/app/api/db/arrange/route-5f4c3e6e9cc8e6c9.js +1 -0
  214. package/.next/static/chunks/app/api/db/backfill-access/route-5f4c3e6e9cc8e6c9.js +1 -0
  215. package/.next/static/chunks/app/api/db/position/route-5f4c3e6e9cc8e6c9.js +1 -0
  216. package/.next/static/chunks/app/api/db/prune-planned/route-5f4c3e6e9cc8e6c9.js +1 -0
  217. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-5f4c3e6e9cc8e6c9.js +1 -0
  218. package/.next/static/chunks/app/api/db/relations/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  219. package/.next/static/chunks/app/api/db/tables/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  220. package/.next/static/chunks/app/api/draft/approve/route-5f4c3e6e9cc8e6c9.js +1 -0
  221. package/.next/static/chunks/app/api/draft/route-5f4c3e6e9cc8e6c9.js +1 -0
  222. package/.next/static/chunks/app/api/draft/status/route-5f4c3e6e9cc8e6c9.js +1 -0
  223. package/.next/static/chunks/app/api/edges/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  224. package/.next/static/chunks/app/api/edges/route-5f4c3e6e9cc8e6c9.js +1 -0
  225. package/.next/static/chunks/app/api/endpoints/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  226. package/.next/static/chunks/app/api/entities/route-5f4c3e6e9cc8e6c9.js +1 -0
  227. package/.next/static/chunks/app/api/ingest/route-5f4c3e6e9cc8e6c9.js +1 -0
  228. package/.next/static/chunks/app/api/init/route-5f4c3e6e9cc8e6c9.js +1 -0
  229. package/.next/static/chunks/app/api/lesson/close/route-5f4c3e6e9cc8e6c9.js +1 -0
  230. package/.next/static/chunks/app/api/lesson/presence/route-5f4c3e6e9cc8e6c9.js +1 -0
  231. package/.next/static/chunks/app/api/lesson/questions/route-5f4c3e6e9cc8e6c9.js +1 -0
  232. package/.next/static/chunks/app/api/lesson/route-5f4c3e6e9cc8e6c9.js +1 -0
  233. package/.next/static/chunks/app/api/lesson/save/route-5f4c3e6e9cc8e6c9.js +1 -0
  234. package/.next/static/chunks/app/api/lesson/verdict/route-5f4c3e6e9cc8e6c9.js +1 -0
  235. package/.next/static/chunks/app/api/map/describe/route-5f4c3e6e9cc8e6c9.js +1 -0
  236. package/.next/static/chunks/app/api/map/files/route-5f4c3e6e9cc8e6c9.js +1 -0
  237. package/.next/static/chunks/app/api/map/finish/route-5f4c3e6e9cc8e6c9.js +1 -0
  238. package/.next/static/chunks/app/api/map/route-5f4c3e6e9cc8e6c9.js +1 -0
  239. package/.next/static/chunks/app/api/map/start/route-5f4c3e6e9cc8e6c9.js +1 -0
  240. package/.next/static/chunks/app/api/map/touch-active/route-5f4c3e6e9cc8e6c9.js +1 -0
  241. package/.next/static/chunks/app/api/mention-search/route-5f4c3e6e9cc8e6c9.js +1 -0
  242. package/.next/static/chunks/app/api/nodes/[id]/position/route-5f4c3e6e9cc8e6c9.js +1 -0
  243. package/.next/static/chunks/app/api/nodes/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  244. package/.next/static/chunks/app/api/nodes/positions/route-5f4c3e6e9cc8e6c9.js +1 -0
  245. package/.next/static/chunks/app/api/nodes/route-5f4c3e6e9cc8e6c9.js +1 -0
  246. package/.next/static/chunks/app/api/nodes/subtasks/route-5f4c3e6e9cc8e6c9.js +1 -0
  247. package/.next/static/chunks/app/api/notes/[id]/route-5f4c3e6e9cc8e6c9.js +1 -0
  248. package/.next/static/chunks/app/api/notes/route-5f4c3e6e9cc8e6c9.js +1 -0
  249. package/.next/static/chunks/app/api/open/route-5f4c3e6e9cc8e6c9.js +1 -0
  250. package/.next/static/chunks/app/api/plan/annotations/route-5f4c3e6e9cc8e6c9.js +1 -0
  251. package/.next/static/chunks/app/api/plan/approve/route-5f4c3e6e9cc8e6c9.js +1 -0
  252. package/.next/static/chunks/app/api/plan/history/route-5f4c3e6e9cc8e6c9.js +1 -0
  253. package/.next/static/chunks/app/api/plan/markdown/route-5f4c3e6e9cc8e6c9.js +1 -0
  254. package/.next/static/chunks/app/api/plan/presence/route-5f4c3e6e9cc8e6c9.js +1 -0
  255. package/.next/static/chunks/app/api/plan/route-5f4c3e6e9cc8e6c9.js +1 -0
  256. package/.next/static/chunks/app/api/plan/verdict/route-5f4c3e6e9cc8e6c9.js +1 -0
  257. package/.next/static/chunks/app/api/preferences/route-5f4c3e6e9cc8e6c9.js +1 -0
  258. package/.next/static/chunks/app/api/project-meta/route-5f4c3e6e9cc8e6c9.js +1 -0
  259. package/.next/static/chunks/app/api/reset/route-5f4c3e6e9cc8e6c9.js +1 -0
  260. package/.next/static/chunks/app/api/scope-guard/check/route-5f4c3e6e9cc8e6c9.js +1 -0
  261. package/.next/static/chunks/app/api/share/create/route-5f4c3e6e9cc8e6c9.js +1 -0
  262. package/.next/static/chunks/app/api/share/route-5f4c3e6e9cc8e6c9.js +1 -0
  263. package/.next/static/chunks/app/api/stream/route-5f4c3e6e9cc8e6c9.js +1 -0
  264. package/.next/static/chunks/app/api/tab/nav/route-5f4c3e6e9cc8e6c9.js +1 -0
  265. package/.next/static/chunks/app/api/tab/presence/route-5f4c3e6e9cc8e6c9.js +1 -0
  266. package/.next/static/chunks/app/api/telemetry/route-5f4c3e6e9cc8e6c9.js +1 -0
  267. package/.next/static/chunks/app/api/telemetry/stats/route-5f4c3e6e9cc8e6c9.js +1 -0
  268. package/.next/static/chunks/app/api/version/route-5f4c3e6e9cc8e6c9.js +1 -0
  269. package/.next/static/chunks/app/api/workspace/activate/route-5f4c3e6e9cc8e6c9.js +1 -0
  270. package/.next/static/chunks/app/api/workspace/route-5f4c3e6e9cc8e6c9.js +1 -0
  271. package/.next/static/chunks/app/{layout-d3b7276f116dce46.js → layout-6e934a2850efd223.js} +1 -1
  272. package/.next/static/chunks/app/learn/page-a14eaf5143e2df55.js +7 -0
  273. package/.next/static/chunks/app/map/{page-5d73cd85ed62df7a.js → page-06282017c592fb3c.js} +1 -1
  274. package/.next/static/chunks/app/plan/page-41a3990cb858c5f2.js +11 -0
  275. package/.next/static/chunks/app/s/[token]/{page-4d3ed0a6a420eb44.js → page-a4deb16beff21840.js} +1 -1
  276. package/.next/static/chunks/app/settings/page-67cab634be8bfef2.js +1 -0
  277. package/.next/static/chunks/next/dist/client/components/builtin/app-error-5f4c3e6e9cc8e6c9.js +1 -0
  278. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-5f4c3e6e9cc8e6c9.js +1 -0
  279. package/.next/static/chunks/next/dist/client/components/builtin/not-found-5f4c3e6e9cc8e6c9.js +1 -0
  280. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5f4c3e6e9cc8e6c9.js +1 -0
  281. package/.next/static/chunks/{webpack-de4a0d9611ec2cad.js → webpack-6c27b0ed1ac1459c.js} +1 -1
  282. package/.next/static/css/95dc31edc34789a7.css +1 -0
  283. package/.next/static/css/a5d17568738ef1e9.css +1 -0
  284. package/.next/static/mB9lqGEsIvB7tTvv9GU48/_buildManifest.js +1 -0
  285. package/.next/trace +45 -43
  286. package/.next/trace-build +1 -1
  287. package/.next/types/app/api/changes/comment/claim/route.ts +351 -0
  288. package/.next/types/app/api/changes/comment/route.ts +351 -0
  289. package/.next/types/app/api/changes/quality/route.ts +351 -0
  290. package/.next/types/app/api/{flags → changes}/route.ts +3 -3
  291. package/.next/types/app/api/changes/viewed/route.ts +351 -0
  292. package/.next/types/routes.d.ts +6 -2
  293. package/.next/types/validator.ts +45 -9
  294. package/bun.lock +54 -0
  295. package/dist/bin/doctor.js +33 -32
  296. package/dist/bin/guard.js +1 -1
  297. package/dist/bin/hook.js +33 -32
  298. package/dist/bin/mcp.js +43 -42
  299. package/dist/bin/plan.js +35 -34
  300. package/dist/bin/uninstall.js +34 -33
  301. package/dist/lib/assets.js +25 -24
  302. package/dist/lib/codex-install.js +32 -31
  303. package/dist/lib/global-install.js +33 -32
  304. package/package.json +3 -1
  305. package/plugin/skills/beacon-plan/SKILL.md +5 -4
  306. package/.next/server/app/api/flags/route.js +0 -1
  307. package/.next/server/app/api/flags/route_client-reference-manifest.js +0 -1
  308. package/.next/server/chunks/3098.js +0 -1
  309. package/.next/server/chunks/3221.js +0 -5
  310. package/.next/server/chunks/6810.js +0 -1
  311. package/.next/static/GjuqgbaZr9M0AGKgnA2hT/_buildManifest.js +0 -1
  312. package/.next/static/chunks/1052-151437e30240c959.js +0 -1
  313. package/.next/static/chunks/4853-946597034e74be36.js +0 -1
  314. package/.next/static/chunks/app/_global-error/page-93569b5eb93a61e9.js +0 -1
  315. package/.next/static/chunks/app/api/board-annotations/[id]/route-93569b5eb93a61e9.js +0 -1
  316. package/.next/static/chunks/app/api/board-annotations/route-93569b5eb93a61e9.js +0 -1
  317. package/.next/static/chunks/app/api/board-layout/route-93569b5eb93a61e9.js +0 -1
  318. package/.next/static/chunks/app/api/bug-flags/[id]/route-93569b5eb93a61e9.js +0 -1
  319. package/.next/static/chunks/app/api/bug-flags/route-93569b5eb93a61e9.js +0 -1
  320. package/.next/static/chunks/app/api/code-graph/position/route-93569b5eb93a61e9.js +0 -1
  321. package/.next/static/chunks/app/api/code-graph/route-93569b5eb93a61e9.js +0 -1
  322. package/.next/static/chunks/app/api/context/feature/route-93569b5eb93a61e9.js +0 -1
  323. package/.next/static/chunks/app/api/context/file/route-93569b5eb93a61e9.js +0 -1
  324. package/.next/static/chunks/app/api/context/route-93569b5eb93a61e9.js +0 -1
  325. package/.next/static/chunks/app/api/db/arrange/route-93569b5eb93a61e9.js +0 -1
  326. package/.next/static/chunks/app/api/db/backfill-access/route-93569b5eb93a61e9.js +0 -1
  327. package/.next/static/chunks/app/api/db/position/route-93569b5eb93a61e9.js +0 -1
  328. package/.next/static/chunks/app/api/db/prune-planned/route-93569b5eb93a61e9.js +0 -1
  329. package/.next/static/chunks/app/api/db/reconcile-endpoints/route-93569b5eb93a61e9.js +0 -1
  330. package/.next/static/chunks/app/api/db/relations/[id]/route-93569b5eb93a61e9.js +0 -1
  331. package/.next/static/chunks/app/api/db/tables/[id]/route-93569b5eb93a61e9.js +0 -1
  332. package/.next/static/chunks/app/api/draft/approve/route-93569b5eb93a61e9.js +0 -1
  333. package/.next/static/chunks/app/api/draft/route-93569b5eb93a61e9.js +0 -1
  334. package/.next/static/chunks/app/api/draft/status/route-93569b5eb93a61e9.js +0 -1
  335. package/.next/static/chunks/app/api/edges/[id]/route-93569b5eb93a61e9.js +0 -1
  336. package/.next/static/chunks/app/api/edges/route-93569b5eb93a61e9.js +0 -1
  337. package/.next/static/chunks/app/api/endpoints/[id]/route-93569b5eb93a61e9.js +0 -1
  338. package/.next/static/chunks/app/api/entities/route-93569b5eb93a61e9.js +0 -1
  339. package/.next/static/chunks/app/api/flags/route-93569b5eb93a61e9.js +0 -1
  340. package/.next/static/chunks/app/api/ingest/route-93569b5eb93a61e9.js +0 -1
  341. package/.next/static/chunks/app/api/init/route-93569b5eb93a61e9.js +0 -1
  342. package/.next/static/chunks/app/api/lesson/close/route-93569b5eb93a61e9.js +0 -1
  343. package/.next/static/chunks/app/api/lesson/presence/route-93569b5eb93a61e9.js +0 -1
  344. package/.next/static/chunks/app/api/lesson/questions/route-93569b5eb93a61e9.js +0 -1
  345. package/.next/static/chunks/app/api/lesson/route-93569b5eb93a61e9.js +0 -1
  346. package/.next/static/chunks/app/api/lesson/save/route-93569b5eb93a61e9.js +0 -1
  347. package/.next/static/chunks/app/api/lesson/verdict/route-93569b5eb93a61e9.js +0 -1
  348. package/.next/static/chunks/app/api/map/describe/route-93569b5eb93a61e9.js +0 -1
  349. package/.next/static/chunks/app/api/map/files/route-93569b5eb93a61e9.js +0 -1
  350. package/.next/static/chunks/app/api/map/finish/route-93569b5eb93a61e9.js +0 -1
  351. package/.next/static/chunks/app/api/map/route-93569b5eb93a61e9.js +0 -1
  352. package/.next/static/chunks/app/api/map/start/route-93569b5eb93a61e9.js +0 -1
  353. package/.next/static/chunks/app/api/map/touch-active/route-93569b5eb93a61e9.js +0 -1
  354. package/.next/static/chunks/app/api/mention-search/route-93569b5eb93a61e9.js +0 -1
  355. package/.next/static/chunks/app/api/nodes/[id]/position/route-93569b5eb93a61e9.js +0 -1
  356. package/.next/static/chunks/app/api/nodes/[id]/route-93569b5eb93a61e9.js +0 -1
  357. package/.next/static/chunks/app/api/nodes/positions/route-93569b5eb93a61e9.js +0 -1
  358. package/.next/static/chunks/app/api/nodes/route-93569b5eb93a61e9.js +0 -1
  359. package/.next/static/chunks/app/api/nodes/subtasks/route-93569b5eb93a61e9.js +0 -1
  360. package/.next/static/chunks/app/api/notes/[id]/route-93569b5eb93a61e9.js +0 -1
  361. package/.next/static/chunks/app/api/notes/route-93569b5eb93a61e9.js +0 -1
  362. package/.next/static/chunks/app/api/open/route-93569b5eb93a61e9.js +0 -1
  363. package/.next/static/chunks/app/api/plan/annotations/route-93569b5eb93a61e9.js +0 -1
  364. package/.next/static/chunks/app/api/plan/approve/route-93569b5eb93a61e9.js +0 -1
  365. package/.next/static/chunks/app/api/plan/history/route-93569b5eb93a61e9.js +0 -1
  366. package/.next/static/chunks/app/api/plan/markdown/route-93569b5eb93a61e9.js +0 -1
  367. package/.next/static/chunks/app/api/plan/presence/route-93569b5eb93a61e9.js +0 -1
  368. package/.next/static/chunks/app/api/plan/route-93569b5eb93a61e9.js +0 -1
  369. package/.next/static/chunks/app/api/plan/verdict/route-93569b5eb93a61e9.js +0 -1
  370. package/.next/static/chunks/app/api/preferences/route-93569b5eb93a61e9.js +0 -1
  371. package/.next/static/chunks/app/api/project-meta/route-93569b5eb93a61e9.js +0 -1
  372. package/.next/static/chunks/app/api/reset/route-93569b5eb93a61e9.js +0 -1
  373. package/.next/static/chunks/app/api/scope-guard/check/route-93569b5eb93a61e9.js +0 -1
  374. package/.next/static/chunks/app/api/share/create/route-93569b5eb93a61e9.js +0 -1
  375. package/.next/static/chunks/app/api/share/route-93569b5eb93a61e9.js +0 -1
  376. package/.next/static/chunks/app/api/stream/route-93569b5eb93a61e9.js +0 -1
  377. package/.next/static/chunks/app/api/tab/nav/route-93569b5eb93a61e9.js +0 -1
  378. package/.next/static/chunks/app/api/tab/presence/route-93569b5eb93a61e9.js +0 -1
  379. package/.next/static/chunks/app/api/telemetry/route-93569b5eb93a61e9.js +0 -1
  380. package/.next/static/chunks/app/api/telemetry/stats/route-93569b5eb93a61e9.js +0 -1
  381. package/.next/static/chunks/app/api/version/route-93569b5eb93a61e9.js +0 -1
  382. package/.next/static/chunks/app/api/workspace/activate/route-93569b5eb93a61e9.js +0 -1
  383. package/.next/static/chunks/app/api/workspace/route-93569b5eb93a61e9.js +0 -1
  384. package/.next/static/chunks/app/learn/page-bb7141041f6b6e08.js +0 -7
  385. package/.next/static/chunks/app/plan/page-6b546f1602bd1108.js +0 -1
  386. package/.next/static/chunks/app/settings/page-7e176d120b1effa9.js +0 -1
  387. package/.next/static/chunks/next/dist/client/components/builtin/app-error-93569b5eb93a61e9.js +0 -1
  388. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-93569b5eb93a61e9.js +0 -1
  389. package/.next/static/chunks/next/dist/client/components/builtin/not-found-93569b5eb93a61e9.js +0 -1
  390. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-93569b5eb93a61e9.js +0 -1
  391. package/.next/static/css/b51708465127fded.css +0 -1
  392. /package/.next/static/{GjuqgbaZr9M0AGKgnA2hT → mB9lqGEsIvB7tTvv9GU48}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=6630,a.ids=[6630],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},5229:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j,POST:()=>i,dynamic:()=>k});var e=c(56727),f=c(6716),g=c(10242),h=a([e]);e=(h.then?(await h)():h)[0];let k="force-dynamic";async function i(a){return(0,e.X_)((0,f.Ck)(a),async()=>((0,g.tU)(Date.now()),Response.json({ok:!0})))}async function j(a){return(0,e.X_)((0,f.Ck)(a),async()=>Response.json({live:(0,g.G1)(Date.now())}))}d()}catch(a){d(a)}})},10242:(a,b,c)=>{c.d(b,{G1:()=>j,tU:()=>i});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-presence.json")}function i(a){(0,g.q)(h(),{ts:a})}function j(a){return function(a,b,c=2e4){return null!==a&&b-a<c}(function(){try{let{ts:a}=JSON.parse((0,d.readFileSync)(h(),"utf8"));return"number"==typeof a?a:null}catch{return null}}(),a)}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15674:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(5229),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/presence/route",pathname:"/api/lesson/presence",filename:"route",bundlePath:"app/api/lesson/presence/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/presence/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/presence/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,9683],()=>b(b.s=15674));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6630,a.ids=[6630],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},5229:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j,POST:()=>i,dynamic:()=>k});var e=c(56727),f=c(6716),g=c(10242),h=a([e]);e=(h.then?(await h)():h)[0];let k="force-dynamic";async function i(a){return(0,e.X_)((0,f.Ck)(a),async()=>((0,g.tU)(Date.now()),Response.json({ok:!0})))}async function j(a){return(0,e.X_)((0,f.Ck)(a),async()=>Response.json({live:(0,g.G1)(Date.now())}))}d()}catch(a){d(a)}})},10242:(a,b,c)=>{c.d(b,{G1:()=>j,tU:()=>i});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-presence.json")}function i(a){(0,g.q)(h(),{ts:a})}function j(a){return function(a,b,c=2e4){return null!==a&&b-a<c}(function(){try{let{ts:a}=JSON.parse((0,d.readFileSync)(h(),"utf8"));return"number"==typeof a?a:null}catch{return null}}(),a)}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},80560:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(5229),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/presence/route",pathname:"/api/lesson/presence",filename:"route",bundlePath:"app/api/lesson/presence/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/presence/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/presence/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,9683],()=>b(b.s=80560));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=1108,a.ids=[1108],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},17407:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>m,GET:()=>j,POST:()=>l,PUT:()=>k,dynamic:()=>n});var e=c(44046),f=c(56727),g=c(6716),h=c(47320),i=a([f]);f=(i.then?(await i)():i)[0];let n="force-dynamic",o=e.gM("kind",[e.Ik({kind:e.eu("text"),excerpt:e.Yj()}),e.Ik({kind:e.eu("node"),nodeId:e.Yj()}),e.Ik({kind:e.eu("overall")})]),p=e.Ik({id:e.Yj(),anchor:o,question:e.Yj(),askedAt:e.ai().optional().default(0),answer:e.Yj().optional(),answeredAt:e.ai().optional()}),q=e.Ik({questions:e.YO(p)});async function j(a){return(0,f.X_)((0,g.Ck)(a),async()=>Response.json((0,h.Yw)()))}async function k(a){let b=q.parse(await a.json());return(0,f.X_)((0,g.Ck)(a),async()=>((0,h.zJ)({questions:b.questions,submitted:!1}),new Response(null,{status:204})))}async function l(a){let b=q.parse(await a.json());return(0,f.X_)((0,g.Ck)(a),async()=>{let a=b.questions.filter(a=>a.question.trim());return a.length?((0,h.zJ)({questions:a,submitted:!0}),Response.json({ok:!0,count:a.length})):Response.json({error:"nothing to send — ask at least one question first"},{status:400})})}async function m(a){return(0,f.X_)((0,g.Ck)(a),async()=>((0,h.YF)(),new Response(null,{status:204})))}d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w().questions.map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}),m=[...(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),...l];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:m}}(a,t(),b);return(0,i.q)(j(),c),y(),c}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67790:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(17407),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/questions/route",pathname:"/api/lesson/questions",filename:"route",bundlePath:"app/api/lesson/questions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/questions/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/questions/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683],()=>b(b.s=67790));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=1108,a.ids=[1108],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},17407:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>l,GET:()=>j,POST:()=>k,dynamic:()=>m});var e=c(44046),f=c(56727),g=c(6716),h=c(47320),i=a([f]);f=(i.then?(await i)():i)[0];let m="force-dynamic",n=e.gM("kind",[e.Ik({kind:e.eu("text"),excerpt:e.Yj()}),e.Ik({kind:e.eu("node"),nodeId:e.Yj()}),e.Ik({kind:e.eu("overall")})]),o=e.Ik({id:e.Yj(),anchor:n,question:e.Yj(),askedAt:e.ai().optional().default(0),answer:e.Yj().optional(),answeredAt:e.ai().optional()}),p=e.Ik({questions:e.YO(o)});async function j(a){return(0,f.X_)((0,g.Ck)(a),async()=>Response.json((0,h.Yw)()))}async function k(a){let b=p.parse(await a.json());return(0,f.X_)((0,g.Ck)(a),async()=>{let a=b.questions.filter(a=>a.question.trim());if(!a.length)return Response.json({error:"nothing to send — ask at least one question first"},{status:400});let c=(0,h.Yw)(),d=new Set(a.map(a=>a.id)),e=c.submitted?c.questions.filter(a=>!d.has(a.id)):[];return(0,h.zJ)({questions:[...e,...a],submitted:!0}),Response.json({ok:!0,count:a.length})})}async function l(a){return(0,f.X_)((0,g.Ck)(a),async()=>((0,h.YF)(),new Response(null,{status:204})))}d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=w(),d=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w(),m=(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),n=new Set(m.map(a=>a.id)),o=[...m,...l.submitted?l.questions.filter(a=>!n.has(a.id)).map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}):[]];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:o}}(a,t(),b);(0,i.q)(j(),d);let e=new Set(d.questions.filter(a=>a.answer).map(a=>a.id)),g=c.submitted?c.questions.filter(a=>!e.has(a.id)):[];return g.length?x({questions:g,submitted:!0}):y(),d}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},47948:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(17407),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/questions/route",pathname:"/api/lesson/questions",filename:"route",bundlePath:"app/api/lesson/questions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/questions/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/questions/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683],()=>b(b.s=47948));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=7914,a.ids=[7914],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},19881:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k,POST:()=>l,dynamic:()=>m});var e=c(56727),f=c(6716),g=c(19734),h=c(47320),i=c(93774),j=a([e,g]);[e,g]=j.then?(await j)():j;let m="force-dynamic";async function k(a){return(0,e.X_)((0,f.Ck)(a),async()=>Response.json({lesson:(0,h.Sn)()}))}async function l(a){let b=h.IX.parse(await a.json());return(0,e.X_)((0,f.Ck)(a),async()=>{(0,i.D8)();let a=(0,h.jl)(b);return await (0,g.Bx)(),Response.json({ok:!0,lessonId:a.id,updatedAt:a.updatedAt})})}d()}catch(a){d(a)}})},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w().questions.map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}),m=[...(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),...l];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:m}}(a,t(),b);return(0,i.q)(j(),c),y(),c}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69030:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(19881),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/route",pathname:"/api/lesson",filename:"route",bundlePath:"app/api/lesson/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734],()=>b(b.s=69030));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=7914,a.ids=[7914],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},19881:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k,POST:()=>l,dynamic:()=>m});var e=c(56727),f=c(6716),g=c(19734),h=c(47320),i=c(93774),j=a([e,g]);[e,g]=j.then?(await j)():j;let m="force-dynamic";async function k(a){return(0,e.X_)((0,f.Ck)(a),async()=>Response.json({lesson:(0,h.Sn)()}))}async function l(a){let b=h.IX.parse(await a.json());return(0,e.X_)((0,f.Ck)(a),async()=>{(0,i.D8)();let a=(0,h.jl)(b);return await (0,g.Bx)(),Response.json({ok:!0,lessonId:a.id,updatedAt:a.updatedAt})})}d()}catch(a){d(a)}})},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=w(),d=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w(),m=(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),n=new Set(m.map(a=>a.id)),o=[...m,...l.submitted?l.questions.filter(a=>!n.has(a.id)).map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}):[]];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:o}}(a,t(),b);(0,i.q)(j(),d);let e=new Set(d.questions.filter(a=>a.answer).map(a=>a.id)),g=c.submitted?c.questions.filter(a=>!e.has(a.id)):[];return g.length?x({questions:g,submitted:!0}):y(),d}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},97140:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(19881),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/route",pathname:"/api/lesson",filename:"route",bundlePath:"app/api/lesson/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734],()=>b(b.s=97140));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=8906,a.ids=[8906],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14281:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>k,dynamic:()=>l});var e=c(56727),f=c(6716),g=c(19734),h=c(47320),i=c(93774),j=a([e,g]);[e,g]=j.then?(await j)():j;let l="force-dynamic";async function k(a){return(0,e.X_)((0,f.Ck)(a),async()=>{let a=(0,h.Sn)();if(!a)return Response.json({error:"no live lesson to save"},{status:400});let b=Date.now(),c=(0,h.xE)(b);return(0,i.Ng)({updatedAt:a.updatedAt,status:"saved",lessonId:c??a.id,summary:`Lesson "${a.title}" saved to your library.`,decidedAt:b}),(0,h.z_)(),(0,h.YF)(),await (0,g.Bx)(),Response.json({ok:!0,lessonId:c??a.id})})}d()}catch(a){d(a)}})},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w().questions.map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}),m=[...(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),...l];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:m}}(a,t(),b);return(0,i.q)(j(),c),y(),c}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},99570:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(14281),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/save/route",pathname:"/api/lesson/save",filename:"route",bundlePath:"app/api/lesson/save/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/save/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/save/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734],()=>b(b.s=99570));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=8906,a.ids=[8906],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14281:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>k,dynamic:()=>l});var e=c(56727),f=c(6716),g=c(19734),h=c(47320),i=c(93774),j=a([e,g]);[e,g]=j.then?(await j)():j;let l="force-dynamic";async function k(a){return(0,e.X_)((0,f.Ck)(a),async()=>{let a=(0,h.Sn)();if(!a)return Response.json({error:"no live lesson to save"},{status:400});let b=Date.now(),c=(0,h.xE)(b);return(0,i.Ng)({updatedAt:a.updatedAt,status:"saved",lessonId:c??a.id,summary:`Lesson "${a.title}" saved to your library.`,decidedAt:b}),(0,h.z_)(),(0,h.YF)(),await (0,g.Bx)(),Response.json({ok:!0,lessonId:c??a.id})})}d()}catch(a){d(a)}})},16698:a=>{a.exports=require("node:async_hooks")},17272:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(14281),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/save/route",pathname:"/api/lesson/save",filename:"route",bundlePath:"app/api/lesson/save/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/save/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/save/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=w(),d=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w(),m=(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),n=new Set(m.map(a=>a.id)),o=[...m,...l.submitted?l.questions.filter(a=>!n.has(a.id)).map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}):[]];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:o}}(a,t(),b);(0,i.q)(j(),d);let e=new Set(d.questions.filter(a=>a.answer).map(a=>a.id)),g=c.submitted?c.questions.filter(a=>!e.has(a.id)):[];return g.length?x({questions:g,submitted:!0}):y(),d}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734],()=>b(b.s=17272));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=8696,a.ids=[8696],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},43327:(a,b,c)=>{c.d(b,{m:()=>f});var d=c(47320),e=c(93774);function f(){let a=(0,d.Yw)();if(a.submitted&&a.questions.length)return{kind:"questions",questions:a.questions};let b=(0,e.Ei)();return b?"saved"===b.status?{kind:"saved",lessonId:b.lessonId??"",summary:b.summary}:{kind:"closed",summary:b.summary}:(0,d.Sn)()?{kind:"pending"}:{kind:"none"}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w().questions.map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}),m=[...(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),...l];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:m}}(a,t(),b);return(0,i.q)(j(),c),y(),c}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},48232:(a,b,c)=>{c.d(b,{W:()=>d});function d(a,b=new Map){let c=a.filter(a=>a.question.trim());if(!c.length)return"";let e=c.filter(a=>"overall"===a.anchor.kind),f=c.filter(a=>"node"===a.anchor.kind),g=c.filter(a=>"text"===a.anchor.kind),h=["## Questions from the user","","Answer each one, then call `beacon_explain` again with the SAME lesson plus `answers: [{ questionId, answer }]` (keyed by the `[q:ID]` below). Expand the narrative or add nodes where it helps. Keep answering in this loop until the user saves the lesson."];if(e.length)for(let a of(h.push("","### Overall"),e))h.push(`- [q:${a.id}] ${a.question.trim()}`);if(f.length){let a=new Map;for(let b of f){if("node"!==b.anchor.kind)continue;let c=b.anchor.nodeId;(a.get(c)??a.set(c,[]).get(c)).push(b)}for(let[c,d]of a){let a=b.get(c)??c;for(let b of(h.push("",`### About "${a}"`),d))h.push(`- [q:${b.id}] ${b.question.trim()}`)}}if(g.length)for(let a of(h.push("","### About specific passages"),g)){if("text"!==a.anchor.kind)continue;let b=a.anchor.excerpt.split("\n").map(a=>`> ${a}`).join("\n");h.push("",b,`- [q:${a.id}] ${a.question.trim()}`)}return h.join("\n").trim()}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},78039:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k,dynamic:()=>l});var e=c(56727),f=c(43327),g=c(47320),h=c(48232),i=c(6716),j=a([e]);e=(j.then?(await j)():j)[0];let l="force-dynamic";async function k(a){return(0,e.X_)((0,i.Ck)(a),async()=>{let a=(0,f.m)();if("questions"===a.kind){let b=(0,g.Sn)(),c=new Map((b?.nodes??[]).map(a=>[a.id,a.title]));return Response.json({...a,rendered:(0,h.W)(a.questions,c)})}return Response.json(a)})}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},97214:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(78039),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/verdict/route",pathname:"/api/lesson/verdict",filename:"route",bundlePath:"app/api/lesson/verdict/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/verdict/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/verdict/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683],()=>b(b.s=97214));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=8696,a.ids=[8696],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},32213:(a,b,c)=>{c.d(b,{q:()=>f});var d=c(73024),e=c(76760);function f(a,b,c=!1){var g=JSON.stringify(b,null,c?2:void 0);(0,d.mkdirSync)((0,e.dirname)(a),{recursive:!0});let h=`${a}.tmp`;try{(0,d.writeFileSync)(h,g),(0,d.renameSync)(h,a)}catch(a){throw(0,d.rmSync)(h,{force:!0}),a}}},43327:(a,b,c)=>{c.d(b,{m:()=>f});var d=c(47320),e=c(93774);function f(){let a=(0,d.Yw)();if(a.submitted&&a.questions.length)return{kind:"questions",questions:a.questions};let b=(0,e.Ei)();return b?"saved"===b.status?{kind:"saved",lessonId:b.lessonId??"",summary:b.summary}:{kind:"closed",summary:b.summary}:(0,d.Sn)()?{kind:"pending"}:{kind:"none"}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45301:(a,b,c)=>{c.d(b,{KS:()=>l,Qq:()=>k,jv:()=>j});var d=c(31421),e=c(77598),f=c(48161),g=c(76760),h=c(6716);let i=null;function j(){if(process.env.BEACON_REPO)return process.env.BEACON_REPO;let a=(0,h.p1)();if(a){let b=(0,h.K4)(a);if(b)return b.path}let b=(0,h.WQ)();if(b)return b.path;if(i)return i;try{let a=(0,d.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),stdio:["ignore","pipe","ignore"]}).toString().trim();if(a)return i=a}catch{}return i=(0,g.resolve)(process.cwd(),"../..")}function k(){return(0,g.basename)(j())}function l(){if(process.env.BEACON_DATA_DIR)return process.env.BEACON_DATA_DIR;let a=(0,h.p1)();if(a&&(0,h.K4)(a))return(0,h.T_)(a);let b=(0,h.WQ)();return b?(0,h.T_)(b.id):(0,g.join)((0,f.homedir)(),".beacon",(0,e.createHash)("sha256").update(j()).digest("hex").slice(0,12))}},47320:(a,b,c)=>{c.d(b,{z_:()=>u,IX:()=>s,wC:()=>A,jl:()=>v,Sn:()=>t,Yw:()=>w,Af:()=>B,YF:()=>y,xE:()=>z,zJ:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(44046),h=c(45301),i=c(32213);function j(){return(0,e.join)((0,h.KS)(),"lesson-current.json")}function k(){return(0,e.join)((0,h.KS)(),"lesson-questions.json")}function l(){let a=(0,e.join)((0,h.KS)(),"lessons");return(0,d.mkdirSync)(a,{recursive:!0}),a}let m=g.k5(["imports","calls","persists to","reads from","writes to","routes to","depends on","emits","returns","contains","extends"]),n=g.Ik({id:g.Yj().trim().min(1),title:g.Yj().trim().min(1),summary:g.Yj().default(""),detail:g.Yj().default(""),files:g.YO(g.Yj()).default([]),group:g.Yj().optional(),x:g.ai().optional(),y:g.ai().optional()}),o=g.Ik({id:g.Yj().optional(),fromId:g.Yj().trim().min(1),toId:g.Yj().trim().min(1),verb:m}),p=g.Ik({id:g.Yj().optional(),title:g.Yj().trim().min(1),summary:g.Yj().default(""),focusIds:g.YO(g.Yj()).default([]),narrativeAnchor:g.Yj().optional()}),q=g.Ik({name:g.Yj().trim().min(1),type:g.Yj().default("text"),isPk:g.zM().optional(),isFk:g.zM().optional(),fkTo:g.Yj().optional(),note:g.Yj().optional()}),r=g.Ik({id:g.Yj().trim().min(1),name:g.Yj().trim().min(1),domain:g.Yj().optional(),note:g.Yj().optional(),group:g.Yj().optional(),columns:g.YO(q).default([]),sample:g.YO(g.g1(g.Yj(),g.Yj())).optional()}),s=g.Ik({title:g.Yj().trim().min(1),topic:g.Yj().default(""),narrative:g.Yj().default(""),nodes:g.YO(n).default([]),edges:g.YO(o).default([]),tables:g.YO(r).default([]),steps:g.YO(p).optional(),answers:g.YO(g.Ik({questionId:g.Yj(),answer:g.Yj()})).optional()});function t(){try{return JSON.parse((0,d.readFileSync)(j(),"utf8"))}catch{return null}}function u(){(0,d.rmSync)(j(),{force:!0})}function v(a,b=Date.now()){let c=w(),d=function(a,b,c=Date.now()){var d;let e=(d=a.nodes.map(a=>({id:a.id,title:a.title,summary:a.summary,detail:a.detail,files:a.files,group:a.group,x:a.x??0,y:a.y??0}))).some(a=>(a.x??0)!==0||(a.y??0)!==0)?d.map(a=>({...a,x:a.x??0,y:a.y??0})):d.map((a,b)=>({...a,x:b%3*320,y:200*Math.floor(b/3)})),g=(a.tables??[]).map(a=>({id:a.id,name:a.name,domain:a.domain,note:a.note,group:a.group,columns:a.columns,sample:a.sample})),h=new Set([...e.map(a=>a.id),...g.map(a=>a.id)]),i=a.edges.filter(a=>h.has(a.fromId)&&h.has(a.toId)).map(a=>({id:a.id??(0,f.randomUUID)().slice(0,8),fromId:a.fromId,toId:a.toId,verb:a.verb})),j=(a.steps??[]).map((a,b)=>({id:a.id??`step-${b}`,title:a.title,summary:a.summary,focusIds:a.focusIds.filter(a=>h.has(a)),narrativeAnchor:a.narrativeAnchor})),k=new Map((a.answers??[]).map(a=>[a.questionId,a.answer])),l=w(),m=(b?.questions??[]).map(a=>{let b=k.get(a.id);return b&&!a.answer?{...a,answer:b,answeredAt:c}:a}),n=new Set(m.map(a=>a.id)),o=[...m,...l.submitted?l.questions.filter(a=>!n.has(a.id)).map(a=>{let b=k.get(a.id);return b?{...a,answer:b,answeredAt:c}:a}):[]];return{id:b?.id??(0,f.randomUUID)().slice(0,8),title:a.title,topic:a.topic||b?.topic||a.title,createdAt:b?.createdAt??c,updatedAt:Math.max(c,(b?.updatedAt??0)+1),status:"live",narrative:a.narrative,nodes:e,edges:i,tables:g,steps:j,questions:o}}(a,t(),b);(0,i.q)(j(),d);let e=new Set(d.questions.filter(a=>a.answer).map(a=>a.id)),g=c.submitted?c.questions.filter(a=>!e.has(a.id)):[];return g.length?x({questions:g,submitted:!0}):y(),d}function w(){try{let a=JSON.parse((0,d.readFileSync)(k(),"utf8"));return{questions:a.questions??[],submitted:!!a.submitted}}catch{return{questions:[],submitted:!1}}}function x(a){(0,i.q)(k(),a)}function y(){(0,d.rmSync)(k(),{force:!0})}function z(a=Date.now()){let b=t();if(!b)return null;let c={...b,status:"saved",updatedAt:a};return(0,i.q)((0,e.join)(l(),`${c.id}.json`),c,!0),c.id}function A(){let a;try{a=(0,d.readdirSync)(l())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=JSON.parse((0,d.readFileSync)((0,e.join)(l(),c),"utf8"));b.push({id:a.id,title:a.title,topic:a.topic,createdAt:a.createdAt,updatedAt:a.updatedAt,nodeCount:a.nodes?.length??0,questionCount:a.questions?.length??0})}catch{}return b.sort((a,b)=>b.updatedAt-a.updatedAt)}function B(a){try{return JSON.parse((0,d.readFileSync)((0,e.join)(l(),`${a}.json`),"utf8"))}catch{return null}}},48161:a=>{a.exports=require("node:os")},48232:(a,b,c)=>{c.d(b,{W:()=>d});function d(a,b=new Map){let c=a.filter(a=>a.question.trim());if(!c.length)return"";let e=c.filter(a=>"overall"===a.anchor.kind),f=c.filter(a=>"node"===a.anchor.kind),g=c.filter(a=>"text"===a.anchor.kind),h=["## Questions from the user","","Answer each one, then call `beacon_explain` again with the SAME lesson plus `answers: [{ questionId, answer }]` (keyed by the `[q:ID]` below). Expand the narrative or add nodes where it helps. Keep answering in this loop until the user saves the lesson."];if(e.length)for(let a of(h.push("","### Overall"),e))h.push(`- [q:${a.id}] ${a.question.trim()}`);if(f.length){let a=new Map;for(let b of f){if("node"!==b.anchor.kind)continue;let c=b.anchor.nodeId;(a.get(c)??a.set(c,[]).get(c)).push(b)}for(let[c,d]of a){let a=b.get(c)??c;for(let b of(h.push("",`### About "${a}"`),d))h.push(`- [q:${b.id}] ${b.question.trim()}`)}}if(g.length)for(let a of(h.push("","### About specific passages"),g)){if("text"!==a.anchor.kind)continue;let b=a.anchor.excerpt.split("\n").map(a=>`> ${a}`).join("\n");h.push("",b,`- [q:${a.id}] ${a.question.trim()}`)}return h.join("\n").trim()}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63356:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(78039),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/lesson/verdict/route",pathname:"/api/lesson/verdict",filename:"route",bundlePath:"app/api/lesson/verdict/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/lesson/verdict/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/lesson/verdict/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},78039:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k,dynamic:()=>l});var e=c(56727),f=c(43327),g=c(47320),h=c(48232),i=c(6716),j=a([e]);e=(j.then?(await j)():j)[0];let l="force-dynamic";async function k(a){return(0,e.X_)((0,i.Ck)(a),async()=>{let a=(0,f.m)();if("questions"===a.kind){let b=(0,g.Sn)(),c=new Map((b?.nodes??[]).map(a=>[a.id,a.title]));return Response.json({...a,rendered:(0,h.W)(a.questions,c)})}return Response.json(a)})}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93774:(a,b,c)=>{c.d(b,{D8:()=>k,Ei:()=>i,Ng:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"lesson-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683],()=>b(b.s=63356));module.exports=c})();
@@ -1,9 +1 @@
1
- "use strict";(()=>{var a={};a.id=9140,a.ids=[9140],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},20872:(a,b,c)=>{c.d(b,{f:()=>d});function d(a){let b=a,c=new Set;for(;b instanceof Error&&void 0!==b.cause&&!c.has(b.cause);)c.add(b.cause),b=b.cause;if(b instanceof Error){let a=b.code;return"string"!=typeof a||b.message.includes(a)?b.message:`${a}: ${b.message}`}return a instanceof Error?a.message:String(b)}},21838:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(79423),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/map/describe/route",pathname:"/api/map/describe",filename:"route",bundlePath:"app/api/map/describe/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/map/describe/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/map/describe/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51695:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EM:()=>l,Ek:()=>k,Zt:()=>j,jX:()=>n,m3:()=>m});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}async function j(a=f.db){let b=await a.query.planContract.findFirst({where:(a,{eq:b})=>b(a.active,!0)});return b?{planId:b.planId,declaredFiles:i(b.declaredFiles),authorizedExtras:i(b.authorizedExtras)}:null}async function k(a,b=f.db){await b.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0));let c=JSON.stringify(a.declaredFiles);await b.insert(g.planContract).values({planId:a.planId,declaredFiles:c,authorizedExtras:"[]",active:!0}).onConflictDoUpdate({target:g.planContract.planId,set:{declaredFiles:c,authorizedExtras:"[]",active:!0}})}async function l(a,b,c=f.db){let d=await c.query.planContract.findFirst({where:(b,{eq:c})=>c(b.planId,a)});if(!d)return;let h=i(d.authorizedExtras);h.includes(b)||(h.push(b),await c.update(g.planContract).set({authorizedExtras:JSON.stringify(h)}).where((0,e.eq)(g.planContract.planId,a)))}async function m(a=f.db){await a.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0))}function n(a){let{filePath:b,enabled:c,contract:d,extraAllowed:e=[]}=a;if(!c||!d)return{decision:"allow"};let f=new Set([...d.declaredFiles,...d.authorizedExtras,...e]);return 0===f.size||f.has(b)?{decision:"allow"}:{decision:"ask",reason:`⚠️ This edit touches \`${b}\`, which is outside this plan's declared scope. Authorize this divergence? (The contract is human-owned — only your approval can widen it.)`}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66469:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{GJ:()=>m});var e=c(73024),f=c(76760),g=c(56727),h=c(45301),i=c(72595),j=a([g,i]);[g,i]=j.then?(await j)():j;let n="\x3c!-- beacon:start --\x3e",o="\x3c!-- beacon:end --\x3e";async function k(){let a=await (0,i.hA)(),b=[];try{b=JSON.parse(a.conventions)}catch{b=[]}let c=await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ARCHITECTURE"),with:{files:{columns:{path:!0}}},orderBy:(a,{asc:b})=>b(a.cluster)}),d=await g.db.query.dbTable.findMany({with:{columns:{orderBy:(a,{asc:b})=>b(a.ord)}},orderBy:(a,{asc:b})=>b(a.name)}),j=await g.db.query.endpoint.findMany({orderBy:(a,{asc:b})=>[b(a.domain),b(a.path)]}),k=function(a){let b={};try{let c=JSON.parse((0,e.readFileSync)((0,f.join)(a,"package.json"),"utf8"));for(let a of["dev","build","test","lint","start"])c.scripts?.[a]&&(b[a]=`npm run ${a}`)}catch{}try{let c=(0,e.readFileSync)((0,f.join)(a,"Makefile"),"utf8");for(let a of["dev","up","build","test","lint"])RegExp(`^${a}:`,"m").test(c)&&(b[a]=`make ${a}`)}catch{}return!b.test&&((0,e.existsSync)((0,f.join)(a,"pyproject.toml"))||(0,e.existsSync)((0,f.join)(a,"requirements.txt")))&&(b.test="pytest"),b}((0,h.jv)()),l=[`## Project: ${(0,h.Qq)()}`];if(a.overview&&l.push("",a.overview),Object.keys(k).length)for(let[a,b]of(l.push("","### Commands"),Object.entries(k)))l.push(`- ${a}: \`${b}\``);if(c.length){l.push("","### Architecture");let a=new Map;for(let b of c){let c=b.cluster??"MISC";a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let[b,c]of a)for(let a of(l.push(`- **${b}**`),c)){let b=a.files.map(a=>a.path).slice(0,6).join(", ");l.push(` - ${a.title}${a.role?` — ${a.role}`:""}${b?` (${b})`:""}`)}}if(d.length)for(let a of(l.push("","### Database"),d))l.push(`- \`${a.name}\`: ${a.columns.map(a=>a.name).slice(0,12).join(", ")}`);if(j.length)for(let a of(l.push("","### Endpoints"),j.slice(0,40)))l.push(`- ${a.method} ${a.path}`);if(b.length)for(let a of(l.push("","### Conventions & gotchas"),b))l.push(`- ${a}`);return l.push("","_Maintained by Beacon — edit outside the markers; this block is regenerated._"),l.join("\n")}function l(a,b,c){let d=b.replaceAll(n,"`beacon:start`").replaceAll(o,"`beacon:end`"),f=`${n}
2
- ${d}
3
- ${o}`,g=(0,e.existsSync)(a)?(0,e.readFileSync)(a,"utf8"):"";g=g.includes(n)&&g.includes(o)?g.replace(RegExp(`${n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}[\\s\\S]*${o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}`),()=>f):g.trim()?`${g.trim()}
4
-
5
- ${f}
6
- `:`${c}
7
-
8
- ${f}
9
- `,(0,e.writeFileSync)(a,g)}async function m(a={}){let b=(0,h.jv)(),c=(0,f.join)(b,"AGENTS.md"),d=(0,f.join)(b,"CLAUDE.md");if(a.onlyIfManaged&&!((0,e.existsSync)(c)&&(0,e.readFileSync)(c,"utf8").includes(n)))return[];let g=[];l(c,await k(),"# AGENTS.md"),g.push(c);let i=(0,e.existsSync)(d)?(0,e.readFileSync)(d,"utf8"):"";return/@?AGENTS\.md/.test(i)||(l(d,"@AGENTS.md","# CLAUDE.md"),g.push(d)),g}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},79423:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>m,dynamic:()=>n});var e=c(70299),f=c(20872),g=c(56727),h=c(66469),i=c(51695),j=c(6716),k=a([e,g,h,i]);[e,g,h,i]=k.then?(await k)():k;let n="force-dynamic";function l(a){return{id:"string"==typeof a.id?a.id:void 0,title:"string"==typeof a.title?a.title:void 0,description:"string"==typeof a.description?a.description:"",files:Array.isArray(a.files)?a.files.filter(a=>"string"==typeof a):void 0,architecture:Array.isArray(a.architecture)?a.architecture:void 0}}async function m(a){try{let b=await a.json(),c=(0,j.Ck)(a);if(Array.isArray(b.features)){let a=b.features.map(l);if(a.some(a=>!a.description.trim()))return new Response("each feature needs a description",{status:400});return await (0,g.X_)(c,async()=>{let b=await (0,e.N5)(a);return c&&a.some(a=>a.architecture?.length)&&await (0,h.GJ)({onlyIfManaged:!0}).catch(()=>{}),await (0,i.m3)().catch(()=>{}),Response.json(b)})}if("string"!=typeof b.description||!b.description.trim())return new Response("description required",{status:400});return await (0,g.X_)(c,async()=>{let a=await (0,e.AS)(l(b));return c&&Array.isArray(b.architecture)&&b.architecture.length&&await (0,h.GJ)({onlyIfManaged:!0}).catch(()=>{}),await (0,i.m3)().catch(()=>{}),Response.json(a)})}catch(c){let a=(0,f.f)(c),b=/SQLITE_BUSY|database is locked/i.test(a)?" — another Beacon process is holding this workspace's database (often a stale daemon); the request is safe to retry once it's stopped":"";return new Response(`describe failed: ${a}${b}`,{status:500})}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734,3098,1130],()=>b(b.s=21838));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=9140,a.ids=[9140],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},19225:(a,b,c)=>{a.exports=c(44870)},20872:(a,b,c)=>{c.d(b,{f:()=>d});function d(a){let b=a,c=new Set;for(;b instanceof Error&&void 0!==b.cause&&!c.has(b.cause);)c.add(b.cause),b=b.cause;if(b instanceof Error){let a=b.code;return"string"!=typeof a||b.message.includes(a)?b.message:`${a}: ${b.message}`}return a instanceof Error?a.message:String(b)}},28855:a=>{a.exports=import("@libsql/client")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31059:(a,b,c)=>{c.d(b,{ie:()=>f});var d=c(37096),e=c(71484);function f(...a){return a[0].columns?new g(a[0].columns,a[0].name):new g(a)}class g{static [d.i]="SQLitePrimaryKeyBuilder";columns;name;constructor(a,b){this.columns=a,this.name=b}build(a){return new h(a,this.columns,this.name)}}class h{constructor(a,b,c){this.table=a,this.columns=b,this.name=c}static [d.i]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[e.jo.Symbol.Name]}_${this.columns.map(a=>a.name).join("_")}_pk`}}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51695:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EM:()=>n,Ek:()=>m,MS:()=>l,Zt:()=>j,jX:()=>p,m3:()=>o,yt:()=>k});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}async function j(a=f.db){let b=await a.query.planContract.findFirst({where:(a,{eq:b})=>b(a.active,!0)});return b?{planId:b.planId,declaredFiles:i(b.declaredFiles),authorizedExtras:i(b.authorizedExtras)}:null}async function k(a,b=f.db){let c=await b.query.planContract.findFirst({where:(b,{eq:c})=>c(b.planId,a)});return c?{planId:c.planId,declaredFiles:i(c.declaredFiles),authorizedExtras:i(c.authorizedExtras)}:null}function l(a){return Array.from(new Set([...a.declaredFiles,...a.authorizedExtras])).sort((a,b)=>a.localeCompare(b))}async function m(a,b=f.db){await b.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0));let c=JSON.stringify(a.declaredFiles);await b.insert(g.planContract).values({planId:a.planId,declaredFiles:c,authorizedExtras:"[]",active:!0}).onConflictDoUpdate({target:g.planContract.planId,set:{declaredFiles:c,authorizedExtras:"[]",active:!0}})}async function n(a,b,c=f.db){let d=await c.query.planContract.findFirst({where:(b,{eq:c})=>c(b.planId,a)});if(!d)return;let h=i(d.authorizedExtras);h.includes(b)||(h.push(b),await c.update(g.planContract).set({authorizedExtras:JSON.stringify(h)}).where((0,e.eq)(g.planContract.planId,a)))}async function o(a=f.db){await a.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0))}function p(a){let{filePath:b,contract:c}=a;if(!c)return{decision:"allow"};let d=new Set([...c.declaredFiles,...c.authorizedExtras]);return 0===d.size||d.has(b)?{decision:"allow"}:{decision:"ask",reason:`⚠️ This edit touches \`${b}\`, which is outside this plan's declared scope. Authorize this divergence? (The contract is human-owned — only your approval can widen it.)`}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},76968:(a,b,c)=>{c.d(b,{GL:()=>i,Pe:()=>h});var d=c(37096);class e{constructor(a,b){this.name=a,this.unique=b}static [d.i]="SQLiteIndexBuilderOn";on(...a){return new f(this.name,a,this.unique)}}class f{static [d.i]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new g(this.config,a)}}class g{static [d.i]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}function h(a){return new e(a,!1)}function i(a){return new e(a,!0)}},77598:a=>{a.exports=require("node:crypto")},79423:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>m,dynamic:()=>n});var e=c(70299),f=c(20872),g=c(56727),h=c(66469),i=c(51695),j=c(6716),k=a([e,g,h,i]);[e,g,h,i]=k.then?(await k)():k;let n="force-dynamic";function l(a){return{id:"string"==typeof a.id?a.id:void 0,title:"string"==typeof a.title?a.title:void 0,description:"string"==typeof a.description?a.description:"",files:Array.isArray(a.files)?a.files.filter(a=>"string"==typeof a):void 0,architecture:Array.isArray(a.architecture)?a.architecture:void 0}}async function m(a){try{let b=await a.json(),c=(0,j.Ck)(a);if(Array.isArray(b.features)){let a=b.features.map(l);if(a.some(a=>!a.description.trim()))return new Response("each feature needs a description",{status:400});return await (0,g.X_)(c,async()=>{let b=await (0,e.N5)(a);return c&&a.some(a=>a.architecture?.length)&&await (0,h.GJ)({onlyIfManaged:!0}).catch(()=>{}),await (0,i.m3)().catch(()=>{}),Response.json(b)})}if("string"!=typeof b.description||!b.description.trim())return new Response("description required",{status:400});return await (0,g.X_)(c,async()=>{let a=await (0,e.AS)(l(b));return c&&Array.isArray(b.architecture)&&b.architecture.length&&await (0,h.GJ)({onlyIfManaged:!0}).catch(()=>{}),await (0,i.m3)().catch(()=>{}),Response.json(a)})}catch(c){let a=(0,f.f)(c),b=/SQLITE_BUSY|database is locked/i.test(a)?" — another Beacon process is holding this workspace's database (often a stale daemon); the request is safe to retry once it's stopped":"";return new Response(`describe failed: ${a}${b}`,{status:500})}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90732:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(79423),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/map/describe/route",pathname:"/api/map/describe",filename:"route",bundlePath:"app/api/map/describe/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/beacon/beacon/app/api/map/describe/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/map/describe/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1669,3254,9884,5871,4046,9683,9734,8227,1130,6469],()=>b(b.s=90732));module.exports=c})();