wrong-notebook 2026.10.22-4 → 2026.10.23

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 (688) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +0 -1
  3. package/.next/build-manifest.json +8 -8
  4. package/.next/prerender-manifest.json +4 -4
  5. package/.next/routes-manifest.json +0 -8
  6. package/.next/server/app/_global-error/page/build-manifest.json +5 -5
  7. package/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +7 -7
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/build-manifest.json +5 -5
  16. package/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/admin/page/build-manifest.json +5 -5
  20. package/.next/server/app/admin/page.js +2 -2
  21. package/.next/server/app/admin/page.js.nft.json +1 -1
  22. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/admin/user/[id]/page/build-manifest.json +5 -5
  24. package/.next/server/app/admin/user/[id]/page.js +2 -2
  25. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  26. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/admin/dashboard/route.js +10 -4
  28. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  29. package/.next/server/app/api/admin/migrate-tags/route.js +3 -3
  30. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  31. package/.next/server/app/api/admin/system-reset/route.js +4 -4
  32. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  33. package/.next/server/app/api/admin/users/[id]/detail/route.js +11 -4
  34. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  35. package/.next/server/app/api/admin/users/[id]/route.js +3 -3
  36. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/admin/users/route.js +3 -3
  38. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  39. package/.next/server/app/api/ai/models/route.js +7 -7
  40. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  41. package/.next/server/app/api/ai/test/route.js +8 -8
  42. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  43. package/.next/server/app/api/analytics/route.js +5 -5
  44. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  45. package/.next/server/app/api/analyze/route.js +9 -9
  46. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  47. package/.next/server/app/api/auth/[...nextauth]/route.js +3 -3
  48. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/error-items/[id]/delete/route.js +4 -4
  50. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  51. package/.next/server/app/api/error-items/[id]/figure/route.js +8 -8
  52. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  53. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +9 -9
  54. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  55. package/.next/server/app/api/error-items/[id]/geogebra/route.js +7 -7
  56. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  57. package/.next/server/app/api/error-items/[id]/image/route.js +4 -4
  58. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  59. package/.next/server/app/api/error-items/[id]/notes/route.js +4 -4
  60. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  61. package/.next/server/app/api/error-items/[id]/practice-records/route.js +4 -4
  62. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  63. package/.next/server/app/api/error-items/[id]/reanswer/route.js +10 -10
  64. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  65. package/.next/server/app/api/error-items/[id]/retag/route.js +8 -8
  66. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  67. package/.next/server/app/api/error-items/[id]/route.js +1 -1
  68. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  69. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +10 -10
  70. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  71. package/.next/server/app/api/error-items/batch-delete/route.js +4 -4
  72. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  73. package/.next/server/app/api/error-items/clear/route.js +4 -4
  74. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  75. package/.next/server/app/api/error-items/list/route.js +6 -6
  76. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  77. package/.next/server/app/api/error-items/route.js +10 -10
  78. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  79. package/.next/server/app/api/error-items/short/[shortId]/route.js +3 -3
  80. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/error-items/similarity/route.js +4 -4
  82. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  83. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +9 -9
  84. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  85. package/.next/server/app/api/exams/[id]/results/route.js +7 -7
  86. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  87. package/.next/server/app/api/exams/[id]/retry/route.js +9 -9
  88. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  89. package/.next/server/app/api/exams/[id]/route.js +7 -7
  90. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  91. package/.next/server/app/api/exams/route.js +9 -9
  92. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  93. package/.next/server/app/api/export/route.js +4 -4
  94. package/.next/server/app/api/export/route.js.nft.json +1 -1
  95. package/.next/server/app/api/geogebra-analyze/route.js +7 -7
  96. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  97. package/.next/server/app/api/health/route.js +2 -2
  98. package/.next/server/app/api/health/route.js.nft.json +1 -1
  99. package/.next/server/app/api/import/route.js +9 -9
  100. package/.next/server/app/api/import/route.js.nft.json +1 -1
  101. package/.next/server/app/api/logs/frontend/route.js +4 -4
  102. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  103. package/.next/server/app/api/notebooks/[id]/retag/route.js +5 -5
  104. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  105. package/.next/server/app/api/notebooks/[id]/route.js +4 -4
  106. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  107. package/.next/server/app/api/notebooks/route.js +3 -3
  108. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  109. package/.next/server/app/api/openclaw/batch-upload/route.js +9 -9
  110. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  111. package/.next/server/app/api/practice/generate/route.js +7 -7
  112. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  113. package/.next/server/app/api/practice/record/[id]/route.js +7 -7
  114. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  115. package/.next/server/app/api/practice/record/route.js +9 -9
  116. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  117. package/.next/server/app/api/reanswer/route.js +9 -9
  118. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  119. package/.next/server/app/api/register/route.js.nft.json +1 -1
  120. package/.next/server/app/api/register/status/route.js +2 -2
  121. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  122. package/.next/server/app/api/settings/route.js +5 -5
  123. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  124. package/.next/server/app/api/stats/practice/clear/route.js +4 -4
  125. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  126. package/.next/server/app/api/stats/practice/route.js +3 -3
  127. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  128. package/.next/server/app/api/tags/route.js +4 -4
  129. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  130. package/.next/server/app/api/tags/stats/route.js +4 -4
  131. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  132. package/.next/server/app/api/tags/suggestions/route.js +3 -3
  133. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  134. package/.next/server/app/api/tasks/route.js +4 -4
  135. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  136. package/.next/server/app/api/user/route.js +4 -4
  137. package/.next/server/app/api/user/route.js.nft.json +1 -1
  138. package/.next/server/app/api/version/route.js +2 -2
  139. package/.next/server/app/api/version/route.js.nft.json +1 -1
  140. package/.next/server/app/error-items/[id]/page/build-manifest.json +5 -5
  141. package/.next/server/app/error-items/[id]/page.js +2 -2
  142. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  143. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  144. package/.next/server/app/exams/[id]/page/build-manifest.json +5 -5
  145. package/.next/server/app/exams/[id]/page.js +2 -2
  146. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  147. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  148. package/.next/server/app/exams/[id]/print/page/build-manifest.json +5 -5
  149. package/.next/server/app/exams/[id]/print/page.js +2 -2
  150. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  151. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/exams/page/build-manifest.json +5 -5
  153. package/.next/server/app/exams/page.js +2 -2
  154. package/.next/server/app/exams/page.js.nft.json +1 -1
  155. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/favicon.ico/route.js +2 -2
  157. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  158. package/.next/server/app/latex-test/page/build-manifest.json +5 -5
  159. package/.next/server/app/latex-test/page.js +2 -2
  160. package/.next/server/app/latex-test/page.js.nft.json +1 -1
  161. package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/login/page/build-manifest.json +5 -5
  163. package/.next/server/app/login/page.js +2 -2
  164. package/.next/server/app/login/page.js.nft.json +1 -1
  165. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  167. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  168. package/.next/server/app/notebooks/[id]/add/page/build-manifest.json +5 -5
  169. package/.next/server/app/notebooks/[id]/add/page.js +2 -2
  170. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  171. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/notebooks/[id]/page/build-manifest.json +5 -5
  173. package/.next/server/app/notebooks/[id]/page.js +2 -2
  174. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  175. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/notebooks/page/build-manifest.json +5 -5
  177. package/.next/server/app/notebooks/page.js +2 -2
  178. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  179. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/page/build-manifest.json +5 -5
  181. package/.next/server/app/page.js +2 -2
  182. package/.next/server/app/page.js.nft.json +1 -1
  183. package/.next/server/app/page_client-reference-manifest.js +1 -1
  184. package/.next/server/app/practice/page/build-manifest.json +5 -5
  185. package/.next/server/app/practice/page.js +2 -2
  186. package/.next/server/app/practice/page.js.nft.json +1 -1
  187. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  188. package/.next/server/app/print-preview/page/build-manifest.json +5 -5
  189. package/.next/server/app/print-preview/page.js +2 -2
  190. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  191. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  192. package/.next/server/app/register/page/build-manifest.json +5 -5
  193. package/.next/server/app/register/page.js.nft.json +1 -1
  194. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  195. package/.next/server/app/stats/page/build-manifest.json +5 -5
  196. package/.next/server/app/stats/page.js +2 -2
  197. package/.next/server/app/stats/page.js.nft.json +1 -1
  198. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  199. package/.next/server/app/tags/page/build-manifest.json +5 -5
  200. package/.next/server/app/tags/page.js +2 -2
  201. package/.next/server/app/tags/page.js.nft.json +1 -1
  202. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  203. package/.next/server/app-paths-manifest.json +0 -1
  204. package/.next/server/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +1 -1
  205. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +1 -1
  206. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +1 -1
  207. package/.next/server/chunks/[externals]__04n7qbr._.js +1 -1
  208. package/.next/server/chunks/[externals]__0jzwjtl._.js +3 -0
  209. package/.next/server/chunks/[externals]__0pot68n._.js +1 -1
  210. package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__0-2l_pu._.js +3 -0
  212. package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +6 -6
  213. package/.next/server/chunks/[root-of-the-server]__00moo9h._.js +3 -0
  214. package/.next/server/chunks/[root-of-the-server]__012xcq-._.js +3 -0
  215. package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
  216. package/.next/server/chunks/[root-of-the-server]__02pqrw_._.js +3 -0
  217. package/.next/server/chunks/[root-of-the-server]__033ri9p._.js +3 -0
  218. package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +3 -0
  219. package/.next/server/chunks/[root-of-the-server]__064krqp._.js +3 -0
  220. package/.next/server/chunks/[root-of-the-server]__07iraov._.js +3 -0
  221. package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
  222. package/.next/server/chunks/[root-of-the-server]__07q7nsp._.js +3 -0
  223. package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +1 -1
  224. package/.next/server/chunks/[root-of-the-server]__0_unb90._.js +3 -0
  225. package/.next/server/chunks/[root-of-the-server]__0a1zwxf._.js +3 -0
  226. package/.next/server/chunks/[root-of-the-server]__0aefi10._.js +3 -0
  227. package/.next/server/chunks/[root-of-the-server]__0akadps._.js +1 -1
  228. package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +3 -0
  229. package/.next/server/chunks/[root-of-the-server]__0d-37yj._.js +3 -0
  230. package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +3 -0
  231. package/.next/server/chunks/[root-of-the-server]__0dqgi36._.js +3 -0
  232. package/.next/server/chunks/[root-of-the-server]__0dz5c04._.js +3 -0
  233. package/.next/server/chunks/[root-of-the-server]__0e_u82_._.js +3 -0
  234. package/.next/server/chunks/[root-of-the-server]__0f3jyg0._.js +3 -0
  235. package/.next/server/chunks/[root-of-the-server]__0gwwa9b._.js +3 -0
  236. package/.next/server/chunks/[root-of-the-server]__0hars8c._.js +3 -0
  237. package/.next/server/chunks/[root-of-the-server]__0iozebm._.js +3 -0
  238. package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +3 -0
  239. package/.next/server/chunks/[root-of-the-server]__0k3mm05._.js +3 -0
  240. package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +3 -0
  241. package/.next/server/chunks/[root-of-the-server]__0lggrcf._.js +3 -0
  242. package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +3 -0
  243. package/.next/server/chunks/[root-of-the-server]__0m37xyb._.js +3 -0
  244. package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
  245. package/.next/server/chunks/[root-of-the-server]__0pa47kn._.js +3 -0
  246. package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +3 -0
  247. package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +3 -0
  248. package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +3 -3
  249. package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +3 -0
  250. package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +3 -0
  251. package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +3 -0
  252. package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +3 -0
  253. package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +3 -0
  254. package/.next/server/chunks/[root-of-the-server]__0w58v6b._.js +3 -0
  255. package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +3 -0
  256. package/.next/server/chunks/[root-of-the-server]__0wsj4a_._.js +3 -0
  257. package/.next/server/chunks/[root-of-the-server]__0wvvsah._.js +3 -0
  258. package/.next/server/chunks/[root-of-the-server]__0xg5h56._.js +3 -0
  259. package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +3 -0
  260. package/.next/server/chunks/[root-of-the-server]__10hs-qn._.js +3 -0
  261. package/.next/server/chunks/[root-of-the-server]__119xork._.js +3 -0
  262. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
  263. package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +3 -0
  264. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +9 -9
  265. package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +1 -1
  266. package/.next/server/chunks/[root-of-the-server]__15y1l96._.js +3 -0
  267. package/.next/server/chunks/[root-of-the-server]__16hnc6-._.js +3 -0
  268. package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +3 -0
  269. package/.next/server/chunks/[root-of-the-server]__19_wn9u._.js +3 -0
  270. package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__1_hp3ol._.js +3 -0
  272. package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +3 -0
  273. package/.next/server/chunks/[root-of-the-server]__1a4-26x._.js +3 -0
  274. package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +3 -0
  275. package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +3 -0
  276. package/.next/server/chunks/[root-of-the-server]__1bl7t8i._.js +3 -0
  277. package/.next/server/chunks/[root-of-the-server]__1c0vatt._.js +3 -0
  278. package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +3 -0
  279. package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +3 -0
  280. package/.next/server/chunks/[root-of-the-server]__1cngnud._.js +3 -0
  281. package/.next/server/chunks/[root-of-the-server]__1d82zkk._.js +3 -0
  282. package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +3 -0
  283. package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +122 -0
  284. package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +3 -0
  285. package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +3 -0
  286. package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +3 -0
  287. package/.next/server/chunks/[root-of-the-server]__1i40psm._.js +3 -0
  288. package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +3 -0
  289. package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +3 -0
  290. package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +2 -2
  291. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
  292. package/.next/server/chunks/[root-of-the-server]__1lbcdia._.js +3 -0
  293. package/.next/server/chunks/[root-of-the-server]__1m86czr._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__1mnpqkx._.js +3 -0
  295. package/.next/server/chunks/[root-of-the-server]__1n4b6nb._.js +3 -0
  296. package/.next/server/chunks/[root-of-the-server]__1nmrlew._.js +3 -0
  297. package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +1 -1
  298. package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +3 -0
  299. package/.next/server/chunks/[root-of-the-server]__1q7yl7l._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__1qv60vg._.js +3 -0
  301. package/.next/server/chunks/[root-of-the-server]__1ry8uat._.js +3 -0
  302. package/.next/server/chunks/[root-of-the-server]__1s2rww3._.js +3 -0
  303. package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +3 -0
  305. package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +3 -0
  306. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +9 -9
  307. package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +3 -0
  308. package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +3 -0
  309. package/.next/server/chunks/_0-eguqv._.js +1 -1
  310. package/.next/server/chunks/_008zx49._.js +1 -1
  311. package/.next/server/chunks/_011-ll5._.js +1 -1
  312. package/.next/server/chunks/_0389uce._.js +1 -1
  313. package/.next/server/chunks/_0431fxn._.js +1 -1
  314. package/.next/server/chunks/_0ekrwj-._.js +6 -6
  315. package/.next/server/chunks/_0gwg6ba._.js +1 -1
  316. package/.next/server/chunks/_0gxi3zr._.js +1 -1
  317. package/.next/server/chunks/_0lz3t4l._.js +2 -2
  318. package/.next/server/chunks/_0n36ev0._.js +3 -0
  319. package/.next/server/chunks/_0oc8oe4._.js +3 -0
  320. package/.next/server/chunks/_0rjzgi0._.js +3 -0
  321. package/.next/server/chunks/_0uxp3uh._.js +1 -1
  322. package/.next/server/chunks/_0x3ltk0._.js +6 -6
  323. package/.next/server/chunks/_10y361h._.js +3 -0
  324. package/.next/server/chunks/_12w5k19._.js +1 -1
  325. package/.next/server/chunks/_13ffmxv._.js +1 -1
  326. package/.next/server/chunks/_14tz_k9._.js +1 -1
  327. package/.next/server/chunks/_15neond._.js +11 -0
  328. package/.next/server/chunks/_16jdov0._.js +1 -1
  329. package/.next/server/chunks/_18amra5._.js +1 -1
  330. package/.next/server/chunks/_1_ns7o3._.js +1 -1
  331. package/.next/server/chunks/_1a1aqmi._.js +1 -1
  332. package/.next/server/chunks/_1a1udq0._.js +1 -1
  333. package/.next/server/chunks/_1b0269x._.js +1 -1
  334. package/.next/server/chunks/_1b7qjlv._.js +1 -1
  335. package/.next/server/chunks/_1be-y66._.js +1 -1
  336. package/.next/server/chunks/_1ex6ovo._.js +1 -1
  337. package/.next/server/chunks/_1fgb9ve._.js +1 -1
  338. package/.next/server/chunks/_1m-yyz-._.js +1 -1
  339. package/.next/server/chunks/_1n1xsqj._.js +3 -0
  340. package/.next/server/chunks/_1oj6gy_._.js +1 -1
  341. package/.next/server/chunks/_1pvqo-q._.js +1 -1
  342. package/.next/server/chunks/_1z_ujac._.js +1 -1
  343. package/.next/server/chunks/_211va-d._.js +1 -1
  344. package/.next/server/chunks/_2194yr7._.js +11 -0
  345. package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +1 -1
  346. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +1 -1
  347. package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +1 -1
  348. package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +1 -1
  349. package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +1 -1
  350. package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +1 -1
  351. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +1 -1
  352. package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +1 -1
  353. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +1 -1
  354. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +1 -1
  355. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +1 -1
  356. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +1 -1
  357. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +1 -1
  358. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +1 -1
  359. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +1 -1
  360. package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +1 -1
  361. package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +1 -1
  362. package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +1 -1
  363. package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +1 -1
  364. package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +1 -1
  365. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +1 -1
  366. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +1 -1
  367. package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +1 -1
  368. package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +1 -1
  369. package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +1 -1
  370. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +1 -1
  371. package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +1 -1
  372. package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +1 -1
  373. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +1 -1
  374. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +1 -1
  375. package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +1 -1
  376. package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +1 -1
  377. package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +1 -1
  378. package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +1 -1
  379. package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +1 -1
  380. package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +1 -1
  381. package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +1 -1
  382. package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +1 -1
  383. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +1 -1
  384. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +1 -1
  385. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +1 -1
  386. package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +1 -1
  387. package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +1 -1
  388. package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +1 -1
  389. package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +1 -1
  390. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +1 -1
  391. package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +1 -1
  392. package/.next/server/chunks/node_modules_next_1zdbrne._.js +1 -1
  393. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +3 -3
  394. package/.next/server/chunks/src_0tzpy5j._.js +1 -1
  395. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +1 -1
  396. package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +1 -1
  397. package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +1 -1
  398. package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +1 -1
  399. package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +3 -3
  400. package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +3 -0
  401. package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +1 -1
  402. package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +1 -1
  403. package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +1 -1
  404. package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +2 -2
  405. package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +1 -1
  406. package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +1 -1
  407. package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
  408. package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +1 -1
  409. package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +1 -1
  410. package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +3 -0
  411. package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +1 -1
  412. package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +1 -1
  413. package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +1 -1
  414. package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +1 -1
  415. package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +1 -1
  416. package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +1 -1
  417. package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +1 -1
  418. package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +2 -2
  419. package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +1 -1
  420. package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +1 -1
  421. package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +1 -1
  422. package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +1 -1
  423. package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +1 -1
  424. package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +1 -1
  425. package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +1 -1
  426. package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +1 -1
  427. package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +1 -1
  428. package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +1 -1
  429. package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +1 -1
  430. package/.next/server/chunks/ssr/_054yhx9._.js +1 -1
  431. package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
  432. package/.next/server/chunks/ssr/_0i9hwpv._.js +1 -1
  433. package/.next/server/chunks/ssr/_0iqp5hs._.js +1 -1
  434. package/.next/server/chunks/ssr/_0m1-rq-._.js +1 -1
  435. package/.next/server/chunks/ssr/_0mgbe2b._.js +1 -1
  436. package/.next/server/chunks/ssr/_0nv22wt._.js +1 -1
  437. package/.next/server/chunks/ssr/_0rz2_qb._.js +5 -5
  438. package/.next/server/chunks/ssr/_0sbbx9z._.js +2 -2
  439. package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
  440. package/.next/server/chunks/ssr/_0uemk57._.js +1 -1
  441. package/.next/server/chunks/ssr/_0zj7dlu._.js +1 -1
  442. package/.next/server/chunks/ssr/_11ut-6_._.js +3 -0
  443. package/.next/server/chunks/ssr/_17igtpd._.js +1 -1
  444. package/.next/server/chunks/ssr/_1aot_70._.js +3 -0
  445. package/.next/server/chunks/ssr/_1filpif._.js +3 -0
  446. package/.next/server/chunks/ssr/_1jniqsj._.js +1 -1
  447. package/.next/server/chunks/ssr/_1kgnhmo._.js +2 -2
  448. package/.next/server/chunks/ssr/_1lt1lhz._.js +2 -2
  449. package/.next/server/chunks/ssr/_1yeu09q._.js +1 -1
  450. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +1 -1
  451. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +1 -1
  452. package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +1 -1
  453. package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +1 -1
  454. package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +1 -1
  455. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +1 -1
  456. package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +1 -1
  457. package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +1 -1
  458. package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +1 -1
  459. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +1 -1
  460. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +1 -1
  461. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +1 -1
  462. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +1 -1
  463. package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +1 -1
  464. package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +1 -1
  465. package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +1 -1
  466. package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +1 -1
  467. package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +1 -1
  468. package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +1 -1
  469. package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +3 -3
  470. package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +1 -1
  471. package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +2 -2
  472. package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +4 -4
  473. package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  474. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +2 -2
  475. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +1 -1
  476. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +1 -1
  477. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +1 -1
  478. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +1 -1
  479. package/.next/server/chunks/ssr/src_1biegcg._.js +1 -1
  480. package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
  481. package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
  482. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
  483. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
  484. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
  485. package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +1 -1
  486. package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +1 -1
  487. package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +1 -1
  488. package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +1 -1
  489. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +2 -2
  490. package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +1 -1
  491. package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +1 -1
  492. package/.next/server/edge/chunks/_1s0wgnu._.js +1 -1
  493. package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +3 -3
  494. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +1 -1
  495. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +1 -1
  496. package/.next/server/instrumentation.js +2 -2
  497. package/.next/server/middleware-build-manifest.js +8 -8
  498. package/.next/server/middleware-manifest.json +5 -5
  499. package/.next/server/pages/500.html +1 -1
  500. package/.next/server/server-reference-manifest.js +1 -1
  501. package/.next/server/server-reference-manifest.json +1 -1
  502. package/.next/static/chunks/03gmdewlo3s6u.js +1 -0
  503. package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
  504. package/.next/static/chunks/0_w084ms_lq25.js +22 -0
  505. package/.next/static/chunks/0dzfsm6h13fyr.js +1 -0
  506. package/.next/static/chunks/0ehjiuuxbbhq9.js +1 -0
  507. package/.next/static/chunks/0ij2dqb0qj5ry.js +1 -0
  508. package/.next/static/chunks/0iq53qkw5hvrs.js +1 -0
  509. package/.next/static/chunks/0m81l71kojx8j.js +1 -0
  510. package/.next/static/chunks/0nckb2-62ooyq.js +1 -0
  511. package/.next/static/chunks/0pwdmc9gw8ben.js +33 -0
  512. package/.next/static/chunks/0snej-v5yglxr.js +1 -0
  513. package/.next/static/chunks/1-7k9gbbjkcml.js +1 -0
  514. package/.next/static/chunks/1c92up8k2x0z4.js +1 -0
  515. package/.next/static/chunks/1cd32rtomdngh.js +1 -0
  516. package/.next/static/chunks/1io3-cth_2-cd.js +1 -0
  517. package/.next/static/chunks/1oiuiyv1cv06v.js +31 -0
  518. package/.next/static/chunks/1t4-pobw0y5cf.js +1 -0
  519. package/.next/static/chunks/1xg811762s1p1.js +1 -0
  520. package/.next/static/chunks/1z_5sj1wqi06v.js +1 -0
  521. package/.next/static/chunks/24dymggis4suf.css +3 -0
  522. package/.next/static/chunks/24jbwfpgmio7x.js +1 -0
  523. package/.next/static/chunks/27fr34_1v7xyh.js +1 -0
  524. package/.next/static/chunks/2dlme2fdlkms6.js +1 -0
  525. package/.next/static/chunks/2eu_bls12m1wj.js +1 -0
  526. package/.next/static/chunks/2pmzqbg-qabof.js +1 -0
  527. package/.next/static/chunks/2w2uo9jjxt-re.js +1 -0
  528. package/.next/static/chunks/2x8e_fbze06sd.js +1 -0
  529. package/.next/static/chunks/2z1_5umv36es6.js +191 -0
  530. package/.next/static/chunks/32bl-oqw9oso0.js +1 -0
  531. package/.next/static/chunks/3b-g5_r9nto3s.js +6 -0
  532. package/.next/static/chunks/3g1rm2suowncy.js +3 -0
  533. package/.next/static/chunks/3helovsg02qr4.js +1 -0
  534. package/.next/static/chunks/3jta6jrk-jubq.js +1 -0
  535. package/.next/static/chunks/3m4c1r8_2ga_1.js +1 -0
  536. package/.next/static/chunks/3whzkc6d8oefw.js +1 -0
  537. package/.next/static/chunks/3yhf6xyypekz6.js +1 -0
  538. package/.next/static/chunks/3z9gc_02gl8n9.js +1 -0
  539. package/.next/static/chunks/427wg73nuzpiz.js +5 -0
  540. package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +1 -0
  541. package/launcher.js +22 -6
  542. package/package.json +1 -1
  543. package/prisma/seed.db +0 -0
  544. package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
  545. package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
  546. package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
  547. package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
  548. package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
  549. package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
  550. package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
  551. package/.next/server/chunks/[externals]__1735khz._.js +0 -3
  552. package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +0 -3
  553. package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +0 -3
  554. package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
  555. package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +0 -3
  556. package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +0 -3
  557. package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +0 -3
  558. package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +0 -3
  559. package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +0 -3
  560. package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +0 -3
  561. package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +0 -3
  562. package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
  563. package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
  564. package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
  565. package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
  566. package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +0 -3
  567. package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +0 -3
  568. package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +0 -3
  569. package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
  570. package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +0 -3
  571. package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +0 -3
  572. package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +0 -3
  573. package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +0 -3
  574. package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +0 -3
  575. package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
  576. package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +0 -3
  577. package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
  578. package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +0 -3
  579. package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
  580. package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +0 -3
  581. package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
  582. package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
  583. package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
  584. package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +0 -3
  585. package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +0 -3
  586. package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
  587. package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
  588. package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
  589. package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
  590. package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
  591. package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
  592. package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
  593. package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
  594. package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
  595. package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +0 -3
  596. package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
  597. package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
  598. package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
  599. package/.next/server/chunks/[root-of-the-server]__16begv4._.js +0 -3
  600. package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
  601. package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
  602. package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
  603. package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
  604. package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
  605. package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +0 -3
  606. package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +0 -3
  607. package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +0 -3
  608. package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +0 -3
  609. package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +0 -3
  610. package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +0 -3
  611. package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +0 -3
  612. package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +0 -3
  613. package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +0 -3
  614. package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +0 -3
  615. package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +0 -3
  616. package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +0 -3
  617. package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
  618. package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
  619. package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +0 -3
  620. package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +0 -3
  621. package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
  622. package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +0 -3
  623. package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +0 -3
  624. package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +0 -3
  625. package/.next/server/chunks/[root-of-the-server]__1oup682._.js +0 -3
  626. package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
  627. package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +0 -3
  628. package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +0 -3
  629. package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +0 -3
  630. package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +0 -3
  631. package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +0 -3
  632. package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
  633. package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +0 -3
  634. package/.next/server/chunks/_0_o8yhv._.js +0 -3
  635. package/.next/server/chunks/_0c5hvv3._.js +0 -11
  636. package/.next/server/chunks/_0frix22._.js +0 -11
  637. package/.next/server/chunks/_0rdo0a4._.js +0 -3
  638. package/.next/server/chunks/_167vv93._.js +0 -3
  639. package/.next/server/chunks/_1e1h1f1._.js +0 -3
  640. package/.next/server/chunks/_1flar98._.js +0 -3
  641. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +0 -3
  642. package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +0 -3
  643. package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +0 -3
  644. package/.next/server/chunks/ssr/_062gk85._.js +0 -3
  645. package/.next/server/chunks/ssr/_0idg05p._.js +0 -3
  646. package/.next/server/chunks/ssr/_1gu1rou._.js +0 -3
  647. package/.next/static/chunks/02d-8f2qj7j3j.js +0 -1
  648. package/.next/static/chunks/02t7qqptint2p.js +0 -1
  649. package/.next/static/chunks/090a6irxe0c6j.js +0 -1
  650. package/.next/static/chunks/0bhxyq7e2eqjc.js +0 -5
  651. package/.next/static/chunks/0if-vqkhyn-zc.js +0 -1
  652. package/.next/static/chunks/0jf31atbtr1mv.js +0 -1
  653. package/.next/static/chunks/0te6mr86gdyyi.js +0 -191
  654. package/.next/static/chunks/0vgthy7v615hq.js +0 -1
  655. package/.next/static/chunks/1e5n4cprhwujv.js +0 -1
  656. package/.next/static/chunks/1edfvwc5_eck-.js +0 -31
  657. package/.next/static/chunks/1f0u19gh5_49z.js +0 -1
  658. package/.next/static/chunks/1fdj59ys-pend.js +0 -1
  659. package/.next/static/chunks/1kerqdluzq2l0.js +0 -1
  660. package/.next/static/chunks/1r4lwlvm7m53v.js +0 -1
  661. package/.next/static/chunks/1rz1bokv9edzr.js +0 -1
  662. package/.next/static/chunks/1s-d67d-yroyw.js +0 -1
  663. package/.next/static/chunks/1tw5_upsy-qj_.js +0 -22
  664. package/.next/static/chunks/1w1xvldfmcs67.js +0 -6
  665. package/.next/static/chunks/1zdof8ylzqm8w.js +0 -1
  666. package/.next/static/chunks/2-k1hjh6ff6y4.js +0 -1
  667. package/.next/static/chunks/21qpve5q3mjly.js +0 -1
  668. package/.next/static/chunks/21v32ctwcoxqt.js +0 -1
  669. package/.next/static/chunks/27-t289uq6_ju.js +0 -3
  670. package/.next/static/chunks/293-te2b34thz.js +0 -1
  671. package/.next/static/chunks/2dgleoh5fbs83.js +0 -1
  672. package/.next/static/chunks/2di_nd6djcxwu.js +0 -1
  673. package/.next/static/chunks/2mk03owifu2m1.js +0 -33
  674. package/.next/static/chunks/2qza4p5d9fz_2.js +0 -1
  675. package/.next/static/chunks/2s4c8fcrdnew4.js +0 -1
  676. package/.next/static/chunks/2zdqnkem9n6a9.js +0 -1
  677. package/.next/static/chunks/3-wm04s--suy5.js +0 -1
  678. package/.next/static/chunks/33t46atd3n2zd.js +0 -1
  679. package/.next/static/chunks/37yx4gh09tzwc.js +0 -1
  680. package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
  681. package/.next/static/chunks/3gwb465dhjxo9.js +0 -1
  682. package/.next/static/chunks/3hkgw-uib19xl.js +0 -1
  683. package/.next/static/chunks/3n-yabfsiog4i.css +0 -3
  684. package/.next/static/chunks/3umldi5zknsyi.js +0 -1
  685. package/.next/static/chunks/turbopack-1yjxh4vceobdr.js +0 -1
  686. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_buildManifest.js +0 -0
  687. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_clientMiddlewareManifest.js +0 -0
  688. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var t=e.i(63021);let r=e.g.prisma||new t.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,r])},49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(t,r)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),r()}catch(e){r(e)}},!0),874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},45706,(e,t,r)=>{t.exports=e.x("querystring",()=>require("querystring"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},47381,e=>e.a(async(t,r)=>{try{var n=e.i(58821),a=e.i(98043),i=e.i(79832),o=e.i(13618),s=e.i(98003),l=e.i(76025),c=e.i(76759),p=e.i(50377),u=e.i(95408),d=t([i]);[i]=d.then?(await d)():d;let m=(0,p.createLogger)("api:analytics");async function E(e){let t=await (0,o.getServerSession)(i.authOptions);if(!t||!t.user)return(0,c.unauthorized)();let r=t.user.id;try{let e=await a.prisma.errorItem.count({where:{userId:r}}),t=await a.prisma.errorItem.count({where:{AND:[{userId:r},(0,u.masteryStatusWhere)("mastered")]}}),i=e>0?(t/e*100).toFixed(1):0,o=await a.prisma.errorItem.findMany({where:{userId:r},include:{subject:!0}}),c=new Map;o.forEach(e=>{let t=e.subject?.name||"Unknown";c.set(t,(c.get(t)||0)+1)});let p=Array.from(c.entries()).map(([e,t])=>({name:e,value:t})),d=[],E=(0,s.getAppTimeZone)(),m=new Date;for(let e=6;e>=0;e--){let{start:t,end:n}=(0,l.getDayRange)(m,E,-e),i=(0,l.formatDateTime)(t,"MM-dd",E),o=await a.prisma.errorItem.count({where:{userId:r,createdAt:{gte:t,lt:n}}});d.push({date:i,count:o})}return n.NextResponse.json({totalErrors:e,masteredCount:t,masteryRate:i,subjectStats:p,activityData:d})}catch(e){return m.error({error:e},"Error fetching analytics"),(0,c.internalError)("Failed to fetch analytics")}}e.s(["GET",0,E]),r()}catch(e){r(e)}},!1),32424,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),p=e.i(95169),u=e.i(47587),d=e.i(66012),E=e.i(70101),m=e.i(74838),R=e.i(10372),f=e.i(93695),x=e.i(9580);e.i(52474);var I=e.i(220);let h=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/analytics/route",pathname:"/api/analytics",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/analytics/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(47381),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:O,serverHooks:g}=h;async function _(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),h.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/analytics/route";v=v.replace(/\/index$/,"")||"/";let O=await h.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!O)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:g,deploymentId:_,params:N,nextConfig:A,parsedUrl:y,isDraftMode:D,prerenderManifest:T,routerServerContext:w,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:U,serverActionsManifest:C}=O,L=(0,s.normalizeAppPath)(v),M=!!T.routes[P]&&(h.isDev||(0,x.isRouteCacheOwner)(P,h.cacheOwner,T.routes[P])),q=!!(T.dynamicRoutes[L]||M),F=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,y,!1):t.end("This page could not be found"),null);if(q&&!D){let e=T.dynamicRoutes[L];if(e&&!1===e.fallback&&!M){if(A.adapterPath)return await F();throw new f.NoFallbackError}}let j=null;!q||h.isDev||D||(j="/index"===(j=P)?"/":j);let k=!0===h.isDev||!q,K=q&&!k;C&&U&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:U,serverActionsManifest:C});let Z=e.method||"GET",H=(0,i.getTracer)(),V=H.getActiveScopeSpan(),B=!!(null==w?void 0:w.isWrappedByNextServer),G=!!(0,a.getRequestMeta)(e,"minimalMode"),z=(0,a.getRequestMeta)(e,"incrementalCache")||await h.getIncrementalCache(e,A,T,G);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let $={params:N,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:D,supportsDynamicResponse:k,incrementalCache:z,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>h.onRequestError(e,t,n,a,w)},sharedContext:{buildId:g,deploymentId:_}},Y=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(Y,(0,c.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!G&&S&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await h.handle(X,$);e.fetchMetrics=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let o=$.renderOpts.collectedTags;if(!q)return await (0,d.sendResponse)(Y,W,a,i),null;{let e=await a.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[R.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:$.renderOpts.collectedExpire;return{value:{kind:I.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await h.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:S})},!1,w),t}},J=async(a,o)=>{try{var s,l;let a=await h.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,responseGenerator:Q,waitUntil:n.waitUntil,isMinimalMode:G});if(!q)return;if((null==a||null==(s=a.value)?void 0:s.kind)!==I.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",S?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),D&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,E.fromNodeOutgoingHttpHeaders)(a.value.headers);G&&q||i.delete(R.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,m.getCacheControlHeader)(a.cacheControl)),await (0,d.sendResponse)(Y,W,new Response(a.value.body,{headers:i,status:a.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await h.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:S})},!1,w),q)throw t;await (0,d.sendResponse)(Y,W,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:i.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||L,s=`${Z} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),a.updateName(s),o&&o!==a&&(o.setAttribute("http.route",n),o.updateName(s))})()}};if(B&&V)await J(V,void 0);else{let t=H.getActiveScopeSpan();await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${Z} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":Z,"http.target":e.url}},e=>J(e,t)),void 0,!B)}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:O})},"routeModule",0,h,"serverHooks",0,g,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,O])},98876,e=>{"use strict";let t={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},r=Object.keys(t);e.s(["VENDOR_PRESETS",0,t,"VENDOR_PROVIDER_IDS",0,r,"isVendorProvider",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)},"resolveVendorConfig",0,function(e,r){let n=t[e];return{apiKey:r?.apiKey||"",baseUrl:r?.baseUrl||n.baseUrl,model:r?.model||n.model}}])},76759,e=>{"use strict";var t=e.i(58821);let r={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,r,n,a){let i={message:e};return n&&(i.code=n),a&&(i.details=a),t.NextResponse.json(i,{status:r})}e.s(["ErrorCode",0,r,"badRequest",0,function(e,t){return n(e,400,r.BAD_REQUEST,t)},"conflict",0,function(e){return n(e,409,r.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,r.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,r.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,r.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,r.UNAUTHORIZED)},"validationError",0,function(e,t){return n(e,400,r.VALIDATION_ERROR,t)}])},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(50377),a=e.i(76025),i=e.i(98876);let o=(0,n.createLogger)("config"),s=r.default.join(process.env.CONFIG_DIR||r.default.join(process.cwd(),"config"),"app-config.json"),l={aiProvider:process.env.AI_PROVIDER||"minimax",allowRegistration:!0,timeZone:a.DEFAULT_TIME_ZONE,openai:{instances:process.env.OPENAI_API_KEY?[{id:"env-default",name:"Default (ENV)",apiKey:process.env.OPENAI_API_KEY,baseUrl:process.env.OPENAI_BASE_URL||"https://api.openai.com/v1",model:process.env.OPENAI_MODEL||"gpt-6.1-sol"}]:[],activeInstanceId:process.env.OPENAI_API_KEY?"env-default":void 0},gemini:{apiKey:process.env.GOOGLE_API_KEY,baseUrl:process.env.GEMINI_BASE_URL,model:process.env.GEMINI_MODEL||"gemini-2.5-flash"},azure:{apiKey:process.env.AZURE_OPENAI_API_KEY,endpoint:process.env.AZURE_OPENAI_ENDPOINT,deploymentName:process.env.AZURE_OPENAI_DEPLOYMENT,apiVersion:process.env.AZURE_OPENAI_API_VERSION||"2024-02-15-preview",model:process.env.AZURE_OPENAI_MODEL||"gpt-4o"},anthropic:{apiKey:process.env.ANTHROPIC_API_KEY,baseUrl:process.env.ANTHROPIC_BASE_URL,model:process.env.ANTHROPIC_MODEL||"claude-sonnet-5-5"},...Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(e=>{let t=i.VENDOR_PRESETS[e].envPrefix;return[e,{apiKey:process.env[`${t}_API_KEY`],baseUrl:process.env[`${t}_BASE_URL`],model:process.env[`${t}_MODEL`]}]})),prompts:{analyze:"",similar:""},timeouts:{analyze:18e4}};function c(e,t){return Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(r=>[r,{...e[r],...t[r]}]))}function p(e){let r=`${s}.${process.pid}.tmp`;t.default.writeFileSync(r,JSON.stringify(e,null,2)),t.default.renameSync(r,s)}function u(){let e;try{e=function(){try{return t.default.readFileSync(s,"utf-8")}catch(e){if(e?.code==="ENOENT")return null;throw e}}()}catch(e){return o.error({error:e},"Failed to read config file"),l}if(null!==e)try{var r;let t=JSON.parse(e),n=t.openai;if((r=t.openai)&&"object"==typeof r&&"apiKey"in r&&!("instances"in r)){o.info("Detected legacy OpenAI config, migrating to multi-instance format..."),n=function(e){if(!e.apiKey)return{instances:[],activeInstanceId:void 0};let t={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),name:"Default",apiKey:e.apiKey,baseUrl:e.baseUrl||"https://api.openai.com/v1",model:e.model||"gpt-6.1-sol"};return{instances:[t],activeInstanceId:t.id}}(t.openai);let e={...t,openai:n};p(e),o.info("Legacy OpenAI config migrated successfully")}return{...l,...t,timeZone:(0,a.isValidTimeZone)(t.timeZone)?t.timeZone.trim():a.DEFAULT_TIME_ZONE,openai:{instances:n?.instances||l.openai?.instances||[],activeInstanceId:n?.activeInstanceId||l.openai?.activeInstanceId},gemini:{...l.gemini,...t.gemini},azure:{...l.azure,...t.azure},anthropic:{...l.anthropic,...t.anthropic},...c(l,t),prompts:{...l.prompts,...t.prompts},timeouts:{...l.timeouts,...t.timeouts}}}catch(e){o.error({error:e},"Failed to read config file")}return l}e.s(["getActiveOpenAIConfig",0,function(){let e=u(),t=e.openai?.instances||[],r=e.openai?.activeInstanceId;if(r&&0!==t.length)return t.find(e=>e.id===r)},"getAppConfig",0,u,"getAppTimeZone",0,function(){return u().timeZone||a.DEFAULT_TIME_ZONE},"updateAppConfig",0,function(e){if(void 0!==e.timeZone&&!(0,a.isValidTimeZone)(e.timeZone))throw Error("INVALID_TIME_ZONE");let t=u(),r={...t,...e,timeZone:e.timeZone?.trim()??t.timeZone??a.DEFAULT_TIME_ZONE,openai:{instances:e.openai?.instances??t.openai?.instances??[],activeInstanceId:e.openai?.activeInstanceId??t.openai?.activeInstanceId},gemini:{...t.gemini,...e.gemini},azure:{...t.azure,...e.azure},anthropic:{...t.anthropic,...e.anthropic},...c(t,e),prompts:{...t.prompts,...e.prompts},timeouts:{...t.timeouts,...e.timeouts}};try{return p(r),r}catch(e){throw o.error({error:e},"Failed to write config file"),e}}])},50377,e=>{"use strict";let t={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function r(e,n={}){let a,i=t[e],o=(a=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==t[a]?t[a]:t.info;return(t,r)=>{let a,s;if(i<o)return;let l=new Date;"string"==typeof t?(a={},s=t):(a=t,s=r||"");{let t=JSON.stringify({level:e,time:l.toISOString(),...n,...a,msg:s});switch(e){case"error":case"fatal":console.error(t);break;case"warn":console.warn(t);break;default:console.log(t)}}}}let n=function e(t={}){return t.module,{trace:r("trace",t),debug:r("debug",t),info:r("info",t),warn:r("warn",t),error:r("error",t),fatal:r("fatal",t),child:r=>e({...t,...r}),box:(e,r,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...t,title:e,..."string"==typeof r?{content:r}:r||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])},95408,e=>{"use strict";let t=["new","reviewing","mastered"],r={practiceRecords:{some:{result:{not:null}}}};e.s(["MASTERY_THRESHOLD",0,.5,"PRACTICE_RECORD_COUNT",0,{select:{practiceRecords:{where:{result:{not:null}}}}},"isMasteryStatus",0,function(e){return"string"==typeof e&&t.includes(e)},"masteryLevelOf",0,function(e){return t.indexOf(e)},"masteryStatusOf",0,function(e,t){return 0===e?"new":"number"==typeof t&&t>=.5?"mastered":"reviewing"},"masteryStatusWhere",0,function(e){return"new"===e?{practiceRecords:{none:{result:{not:null}}}}:"mastered"===e?{...r,masteryProbability:{gte:.5}}:{...r,OR:[{masteryProbability:null},{masteryProbability:{lt:.5}}]}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1b_y2wk._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,r,t)=>{r.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var r=e.i(63021);let t=e.g.prisma||new r.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,t])},49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(r,t)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),t()}catch(e){t(e)}},!0),874,(e,r,t)=>{r.exports=e.x("buffer",()=>require("buffer"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},4446,(e,r,t)=>{r.exports=e.x("net",()=>require("net"))},70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},45706,(e,r,t)=>{r.exports=e.x("querystring",()=>require("querystring"))},55004,(e,r,t)=>{r.exports=e.x("tls",()=>require("tls"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},96155,50580,64351,e=>{"use strict";e.s(["__classPrivateFieldGet",0,function(e,r,t,n){if("a"===t&&!n)throw TypeError("Private accessor was defined without a getter");if("function"==typeof r?e!==r||!n:!r.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?n:"a"===t?n.call(e):n?n.value:r.get(e)},"__classPrivateFieldSet",0,function(e,r,t,n,s){if("m"===n)throw TypeError("Private method is not writable");if("a"===n&&!s)throw TypeError("Private accessor was defined without a setter");if("function"==typeof r?e!==r||!s:!r.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(e,t):s?s.value=t:r.set(e,t),t}],96155);let r=e=>{if(e instanceof Error)return e;if("object"==typeof e&&null!==e){try{let r=Object.prototype.toString.call(e);if("[object Error]"===r||"[object DOMException]"===r){let r=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(r.stack=e.stack),e.cause&&!r.cause&&(r.cause=e.cause),e.name&&(r.name=e.name),r}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};e.s(["castToError",0,r,"isAbortError",0,function(e){return"object"==typeof e&&null!==e&&("name"in e&&"AbortError"===e.name||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}],50580);var t=class extends Error{};class n extends t{constructor(e,r,t,s,i){super(`${n.makeMessage(e,r,t)}`),this.status=e,this.headers=s,this.requestID=s?.get("request-id"),this.workspaceID=s?.get("anthropic-workspace-id"),this.error=r,this.type=i??null}static makeMessage(e,r,t){let n=r?.message?"string"==typeof r.message?r.message:JSON.stringify(r.message):r?JSON.stringify(r):t;return e&&n?`${e} ${n}`:e?`${e} status code (no body)`:n||"(no status code or body)"}static generate(e,t,f,m){if(!e||!m)return new s({message:f,cause:r(t)});let g=t?.error?.type;return 400===e?new i(e,t,f,m,g):401===e?new o(e,t,f,m,g):403===e?new a(e,t,f,m,g):404===e?new c(e,t,f,m,g):409===e?new l(e,t,f,m,g):422===e?new u(e,t,f,m,g):429===e?new p(e,t,f,m,g):e>=500?new d(e,t,f,m,g):new n(e,t,f,m,g)}}class s extends n{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}}class i extends n{}class o extends n{}class a extends n{}class c extends n{}class l extends n{}class u extends n{}class p extends n{}class d extends n{}e.s(["APIConnectionError",0,s,"APIConnectionTimeoutError",0,class extends s{constructor({message:e}={}){super({message:e??"Request timed out."})}},"APIError",0,n,"APIUserAbortError",0,class extends n{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},"AnthropicError",0,t,"AuthenticationError",0,o,"BadRequestError",0,i,"ConflictError",0,l,"InternalServerError",0,d,"NotFoundError",0,c,"PermissionDeniedError",0,a,"RateLimitError",0,p,"RetryableError",0,class extends t{constructor(e,{cause:r}={}){super(e??"Retryable error."),void 0!==r&&(this.cause=r)}},"UnprocessableEntityError",0,u],64351)},98156,e=>{"use strict";var r=e.i(64351);function t(e,t){return e instanceof r.APIError&&e.status===t}e.s(["applyJitter",0,function(e){return e*(1-.25*Math.random())},"backoff",0,function(e,r,t){return Math.min(r*2**e,t)},"isFatal4xx",0,function(e){return e instanceof r.APIError&&"number"==typeof e.status&&e.status>=400&&e.status<500&&!t(e,408)&&!t(e,409)&&!t(e,429)},"isStatus",0,t,"jitter",0,function(e,r){return e+Math.random()*(r-e)}])},87160,e=>{"use strict";let r,t;e.s(["concatBytes",0,function(e){let r=0;for(let t of e)r+=t.length;let t=new Uint8Array(r),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},"decodeUTF8",0,function(e){let r;return(t??(t=(r=new globalThis.TextDecoder).decode.bind(r)))(e)},"encodeUTF8",0,function(e){let t;return(r??(r=(t=new globalThis.TextEncoder).encode.bind(t)))(e)}])},11935,e=>{"use strict";let r,t;var n=e.i(64219),s=e.i(31963);let i="warn",o={off:0,error:200,warn:300,info:400,debug:500},a=(e,r,t)=>{if(e){if((0,n.hasOwn)(o,e))return e;t.warn(`${r} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(o))}`)}};function c(){}function l(e,r,t){return!r||o[e]>o[t]?c:r[e].bind(r)}let u={error:c,warn:c,info:c,debug:c},p=new WeakMap;function d(e,r){let t=p.get(e);if(t&&t[0]===r)return t[1];let n={error:l("error",e,r),warn:l("warn",e,r),info:l("info",e,r),debug:l("debug",e,r)};return p.set(e,[r,n]),n}e.s(["debugLogRequestDetails",0,function(e,r,t){let n;e.debug!==c&&e.debug(r,((n=t).options&&(n.options={...n.options},delete n.options.headers),n.headers&&(n.headers=Object.fromEntries((n.headers instanceof Headers?[...n.headers]:Object.entries(n.headers)).map(([e,r])=>[e,"authorization"===e.toLowerCase()||"api-key"===e.toLowerCase()||"x-api-key"===e.toLowerCase()||"cookie"===e.toLowerCase()||"set-cookie"===e.toLowerCase()?"***":r]))),"retryOfRequestLogID"in n&&(n.retryOfRequestLogID&&(n.retryOf=n.retryOfRequestLogID),delete n.retryOfRequestLogID),n))},"defaultLogLevel",0,i,"defaultLogger",0,function(){let e=(0,s.readEnv)("ANTHROPIC_LOG");return t&&e===r||(r=e,t=d(console,a(e,"process.env['ANTHROPIC_LOG']",d(console,i))??i)),t},"loggerFor",0,function(e){let r=e.logger,t=e.logLevel??"off";return r?d(r,t):u},"parseLogLevel",0,a])},68120,e=>{"use strict";e.s(["promiseWithResolvers",0,function(){let e,r;return{promise:new Promise((t,n)=>{e=t,r=n}),resolve:e,reject:r}}])},64219,31963,e=>{"use strict";var r=e.i(64351);let t=/^[a-z][a-z0-9+.-]*:/i,n=e=>(n=Array.isArray)(e),s=n;e.s(["checkNever",0,function(e){},"hasOwn",0,function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},"isAbsoluteURL",0,e=>t.test(e),"isArray",()=>n,"isEmptyObj",0,function(e){if(!e)return!0;for(let r in e)return!1;return!0},"isObj",0,function(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)},"isReadonlyArray",0,s,"maybeObj",0,function(e){return"object"!=typeof e?{}:e??{}},"safeJSON",0,e=>{try{return JSON.parse(e)}catch(e){return}},"validatePositiveInteger",0,(e,t)=>{if("number"!=typeof t||!Number.isInteger(t))throw new r.AnthropicError(`${e} must be an integer`);if(t<0)throw new r.AnthropicError(`${e} must be a positive integer`);return t}],64219),e.s(["readEnv",0,e=>void 0!==globalThis.process?globalThis.process.env?.[e]?.trim()||void 0:void 0!==globalThis.Deno&&globalThis.Deno.env?.get?.(e)?.trim()||void 0],31963)},32014,e=>{"use strict";var r=class extends Error{constructor(e){super("string"==typeof e?e:e.map(e=>"text"===e.type?e.text:`[${e.type}]`).join(" ")),this.name="ToolError",this.content=e}};e.s(["ToolError",0,r])},93668,e=>{"use strict";var r=e.i(64351);e.s(["DEFAULT_MEMORY_SYNC_INTERVAL_MS",0,15e3,"MIN_MEMORY_SYNC_INTERVAL_MS",0,5e3,"checkMemorySyncInterval",0,function(e,t){if(!(e>=5e3))throw new r.AnthropicError(`${t} must be at least 5000ms (got ${e}); to run without memory sync, pass \`memorySyncIntervalMs: null\` to the worker instead`)}])},98876,e=>{"use strict";let r={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},t=Object.keys(r);e.s(["VENDOR_PRESETS",0,r,"VENDOR_PROVIDER_IDS",0,t,"isVendorProvider",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(r,e)},"resolveVendorConfig",0,function(e,t){let n=r[e];return{apiKey:t?.apiKey||"",baseUrl:t?.baseUrl||n.baseUrl,model:t?.model||n.model}}])},98003,e=>{"use strict";var r=e.i(22734),t=e.i(14747),n=e.i(50377),s=e.i(76025),i=e.i(98876);let o=(0,n.createLogger)("config"),a=t.default.join(process.env.CONFIG_DIR||t.default.join(process.cwd(),"config"),"app-config.json"),c={aiProvider:process.env.AI_PROVIDER||"minimax",allowRegistration:!0,timeZone:s.DEFAULT_TIME_ZONE,openai:{instances:process.env.OPENAI_API_KEY?[{id:"env-default",name:"Default (ENV)",apiKey:process.env.OPENAI_API_KEY,baseUrl:process.env.OPENAI_BASE_URL||"https://api.openai.com/v1",model:process.env.OPENAI_MODEL||"gpt-6.1-sol"}]:[],activeInstanceId:process.env.OPENAI_API_KEY?"env-default":void 0},gemini:{apiKey:process.env.GOOGLE_API_KEY,baseUrl:process.env.GEMINI_BASE_URL,model:process.env.GEMINI_MODEL||"gemini-2.5-flash"},azure:{apiKey:process.env.AZURE_OPENAI_API_KEY,endpoint:process.env.AZURE_OPENAI_ENDPOINT,deploymentName:process.env.AZURE_OPENAI_DEPLOYMENT,apiVersion:process.env.AZURE_OPENAI_API_VERSION||"2024-02-15-preview",model:process.env.AZURE_OPENAI_MODEL||"gpt-4o"},anthropic:{apiKey:process.env.ANTHROPIC_API_KEY,baseUrl:process.env.ANTHROPIC_BASE_URL,model:process.env.ANTHROPIC_MODEL||"claude-sonnet-5-5"},...Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(e=>{let r=i.VENDOR_PRESETS[e].envPrefix;return[e,{apiKey:process.env[`${r}_API_KEY`],baseUrl:process.env[`${r}_BASE_URL`],model:process.env[`${r}_MODEL`]}]})),prompts:{analyze:"",similar:""},timeouts:{analyze:18e4}};function l(e,r){return Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(t=>[t,{...e[t],...r[t]}]))}function u(e){let t=`${a}.${process.pid}.tmp`;r.default.writeFileSync(t,JSON.stringify(e,null,2)),r.default.renameSync(t,a)}function p(){let e;try{e=function(){try{return r.default.readFileSync(a,"utf-8")}catch(e){if(e?.code==="ENOENT")return null;throw e}}()}catch(e){return o.error({error:e},"Failed to read config file"),c}if(null!==e)try{var t;let r=JSON.parse(e),n=r.openai;if((t=r.openai)&&"object"==typeof t&&"apiKey"in t&&!("instances"in t)){o.info("Detected legacy OpenAI config, migrating to multi-instance format..."),n=function(e){if(!e.apiKey)return{instances:[],activeInstanceId:void 0};let r={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)}),name:"Default",apiKey:e.apiKey,baseUrl:e.baseUrl||"https://api.openai.com/v1",model:e.model||"gpt-6.1-sol"};return{instances:[r],activeInstanceId:r.id}}(r.openai);let e={...r,openai:n};u(e),o.info("Legacy OpenAI config migrated successfully")}return{...c,...r,timeZone:(0,s.isValidTimeZone)(r.timeZone)?r.timeZone.trim():s.DEFAULT_TIME_ZONE,openai:{instances:n?.instances||c.openai?.instances||[],activeInstanceId:n?.activeInstanceId||c.openai?.activeInstanceId},gemini:{...c.gemini,...r.gemini},azure:{...c.azure,...r.azure},anthropic:{...c.anthropic,...r.anthropic},...l(c,r),prompts:{...c.prompts,...r.prompts},timeouts:{...c.timeouts,...r.timeouts}}}catch(e){o.error({error:e},"Failed to read config file")}return c}e.s(["getActiveOpenAIConfig",0,function(){let e=p(),r=e.openai?.instances||[],t=e.openai?.activeInstanceId;if(t&&0!==r.length)return r.find(e=>e.id===t)},"getAppConfig",0,p,"getAppTimeZone",0,function(){return p().timeZone||s.DEFAULT_TIME_ZONE},"updateAppConfig",0,function(e){if(void 0!==e.timeZone&&!(0,s.isValidTimeZone)(e.timeZone))throw Error("INVALID_TIME_ZONE");let r=p(),t={...r,...e,timeZone:e.timeZone?.trim()??r.timeZone??s.DEFAULT_TIME_ZONE,openai:{instances:e.openai?.instances??r.openai?.instances??[],activeInstanceId:e.openai?.activeInstanceId??r.openai?.activeInstanceId},gemini:{...r.gemini,...e.gemini},azure:{...r.azure,...e.azure},anthropic:{...r.anthropic,...e.anthropic},...l(r,e),prompts:{...r.prompts,...e.prompts},timeouts:{...r.timeouts,...e.timeouts}};try{return u(t),t}catch(e){throw o.error({error:e},"Failed to write config file"),e}}])},83508,e=>{"use strict";var r=e.i(76025);e.s(["calculateGradeNumber",0,function(e,t,n=r.DEFAULT_TIME_ZONE){if(!t||"primary"!==e&&"junior_high"!==e&&"senior_high"!==e)return null;let s=(0,r.getCalendarDate)(new Date,n),i=s.getFullYear(),o=s.getMonth()+1,a=i-t;if(o<9&&(a-=1),"primary"===e){let e=1+a;if(e>=1&&e<=6)return e}else if("junior_high"===e){let e=7+a;if(e>=7&&e<=9)return e}else if("senior_high"===e){let e=10+a;if(e>=10&&e<=12)return e}return null},"inferSubjectFromName",0,function(e){if(!e)return null;let r=e.toLowerCase();return r.includes("math")||r.includes("数学")?"math":r.includes("physics")||r.includes("物理")?"physics":r.includes("chemistry")||r.includes("化学")?"chemistry":r.includes("biology")||r.includes("生物")?"biology":r.includes("english")||r.includes("英语")?"english":r.includes("chinese")||r.includes("语文")?"chinese":r.includes("history")||r.includes("历史")?"history":r.includes("geography")||r.includes("地理")?"geography":r.includes("politics")||r.includes("政治")?"politics":null}])},50377,e=>{"use strict";let r={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function t(e,n={}){let s,i=r[e],o=(s=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==r[s]?r[s]:r.info;return(r,t)=>{let s,a;if(i<o)return;let c=new Date;"string"==typeof r?(s={},a=r):(s=r,a=t||"");{let r=JSON.stringify({level:e,time:c.toISOString(),...n,...s,msg:a});switch(e){case"error":case"fatal":console.error(r);break;case"warn":console.warn(r);break;default:console.log(r)}}}}let n=function e(r={}){return r.module,{trace:t("trace",r),debug:t("debug",r),info:t("info",r),warn:t("warn",r),error:t("error",r),fatal:t("fatal",r),child:t=>e({...r,...t}),box:(e,t,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...r,title:e,..."string"==typeof t?{content:t}:t||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])},30166,e=>{"use strict";e.s(["normalizeMistakeStatusForSave",0,function(e,r){return(r||"").trim()?"wrong_attempt":"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}])},68426,e=>{"use strict";var r=e.i(83508);let t=["primary","junior_high","senior_high"],n="primary",s=["math","english","chinese","physics","chemistry","biology","history","geography","politics"],i={primary:["math","english"],junior_high:s,senior_high:s},o={primary:/^[一二三四五六]年级/,junior_high:/^[七八九]年级/,senior_high:/^高[一二三]/};function a(e){return"string"==typeof e&&t.includes(e)}function c(e){return"string"==typeof e&&s.includes(e)}e.s(["STAGE_SUBJECTS",0,i,"SUBJECT_DISPLAY_NAMES",0,{math:"数学",english:"英语",chinese:"语文",physics:"物理",chemistry:"化学",biology:"生物",history:"历史",geography:"地理",politics:"政治"},"isGradeInStage",0,function(e,r){return o[r].test(e)},"isNotebookSubject",0,c,"isValidNotebookScope",0,function(e,r){return a(e)&&c(r)&&i[e].includes(r)},"resolveNotebookScope",0,function(e){let t=c(e.subjectKey)?e.subjectKey:(0,r.inferSubjectFromName)(e.name);return{stage:a(e.stage)?e.stage:n,subject:t&&c(t)?t:null}},"stageFromEducationStage",0,function(e){return a(e)?e:n}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1bl7t8i._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var t=e.i(63021);let r=e.g.prisma||new t.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,r])},49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(t,r)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),r()}catch(e){r(e)}},!0),874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},45706,(e,t,r)=>{t.exports=e.x("querystring",()=>require("querystring"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},8338,e=>e.a(async(t,r)=>{try{var n=e.i(58821),a=e.i(98043),i=e.i(79832),s=e.i(13618),o=e.i(76759),u=e.i(50377),l=t([i]);[i]=l.then?(await l)():l;let c=(0,u.createLogger)("api:error-items:notes");async function d(e,{params:t}){let{id:r}=await t,u=await (0,s.getServerSession)(i.authOptions);try{let t;if(u?.user?.email&&(t=await a.prisma.user.findUnique({where:{email:u.user.email}})),!t)return(0,o.unauthorized)("Authentication required");let{userNotes:i}=await e.json();if(null!==i&&"string"!=typeof i)return(0,o.badRequest)("userNotes must be a string");let s=await a.prisma.errorItem.findUnique({where:{id:r},select:{userId:!0}});if(!s||s.userId!==t.id)return(0,o.notFound)("Item not found");let l=await a.prisma.errorItem.update({where:{id:r},data:{userNotes:i}});return n.NextResponse.json(l)}catch(e){return c.error({error:e},"Error updating notes"),(0,o.internalError)("Failed to update notes")}}e.s(["PATCH",0,d]),r()}catch(e){r(e)}},!1),41964,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),R=e.i(70101),x=e.i(74838),E=e.i(10372),h=e.i(93695),f=e.i(9580);e.i(52474);var v=e.i(220);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/notes/route",pathname:"/api/error-items/[id]/notes",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/notes/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(8338),...{}}),{workAsyncStorage:m,workUnitAsyncStorage:g,serverHooks:O}=N;async function I(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),N.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/error-items/[id]/notes/route";m=m.replace(/\/index$/,"")||"/";let g=await N.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:O,deploymentId:I,params:A,nextConfig:w,parsedUrl:T,isDraftMode:_,prerenderManifest:D,routerServerContext:y,isOnDemandRevalidate:S,revalidateOnlyGenerated:C,resolvedPathname:b,clientReferenceManifest:q,serverActionsManifest:U}=g,P=(0,o.normalizeAppPath)(m),L=!!D.routes[b]&&(N.isDev||(0,f.isRouteCacheOwner)(b,N.cacheOwner,D.routes[b])),F=!!(D.dynamicRoutes[P]||L),j=async()=>((null==y?void 0:y.render404)?await y.render404(e,t,T,!1):t.end("This page could not be found"),null);if(F&&!_){let e=D.dynamicRoutes[P];if(e&&!1===e.fallback&&!L){if(w.adapterPath)return await j();throw new h.NoFallbackError}}let k=null;!F||N.isDev||_||(k="/index"===(k=b)?"/":k);let H=!0===N.isDev||!F,M=F&&!H;U&&q&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:q,serverActionsManifest:U});let B=e.method||"GET",G=(0,i.getTracer)(),V=G.getActiveScopeSpan(),K=!!(null==y?void 0:y.isWrappedByNextServer),Q=!!(0,a.getRequestMeta)(e,"minimalMode"),X=(0,a.getRequestMeta)(e,"incrementalCache")||await N.getIncrementalCache(e,w,D,Q);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let $={params:A,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts,useCacheTimeout:w.experimental.useCacheTimeout},cacheComponents:!!w.cacheComponents,validationLevel:w.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:H,incrementalCache:X,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:w.cacheLife,staticPageGenerationTimeout:w.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>N.onRequestError(e,t,n,a,y)},sharedContext:{buildId:O,deploymentId:I}},z=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(z,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!Q&&S&&C&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await N.handle(Z,$);e.fetchMetrics=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let s=$.renderOpts.collectedTags;if(!F)return await (0,p.sendResponse)(z,W,a,i),null;{let e=await a.blob(),t=(0,R.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[E.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==r&&r>0?w.expireTime:void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:S})},!1,y),t}},Y=async(a,s)=>{try{var o,u;let a=await N.handleResponse({req:e,nextConfig:w,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:C,responseGenerator:J,waitUntil:n.waitUntil,isMinimalMode:Q});if(!F)return;if((null==a||null==(o=a.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(u=a.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Q||t.setHeader("x-nextjs-cache",S?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,R.fromNodeOutgoingHttpHeaders)(a.value.headers);Q&&F||i.delete(E.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,x.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(z,W,new Response(a.value.body,{headers:i,status:a.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:S})},!1,y),F)throw t;await (0,p.sendResponse)(z,W,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:i.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||P,o=`${B} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),a.updateName(o),s&&s!==a&&(s.setAttribute("http.route",n),s.updateName(o))})()}};if(K&&V)await Y(V,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${B} ${m}`,kind:i.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},e=>Y(e,t)),void 0,!K)}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:g})},"routeModule",0,N,"serverHooks",0,O,"workAsyncStorage",0,m,"workUnitAsyncStorage",0,g])},76759,e=>{"use strict";var t=e.i(58821);let r={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,r,n,a){let i={message:e};return n&&(i.code=n),a&&(i.details=a),t.NextResponse.json(i,{status:r})}e.s(["ErrorCode",0,r,"badRequest",0,function(e,t){return n(e,400,r.BAD_REQUEST,t)},"conflict",0,function(e){return n(e,409,r.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,r.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,r.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,r.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,r.UNAUTHORIZED)},"validationError",0,function(e,t){return n(e,400,r.VALIDATION_ERROR,t)}])},50377,e=>{"use strict";let t={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function r(e,n={}){let a,i=t[e],s=(a=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==t[a]?t[a]:t.info;return(t,r)=>{let a,o;if(i<s)return;let u=new Date;"string"==typeof t?(a={},o=t):(a=t,o=r||"");{let t=JSON.stringify({level:e,time:u.toISOString(),...n,...a,msg:o});switch(e){case"error":case"fatal":console.error(t);break;case"warn":console.warn(t);break;default:console.log(t)}}}}let n=function e(t={}){return t.module,{trace:r("trace",t),debug:r("debug",t),info:r("info",t),warn:r("warn",t),error:r("error",t),fatal:r("fatal",t),child:r=>e({...t,...r}),box:(e,r,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...t,title:e,..."string"==typeof r?{content:r}:r||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1c0vatt._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,r,t)=>{r.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var r=e.i(63021);let t=e.g.prisma||new r.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,t])},49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(r,t)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),t()}catch(e){t(e)}},!0),874,(e,r,t)=>{r.exports=e.x("buffer",()=>require("buffer"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},45706,(e,r,t)=>{r.exports=e.x("querystring",()=>require("querystring"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},98876,e=>{"use strict";let r={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},t=Object.keys(r);e.s(["VENDOR_PRESETS",0,r,"VENDOR_PROVIDER_IDS",0,t,"isVendorProvider",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(r,e)},"resolveVendorConfig",0,function(e,t){let n=r[e];return{apiKey:t?.apiKey||"",baseUrl:t?.baseUrl||n.baseUrl,model:t?.model||n.model}}])},76759,e=>{"use strict";var r=e.i(58821);let t={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,t,n,i){let a={message:e};return n&&(a.code=n),i&&(a.details=i),r.NextResponse.json(a,{status:t})}e.s(["ErrorCode",0,t,"badRequest",0,function(e,r){return n(e,400,t.BAD_REQUEST,r)},"conflict",0,function(e){return n(e,409,t.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,t.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,t.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,t.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,t.UNAUTHORIZED)},"validationError",0,function(e,r){return n(e,400,t.VALIDATION_ERROR,r)}])},98003,e=>{"use strict";var r=e.i(22734),t=e.i(14747),n=e.i(50377),i=e.i(76025),a=e.i(98876);let s=(0,n.createLogger)("config"),o=t.default.join(process.env.CONFIG_DIR||t.default.join(process.cwd(),"config"),"app-config.json"),c={aiProvider:process.env.AI_PROVIDER||"minimax",allowRegistration:!0,timeZone:i.DEFAULT_TIME_ZONE,openai:{instances:process.env.OPENAI_API_KEY?[{id:"env-default",name:"Default (ENV)",apiKey:process.env.OPENAI_API_KEY,baseUrl:process.env.OPENAI_BASE_URL||"https://api.openai.com/v1",model:process.env.OPENAI_MODEL||"gpt-6.1-sol"}]:[],activeInstanceId:process.env.OPENAI_API_KEY?"env-default":void 0},gemini:{apiKey:process.env.GOOGLE_API_KEY,baseUrl:process.env.GEMINI_BASE_URL,model:process.env.GEMINI_MODEL||"gemini-2.5-flash"},azure:{apiKey:process.env.AZURE_OPENAI_API_KEY,endpoint:process.env.AZURE_OPENAI_ENDPOINT,deploymentName:process.env.AZURE_OPENAI_DEPLOYMENT,apiVersion:process.env.AZURE_OPENAI_API_VERSION||"2024-02-15-preview",model:process.env.AZURE_OPENAI_MODEL||"gpt-4o"},anthropic:{apiKey:process.env.ANTHROPIC_API_KEY,baseUrl:process.env.ANTHROPIC_BASE_URL,model:process.env.ANTHROPIC_MODEL||"claude-sonnet-5-5"},...Object.fromEntries(a.VENDOR_PROVIDER_IDS.map(e=>{let r=a.VENDOR_PRESETS[e].envPrefix;return[e,{apiKey:process.env[`${r}_API_KEY`],baseUrl:process.env[`${r}_BASE_URL`],model:process.env[`${r}_MODEL`]}]})),prompts:{analyze:"",similar:""},timeouts:{analyze:18e4}};function l(e,r){return Object.fromEntries(a.VENDOR_PROVIDER_IDS.map(t=>[t,{...e[t],...r[t]}]))}function u(e){let t=`${o}.${process.pid}.tmp`;r.default.writeFileSync(t,JSON.stringify(e,null,2)),r.default.renameSync(t,o)}function p(){let e;try{e=function(){try{return r.default.readFileSync(o,"utf-8")}catch(e){if(e?.code==="ENOENT")return null;throw e}}()}catch(e){return s.error({error:e},"Failed to read config file"),c}if(null!==e)try{var t;let r=JSON.parse(e),n=r.openai;if((t=r.openai)&&"object"==typeof t&&"apiKey"in t&&!("instances"in t)){s.info("Detected legacy OpenAI config, migrating to multi-instance format..."),n=function(e){if(!e.apiKey)return{instances:[],activeInstanceId:void 0};let r={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)}),name:"Default",apiKey:e.apiKey,baseUrl:e.baseUrl||"https://api.openai.com/v1",model:e.model||"gpt-6.1-sol"};return{instances:[r],activeInstanceId:r.id}}(r.openai);let e={...r,openai:n};u(e),s.info("Legacy OpenAI config migrated successfully")}return{...c,...r,timeZone:(0,i.isValidTimeZone)(r.timeZone)?r.timeZone.trim():i.DEFAULT_TIME_ZONE,openai:{instances:n?.instances||c.openai?.instances||[],activeInstanceId:n?.activeInstanceId||c.openai?.activeInstanceId},gemini:{...c.gemini,...r.gemini},azure:{...c.azure,...r.azure},anthropic:{...c.anthropic,...r.anthropic},...l(c,r),prompts:{...c.prompts,...r.prompts},timeouts:{...c.timeouts,...r.timeouts}}}catch(e){s.error({error:e},"Failed to read config file")}return c}e.s(["getActiveOpenAIConfig",0,function(){let e=p(),r=e.openai?.instances||[],t=e.openai?.activeInstanceId;if(t&&0!==r.length)return r.find(e=>e.id===t)},"getAppConfig",0,p,"getAppTimeZone",0,function(){return p().timeZone||i.DEFAULT_TIME_ZONE},"updateAppConfig",0,function(e){if(void 0!==e.timeZone&&!(0,i.isValidTimeZone)(e.timeZone))throw Error("INVALID_TIME_ZONE");let r=p(),t={...r,...e,timeZone:e.timeZone?.trim()??r.timeZone??i.DEFAULT_TIME_ZONE,openai:{instances:e.openai?.instances??r.openai?.instances??[],activeInstanceId:e.openai?.activeInstanceId??r.openai?.activeInstanceId},gemini:{...r.gemini,...e.gemini},azure:{...r.azure,...e.azure},anthropic:{...r.anthropic,...e.anthropic},...l(r,e),prompts:{...r.prompts,...e.prompts},timeouts:{...r.timeouts,...e.timeouts}};try{return u(t),t}catch(e){throw s.error({error:e},"Failed to write config file"),e}}])},50377,e=>{"use strict";let r={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function t(e,n={}){let i,a=r[e],s=(i=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==r[i]?r[i]:r.info;return(r,t)=>{let i,o;if(a<s)return;let c=new Date;"string"==typeof r?(i={},o=r):(i=r,o=t||"");{let r=JSON.stringify({level:e,time:c.toISOString(),...n,...i,msg:o});switch(e){case"error":case"fatal":console.error(r);break;case"warn":console.warn(r);break;default:console.log(r)}}}}let n=function e(r={}){return r.module,{trace:t("trace",r),debug:t("debug",r),info:t("info",r),warn:t("warn",r),error:t("error",r),fatal:t("fatal",r),child:t=>e({...r,...t}),box:(e,t,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...r,title:e,..."string"==typeof t?{content:t}:t||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])},95408,e=>{"use strict";let r=["new","reviewing","mastered"],t={practiceRecords:{some:{result:{not:null}}}};e.s(["MASTERY_THRESHOLD",0,.5,"PRACTICE_RECORD_COUNT",0,{select:{practiceRecords:{where:{result:{not:null}}}}},"isMasteryStatus",0,function(e){return"string"==typeof e&&r.includes(e)},"masteryLevelOf",0,function(e){return r.indexOf(e)},"masteryStatusOf",0,function(e,r){return 0===e?"new":"number"==typeof r&&r>=.5?"mastered":"reviewing"},"masteryStatusWhere",0,function(e){return"new"===e?{practiceRecords:{none:{result:{not:null}}}}:"mastered"===e?{...t,masteryProbability:{gte:.5}}:{...t,OR:[{masteryProbability:null},{masteryProbability:{lt:.5}}]}}])},95886,e=>{"use strict";var r=e.i(98043),t=e.i(43911),n=e.i(50377),i=e.i(95408);let a=(0,n.createLogger)("mastery"),s=["correct","wrong","not_attempted"];function o(e){return"string"==typeof e&&s.includes(e)}let c={easy:.85,medium:.95,hard:1,harder:1},l={wrong:.1,not_attempted:0};async function u(e){var n;let s=await r.prisma.errorItem.findUnique({where:{id:e},select:{id:!0,questionText:!0,mistakeStatus:!0,tags:{select:{name:!0}},practiceRecords:{where:{result:{not:null}},orderBy:[{createdAt:"asc"},{id:"asc"}],select:{result:!0,difficulty:!0,source:!0,createdAt:!0}}}});if(!s)return;let u=s.practiceRecords.filter(e=>o(e.result)).map(e=>({date:e.createdAt.toISOString(),difficulty:e.difficulty,result:e.result,source:e.source})),p=function(e){if(0===e.length)return null;let r=.15,t=.5;return e.forEach((n,i)=>{let a=Math.pow(.7,e.length-1-i),s="correct"===n.result?c[n.difficulty||"medium"]??c.medium:l[n.result];r+=a*s,t+=a}),Math.round(r/t*100)/100}(u);if(null===p)return void await r.prisma.errorItem.update({where:{id:s.id},data:{masteryProbability:null,masteryReason:null,masterySource:null,masteryEvaluatedAt:null,masteryLevel:(0,i.masteryLevelOf)("new")}});let d=p,m="",E="rule";try{let e=await (0,t.getAIService)().evaluateMastery({questionText:s.questionText||"",knowledgePoints:s.tags.map(e=>e.name),mistakeStatus:s.mistakeStatus,history:u,ruleProbability:p});d=e.probability,m=e.reason,E="ai"}catch(t){a.warn({errorItemId:e,error:t instanceof Error?t.message:String(t)},"AI mastery evaluation failed, using rule estimate");let r=u.filter(e=>"correct"===e.result).length;m=`共练习 ${u.length} 次,做对 ${r} 次(规则估算)`}await r.prisma.errorItem.update({where:{id:s.id},data:{masteryProbability:d,masteryReason:m,masterySource:E,masteryEvaluatedAt:new Date,masteryLevel:(n=d,(0,i.masteryLevelOf)(n>=i.MASTERY_THRESHOLD?"mastered":"reviewing"))}}),a.info({errorItemId:e,probability:d,source:E},"Mastery evaluated")}async function p(e={}){let[t,n,a]=await Promise.all(["new","reviewing","mastered"].map(t=>r.prisma.errorItem.count({where:{AND:[e,(0,i.masteryStatusWhere)(t)]}})));return{new:t,reviewing:n,mastered:a}}let d=new Set,m=!1;async function E(){if(!m){m=!0;try{for(;d.size>0;){let[e]=d;d.delete(e);try{await u(e)}catch(r){a.error({errorItemId:e,error:r},"Mastery evaluation failed")}}}finally{m=!1}}}e.s(["PRACTICE_RESULTS",0,s,"countByMasteryStatus",0,p,"isPracticeResult",0,o,"scheduleMasteryEvaluation",0,function(e){e.forEach(e=>d.add(e)),E()}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1c7a0rs._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[51615,(e,r,o)=>{r.exports=e.x("node:buffer",()=>require("node:buffer"))},2157,(e,r,o)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},47299,(e,r,o)=>{r.exports=e.x("node:http",()=>require("node:http"))},61095,(e,r,o)=>{r.exports=e.x("node:net",()=>require("node:net"))},50227,(e,r,o)=>{r.exports=e.x("node:path",()=>require("node:path"))},59639,(e,r,o)=>{r.exports=e.x("node:process",()=>require("node:process"))},57764,(e,r,o)=>{r.exports=e.x("node:url",()=>require("node:url"))},12057,(e,r,o)=>{r.exports=e.x("node:util",()=>require("node:util"))},27028,(e,r,o)=>{r.exports=e.x("node:zlib",()=>require("node:zlib"))},25897,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0akadps._.js","server/chunks/[root-of-the-server]__15tkoe6._.js"].map(r=>e.l(r))).then(()=>r(55057)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1chx4lo._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,r,t)=>{r.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var r=e.i(63021);let t=e.g.prisma||new r.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,t])},49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(r,t)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),t()}catch(e){t(e)}},!0),874,(e,r,t)=>{r.exports=e.x("buffer",()=>require("buffer"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},45706,(e,r,t)=>{r.exports=e.x("querystring",()=>require("querystring"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},76759,e=>{"use strict";var r=e.i(58821);let t={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,t,n,i){let s={message:e};return n&&(s.code=n),i&&(s.details=i),r.NextResponse.json(s,{status:t})}e.s(["ErrorCode",0,t,"badRequest",0,function(e,r){return n(e,400,t.BAD_REQUEST,r)},"conflict",0,function(e){return n(e,409,t.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,t.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,t.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,t.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,t.UNAUTHORIZED)},"validationError",0,function(e,r){return n(e,400,t.VALIDATION_ERROR,r)}])},83508,e=>{"use strict";var r=e.i(76025);e.s(["calculateGradeNumber",0,function(e,t,n=r.DEFAULT_TIME_ZONE){if(!t||"primary"!==e&&"junior_high"!==e&&"senior_high"!==e)return null;let i=(0,r.getCalendarDate)(new Date,n),s=i.getFullYear(),o=i.getMonth()+1,a=s-t;if(o<9&&(a-=1),"primary"===e){let e=1+a;if(e>=1&&e<=6)return e}else if("junior_high"===e){let e=7+a;if(e>=7&&e<=9)return e}else if("senior_high"===e){let e=10+a;if(e>=10&&e<=12)return e}return null},"inferSubjectFromName",0,function(e){if(!e)return null;let r=e.toLowerCase();return r.includes("math")||r.includes("数学")?"math":r.includes("physics")||r.includes("物理")?"physics":r.includes("chemistry")||r.includes("化学")?"chemistry":r.includes("biology")||r.includes("生物")?"biology":r.includes("english")||r.includes("英语")?"english":r.includes("chinese")||r.includes("语文")?"chinese":r.includes("history")||r.includes("历史")?"history":r.includes("geography")||r.includes("地理")?"geography":r.includes("politics")||r.includes("政治")?"politics":null}])},50377,e=>{"use strict";let r={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function t(e,n={}){let i,s=r[e],o=(i=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==r[i]?r[i]:r.info;return(r,t)=>{let i,a;if(s<o)return;let u=new Date;"string"==typeof r?(i={},a=r):(i=r,a=t||"");{let r=JSON.stringify({level:e,time:u.toISOString(),...n,...i,msg:a});switch(e){case"error":case"fatal":console.error(r);break;case"warn":console.warn(r);break;default:console.log(r)}}}}let n=function e(r={}){return r.module,{trace:t("trace",r),debug:t("debug",r),info:t("info",r),warn:t("warn",r),error:t("error",r),fatal:t("fatal",r),child:t=>e({...r,...t}),box:(e,t,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...r,title:e,..."string"==typeof t?{content:t}:t||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])},68426,e=>{"use strict";var r=e.i(83508);let t=["primary","junior_high","senior_high"],n="primary",i=["math","english","chinese","physics","chemistry","biology","history","geography","politics"],s={primary:["math","english"],junior_high:i,senior_high:i},o={primary:/^[一二三四五六]年级/,junior_high:/^[七八九]年级/,senior_high:/^高[一二三]/};function a(e){return"string"==typeof e&&t.includes(e)}function u(e){return"string"==typeof e&&i.includes(e)}e.s(["STAGE_SUBJECTS",0,s,"SUBJECT_DISPLAY_NAMES",0,{math:"数学",english:"英语",chinese:"语文",physics:"物理",chemistry:"化学",biology:"生物",history:"历史",geography:"地理",politics:"政治"},"isGradeInStage",0,function(e,r){return o[r].test(e)},"isNotebookSubject",0,u,"isValidNotebookScope",0,function(e,r){return a(e)&&u(r)&&s[e].includes(r)},"resolveNotebookScope",0,function(e){let t=u(e.subjectKey)?e.subjectKey:(0,r.inferSubjectFromName)(e.name);return{stage:a(e.stage)?e.stage:n,subject:t&&u(t)?t:null}},"stageFromEducationStage",0,function(e){return a(e)?e:n}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1cngnud._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var t=e.i(63021);let r=e.g.prisma||new t.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,r])},49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(t,r)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),r()}catch(e){r(e)}},!0),874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},45706,(e,t,r)=>{t.exports=e.x("querystring",()=>require("querystring"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},28191,e=>e.a(async(t,r)=>{try{var n=e.i(58821),a=e.i(13618),s=e.i(79832),o=e.i(76759),i=e.i(50377),l=t([s]);[s]=l.then?(await l)():l;let d=(0,i.createLogger)("frontend-logs");async function u(e){let t=await (0,a.getServerSession)(s.authOptions);if(!t?.user)return(0,o.unauthorized)("Authentication required");try{let r=await e.json(),a=(Array.isArray(r.logs)?r.logs:[r]).slice(0,50);for(let r of a){let{level:n,prefix:a,context:s={},timestamp:o,url:i,userAgent:l}=r,u=String(r.message??"").slice(0,2e3),c={source:"frontend",prefix:a,url:i||e.headers.get("referer"),userAgent:l||e.headers.get("user-agent"),clientTime:o,...s,userId:t.user.id};switch(n){case"error":d.error(c,u);break;case"warn":d.warn(c,u);break;default:d.info(c,u)}}return n.NextResponse.json({success:!0,count:a.length})}catch(e){return d.error({error:e},"Failed to process frontend log"),n.NextResponse.json({success:!1},{status:500})}}e.s(["POST",0,u,"runtime",0,"nodejs"]),r()}catch(e){r(e)}},!1),63927,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),R=e.i(70101),x=e.i(74838),E=e.i(10372),h=e.i(93695),f=e.i(9580);e.i(52474);var g=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/logs/frontend/route",pathname:"/api/logs/frontend",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/logs/frontend/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(28191),...{}}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:A}=v;async function I(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),v.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let N="/api/logs/frontend/route";N=N.replace(/\/index$/,"")||"/";let O=await v.prepare(e,t,{srcPage:N,multiZoneDraftMode:!1});if(!O)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:A,deploymentId:I,params:m,nextConfig:T,parsedUrl:_,isDraftMode:w,prerenderManifest:D,routerServerContext:S,isOnDemandRevalidate:y,revalidateOnlyGenerated:C,resolvedPathname:b,clientReferenceManifest:q,serverActionsManifest:U}=O,P=(0,i.normalizeAppPath)(N),L=!!D.routes[b]&&(v.isDev||(0,f.isRouteCacheOwner)(b,v.cacheOwner,D.routes[b])),j=!!(D.dynamicRoutes[P]||L),F=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,_,!1):t.end("This page could not be found"),null);if(j&&!w){let e=D.dynamicRoutes[P];if(e&&!1===e.fallback&&!L){if(T.adapterPath)return await F();throw new h.NoFallbackError}}let k=null;!j||v.isDev||w||(k="/index"===(k=b)?"/":k);let H=!0===v.isDev||!j,M=j&&!H;U&&q&&(0,o.setManifestsSingleton)({page:N,clientReferenceManifest:q,serverActionsManifest:U});let B=e.method||"GET",G=(0,s.getTracer)(),V=G.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),Q=!!(0,a.getRequestMeta)(e,"minimalMode"),X=(0,a.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,T,D,Q);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let $={params:m,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:w,supportsDynamicResponse:H,incrementalCache:X,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>v.onRequestError(e,t,n,a,S)},sharedContext:{buildId:A,deploymentId:I}},z=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!Q&&y&&C&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await v.handle(Z,$);e.fetchMetrics=$.renderOpts.fetchMetrics;let s=$.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let o=$.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(z,W,a,s),null;{let e=await a.blob(),t=(0,R.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[E.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==r&&r>0?T.expireTime:void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:y})},!1,S),t}},Y=async(a,o)=>{try{var i,l;let a=await v.handleResponse({req:e,nextConfig:T,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:y,revalidateOnlyGenerated:C,responseGenerator:J,waitUntil:n.waitUntil,isMinimalMode:Q});if(!j)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Q||t.setHeader("x-nextjs-cache",y?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,R.fromNodeOutgoingHttpHeaders)(a.value.headers);Q&&j||s.delete(E.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,x.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(z,W,new Response(a.value.body,{headers:s,status:a.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:y})},!1,S),j)throw t;await (0,p.sendResponse)(z,W,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:s.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||P,i=`${B} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":i}),a.updateName(i),o&&o!==a&&(o.setAttribute("http.route",n),o.updateName(i))})()}};if(K&&V)await Y(V,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${B} ${N}`,kind:s.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},e=>Y(e,t)),void 0,!K)}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})},"routeModule",0,v,"serverHooks",0,A,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,O])},76759,e=>{"use strict";var t=e.i(58821);let r={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,r,n,a){let s={message:e};return n&&(s.code=n),a&&(s.details=a),t.NextResponse.json(s,{status:r})}e.s(["ErrorCode",0,r,"badRequest",0,function(e,t){return n(e,400,r.BAD_REQUEST,t)},"conflict",0,function(e){return n(e,409,r.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,r.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,r.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,r.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,r.UNAUTHORIZED)},"validationError",0,function(e,t){return n(e,400,r.VALIDATION_ERROR,t)}])},50377,e=>{"use strict";let t={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function r(e,n={}){let a,s=t[e],o=(a=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==t[a]?t[a]:t.info;return(t,r)=>{let a,i;if(s<o)return;let l=new Date;"string"==typeof t?(a={},i=t):(a=t,i=r||"");{let t=JSON.stringify({level:e,time:l.toISOString(),...n,...a,msg:i});switch(e){case"error":case"fatal":console.error(t);break;case"warn":console.warn(t);break;default:console.log(t)}}}}let n=function e(t={}){return t.module,{trace:r("trace",t),debug:r("debug",t),info:r("info",t),warn:r("warn",t),error:r("error",t),fatal:r("fatal",t),child:r=>e({...t,...r}),box:(e,r,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...t,title:e,..."string"==typeof r?{content:r}:r||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1d82zkk._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[85685,e=>{e.v(e=>Promise.resolve().then(()=>e(54799)))},79955,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1_gkx5x._.js"].map(r=>e.l(r))).then(()=>r(35611)))},46735,e=>{e.v(r=>Promise.all(["server/chunks/[externals]__04n7qbr._.js","server/chunks/[root-of-the-server]__0rk_yxy._.js"].map(r=>e.l(r))).then(()=>r(83085)))},91961,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1jtd2ar._.js"].map(r=>e.l(r))).then(()=>r(12111)))},72331,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0sj18kk._.js","server/chunks/[root-of-the-server]__1nmtv65._.js","server/chunks/[root-of-the-server]__0_t7bbz._.js"].map(r=>e.l(r))).then(()=>r(20442)))},30249,e=>{e.v(e=>Promise.resolve().then(()=>e(5898)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1ezju_2._.js.map