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=[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__1x_ud_-._.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__1yt_xxr._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[320266,e=>e.a(async(t,r)=>{try{var a=e.i(89171),n=e.i(698043),i=e.i(843911),s=e.i(63856),o=e.i(181912),l=e.i(50377),u=e.i(926828),d=e.i(668426),c=t([s]);[s]=c.then?(await c)():c;let h=(0,l.createLogger)("api:error-items:reanswer");async function p(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let l=await n.prisma.errorItem.findUnique({where:{id:r},select:{userId:!0,shortId:!0,questionText:!0,originalImageUrl:!0,gradeSemester:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}}}});if(!l||l.userId!==t.id)return(0,o.notFound)("Item not found");if(!l.questionText?.trim())return(0,o.badRequest)("NO_QUESTION_TEXT");let c=await e.json().catch(()=>({})),p=c?.language==="en"?"en":"zh",g=l.subject?(0,d.resolveNotebookScope)(l.subject):null,m=g?.subject?d.SUBJECT_DISPLAY_NAMES[g.subject]:null,R=l.originalImageUrl?.startsWith("data:")?l.originalImageUrl:void 0,w=l.questionText,v=await (0,u.trackBackgroundTask)({userId:t.id,kind:"reanswer",subject:(0,u.describeQuestion)(l),link:`/error-items/${r}`},()=>(0,i.getAIService)().reanswerQuestion(w,p,m,R,l.gradeSemester));if(!v.answerText.trim()&&!v.analysis.trim())return(0,o.badRequest)("EMPTY_ANSWER");let f=await n.prisma.errorItem.update({where:{id:r},data:{answerText:v.answerText,analysis:v.analysis},select:{answerText:!0,analysis:!0}});return h.info({errorItemId:r,hasImage:!!R,answerLength:f.answerText?.length??0,analysisLength:f.analysis?.length??0},"Answer regenerated"),a.NextResponse.json(f)}catch(t){let e=t instanceof Error?t.message:String(t);return h.error({error:e},"Error regenerating answer"),(0,o.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to regenerate answer")}}e.s(["POST",0,p]),r()}catch(e){r(e)}},!1),241120,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),g=e.i(626937),m=e.i(10372),R=e.i(193695),w=e.i(509580);e.i(52474);var v=e.i(600220);let f=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/reanswer/route",pathname:"/api/error-items/[id]/reanswer",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/reanswer/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(320266),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:T,serverHooks:C}=f;async function x(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/reanswer/route";E=E.replace(/\/index$/,"")||"/";let T=await f.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:y,nextConfig:A,parsedUrl:S,isDraftMode:b,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:_,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:U}=T,k=(0,o.normalizeAppPath)(E),H=!!I.routes[q]&&(f.isDev||(0,w.isRouteCacheOwner)(q,f.cacheOwner,I.routes[q])),M=!!(I.dynamicRoutes[k]||H),j=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!b){let e=I.dynamicRoutes[k];if(e&&!1===e.fallback&&!H){if(A.adapterPath)return await j();throw new R.NoFallbackError}}let D=null;!M||f.isDev||b||(D="/index"===(D=q)?"/":D);let L=!0===f.isDev||!M,F=M&&!L;U&&O&&(0,s.setManifestsSingleton)({page:E,clientReferenceManifest:O,serverActionsManifest:U});let K=e.method||"GET",B=(0,i.getTracer)(),$=B.getActiveScopeSpan(),G=!!(null==N?void 0:N.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await f.getIncrementalCache(e,A,I,W);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:y,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:b,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>f.onRequestError(e,t,a,n,N)},sharedContext:{buildId:C,deploymentId:x}},Q=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),Y=u.NextRequestAdapter.fromNodeNextRequest(Q,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!W&&P&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await f.handle(Y,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=z.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(Q,V,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await f.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),t}},Z=async(n,s)=>{try{var o,l;let n=await f.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:_,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:W});if(!M)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);W&&M||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(Q,V,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await f.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),M)throw t;await (0,p.sendResponse)(Q,V,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=B.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 a=r.get("next.route")||k,o=`${K} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&$)await Z($,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:T})},"routeModule",0,f,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,T])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(757660),n=e.i(79832),i=e.i(698043),s=t([n]);async function o(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1)];
1
+ module.exports=[20266,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(43911),s=e.i(63856),o=e.i(76759),l=e.i(50377),u=e.i(26828),d=e.i(68426),c=t([s]);[s]=c.then?(await c)():c;let h=(0,l.createLogger)("api:error-items:reanswer");async function p(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let l=await n.prisma.errorItem.findUnique({where:{id:r},select:{userId:!0,shortId:!0,questionText:!0,originalImageUrl:!0,gradeSemester:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}}}});if(!l||l.userId!==t.id)return(0,o.notFound)("Item not found");if(!l.questionText?.trim())return(0,o.badRequest)("NO_QUESTION_TEXT");let c=await e.json().catch(()=>({})),p=c?.language==="en"?"en":"zh",g=l.subject?(0,d.resolveNotebookScope)(l.subject):null,m=g?.subject?d.SUBJECT_DISPLAY_NAMES[g.subject]:null,R=l.originalImageUrl?.startsWith("data:")?l.originalImageUrl:void 0,w=l.questionText,v=await (0,u.trackBackgroundTask)({userId:t.id,kind:"reanswer",subject:(0,u.describeQuestion)(l),link:`/error-items/${r}`},()=>(0,i.getAIService)().reanswerQuestion(w,p,m,R,l.gradeSemester));if(!v.answerText.trim()&&!v.analysis.trim())return(0,o.badRequest)("EMPTY_ANSWER");let f=await n.prisma.errorItem.update({where:{id:r},data:{answerText:v.answerText,analysis:v.analysis},select:{answerText:!0,analysis:!0}});return h.info({errorItemId:r,hasImage:!!R,answerLength:f.answerText?.length??0,analysisLength:f.analysis?.length??0},"Answer regenerated"),a.NextResponse.json(f)}catch(t){let e=t instanceof Error?t.message:String(t);return h.error({error:e},"Error regenerating answer"),(0,o.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to regenerate answer")}}e.s(["POST",0,p]),r()}catch(e){r(e)}},!1),41120,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),R=e.i(93695),w=e.i(9580);e.i(52474);var v=e.i(220);let f=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/reanswer/route",pathname:"/api/error-items/[id]/reanswer",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/reanswer/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(20266),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:T,serverHooks:C}=f;async function x(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/reanswer/route";E=E.replace(/\/index$/,"")||"/";let T=await f.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:y,nextConfig:A,parsedUrl:S,isDraftMode:b,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:_,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:U}=T,k=(0,o.normalizeAppPath)(E),H=!!I.routes[q]&&(f.isDev||(0,w.isRouteCacheOwner)(q,f.cacheOwner,I.routes[q])),M=!!(I.dynamicRoutes[k]||H),j=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!b){let e=I.dynamicRoutes[k];if(e&&!1===e.fallback&&!H){if(A.adapterPath)return await j();throw new R.NoFallbackError}}let D=null;!M||f.isDev||b||(D="/index"===(D=q)?"/":D);let L=!0===f.isDev||!M,F=M&&!L;U&&O&&(0,s.setManifestsSingleton)({page:E,clientReferenceManifest:O,serverActionsManifest:U});let K=e.method||"GET",B=(0,i.getTracer)(),$=B.getActiveScopeSpan(),G=!!(null==N?void 0:N.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await f.getIncrementalCache(e,A,I,W);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:y,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:b,supportsDynamicResponse:L,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>f.onRequestError(e,t,a,n,N)},sharedContext:{buildId:C,deploymentId:x}},Q=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),Y=u.NextRequestAdapter.fromNodeNextRequest(Q,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!W&&P&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await f.handle(Y,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=z.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(Q,V,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await f.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),t}},Z=async(n,s)=>{try{var o,l;let n=await f.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:_,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:W});if(!M)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);W&&M||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(Q,V,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await f.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:P})},!1,N),M)throw t;await (0,p.sendResponse)(Q,V,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=B.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 a=r.get("next.route")||k,o=`${K} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(G&&$)await Z($,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${K} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:T})},"routeModule",0,f,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,T])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),n=e.i(79832),i=e.i(98043),s=t([n]);async function o(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_0-eguqv._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[110419,e=>e.a(async(t,r)=>{try{var a=e.i(89171),i=e.i(757660),n=e.i(469719),s=e.i(698043),o=e.i(79832),l=e.i(539811),u=e.i(181912),d=e.i(50377),c=e.i(204083),g=e.i(183508),p=e.i(630166),m=e.i(92366),h=e.i(82134),f=e.i(404752),w=e.i(160979),v=e.i(819428),R=e.i(655920),S=e.i(798003),b=t([o]);[o]=b.then?(await b)():b;let x=(0,d.createLogger)("api:error-items"),E=n.z.object({questionText:n.z.string().max(2e4).nullish(),answerText:n.z.string().max(2e4).nullish(),analysis:n.z.string().max(5e4).nullish(),wrongAnswerText:n.z.string().max(2e4).nullish(),mistakeAnalysis:n.z.string().max(5e4).nullish(),mistakeStatus:n.z.string().max(30).nullish(),knowledgePoints:n.z.preprocess(e=>"string"==typeof e?e.split(/[,,]/).map(e=>e.trim()).filter(Boolean):e,n.z.array(n.z.string().trim().min(1).max(200)).max(100).optional()),originalImageUrl:n.z.string().max(0x1400000).default(""),subjectId:n.z.string().nullish(),subjectName:n.z.string().max(100).nullish(),gradeSemester:n.z.string().max(100).nullish(),paperLevel:n.z.string().max(30).nullish(),difficultyStars:n.z.number().int().min(1).max(5).nullish(),hasFigure:n.z.boolean().optional(),figureSvg:n.z.string().max(v.MAX_FIGURE_SVG_LENGTH).nullish(),geogebraCommands:n.z.string().nullish()});async function y(e){x.info("POST /api/error-items called");let t=await (0,i.getServerSession)(o.authOptions);try{let r,i=E.safeParse(await e.json());if(!i.success)return(0,u.validationError)("Invalid question import",i.error.issues);let n=i.data,{questionText:o,answerText:d,analysis:b,wrongAnswerText:y,mistakeAnalysis:C,mistakeStatus:A,knowledgePoints:T,originalImageUrl:I,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,difficultyStars:O,geogebraCommands:q}=n,_=(0,v.sanitizeFigureSvg)(n.figureSvg),z=!!n.hasFigure||null!==_;if(x.debug({hasQuestionText:!!o,questionTextLength:o?.length||0,hasAnswerText:!!d,hasAnalysis:!!b,hasWrongAnswerText:!!y,hasMistakeAnalysis:!!C,mistakeStatus:A,knowledgePointsCount:Array.isArray(T)?T.length:0,hasImage:!!I,imageSize:I?.length||0,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,hasGeogebraCommands:!!q},"Request parameters received"),t?.user?.email?(r=await s.prisma.user.findUnique({where:{email:t.user.email}}),x.debug({userId:r?.id,email:t.user.email},"User lookup result")):x.warn("No session email found"),!r)return x.warn({sessionEmail:t?.user?.email},"User not found in DB"),(0,u.unauthorized)("No user found in DB");let U=await (0,w.runQuestionImportTransaction)(async e=>{let t=await (0,w.findDuplicateQuestion)(e,r.id,n);if(t)return(0,w.recordDuplicateQuestion)(e,r.id,t,n);let a=N||void 0;!a&&"string"==typeof P&&P.trim()&&(a=(await (0,h.resolveNotebookForSubject)(r.id,P,e)).id);let i=k;!i&&r.educationStage&&r.enrollmentYear&&(i=(0,l.calculateGrade)(r.educationStage,r.enrollmentYear,new Date,"en",(0,S.getAppTimeZone)()),x.debug({finalGradeSemester:i,educationStage:r.educationStage,enrollmentYear:r.enrollmentYear},"Grade calculated"));let s=Array.isArray(T)?T:[],u=[],f=await e.subject.findUnique({where:{id:a||""}}),v=(0,g.inferSubjectFromName)(f?.name??null)||"other";for(let t of(x.debug({subjectId:a,subjectName:f?.name,subjectKey:v},"Subject inferred"),s))try{let a=await e.knowledgeTag.findFirst({where:{name:t,OR:[{isSystem:!0},{userId:r.id}]}});if(a)x.debug({tagId:a.id,tagName:t,isSystem:a.isSystem},"Existing tag found");else{let n=await (0,c.findParentTagIdForGrade)(i,v,e);x.debug({tagName:t,parentId:n,subjectKey:v},"Creating new custom tag"),a=await e.knowledgeTag.create({data:{name:t,subject:v,isSystem:!1,userId:r.id,parentId:n}}),x.debug({tagId:a.id,tagName:t},"Custom tag created")}u.push({id:a.id})}catch(e){throw x.error({tagName:t,error:e},"Error processing tag"),e}x.info({tagNames:s,tagConnectionsCount:u.length},"Creating ErrorItem with tags");try{let t=await e.errorItem.create({data:{shortId:await (0,m.generateUniqueShortId)(e),userId:r.id,subjectId:a||void 0,originalImageUrl:I,questionText:o,answerText:d,analysis:b,wrongAnswerText:y||null,mistakeAnalysis:C||null,mistakeStatus:(0,p.normalizeMistakeStatusForSave)(A,y),knowledgePoints:JSON.stringify(s),gradeSemester:i,paperLevel:j??(0,R.getDefaultPaperLevel)(O),difficultyStars:O??null,hasFigure:z,figureSvg:_,geogebraCommands:q||null,masteryLevel:0,tags:{connect:u}},include:{tags:!0,subject:{select:{id:!0,name:!0}}}});return x.info({errorItemId:t.id,tagsCount:t.tags?.length||0},"ErrorItem created successfully"),t}catch(e){throw x.error({error:e,userId:r.id,subjectId:a,tagConnectionsCount:u.length},"Database error creating ErrorItem"),e}}),M="duplicate"in U&&U.duplicate;return M&&(0,f.scheduleMasteryEvaluation)([U.id]),a.NextResponse.json(U,{status:M?200:201})}catch(e){return x.error({error:e,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0},"Error saving item"),(0,u.internalError)("Failed to save error item")}}e.s(["POST",0,y]),r()}catch(e){r(e)}},!1),280469,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),i=e.i(759756),n=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),g=e.i(666012),p=e.i(570101),m=e.i(626937),h=e.i(10372),f=e.i(193695),w=e.i(509580);e.i(52474);var v=e.i(600220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/route",pathname:"/api/error-items",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(110419),...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:y}=R;async function x(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/error-items/route";S=S.replace(/\/index$/,"")||"/";let b=await R.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:x,params:E,nextConfig:C,parsedUrl:A,isDraftMode:T,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:q}=b,_=(0,o.normalizeAppPath)(S),z=!!I.routes[j]&&(R.isDev||(0,w.isRouteCacheOwner)(j,R.cacheOwner,I.routes[j])),U=!!(I.dynamicRoutes[_]||z),M=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!T){let e=I.dynamicRoutes[_];if(e&&!1===e.fallback&&!z){if(C.adapterPath)return await M();throw new f.NoFallbackError}}let D=null;!U||R.isDev||T||(D="/index"===(D=j)?"/":D);let F=!0===R.isDev||!U,H=U&&!F;q&&O&&(0,s.setManifestsSingleton)({page:S,clientReferenceManifest:O,serverActionsManifest:q});let L=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),$=!!(0,i.getRequestMeta)(e,"minimalMode"),Q=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,C,I,$);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:E,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:Q,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,N)},sharedContext:{buildId:y,deploymentId:x}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!$&&P&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,Y,i,n),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),t}},J=async(i,s)=>{try{var o,l;let i=await R.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:$});if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);$&&U||n.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,g.sendResponse)(X,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),U)throw t;await (0,g.sendResponse)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.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 a=r.get("next.route")||_,o=`${L} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await J(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b])},82134,e=>{"use strict";var t=e.i(698043),r=e.i(183508),a=e.i(668426);async function i(e,n,s=t.prisma){let o=n.trim(),l=await s.subject.findMany({where:{userId:e},select:{id:!0,name:!0},orderBy:{createdAt:"asc"}}),u=l.find(e=>e.name===o)||l.find(e=>e.name.includes(o)||o.includes(e.name));if(u)return u;let d=await s.user.findUnique({where:{id:e},select:{educationStage:!0}}),c=(0,r.inferSubjectFromName)(o);try{return await s.subject.upsert({where:{name_userId:{name:o,userId:e}},update:{},create:{name:o,userId:e,stage:(0,a.stageFromEducationStage)(d?.educationStage),subjectKey:(0,a.isNotebookSubject)(c)?c:null},select:{id:!0,name:!0}})}catch(t){if(t?.code==="P2002")return s.subject.findUniqueOrThrow({where:{name_userId:{name:o,userId:e}},select:{id:!0,name:!0}});throw t}}e.s(["resolveNotebookForSubject",0,i])}];
1
+ module.exports=[10419,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(13618),n=e.i(69719),s=e.i(98043),o=e.i(79832),l=e.i(39811),u=e.i(76759),d=e.i(50377),c=e.i(4083),g=e.i(83508),p=e.i(30166),m=e.i(92366),h=e.i(82134),f=e.i(95886),w=e.i(60979),v=e.i(19428),R=e.i(55920),S=e.i(98003),b=t([o]);[o]=b.then?(await b)():b;let x=(0,d.createLogger)("api:error-items"),E=n.z.object({questionText:n.z.string().max(2e4).nullish(),answerText:n.z.string().max(2e4).nullish(),analysis:n.z.string().max(5e4).nullish(),wrongAnswerText:n.z.string().max(2e4).nullish(),mistakeAnalysis:n.z.string().max(5e4).nullish(),mistakeStatus:n.z.string().max(30).nullish(),knowledgePoints:n.z.preprocess(e=>"string"==typeof e?e.split(/[,,]/).map(e=>e.trim()).filter(Boolean):e,n.z.array(n.z.string().trim().min(1).max(200)).max(100).optional()),originalImageUrl:n.z.string().max(0x1400000).default(""),subjectId:n.z.string().nullish(),subjectName:n.z.string().max(100).nullish(),gradeSemester:n.z.string().max(100).nullish(),paperLevel:n.z.string().max(30).nullish(),difficultyStars:n.z.number().int().min(1).max(5).nullish(),hasFigure:n.z.boolean().optional(),figureSvg:n.z.string().max(v.MAX_FIGURE_SVG_LENGTH).nullish(),geogebraCommands:n.z.string().nullish()});async function y(e){x.info("POST /api/error-items called");let t=await (0,i.getServerSession)(o.authOptions);try{let r,i=E.safeParse(await e.json());if(!i.success)return(0,u.validationError)("Invalid question import",i.error.issues);let n=i.data,{questionText:o,answerText:d,analysis:b,wrongAnswerText:y,mistakeAnalysis:C,mistakeStatus:A,knowledgePoints:T,originalImageUrl:I,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,difficultyStars:O,geogebraCommands:q}=n,_=(0,v.sanitizeFigureSvg)(n.figureSvg),z=!!n.hasFigure||null!==_;if(x.debug({hasQuestionText:!!o,questionTextLength:o?.length||0,hasAnswerText:!!d,hasAnalysis:!!b,hasWrongAnswerText:!!y,hasMistakeAnalysis:!!C,mistakeStatus:A,knowledgePointsCount:Array.isArray(T)?T.length:0,hasImage:!!I,imageSize:I?.length||0,subjectId:N,subjectName:P,gradeSemester:k,paperLevel:j,hasGeogebraCommands:!!q},"Request parameters received"),t?.user?.email?(r=await s.prisma.user.findUnique({where:{email:t.user.email}}),x.debug({userId:r?.id,email:t.user.email},"User lookup result")):x.warn("No session email found"),!r)return x.warn({sessionEmail:t?.user?.email},"User not found in DB"),(0,u.unauthorized)("No user found in DB");let U=await (0,w.runQuestionImportTransaction)(async e=>{let t=await (0,w.findDuplicateQuestion)(e,r.id,n);if(t)return(0,w.recordDuplicateQuestion)(e,r.id,t,n);let a=N||void 0;!a&&"string"==typeof P&&P.trim()&&(a=(await (0,h.resolveNotebookForSubject)(r.id,P,e)).id);let i=k;!i&&r.educationStage&&r.enrollmentYear&&(i=(0,l.calculateGrade)(r.educationStage,r.enrollmentYear,new Date,"en",(0,S.getAppTimeZone)()),x.debug({finalGradeSemester:i,educationStage:r.educationStage,enrollmentYear:r.enrollmentYear},"Grade calculated"));let s=Array.isArray(T)?T:[],u=[],f=await e.subject.findUnique({where:{id:a||""}}),v=(0,g.inferSubjectFromName)(f?.name??null)||"other";for(let t of(x.debug({subjectId:a,subjectName:f?.name,subjectKey:v},"Subject inferred"),s))try{let a=await e.knowledgeTag.findFirst({where:{name:t,OR:[{isSystem:!0},{userId:r.id}]}});if(a)x.debug({tagId:a.id,tagName:t,isSystem:a.isSystem},"Existing tag found");else{let n=await (0,c.findParentTagIdForGrade)(i,v,e);x.debug({tagName:t,parentId:n,subjectKey:v},"Creating new custom tag"),a=await e.knowledgeTag.create({data:{name:t,subject:v,isSystem:!1,userId:r.id,parentId:n}}),x.debug({tagId:a.id,tagName:t},"Custom tag created")}u.push({id:a.id})}catch(e){throw x.error({tagName:t,error:e},"Error processing tag"),e}x.info({tagNames:s,tagConnectionsCount:u.length},"Creating ErrorItem with tags");try{let t=await e.errorItem.create({data:{shortId:await (0,m.generateUniqueShortId)(e),userId:r.id,subjectId:a||void 0,originalImageUrl:I,questionText:o,answerText:d,analysis:b,wrongAnswerText:y||null,mistakeAnalysis:C||null,mistakeStatus:(0,p.normalizeMistakeStatusForSave)(A,y),knowledgePoints:JSON.stringify(s),gradeSemester:i,paperLevel:j??(0,R.getDefaultPaperLevel)(O),difficultyStars:O??null,hasFigure:z,figureSvg:_,geogebraCommands:q||null,masteryLevel:0,tags:{connect:u}},include:{tags:!0,subject:{select:{id:!0,name:!0}}}});return x.info({errorItemId:t.id,tagsCount:t.tags?.length||0},"ErrorItem created successfully"),t}catch(e){throw x.error({error:e,userId:r.id,subjectId:a,tagConnectionsCount:u.length},"Database error creating ErrorItem"),e}}),M="duplicate"in U&&U.duplicate;return M&&(0,f.scheduleMasteryEvaluation)([U.id]),a.NextResponse.json(U,{status:M?200:201})}catch(e){return x.error({error:e,errorMessage:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0},"Error saving item"),(0,u.internalError)("Failed to save error item")}}e.s(["POST",0,y]),r()}catch(e){r(e)}},!1),80469,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),g=e.i(66012),p=e.i(70101),m=e.i(74838),h=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var v=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/route",pathname:"/api/error-items",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(10419),...{}}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:y}=R;async function x(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/error-items/route";S=S.replace(/\/index$/,"")||"/";let b=await R.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:x,params:E,nextConfig:C,parsedUrl:A,isDraftMode:T,prerenderManifest:I,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,resolvedPathname:j,clientReferenceManifest:O,serverActionsManifest:q}=b,_=(0,o.normalizeAppPath)(S),z=!!I.routes[j]&&(R.isDev||(0,w.isRouteCacheOwner)(j,R.cacheOwner,I.routes[j])),U=!!(I.dynamicRoutes[_]||z),M=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!T){let e=I.dynamicRoutes[_];if(e&&!1===e.fallback&&!z){if(C.adapterPath)return await M();throw new f.NoFallbackError}}let D=null;!U||R.isDev||T||(D="/index"===(D=j)?"/":D);let F=!0===R.isDev||!U,H=U&&!F;q&&O&&(0,s.setManifestsSingleton)({page:S,clientReferenceManifest:O,serverActionsManifest:q});let L=e.method||"GET",G=(0,n.getTracer)(),B=G.getActiveScopeSpan(),K=!!(null==N?void 0:N.isWrappedByNextServer),$=!!(0,i.getRequestMeta)(e,"minimalMode"),Q=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,C,I,$);null==Q||Q.resetRequestCache(),globalThis.__incrementalCache=Q;let V={params:E,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:Q,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,N)},sharedContext:{buildId:y,deploymentId:x}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!$&&P&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let n=V.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,Y,i,n),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),t}},J=async(i,s)=>{try{var o,l;let i=await R.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:$});if(!U)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);$&&U||n.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,g.sendResponse)(X,Y,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,N),U)throw t;await (0,g.sendResponse)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.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 a=r.get("next.route")||_,o=`${L} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await J(B,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,b])},82134,e=>{"use strict";var t=e.i(98043),r=e.i(83508),a=e.i(68426);async function i(e,n,s=t.prisma){let o=n.trim(),l=await s.subject.findMany({where:{userId:e},select:{id:!0,name:!0},orderBy:{createdAt:"asc"}}),u=l.find(e=>e.name===o)||l.find(e=>e.name.includes(o)||o.includes(e.name));if(u)return u;let d=await s.user.findUnique({where:{id:e},select:{educationStage:!0}}),c=(0,r.inferSubjectFromName)(o);try{return await s.subject.upsert({where:{name_userId:{name:o,userId:e}},update:{},create:{name:o,userId:e,stage:(0,a.stageFromEducationStage)(d?.educationStage),subjectKey:(0,a.isNotebookSubject)(c)?c:null},select:{id:!0,name:!0}})}catch(t){if(t?.code==="P2002")return s.subject.findUniqueOrThrow({where:{name_userId:{name:o,userId:e}},select:{id:!0,name:!0}});throw t}}e.s(["resolveNotebookForSubject",0,i])}];
2
2
 
3
3
  //# sourceMappingURL=_008zx49._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[511114,e=>e.a(async(t,r)=>{try{var a=e.i(89171),n=e.i(698043),i=e.i(843911),o=e.i(63856),s=e.i(181912),u=e.i(50377),l=e.i(926828),d=t([o]);[o]=d.then?(await d)():d;let R=(0,u.createLogger)("api:error-items:svg-animation");function c(e){return"en"===e?"en":"zh"}function p(e){return"en"===e?"svgAnimationEn":"svgAnimation"}async function h(e,t){let r=await n.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,shortId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0}});return r&&r.userId===t?r:null}async function g(e,{params:t}){let{id:r}=await t,u=await e.json().catch(()=>({})),d=c(u.language);try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await h(r,e.id);if(!t)return(0,s.notFound)("Item not found");if(!t.questionText?.trim())return(0,s.badRequest)("NO_QUESTION_TEXT");let u=t.questionText,c=await (0,l.trackBackgroundTask)({userId:e.id,kind:"svg_animation",subject:(0,l.describeQuestion)(t),link:`/error-items/${r}`},async()=>{let e=await (0,i.getAIService)().generateSvgAnimation(u,t.answerText||"",t.analysis||"",t.figureSvg,d);if(!e)throw Error("NO_VALID_ANIMATION");return await n.prisma.errorItem.update({where:{id:r},data:{[p(d)]:e}}),e}).catch(e=>{if(e instanceof Error&&"NO_VALID_ANIMATION"===e.message)return null;throw e});if(!c)return(0,s.badRequest)("NO_VALID_ANIMATION");return R.info({errorItemId:r,language:d,svgLength:c.length},"SVG animation generated"),a.NextResponse.json({svgAnimation:c,language:d})}catch(t){let e=t instanceof Error?t.message:String(t);return R.error({error:e},"Error generating SVG animation"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to generate SVG animation")}}async function m(e,{params:t}){let{id:r}=await t,i=c(new URL(e.url).searchParams.get("language"));try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");if(!await h(r,e.id))return(0,s.notFound)("Item not found");return await n.prisma.errorItem.update({where:{id:r},data:{[p(i)]:null}}),R.info({errorItemId:r,language:i},"SVG animation deleted"),a.NextResponse.json({success:!0})}catch(e){return R.error({error:e},"Error deleting SVG animation"),(0,s.internalError)("Failed to delete SVG animation")}}e.s(["DELETE",0,m,"POST",0,g]),r()}catch(e){r(e)}},!1),394316,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),u=e.i(316795),l=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),g=e.i(626937),m=e.i(10372),R=e.i(193695),v=e.i(509580);e.i(52474);var f=e.i(600220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/svg-animation/route",pathname:"/api/error-items/[id]/svg-animation",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/svg-animation/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(511114),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:T}=w;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/svg-animation/route";E=E.replace(/\/index$/,"")||"/";let A=await w.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:C,params:I,nextConfig:x,parsedUrl:S,isDraftMode:y,prerenderManifest:N,routerServerContext:O,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:U}=A,H=(0,s.normalizeAppPath)(E),M=!!N.routes[P]&&(w.isDev||(0,v.isRouteCacheOwner)(P,w.cacheOwner,N.routes[P])),k=!!(N.dynamicRoutes[H]||M),D=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,S,!1):t.end("This page could not be found"),null);if(k&&!y){let e=N.dynamicRoutes[H];if(e&&!1===e.fallback&&!M){if(x.adapterPath)return await D();throw new R.NoFallbackError}}let L=null;!k||w.isDev||y||(L="/index"===(L=P)?"/":L);let F=!0===w.isDev||!k,V=k&&!F;U&&q&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:U});let j=e.method||"GET",G=(0,i.getTracer)(),K=G.getActiveScopeSpan(),$=!!(null==O?void 0:O.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,x,N,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let X={params:I,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:F,incrementalCache:z,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>w.onRequestError(e,t,a,n,O)},sharedContext:{buildId:T,deploymentId:C}},W=new u.NodeNextRequest(e),Q=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&_&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let i=X.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=X.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(W,Q,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),t}},Y=async(n,o)=>{try{var s,u;let n=await w.handleResponse({req:e,nextConfig:x,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(u=n.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&k||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,Q,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),k)throw t;await (0,p.sendResponse)(W,Q,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.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 a=r.get("next.route")||H,s=`${j} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if($&&K)await Y(K,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,w,"serverHooks",0,T,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A])}];
1
+ module.exports=[11114,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(43911),o=e.i(63856),s=e.i(76759),u=e.i(50377),l=e.i(26828),d=t([o]);[o]=d.then?(await d)():d;let R=(0,u.createLogger)("api:error-items:svg-animation");function c(e){return"en"===e?"en":"zh"}function p(e){return"en"===e?"svgAnimationEn":"svgAnimation"}async function h(e,t){let r=await n.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,shortId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0}});return r&&r.userId===t?r:null}async function g(e,{params:t}){let{id:r}=await t,u=await e.json().catch(()=>({})),d=c(u.language);try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await h(r,e.id);if(!t)return(0,s.notFound)("Item not found");if(!t.questionText?.trim())return(0,s.badRequest)("NO_QUESTION_TEXT");let u=t.questionText,c=await (0,l.trackBackgroundTask)({userId:e.id,kind:"svg_animation",subject:(0,l.describeQuestion)(t),link:`/error-items/${r}`},async()=>{let e=await (0,i.getAIService)().generateSvgAnimation(u,t.answerText||"",t.analysis||"",t.figureSvg,d);if(!e)throw Error("NO_VALID_ANIMATION");return await n.prisma.errorItem.update({where:{id:r},data:{[p(d)]:e}}),e}).catch(e=>{if(e instanceof Error&&"NO_VALID_ANIMATION"===e.message)return null;throw e});if(!c)return(0,s.badRequest)("NO_VALID_ANIMATION");return R.info({errorItemId:r,language:d,svgLength:c.length},"SVG animation generated"),a.NextResponse.json({svgAnimation:c,language:d})}catch(t){let e=t instanceof Error?t.message:String(t);return R.error({error:e},"Error generating SVG animation"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to generate SVG animation")}}async function m(e,{params:t}){let{id:r}=await t,i=c(new URL(e.url).searchParams.get("language"));try{let e=await (0,o.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");if(!await h(r,e.id))return(0,s.notFound)("Item not found");return await n.prisma.errorItem.update({where:{id:r},data:{[p(i)]:null}}),R.info({errorItemId:r,language:i},"SVG animation deleted"),a.NextResponse.json({success:!0})}catch(e){return R.error({error:e},"Error deleting SVG animation"),(0,s.internalError)("Failed to delete SVG animation")}}e.s(["DELETE",0,m,"POST",0,g]),r()}catch(e){r(e)}},!1),94316,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),m=e.i(10372),R=e.i(93695),v=e.i(9580);e.i(52474);var f=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/svg-animation/route",pathname:"/api/error-items/[id]/svg-animation",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/svg-animation/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(11114),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:T}=w;async function C(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/svg-animation/route";E=E.replace(/\/index$/,"")||"/";let A=await w.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:C,params:I,nextConfig:x,parsedUrl:S,isDraftMode:y,prerenderManifest:N,routerServerContext:O,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:U}=A,H=(0,s.normalizeAppPath)(E),M=!!N.routes[P]&&(w.isDev||(0,v.isRouteCacheOwner)(P,w.cacheOwner,N.routes[P])),k=!!(N.dynamicRoutes[H]||M),D=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,S,!1):t.end("This page could not be found"),null);if(k&&!y){let e=N.dynamicRoutes[H];if(e&&!1===e.fallback&&!M){if(x.adapterPath)return await D();throw new R.NoFallbackError}}let L=null;!k||w.isDev||y||(L="/index"===(L=P)?"/":L);let F=!0===w.isDev||!k,V=k&&!F;U&&q&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:U});let j=e.method||"GET",G=(0,i.getTracer)(),K=G.getActiveScopeSpan(),$=!!(null==O?void 0:O.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,x,N,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let X={params:I,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:F,incrementalCache:z,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>w.onRequestError(e,t,a,n,O)},sharedContext:{buildId:T,deploymentId:C}},W=new u.NodeNextRequest(e),Q=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&_&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let i=X.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=X.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(W,Q,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),t}},Y=async(n,o)=>{try{var s,u;let n=await w.handleResponse({req:e,nextConfig:x,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(u=n.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&k||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,Q,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:V,isOnDemandRevalidate:_})},!1,O),k)throw t;await (0,p.sendResponse)(W,Q,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.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 a=r.get("next.route")||H,s=`${j} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if($&&K)await Y(K,void 0);else{let t=G.getActiveScopeSpan();await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,w,"serverHooks",0,T,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A])}];
2
2
 
3
3
  //# sourceMappingURL=_011-ll5._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[192290,e=>e.a(async(t,r)=>{try{var a=e.i(89171),n=e.i(63856),i=e.i(698043),s=e.i(181912),o=e.i(50377),l=e.i(926828),u=e.i(583918),d=t([n]);[n]=d.then?(await d)():d;let g=(0,o.createLogger)("api:error-items:retag");async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,n.getCurrentUser)();if(!t)return(0,s.unauthorized)("Authentication required");let o=await e.json().catch(()=>({})),d=await i.prisma.errorItem.findUnique({where:{id:r},select:{userId:!0,shortId:!0,questionText:!0}});if(!d||d.userId!==t.id)return(0,s.notFound)("Item not found");let c=await (0,l.trackBackgroundTask)({userId:t.id,kind:"retag",subject:(0,l.describeQuestion)(d),link:`/error-items/${r}`},()=>!0===o.preview?(0,u.previewRetagErrorItem)(r,t.id):(0,u.retagErrorItem)(r,t.id));return a.NextResponse.json(c)}catch(t){let e=t instanceof Error?t.message:String(t);if("ITEM_NOT_FOUND"===e)return(0,s.notFound)("Item not found");if(["NO_QUESTION_TEXT","NO_AVAILABLE_TAGS","NO_TAGS_SELECTED"].includes(e))return(0,s.badRequest)(e);return g.error({error:e},"Error retagging item"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to retag item")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),699052,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),g=e.i(666012),p=e.i(570101),h=e.i(626937),m=e.i(10372),f=e.i(193695),w=e.i(509580);e.i(52474);var E=e.i(600220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/retag/route",pathname:"/api/error-items/[id]/retag",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/retag/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(192290),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:T,serverHooks:S}=R;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/error-items/[id]/retag/route";v=v.replace(/\/index$/,"")||"/";let T=await R.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:y,params:A,nextConfig:I,parsedUrl:b,isDraftMode:_,prerenderManifest:C,routerServerContext:x,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:D,serverActionsManifest:k}=T,q=(0,o.normalizeAppPath)(v),M=!!C.routes[P]&&(R.isDev||(0,w.isRouteCacheOwner)(P,R.cacheOwner,C.routes[P])),U=!!(C.dynamicRoutes[q]||M),L=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,b,!1):t.end("This page could not be found"),null);if(U&&!_){let e=C.dynamicRoutes[q];if(e&&!1===e.fallback&&!M){if(I.adapterPath)return await L();throw new f.NoFallbackError}}let G=null;!U||R.isDev||_||(G="/index"===(G=P)?"/":G);let H=!0===R.isDev||!U,j=U&&!H;k&&D&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:k});let F=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,I,C,J);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let V={params:A,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:H,incrementalCache:Y,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>R.onRequestError(e,t,a,n,x)},sharedContext:{buildId:S,deploymentId:y}},X=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!J&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await R.handle(Z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,z,n,i),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,x),t}},W=async(n,s)=>{try{var o,l;let n=await R.handleResponse({req:e,nextConfig:I,cacheKey:G,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:Q,waitUntil:a.waitUntil,isMinimalMode:J});if(!U)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);J&&U||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,h.getCacheControlHeader)(n.cacheControl)),await (0,g.sendResponse)(X,z,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,x),U)throw t;await (0,g.sendResponse)(X,z,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.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 a=r.get("next.route")||q,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await W(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>W(e,t)),void 0,!K)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:T})},"routeModule",0,R,"serverHooks",0,S,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,T])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(757660),n=e.i(79832),i=e.i(698043),s=t([n]);async function o(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),539811,e=>{"use strict";var t=e.i(376025);e.s(["calculateGrade",0,function(e,r,a=new Date,n="en",i=t.DEFAULT_TIME_ZONE){let s=(0,t.getCalendarDate)(a,i),o=s.getFullYear(),l=s.getMonth()+1,u=o-r,d="2nd";l>=9?(u+=1,d="1st"):d=l<2?"1st":"2nd";let c="zh"===n,g=c?"1st"===d?"上期":"下期":"1st"===d?"1st Semester":"2nd Semester",p=(c?{primary:["一年级","二年级","三年级","四年级","五年级","六年级"],junior_high:["初一","初二","初三"],senior_high:["高一","高二","高三"],university:["大一","大二","大三","大四"]}:{primary:["Grade 1","Grade 2","Grade 3","Grade 4","Grade 5","Grade 6"],junior_high:["Junior High Grade 1","Junior High Grade 2","Junior High Grade 3"],senior_high:["Senior High Grade 1","Senior High Grade 2","Senior High Grade 3"],university:["Freshman","Sophomore","Junior","Senior"]})[e]||[],h=`${u}`;if(h=u>0&&u<=p.length?p[u-1]:u>p.length?c?"已毕业":"Graduated":c?"学前":"Pre-school",!c)return`${h}, ${g}`;{let e="1st"===d?"上":"下";return`${h}${e}`}}])},655920,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])},583918,e=>{"use strict";var t=e.i(698043),r=e.i(843911),a=e.i(459398),n=e.i(183508),i=e.i(539811),s=e.i(668426),o=e.i(50377),l=e.i(655920),u=e.i(798003),d=e.i(926828);let c=(0,o.createLogger)("retag");async function g(e,o){let l=await t.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,questionText:!0,answerText:!0,analysis:!0,wrongAnswerText:!0,mistakeAnalysis:!0,gradeSemester:!0,paperLevel:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}},tags:{select:{id:!0,name:!0,isSystem:!0}},user:{select:{educationStage:!0,enrollmentYear:!0}}}});if(!l||l.userId!==o)throw Error("ITEM_NOT_FOUND");if(!l.questionText?.trim())throw Error("NO_QUESTION_TEXT");let d=l.subject?(0,s.resolveNotebookScope)(l.subject):null,c=d?.subject||"math",g=d?.subject?await (0,a.getScopeTagsFromDB)(d.subject,d.stage):await (0,a.getMathTagsFromDB)((0,n.calculateGradeNumber)(l.user.educationStage,l.user.enrollmentYear,(0,u.getAppTimeZone)()));if(0===g.length)throw Error("NO_AVAILABLE_TAGS");let p=l.gradeSemester||(l.user.educationStage&&l.user.enrollmentYear?(0,i.calculateGrade)(l.user.educationStage,l.user.enrollmentYear,new Date,"zh",(0,u.getAppTimeZone)()):null),{tags:h,difficultyStars:m}=await (0,r.getAIService)().suggestKnowledgeTags({questionText:l.questionText,answerText:l.answerText,analysis:l.analysis,wrongAnswerText:l.wrongAnswerText,mistakeAnalysis:l.mistakeAnalysis,subject:s.SUBJECT_DISPLAY_NAMES[c],allowedTags:g,gradeSemester:p});if(0===h.length)throw Error("NO_TAGS_SELECTED");let f=await t.prisma.knowledgeTag.findMany({where:{isSystem:!0,subject:c,name:{in:h}},select:{id:!0,name:!0}}),w=new Map;for(let e of f)w.has(e.name)||w.set(e.name,e.id);let E=h.filter(e=>w.has(e));return{tagNames:[...E,...l.tags.filter(e=>!e.isSystem).map(e=>e.name).filter(e=>!E.includes(e))],difficultyStars:m,paperLevel:l.paperLevel,newTagIds:E.map(e=>w.get(e)),oldSystemTags:l.tags.filter(e=>e.isSystem).map(({id:e,name:t})=>({id:e,name:t}))}}async function p(e,t){let{tagNames:r,difficultyStars:a}=await g(e,t);return{errorItemId:e,tags:r,difficultyStars:a}}async function h(e,r){let{tagNames:a,newTagIds:n,oldSystemTags:i,difficultyStars:s,paperLevel:o}=await g(e,r),u=o?null:(0,l.getDefaultPaperLevel)(s);return await t.prisma.errorItem.update({where:{id:e},data:{knowledgePoints:JSON.stringify(a),...null!==s?{difficultyStars:s}:{},...u?{paperLevel:u}:{},tags:{disconnect:i.map(e=>({id:e.id})),connect:n.map(e=>({id:e}))}}}),c.info({errorItemId:e,before:i.map(e=>e.name),after:a,difficultyStars:s},"Error item retagged"),{errorItemId:e,tags:a,difficultyStars:s}}let m=new Map,f=(e,t)=>`${e}:${t}`;async function w(e,r){let a=f(e,r),n=m.get(a);if(n?.running)return n;let i=await t.prisma.errorItem.findMany({where:{userId:e,subjectId:r},select:{id:!0},orderBy:{createdAt:"asc"}}),s={subjectId:r,total:i.length,done:0,failed:0,running:i.length>0,startedAt:new Date().toISOString(),finishedAt:i.length>0?null:new Date().toISOString()};m.set(a,s);let o=await t.prisma.subject.findUnique({where:{id:r},select:{name:!0}}),l=(0,d.startBackgroundTask)({userId:e,kind:"retag_notebook",subject:o?.name??null,link:`/notebooks/${r}`,total:i.length}),u=i.map(e=>e.id),g=async()=>{for(;u.length>0;){let t=u.shift();try{await h(t,e)}catch(e){s.failed++,c.warn({errorItemId:t,error:e instanceof Error?e.message:String(e)},"Retag failed")}finally{s.done++,l.setProgress(s.done,s.total,s.failed)}}};return Promise.all(Array.from({length:Math.min(2,u.length)},g)).finally(()=>{s.running=!1,s.finishedAt=new Date().toISOString(),s.total>0&&s.failed===s.total?l.fail("ALL_FAILED"):l.succeed(),c.info({subjectId:r,total:s.total,failed:s.failed},"Retag job finished")}),s}e.s(["getRetagJob",0,function(e,t){return m.get(f(e,t))??null},"previewRetagErrorItem",0,p,"retagErrorItem",0,h,"startRetagJob",0,w])}];
1
+ module.exports=[92290,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(63856),i=e.i(98043),s=e.i(76759),o=e.i(50377),l=e.i(26828),u=e.i(83918),d=t([n]);[n]=d.then?(await d)():d;let g=(0,o.createLogger)("api:error-items:retag");async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,n.getCurrentUser)();if(!t)return(0,s.unauthorized)("Authentication required");let o=await e.json().catch(()=>({})),d=await i.prisma.errorItem.findUnique({where:{id:r},select:{userId:!0,shortId:!0,questionText:!0}});if(!d||d.userId!==t.id)return(0,s.notFound)("Item not found");let c=await (0,l.trackBackgroundTask)({userId:t.id,kind:"retag",subject:(0,l.describeQuestion)(d),link:`/error-items/${r}`},()=>!0===o.preview?(0,u.previewRetagErrorItem)(r,t.id):(0,u.retagErrorItem)(r,t.id));return a.NextResponse.json(c)}catch(t){let e=t instanceof Error?t.message:String(t);if("ITEM_NOT_FOUND"===e)return(0,s.notFound)("Item not found");if(["NO_QUESTION_TEXT","NO_AVAILABLE_TAGS","NO_TAGS_SELECTED"].includes(e))return(0,s.badRequest)(e);return g.error({error:e},"Error retagging item"),(0,s.internalError)(e.startsWith("AI_")?e.split(":")[0]:"Failed to retag item")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),99052,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),g=e.i(66012),p=e.i(70101),h=e.i(74838),m=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var E=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/retag/route",pathname:"/api/error-items/[id]/retag",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/retag/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(92290),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:T,serverHooks:S}=R;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/error-items/[id]/retag/route";v=v.replace(/\/index$/,"")||"/";let T=await R.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!T)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,deploymentId:y,params:A,nextConfig:I,parsedUrl:b,isDraftMode:_,prerenderManifest:C,routerServerContext:x,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:D,serverActionsManifest:k}=T,q=(0,o.normalizeAppPath)(v),M=!!C.routes[P]&&(R.isDev||(0,w.isRouteCacheOwner)(P,R.cacheOwner,C.routes[P])),U=!!(C.dynamicRoutes[q]||M),L=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,b,!1):t.end("This page could not be found"),null);if(U&&!_){let e=C.dynamicRoutes[q];if(e&&!1===e.fallback&&!M){if(I.adapterPath)return await L();throw new f.NoFallbackError}}let G=null;!U||R.isDev||_||(G="/index"===(G=P)?"/":G);let H=!0===R.isDev||!U,j=U&&!H;k&&D&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:k});let F=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,I,C,J);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let V={params:A,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:H,incrementalCache:Y,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>R.onRequestError(e,t,a,n,x)},sharedContext:{buildId:S,deploymentId:y}},X=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!J&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await R.handle(Z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let s=V.renderOpts.collectedTags;if(!U)return await (0,g.sendResponse)(X,z,n,i),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,x),t}},W=async(n,s)=>{try{var o,l;let n=await R.handleResponse({req:e,nextConfig:I,cacheKey:G,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:Q,waitUntil:a.waitUntil,isMinimalMode:J});if(!U)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);J&&U||i.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,h.getCacheControlHeader)(n.cacheControl)),await (0,g.sendResponse)(X,z,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:N})},!1,x),U)throw t;await (0,g.sendResponse)(X,z,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.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 a=r.get("next.route")||q,o=`${F} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(o))})()}};if(K&&B)await W(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>W(e,t)),void 0,!K)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:T})},"routeModule",0,R,"serverHooks",0,S,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,T])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),n=e.i(79832),i=e.i(98043),s=t([n]);async function o(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),39811,e=>{"use strict";var t=e.i(76025);e.s(["calculateGrade",0,function(e,r,a=new Date,n="en",i=t.DEFAULT_TIME_ZONE){let s=(0,t.getCalendarDate)(a,i),o=s.getFullYear(),l=s.getMonth()+1,u=o-r,d="2nd";l>=9?(u+=1,d="1st"):d=l<2?"1st":"2nd";let c="zh"===n,g=c?"1st"===d?"上期":"下期":"1st"===d?"1st Semester":"2nd Semester",p=(c?{primary:["一年级","二年级","三年级","四年级","五年级","六年级"],junior_high:["初一","初二","初三"],senior_high:["高一","高二","高三"],university:["大一","大二","大三","大四"]}:{primary:["Grade 1","Grade 2","Grade 3","Grade 4","Grade 5","Grade 6"],junior_high:["Junior High Grade 1","Junior High Grade 2","Junior High Grade 3"],senior_high:["Senior High Grade 1","Senior High Grade 2","Senior High Grade 3"],university:["Freshman","Sophomore","Junior","Senior"]})[e]||[],h=`${u}`;if(h=u>0&&u<=p.length?p[u-1]:u>p.length?c?"已毕业":"Graduated":c?"学前":"Pre-school",!c)return`${h}, ${g}`;{let e="1st"===d?"上":"下";return`${h}${e}`}}])},55920,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])},83918,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(59398),n=e.i(83508),i=e.i(39811),s=e.i(68426),o=e.i(50377),l=e.i(55920),u=e.i(98003),d=e.i(26828);let c=(0,o.createLogger)("retag");async function g(e,o){let l=await t.prisma.errorItem.findUnique({where:{id:e},select:{userId:!0,questionText:!0,answerText:!0,analysis:!0,wrongAnswerText:!0,mistakeAnalysis:!0,gradeSemester:!0,paperLevel:!0,subject:{select:{name:!0,stage:!0,subjectKey:!0}},tags:{select:{id:!0,name:!0,isSystem:!0}},user:{select:{educationStage:!0,enrollmentYear:!0}}}});if(!l||l.userId!==o)throw Error("ITEM_NOT_FOUND");if(!l.questionText?.trim())throw Error("NO_QUESTION_TEXT");let d=l.subject?(0,s.resolveNotebookScope)(l.subject):null,c=d?.subject||"math",g=d?.subject?await (0,a.getScopeTagsFromDB)(d.subject,d.stage):await (0,a.getMathTagsFromDB)((0,n.calculateGradeNumber)(l.user.educationStage,l.user.enrollmentYear,(0,u.getAppTimeZone)()));if(0===g.length)throw Error("NO_AVAILABLE_TAGS");let p=l.gradeSemester||(l.user.educationStage&&l.user.enrollmentYear?(0,i.calculateGrade)(l.user.educationStage,l.user.enrollmentYear,new Date,"zh",(0,u.getAppTimeZone)()):null),{tags:h,difficultyStars:m}=await (0,r.getAIService)().suggestKnowledgeTags({questionText:l.questionText,answerText:l.answerText,analysis:l.analysis,wrongAnswerText:l.wrongAnswerText,mistakeAnalysis:l.mistakeAnalysis,subject:s.SUBJECT_DISPLAY_NAMES[c],allowedTags:g,gradeSemester:p});if(0===h.length)throw Error("NO_TAGS_SELECTED");let f=await t.prisma.knowledgeTag.findMany({where:{isSystem:!0,subject:c,name:{in:h}},select:{id:!0,name:!0}}),w=new Map;for(let e of f)w.has(e.name)||w.set(e.name,e.id);let E=h.filter(e=>w.has(e));return{tagNames:[...E,...l.tags.filter(e=>!e.isSystem).map(e=>e.name).filter(e=>!E.includes(e))],difficultyStars:m,paperLevel:l.paperLevel,newTagIds:E.map(e=>w.get(e)),oldSystemTags:l.tags.filter(e=>e.isSystem).map(({id:e,name:t})=>({id:e,name:t}))}}async function p(e,t){let{tagNames:r,difficultyStars:a}=await g(e,t);return{errorItemId:e,tags:r,difficultyStars:a}}async function h(e,r){let{tagNames:a,newTagIds:n,oldSystemTags:i,difficultyStars:s,paperLevel:o}=await g(e,r),u=o?null:(0,l.getDefaultPaperLevel)(s);return await t.prisma.errorItem.update({where:{id:e},data:{knowledgePoints:JSON.stringify(a),...null!==s?{difficultyStars:s}:{},...u?{paperLevel:u}:{},tags:{disconnect:i.map(e=>({id:e.id})),connect:n.map(e=>({id:e}))}}}),c.info({errorItemId:e,before:i.map(e=>e.name),after:a,difficultyStars:s},"Error item retagged"),{errorItemId:e,tags:a,difficultyStars:s}}let m=new Map,f=(e,t)=>`${e}:${t}`;async function w(e,r){let a=f(e,r),n=m.get(a);if(n?.running)return n;let i=await t.prisma.errorItem.findMany({where:{userId:e,subjectId:r},select:{id:!0},orderBy:{createdAt:"asc"}}),s={subjectId:r,total:i.length,done:0,failed:0,running:i.length>0,startedAt:new Date().toISOString(),finishedAt:i.length>0?null:new Date().toISOString()};m.set(a,s);let o=await t.prisma.subject.findUnique({where:{id:r},select:{name:!0}}),l=(0,d.startBackgroundTask)({userId:e,kind:"retag_notebook",subject:o?.name??null,link:`/notebooks/${r}`,total:i.length}),u=i.map(e=>e.id),g=async()=>{for(;u.length>0;){let t=u.shift();try{await h(t,e)}catch(e){s.failed++,c.warn({errorItemId:t,error:e instanceof Error?e.message:String(e)},"Retag failed")}finally{s.done++,l.setProgress(s.done,s.total,s.failed)}}};return Promise.all(Array.from({length:Math.min(2,u.length)},g)).finally(()=>{s.running=!1,s.finishedAt=new Date().toISOString(),s.total>0&&s.failed===s.total?l.fail("ALL_FAILED"):l.succeed(),c.info({subjectId:r,total:s.total,failed:s.failed},"Retag job finished")}),s}e.s(["getRetagJob",0,function(e,t){return m.get(f(e,t))??null},"previewRetagErrorItem",0,p,"retagErrorItem",0,h,"startRetagJob",0,w])}];
2
2
 
3
3
  //# sourceMappingURL=_0389uce._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[239861,e=>e.a(async(t,r)=>{try{var a=e.i(89171),i=e.i(698043),n=e.i(79832),o=e.i(757660),s=e.i(181912),u=e.i(50377),d=e.i(204083),l=e.i(630166),c=e.i(655920),p=t([n]);[n]=p.then?(await p)():p;let f=(0,u.createLogger)("api:error-items:id");async function h(e,{params:t}){let{id:r}=await t,u=await (0,o.getServerSession)(n.authOptions);try{let e;if(u?.user?.email&&(e=await i.prisma.user.findUnique({where:{email:u.user.email}})),!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.errorItem.findUnique({where:{id:r},include:{subject:!0,tags:!0}});if(!t)return(0,s.notFound)("Item not found");if(t.userId!==e.id)return(0,s.forbidden)("Not authorized to access this item");return a.NextResponse.json(t)}catch(e){return f.error({error:e},"Error fetching item"),(0,s.internalError)("Failed to fetch error item")}}async function m(e,{params:t}){let{id:r}=await t,u=await (0,o.getServerSession)(n.authOptions);try{let t;if(u?.user?.email&&(t=await i.prisma.user.findUnique({where:{email:u.user.email}})),!t)return(0,s.unauthorized)("Authentication required");let{knowledgePoints:n,gradeSemester:o,paperLevel:p,questionText:h,answerText:m,analysis:v,subjectId:g,wrongAnswerText:w,mistakeAnalysis:R,mistakeStatus:E,geogebraCommands:y,difficultyStars:C}=await e.json();if(null!=C&&!(Number.isInteger(C)&&C>=1&&C<=5))return(0,s.badRequest)("difficultyStars must be an integer from 1 to 5");let S=await i.prisma.errorItem.findUnique({where:{id:r},include:{subject:!0}});if(!S)return(0,s.notFound)("Item not found");if(S.userId!==t.id)return(0,s.forbidden)("Not authorized to update this item");let b={};if(void 0!==o&&(b.gradeSemester=o),void 0!==p)b.paperLevel=p;else if(!S.paperLevel){let e=(0,c.getDefaultPaperLevel)(C);e&&(b.paperLevel=e)}if(void 0!==h&&(b.questionText=h),void 0!==m&&(b.answerText=m),void 0!==v&&(b.analysis=v),void 0!==w&&(b.wrongAnswerText=w||null),void 0!==R&&(b.mistakeAnalysis=R||null),void 0!==g){let e=await i.prisma.subject.findUnique({where:{id:g}});if(!e||e.userId!==t.id)return(0,s.forbidden)("Not authorized to move to this notebook");b.subject=""===g?{disconnect:!0}:{connect:{id:g}}}if(void 0!==E||void 0!==w||void 0!==R){let e=void 0!==w?w:S.wrongAnswerText;void 0!==R||S.mistakeAnalysis,b.mistakeStatus=(0,l.normalizeMistakeStatusForSave)(void 0!==E?E:S.mistakeStatus,e)}if(void 0!==y&&(b.geogebraCommands=y||null),void 0!==C&&(b.difficultyStars=C),void 0!==n){let e=Array.isArray(n)?n:"string"==typeof n?JSON.parse(n):[],r=S.subject?.name?.toLowerCase().includes("math")||S.subject?.name?.includes("数学")?"math":S.subject?.name?.toLowerCase().includes("english")||S.subject?.name?.includes("英语")?"english":"other",a=[];for(let n of e){let e=await i.prisma.knowledgeTag.findFirst({where:{name:n,OR:[{isSystem:!0},{userId:t.id}]}});if(!e){let a=void 0!==o?o:S.gradeSemester,s=await (0,d.findParentTagIdForGrade)(a,r);e=await i.prisma.knowledgeTag.create({data:{name:n,subject:r,isSystem:!1,userId:t.id,parentId:s}})}a.push({id:e.id})}b.tags={set:[],connect:a},b.knowledgePoints=JSON.stringify(e)}f.info({id:r},"Updating error item");let x=await i.prisma.errorItem.update({where:{id:r},data:b,include:{tags:!0}});return a.NextResponse.json(x)}catch(e){return f.error({error:e},"Error updating item"),(0,s.internalError)("Failed to update error item")}}e.s(["GET",0,h,"PUT",0,m]),r()}catch(e){r(e)}},!1),12334,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),i=e.i(759756),n=e.i(561916),o=e.i(174677),s=e.i(869741),u=e.i(316795),d=e.i(487718),l=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),m=e.i(626937),f=e.i(10372),v=e.i(193695),g=e.i(509580);e.i(52474);var w=e.i(600220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/route",pathname:"/api/error-items/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(239861),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:C}=R;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/route";E=E.replace(/\/index$/,"")||"/";let y=await R.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:S,params:b,nextConfig:x,parsedUrl:A,isDraftMode:T,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:U}=y,_=(0,s.normalizeAppPath)(E),j=!!N.routes[O]&&(R.isDev||(0,g.isRouteCacheOwner)(O,R.cacheOwner,N.routes[O])),H=!!(N.dynamicRoutes[_]||j),M=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,A,!1):t.end("This page could not be found"),null);if(H&&!T){let e=N.dynamicRoutes[_];if(e&&!1===e.fallback&&!j){if(x.adapterPath)return await M();throw new v.NoFallbackError}}let D=null;!H||R.isDev||T||(D="/index"===(D=O)?"/":D);let F=!0===R.isDev||!H,L=H&&!F;U&&k&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:U});let K=e.method||"GET",z=(0,n.getTracer)(),G=z.getActiveScopeSpan(),$=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),V=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,x,N,B);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let X={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:V,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,I)},sharedContext:{buildId:C,deploymentId:S}},J=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),Z=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!B&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let o=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(J,W,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[f.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,I),t}},Y=async(i,o)=>{try{var s,u;let i=await R.handleResponse({req:e,nextConfig:x,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:Q,waitUntil:a.waitUntil,isMinimalMode:B});if(!H)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&H||n.delete(f.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(J,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,I),H)throw t;await (0,p.sendResponse)(J,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=z.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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 a=r.get("next.route")||_,s=`${K} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),i.updateName(s),o&&o!==i&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if($&&G)await Y(G,void 0);else{let t=z.getActiveScopeSpan();await z.withPropagatedContext(e.headers,()=>z.trace(l.BaseServerSpan.handleRequest,{spanName:`${K} ${E}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])}];
1
+ module.exports=[39861,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(98043),n=e.i(79832),o=e.i(13618),s=e.i(76759),u=e.i(50377),d=e.i(4083),l=e.i(30166),c=e.i(55920),p=t([n]);[n]=p.then?(await p)():p;let f=(0,u.createLogger)("api:error-items:id");async function h(e,{params:t}){let{id:r}=await t,u=await (0,o.getServerSession)(n.authOptions);try{let e;if(u?.user?.email&&(e=await i.prisma.user.findUnique({where:{email:u.user.email}})),!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.errorItem.findUnique({where:{id:r},include:{subject:!0,tags:!0}});if(!t)return(0,s.notFound)("Item not found");if(t.userId!==e.id)return(0,s.forbidden)("Not authorized to access this item");return a.NextResponse.json(t)}catch(e){return f.error({error:e},"Error fetching item"),(0,s.internalError)("Failed to fetch error item")}}async function m(e,{params:t}){let{id:r}=await t,u=await (0,o.getServerSession)(n.authOptions);try{let t;if(u?.user?.email&&(t=await i.prisma.user.findUnique({where:{email:u.user.email}})),!t)return(0,s.unauthorized)("Authentication required");let{knowledgePoints:n,gradeSemester:o,paperLevel:p,questionText:h,answerText:m,analysis:v,subjectId:g,wrongAnswerText:w,mistakeAnalysis:R,mistakeStatus:E,geogebraCommands:y,difficultyStars:C}=await e.json();if(null!=C&&!(Number.isInteger(C)&&C>=1&&C<=5))return(0,s.badRequest)("difficultyStars must be an integer from 1 to 5");let S=await i.prisma.errorItem.findUnique({where:{id:r},include:{subject:!0}});if(!S)return(0,s.notFound)("Item not found");if(S.userId!==t.id)return(0,s.forbidden)("Not authorized to update this item");let b={};if(void 0!==o&&(b.gradeSemester=o),void 0!==p)b.paperLevel=p;else if(!S.paperLevel){let e=(0,c.getDefaultPaperLevel)(C);e&&(b.paperLevel=e)}if(void 0!==h&&(b.questionText=h),void 0!==m&&(b.answerText=m),void 0!==v&&(b.analysis=v),void 0!==w&&(b.wrongAnswerText=w||null),void 0!==R&&(b.mistakeAnalysis=R||null),void 0!==g){let e=await i.prisma.subject.findUnique({where:{id:g}});if(!e||e.userId!==t.id)return(0,s.forbidden)("Not authorized to move to this notebook");b.subject=""===g?{disconnect:!0}:{connect:{id:g}}}if(void 0!==E||void 0!==w||void 0!==R){let e=void 0!==w?w:S.wrongAnswerText;void 0!==R||S.mistakeAnalysis,b.mistakeStatus=(0,l.normalizeMistakeStatusForSave)(void 0!==E?E:S.mistakeStatus,e)}if(void 0!==y&&(b.geogebraCommands=y||null),void 0!==C&&(b.difficultyStars=C),void 0!==n){let e=Array.isArray(n)?n:"string"==typeof n?JSON.parse(n):[],r=S.subject?.name?.toLowerCase().includes("math")||S.subject?.name?.includes("数学")?"math":S.subject?.name?.toLowerCase().includes("english")||S.subject?.name?.includes("英语")?"english":"other",a=[];for(let n of e){let e=await i.prisma.knowledgeTag.findFirst({where:{name:n,OR:[{isSystem:!0},{userId:t.id}]}});if(!e){let a=void 0!==o?o:S.gradeSemester,s=await (0,d.findParentTagIdForGrade)(a,r);e=await i.prisma.knowledgeTag.create({data:{name:n,subject:r,isSystem:!1,userId:t.id,parentId:s}})}a.push({id:e.id})}b.tags={set:[],connect:a},b.knowledgePoints=JSON.stringify(e)}f.info({id:r},"Updating error item");let x=await i.prisma.errorItem.update({where:{id:r},data:b,include:{tags:!0}});return a.NextResponse.json(x)}catch(e){return f.error({error:e},"Error updating item"),(0,s.internalError)("Failed to update error item")}}e.s(["GET",0,h,"PUT",0,m]),r()}catch(e){r(e)}},!1),12334,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),n=e.i(61916),o=e.i(74677),s=e.i(69741),u=e.i(16795),d=e.i(87718),l=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),f=e.i(10372),v=e.i(93695),g=e.i(9580);e.i(52474);var w=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/error-items/[id]/route",pathname:"/api/error-items/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/error-items/[id]/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(39861),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:C}=R;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/error-items/[id]/route";E=E.replace(/\/index$/,"")||"/";let y=await R.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:S,params:b,nextConfig:x,parsedUrl:A,isDraftMode:T,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:U}=y,_=(0,s.normalizeAppPath)(E),j=!!N.routes[O]&&(R.isDev||(0,g.isRouteCacheOwner)(O,R.cacheOwner,N.routes[O])),H=!!(N.dynamicRoutes[_]||j),M=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,A,!1):t.end("This page could not be found"),null);if(H&&!T){let e=N.dynamicRoutes[_];if(e&&!1===e.fallback&&!j){if(x.adapterPath)return await M();throw new v.NoFallbackError}}let D=null;!H||R.isDev||T||(D="/index"===(D=O)?"/":D);let F=!0===R.isDev||!H,L=H&&!F;U&&k&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:U});let K=e.method||"GET",z=(0,n.getTracer)(),G=z.getActiveScopeSpan(),$=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),V=(0,i.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,x,N,B);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let X={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:F,incrementalCache:V,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>R.onRequestError(e,t,a,i,I)},sharedContext:{buildId:C,deploymentId:S}},J=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),Z=d.NextRequestAdapter.fromNodeNextRequest(J,(0,d.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!B&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await R.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let o=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(J,W,i,n),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[f.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?x.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,I),t}},Y=async(i,o)=>{try{var s,u;let i=await R.handleResponse({req:e,nextConfig:x,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:Q,waitUntil:a.waitUntil,isMinimalMode:B});if(!H)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(u=i.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&H||n.delete(f.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(J,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,I),H)throw t;await (0,p.sendResponse)(J,W,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:n.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=z.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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 a=r.get("next.route")||_,s=`${K} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),i.updateName(s),o&&o!==i&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if($&&G)await Y(G,void 0);else{let t=z.getActiveScopeSpan();await z.withPropagatedContext(e.headers,()=>z.trace(l.BaseServerSpan.handleRequest,{spanName:`${K} ${E}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,R,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])}];
2
2
 
3
3
  //# sourceMappingURL=_0431fxn._.js.map