wrong-notebook 2026.10.21 → 2026.10.22-2

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 (295) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/app/_global-error.html +1 -1
  5. package/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/admin/page.js.nft.json +1 -1
  12. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  14. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/admin/dashboard/route.js +1 -1
  16. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  17. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  18. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  19. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  20. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  21. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  22. package/.next/server/app/api/ai/models/route.js +2 -2
  23. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  24. package/.next/server/app/api/ai/test/route.js +3 -3
  25. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  26. package/.next/server/app/api/analytics/route.js +1 -1
  27. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  28. package/.next/server/app/api/analyze/route.js +2 -2
  29. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  30. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  31. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  32. package/.next/server/app/api/error-items/[id]/figure/route.js +2 -2
  33. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  34. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +2 -2
  35. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  36. package/.next/server/app/api/error-items/[id]/geogebra/route.js +4 -3
  37. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  38. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  39. package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +1 -1
  40. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  41. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  42. package/.next/server/app/api/error-items/[id]/reanswer/route.js +5 -4
  43. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  44. package/.next/server/app/api/error-items/[id]/retag/route.js +6 -6
  45. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  46. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +2 -2
  48. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  49. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  50. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  51. package/.next/server/app/api/error-items/list/route.js +1 -1
  52. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  53. package/.next/server/app/api/error-items/route.js +6 -6
  54. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  55. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  56. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  57. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +5 -5
  58. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  59. package/.next/server/app/api/exams/[id]/results/route.js +6 -6
  60. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  61. package/.next/server/app/api/exams/[id]/retry/route.js +5 -5
  62. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  63. package/.next/server/app/api/exams/[id]/route.js +3 -3
  64. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  65. package/.next/server/app/api/exams/route.js +4 -4
  66. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  67. package/.next/server/app/api/export/route.js +1 -1
  68. package/.next/server/app/api/export/route.js.nft.json +1 -1
  69. package/.next/server/app/api/geogebra-analyze/route.js +4 -4
  70. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  71. package/.next/server/app/api/health/route.js.nft.json +1 -1
  72. package/.next/server/app/api/import/route.js +6 -6
  73. package/.next/server/app/api/import/route.js.nft.json +1 -1
  74. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  75. package/.next/server/app/api/notebooks/[id]/retag/route.js +3 -3
  76. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  77. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  78. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  79. package/.next/server/app/api/openclaw/batch-upload/route.js +5 -5
  80. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  81. package/.next/server/app/api/practice/generate/route.js +4 -4
  82. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  83. package/.next/server/app/api/practice/record/[id]/route.js +4 -4
  84. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  85. package/.next/server/app/api/practice/record/route.js +4 -3
  86. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  87. package/.next/server/app/api/reanswer/route.js +4 -4
  88. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  89. package/.next/server/app/api/register/route.js +1 -1
  90. package/.next/server/app/api/register/route.js.nft.json +1 -1
  91. package/.next/server/app/api/register/status/route.js +1 -1
  92. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  93. package/.next/server/app/api/settings/route.js +5 -4
  94. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  95. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  96. package/.next/server/app/api/stats/practice/route.js +1 -1
  97. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  98. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  99. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  100. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  101. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  102. package/.next/server/app/api/user/route.js.nft.json +1 -1
  103. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  104. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  106. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  108. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/exams/page.js.nft.json +1 -1
  110. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/latex-test/page.js.nft.json +1 -1
  112. package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/login/page.js.nft.json +1 -1
  114. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  116. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  118. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  120. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  121. package/.next/server/app/page.js.nft.json +1 -1
  122. package/.next/server/app/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/practice/page.js.nft.json +1 -1
  124. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  125. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  126. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  127. package/.next/server/app/register/page.js.nft.json +1 -1
  128. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  129. package/.next/server/app/stats/page.js.nft.json +1 -1
  130. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/tags/page.js.nft.json +1 -1
  132. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  133. package/.next/server/chunks/{[root-of-the-server]__0-8hf14._.js → [root-of-the-server]__02j1w81._.js} +1 -1
  134. package/.next/server/chunks/{[root-of-the-server]__08gak8r._.js → [root-of-the-server]__03nfvnm._.js} +1 -1
  135. package/.next/server/chunks/{[root-of-the-server]__0gpohuv._.js → [root-of-the-server]__06_nln5._.js} +2 -2
  136. package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
  137. package/.next/server/chunks/{[root-of-the-server]__08zi-xg._.js → [root-of-the-server]__0be5c5r._.js} +1 -1
  138. package/.next/server/chunks/{[root-of-the-server]__0994h9l._.js → [root-of-the-server]__0bqawi0._.js} +1 -1
  139. package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +3 -0
  140. package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +3 -0
  141. package/.next/server/chunks/{[root-of-the-server]__1utxo11._.js → [root-of-the-server]__0d5dpu4._.js} +2 -2
  142. package/.next/server/chunks/{[root-of-the-server]__05no8nw._.js → [root-of-the-server]__0d9ijed._.js} +2 -2
  143. package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +3 -0
  144. package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +3 -0
  145. package/.next/server/chunks/{[root-of-the-server]__0m_f8ct._.js → [root-of-the-server]__0k-nf6a._.js} +2 -2
  146. package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +3 -0
  147. package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +3 -0
  148. package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +3 -0
  149. package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +3 -0
  150. package/.next/server/chunks/{[root-of-the-server]__0yds0ae._.js → [root-of-the-server]__0mqorxb._.js} +2 -2
  151. package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +3 -0
  152. package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +3 -0
  153. package/.next/server/chunks/{[root-of-the-server]__0ynfeq-._.js → [root-of-the-server]__0obb4y-._.js} +2 -2
  154. package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +3 -0
  155. package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +3 -0
  156. package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +3 -0
  157. package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +3 -0
  158. package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +3 -0
  159. package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +3 -0
  160. package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +3 -0
  161. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +3 -0
  162. package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +3 -0
  163. package/.next/server/chunks/[root-of-the-server]__11n87go._.js +3 -0
  164. package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +3 -0
  165. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +3 -3
  166. package/.next/server/chunks/[root-of-the-server]__131taws._.js +3 -0
  167. package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +3 -0
  168. package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +3 -0
  169. package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +3 -0
  170. package/.next/server/chunks/{[root-of-the-server]__04mu6-m._.js → [root-of-the-server]__16begv4._.js} +2 -2
  171. package/.next/server/chunks/[root-of-the-server]__17duis5._.js +3 -0
  172. package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +3 -0
  173. package/.next/server/chunks/[root-of-the-server]__184u6de._.js +3 -0
  174. package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +3 -0
  175. package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +3 -0
  176. package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +3 -0
  177. package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +3 -0
  178. package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +3 -0
  179. package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +3 -0
  180. package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +3 -0
  181. package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +3 -0
  182. package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +3 -0
  183. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +3 -0
  184. package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +3 -0
  185. package/.next/server/chunks/[root-of-the-server]__1loecue._.js +3 -0
  186. package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +3 -0
  187. package/.next/server/chunks/{[root-of-the-server]__1a4i9sz._.js → [root-of-the-server]__1nwf3ua._.js} +2 -2
  188. package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +3 -0
  189. package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +3 -0
  190. package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +3 -0
  191. package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +3 -0
  192. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +3 -3
  193. package/.next/server/chunks/[root-of-the-server]__20465pr._.js +3 -0
  194. package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +3 -0
  195. package/.next/server/chunks/_0-eguqv._.js +3 -0
  196. package/.next/server/chunks/_011-ll5._.js +1 -1
  197. package/.next/server/chunks/_0389uce._.js +3 -0
  198. package/.next/server/chunks/_0_o8yhv._.js +3 -0
  199. package/.next/server/chunks/_0c5hvv3._.js +1 -1
  200. package/.next/server/chunks/_0frix22._.js +1 -1
  201. package/.next/server/chunks/_0gwg6ba._.js +3 -0
  202. package/.next/server/chunks/_0rdo0a4._.js +3 -0
  203. package/.next/server/chunks/_13ffmxv._.js +1 -1
  204. package/.next/server/chunks/_167vv93._.js +3 -0
  205. package/.next/server/chunks/_16jdov0._.js +1 -1
  206. package/.next/server/chunks/{_1ve0z0w._.js → _1e1h1f1._.js} +1 -1
  207. package/.next/server/chunks/_1flar98._.js +3 -0
  208. package/.next/server/chunks/_1pvqo-q._.js +3 -0
  209. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +20 -12
  210. package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
  211. package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
  212. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
  213. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
  214. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +10 -10
  215. package/.next/server/middleware-build-manifest.js +3 -3
  216. package/.next/server/middleware-manifest.json +5 -5
  217. package/.next/server/pages/500.html +1 -1
  218. package/.next/server/server-reference-manifest.js +1 -1
  219. package/.next/server/server-reference-manifest.json +1 -1
  220. package/.next/static/chunks/130ch9mnvb6mp.css +3 -0
  221. package/.next/static/chunks/17wdtw8hml2n6.js +191 -0
  222. package/.next/static/chunks/2a0kgntckcbvf.js +1 -0
  223. package/.next/static/chunks/2f37cahijtel1.js +1 -0
  224. package/.next/static/chunks/2vm3br71ud51j.js +1 -0
  225. package/launcher.js +16 -0
  226. package/package.json +1 -1
  227. package/prisma/migrations/20261022000141_add_svg_animation_en/migration.sql +2 -0
  228. package/prisma/schema.prisma +2 -1
  229. package/prisma/seed.db +0 -0
  230. package/.next/server/chunks/[root-of-the-server]__00m7v48._.js +0 -3
  231. package/.next/server/chunks/[root-of-the-server]__01m28mx._.js +0 -3
  232. package/.next/server/chunks/[root-of-the-server]__07nvz1d._.js +0 -3
  233. package/.next/server/chunks/[root-of-the-server]__0b3nww4._.js +0 -3
  234. package/.next/server/chunks/[root-of-the-server]__0bs5unr._.js +0 -3
  235. package/.next/server/chunks/[root-of-the-server]__0dfbwm3._.js +0 -3
  236. package/.next/server/chunks/[root-of-the-server]__0els3c1._.js +0 -3
  237. package/.next/server/chunks/[root-of-the-server]__0grkic-._.js +0 -3
  238. package/.next/server/chunks/[root-of-the-server]__0hj9oe2._.js +0 -3
  239. package/.next/server/chunks/[root-of-the-server]__0j-gv3-._.js +0 -3
  240. package/.next/server/chunks/[root-of-the-server]__0je3zje._.js +0 -3
  241. package/.next/server/chunks/[root-of-the-server]__0na-z2m._.js +0 -3
  242. package/.next/server/chunks/[root-of-the-server]__0ns_tws._.js +0 -3
  243. package/.next/server/chunks/[root-of-the-server]__0p3hkz7._.js +0 -3
  244. package/.next/server/chunks/[root-of-the-server]__0pli74s._.js +0 -3
  245. package/.next/server/chunks/[root-of-the-server]__0qaih8c._.js +0 -3
  246. package/.next/server/chunks/[root-of-the-server]__0ra48rd._.js +0 -3
  247. package/.next/server/chunks/[root-of-the-server]__0sh6-yu._.js +0 -3
  248. package/.next/server/chunks/[root-of-the-server]__0ssagl1._.js +0 -3
  249. package/.next/server/chunks/[root-of-the-server]__0ws6c0v._.js +0 -3
  250. package/.next/server/chunks/[root-of-the-server]__0ydrrdj._.js +0 -3
  251. package/.next/server/chunks/[root-of-the-server]__0z-sjqh._.js +0 -3
  252. package/.next/server/chunks/[root-of-the-server]__0zp1e41._.js +0 -3
  253. package/.next/server/chunks/[root-of-the-server]__108ydjw._.js +0 -3
  254. package/.next/server/chunks/[root-of-the-server]__10yghm_._.js +0 -3
  255. package/.next/server/chunks/[root-of-the-server]__11-sf2-._.js +0 -3
  256. package/.next/server/chunks/[root-of-the-server]__11wobg2._.js +0 -3
  257. package/.next/server/chunks/[root-of-the-server]__13_c7nc._.js +0 -3
  258. package/.next/server/chunks/[root-of-the-server]__14pcopd._.js +0 -3
  259. package/.next/server/chunks/[root-of-the-server]__150ei9u._.js +0 -3
  260. package/.next/server/chunks/[root-of-the-server]__15g7yjy._.js +0 -3
  261. package/.next/server/chunks/[root-of-the-server]__19nm3y_._.js +0 -3
  262. package/.next/server/chunks/[root-of-the-server]__1e3crdc._.js +0 -3
  263. package/.next/server/chunks/[root-of-the-server]__1g-xe1f._.js +0 -3
  264. package/.next/server/chunks/[root-of-the-server]__1g3usdn._.js +0 -3
  265. package/.next/server/chunks/[root-of-the-server]__1hmv25w._.js +0 -3
  266. package/.next/server/chunks/[root-of-the-server]__1hq73__._.js +0 -3
  267. package/.next/server/chunks/[root-of-the-server]__1ouzjax._.js +0 -3
  268. package/.next/server/chunks/[root-of-the-server]__1pcgq22._.js +0 -3
  269. package/.next/server/chunks/[root-of-the-server]__1q5nt5y._.js +0 -3
  270. package/.next/server/chunks/[root-of-the-server]__1qt6_3b._.js +0 -3
  271. package/.next/server/chunks/[root-of-the-server]__1v1dgs2._.js +0 -3
  272. package/.next/server/chunks/[root-of-the-server]__1v9b8go._.js +0 -3
  273. package/.next/server/chunks/[root-of-the-server]__1vzxn91._.js +0 -3
  274. package/.next/server/chunks/[root-of-the-server]__1wgn76g._.js +0 -3
  275. package/.next/server/chunks/[root-of-the-server]__1wkh9sj._.js +0 -3
  276. package/.next/server/chunks/[root-of-the-server]__1xcmja4._.js +0 -3
  277. package/.next/server/chunks/[root-of-the-server]__1y6fx9-._.js +0 -3
  278. package/.next/server/chunks/[root-of-the-server]__1zos_p4._.js +0 -3
  279. package/.next/server/chunks/[root-of-the-server]__1zp0oig._.js +0 -3
  280. package/.next/server/chunks/[root-of-the-server]__203q6el._.js +0 -3
  281. package/.next/server/chunks/[root-of-the-server]__20bun16._.js +0 -3
  282. package/.next/server/chunks/_0ae3z2e._.js +0 -3
  283. package/.next/server/chunks/_0o1p57f._.js +0 -3
  284. package/.next/server/chunks/_0t6g4yt._.js +0 -3
  285. package/.next/server/chunks/_19fidvw._.js +0 -3
  286. package/.next/server/chunks/_1oqpwh8._.js +0 -3
  287. package/.next/server/chunks/_1q5w9fc._.js +0 -3
  288. package/.next/static/chunks/05q4yafxnvtzs.js +0 -1
  289. package/.next/static/chunks/1ad3ir88_e_v6.css +0 -3
  290. package/.next/static/chunks/29erttsjondpe.js +0 -1
  291. package/.next/static/chunks/31rxdwy0u_t29.js +0 -1
  292. package/.next/static/chunks/37g3bsrs22xg7.js +0 -191
  293. /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_buildManifest.js +0 -0
  294. /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_clientMiddlewareManifest.js +0 -0
  295. /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var t=e.i(63021);let r=e.g.prisma||new t.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,r])},44950,e=>e.a(async(t,r)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),r()}catch(e){r(e)}},!0),54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},44661,e=>e.a(async(t,r)=>{try{var n=e.i(58821),a=e.i(44950),i=e.i(98043),s=e.i(69719),o=e.i(98003),l=t([a]);[a]=l.then?(await l)():l;let c=s.z.object({email:s.z.string().regex(/^[^\s@]+@[^\s@]+$/,"Invalid email format"),password:s.z.string().min(6),name:s.z.string().min(1),educationStage:s.z.string().optional(),enrollmentYear:s.z.number().optional()});async function p(e){try{let t=(0,o.getAppConfig)();if(!1===t.allowRegistration)return n.NextResponse.json({user:null,message:"Registration is currently disabled"},{status:403});let r=await e.json(),{email:s,password:l,name:p,educationStage:u,enrollmentYear:d}=c.parse(r);if(await i.prisma.user.findUnique({where:{email:s}}))return n.NextResponse.json({user:null,message:"User with this email already exists"},{status:409});let m=await (0,a.hash)(l,10),{password:x,...f}=await i.prisma.user.create({data:{email:s,name:p,password:m,educationStage:u,enrollmentYear:d}});return n.NextResponse.json({user:f,message:"User created successfully"},{status:201})}catch(e){return n.NextResponse.json({user:null,message:"Something went wrong"},{status:500})}}e.s(["POST",0,p]),r()}catch(e){r(e)}},!1),16421,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),p=e.i(87718),c=e.i(95169),u=e.i(47587),d=e.i(66012),m=e.i(70101),x=e.i(74838),f=e.i(10372),g=e.i(93695),v=e.i(9580);e.i(52474);var h=e.i(220);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/register/route",pathname:"/api/register",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/register/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(44661),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:I,serverHooks:y}=E;async function _(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/register/route";R=R.replace(/\/index$/,"")||"/";let I=await E.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,deploymentId:_,params:w,nextConfig:O,parsedUrl:A,isDraftMode:N,prerenderManifest:P,routerServerContext:b,isOnDemandRevalidate:S,revalidateOnlyGenerated:C,resolvedPathname:T,clientReferenceManifest:U,serverActionsManifest:D}=I,M=(0,o.normalizeAppPath)(R),j=!!P.routes[T]&&(E.isDev||(0,v.isRouteCacheOwner)(T,E.cacheOwner,P.routes[T])),q=!!(P.dynamicRoutes[M]||j),k=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!N){let e=P.dynamicRoutes[M];if(e&&!1===e.fallback&&!j){if(O.adapterPath)return await k();throw new g.NoFallbackError}}let L=null;!q||E.isDev||N||(L="/index"===(L=T)?"/":L);let K=!0===E.isDev||!q,Z=q&&!K;D&&U&&(0,s.setManifestsSingleton)({page:R,clientReferenceManifest:U,serverActionsManifest:D});let H=e.method||"GET",V=(0,i.getTracer)(),F=V.getActiveScopeSpan(),z=!!(null==b?void 0:b.isWrappedByNextServer),G=!!(0,a.getRequestMeta)(e,"minimalMode"),B=(0,a.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,O,P,G);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let $={params:w,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:N,supportsDynamicResponse:K,incrementalCache:B,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>E.onRequestError(e,t,n,a,b)},sharedContext:{buildId:y,deploymentId:_}},Y=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),X=p.NextRequestAdapter.fromNodeNextRequest(Y,(0,p.signalFromNodeResponse)(t)),W=async({previousCacheEntry:r})=>{try{if(!G&&S&&C&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await E.handle(X,$);e.fetchMetrics=$.renderOpts.fetchMetrics;let i=$.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let s=$.renderOpts.collectedTags;if(!q)return await (0,d.sendResponse)(Y,J,a,i),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[f.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?O.expireTime:void 0:$.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:Z,isOnDemandRevalidate:S})},!1,b),t}},Q=async(a,s)=>{try{var o,l;let a=await E.handleResponse({req:e,nextConfig:O,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:C,responseGenerator:W,waitUntil:n.waitUntil,isMinimalMode:G});if(!q)return;if((null==a||null==(o=a.value)?void 0:o.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",S?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,m.fromNodeOutgoingHttpHeaders)(a.value.headers);G&&q||i.delete(f.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,x.getCacheControlHeader)(a.cacheControl)),await (0,d.sendResponse)(Y,J,new Response(a.value.body,{headers:i,status:a.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:Z,isOnDemandRevalidate:S})},!1,b),q)throw t;await (0,d.sendResponse)(Y,J,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:i.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=V.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||M,o=`${H} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),a.updateName(o),s&&s!==a&&(s.setAttribute("http.route",n),s.updateName(o))})()}};if(z&&F)await Q(F,void 0);else{let t=V.getActiveScopeSpan();await V.withPropagatedContext(e.headers,()=>V.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${R}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:I})},"routeModule",0,E,"serverHooks",0,y,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,I])},98876,e=>{"use strict";let t={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},r=Object.keys(t);e.s(["VENDOR_PRESETS",0,t,"VENDOR_PROVIDER_IDS",0,r,"isVendorProvider",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)},"resolveVendorConfig",0,function(e,r){let n=t[e];return{apiKey:r?.apiKey||"",baseUrl:r?.baseUrl||n.baseUrl,model:r?.model||n.model}}])},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(50377),a=e.i(76025),i=e.i(98876);let s=(0,n.createLogger)("config"),o=r.default.join(process.env.CONFIG_DIR||r.default.join(process.cwd(),"config"),"app-config.json"),l={aiProvider:process.env.AI_PROVIDER||"minimax",allowRegistration:!0,timeZone:a.DEFAULT_TIME_ZONE,openai:{instances:process.env.OPENAI_API_KEY?[{id:"env-default",name:"Default (ENV)",apiKey:process.env.OPENAI_API_KEY,baseUrl:process.env.OPENAI_BASE_URL||"https://api.openai.com/v1",model:process.env.OPENAI_MODEL||"gpt-6.1-sol"}]:[],activeInstanceId:process.env.OPENAI_API_KEY?"env-default":void 0},gemini:{apiKey:process.env.GOOGLE_API_KEY,baseUrl:process.env.GEMINI_BASE_URL,model:process.env.GEMINI_MODEL||"gemini-2.5-flash"},azure:{apiKey:process.env.AZURE_OPENAI_API_KEY,endpoint:process.env.AZURE_OPENAI_ENDPOINT,deploymentName:process.env.AZURE_OPENAI_DEPLOYMENT,apiVersion:process.env.AZURE_OPENAI_API_VERSION||"2024-02-15-preview",model:process.env.AZURE_OPENAI_MODEL||"gpt-4o"},anthropic:{apiKey:process.env.ANTHROPIC_API_KEY,baseUrl:process.env.ANTHROPIC_BASE_URL,model:process.env.ANTHROPIC_MODEL||"claude-sonnet-5-5"},...Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(e=>{let t=i.VENDOR_PRESETS[e].envPrefix;return[e,{apiKey:process.env[`${t}_API_KEY`],baseUrl:process.env[`${t}_BASE_URL`],model:process.env[`${t}_MODEL`]}]})),prompts:{analyze:"",similar:""},timeouts:{analyze:18e4}};function p(e,t){return Object.fromEntries(i.VENDOR_PROVIDER_IDS.map(r=>[r,{...e[r],...t[r]}]))}function c(){if(t.default.existsSync(o))try{var e;let r=t.default.readFileSync(o,"utf-8"),n=JSON.parse(r),i=n.openai;if((e=n.openai)&&"object"==typeof e&&"apiKey"in e&&!("instances"in e)){s.info("Detected legacy OpenAI config, migrating to multi-instance format..."),i=function(e){if(!e.apiKey)return{instances:[],activeInstanceId:void 0};let t={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),name:"Default",apiKey:e.apiKey,baseUrl:e.baseUrl||"https://api.openai.com/v1",model:e.model||"gpt-6.1-sol"};return{instances:[t],activeInstanceId:t.id}}(n.openai);let e={...n,openai:i};t.default.writeFileSync(o,JSON.stringify(e,null,2)),s.info("Legacy OpenAI config migrated successfully")}return{...l,...n,timeZone:(0,a.isValidTimeZone)(n.timeZone)?n.timeZone.trim():a.DEFAULT_TIME_ZONE,openai:{instances:i?.instances||l.openai?.instances||[],activeInstanceId:i?.activeInstanceId||l.openai?.activeInstanceId},gemini:{...l.gemini,...n.gemini},azure:{...l.azure,...n.azure},anthropic:{...l.anthropic,...n.anthropic},...p(l,n),prompts:{...l.prompts,...n.prompts},timeouts:{...l.timeouts,...n.timeouts}}}catch(e){s.error({error:e},"Failed to read config file")}return l}e.s(["getActiveOpenAIConfig",0,function(){let e=c(),t=e.openai?.instances||[],r=e.openai?.activeInstanceId;if(r&&0!==t.length)return t.find(e=>e.id===r)},"getAppConfig",0,c,"getAppTimeZone",0,function(){return c().timeZone||a.DEFAULT_TIME_ZONE},"updateAppConfig",0,function(e){if(void 0!==e.timeZone&&!(0,a.isValidTimeZone)(e.timeZone))throw Error("INVALID_TIME_ZONE");let r=c(),n={...r,...e,timeZone:e.timeZone?.trim()??r.timeZone??a.DEFAULT_TIME_ZONE,openai:{instances:e.openai?.instances??r.openai?.instances??[],activeInstanceId:e.openai?.activeInstanceId??r.openai?.activeInstanceId},gemini:{...r.gemini,...e.gemini},azure:{...r.azure,...e.azure},anthropic:{...r.anthropic,...e.anthropic},...p(r,e),prompts:{...r.prompts,...e.prompts},timeouts:{...r.timeouts,...e.timeouts}};try{return t.default.writeFileSync(o,JSON.stringify(n,null,2)),n}catch(e){throw s.error({error:e},"Failed to write config file"),e}}])},50377,e=>{"use strict";let t={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function r(e,n={}){let a,i=t[e],s=(a=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==t[a]?t[a]:t.info;return(t,r)=>{let a,o;if(i<s)return;let l=new Date;"string"==typeof t?(a={},o=t):(a=t,o=r||"");{let t=JSON.stringify({level:e,time:l.toISOString(),...n,...a,msg:o});switch(e){case"error":case"fatal":console.error(t);break;case"warn":console.warn(t);break;default:console.log(t)}}}}let n=function e(t={}){return t.module,{trace:r("trace",t),debug:r("debug",t),info:r("info",t),warn:r("warn",t),error:r("error",t),fatal:r("fatal",t),child:r=>e({...t,...r}),box:(e,r,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...t,title:e,..."string"==typeof r?{content:r}:r||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__11_-ncy._.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__11_1z7m._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[63021,(e,r,t)=>{r.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},98043,e=>{"use strict";var r=e.i(63021);let t=e.g.prisma||new r.PrismaClient({log:"true"===process.env.DEBUG_DB?["query","error","warn"]:["error"]});e.s(["prisma",0,t])},49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},44950,e=>e.a(async(r,t)=>{try{var n=await e.y("bcryptjs-ee66c2bdc904f2cf");e.n(n),t()}catch(e){t(e)}},!0),874,(e,r,t)=>{r.exports=e.x("buffer",()=>require("buffer"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},45706,(e,r,t)=>{r.exports=e.x("querystring",()=>require("querystring"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},98876,e=>{"use strict";let r={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},t=Object.keys(r);e.s(["VENDOR_PRESETS",0,r,"VENDOR_PROVIDER_IDS",0,t,"isVendorProvider",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(r,e)},"resolveVendorConfig",0,function(e,t){let n=r[e];return{apiKey:t?.apiKey||"",baseUrl:t?.baseUrl||n.baseUrl,model:t?.model||n.model}}])},76759,e=>{"use strict";var r=e.i(58821);let t={UNAUTHORIZED:"UNAUTHORIZED",SESSION_EXPIRED:"SESSION_EXPIRED",FORBIDDEN:"FORBIDDEN",NOT_OWNER:"NOT_OWNER",ADMIN_REQUIRED:"ADMIN_REQUIRED",NOT_FOUND:"NOT_FOUND",USER_NOT_FOUND:"USER_NOT_FOUND",ITEM_NOT_FOUND:"ITEM_NOT_FOUND",BAD_REQUEST:"BAD_REQUEST",INVALID_INPUT:"INVALID_INPUT",MISSING_REQUIRED_FIELD:"MISSING_REQUIRED_FIELD",VALIDATION_ERROR:"VALIDATION_ERROR",OPERATION_NOT_ALLOWED:"OPERATION_NOT_ALLOWED",CONFLICT:"CONFLICT",ALREADY_EXISTS:"ALREADY_EXISTS",INTERNAL_ERROR:"INTERNAL_ERROR",DATABASE_ERROR:"DATABASE_ERROR",AI_ERROR:"AI_ERROR"};function n(e,t,n,i){let a={message:e};return n&&(a.code=n),i&&(a.details=i),r.NextResponse.json(a,{status:t})}e.s(["ErrorCode",0,t,"badRequest",0,function(e,r){return n(e,400,t.BAD_REQUEST,r)},"conflict",0,function(e){return n(e,409,t.CONFLICT)},"createErrorResponse",0,n,"forbidden",0,function(e="Forbidden"){return n(e,403,t.FORBIDDEN)},"internalError",0,function(e="Internal server error"){return n(e,500,t.INTERNAL_ERROR)},"notFound",0,function(e="Not found"){return n(e,404,t.NOT_FOUND)},"unauthorized",0,function(e="Unauthorized"){return n(e,401,t.UNAUTHORIZED)},"validationError",0,function(e,r){return n(e,400,t.VALIDATION_ERROR,r)}])},98003,e=>{"use strict";var r=e.i(22734),t=e.i(14747),n=e.i(50377),i=e.i(76025),a=e.i(98876);let s=(0,n.createLogger)("config"),o=t.default.join(process.env.CONFIG_DIR||t.default.join(process.cwd(),"config"),"app-config.json"),c={aiProvider:process.env.AI_PROVIDER||"minimax",allowRegistration:!0,timeZone:i.DEFAULT_TIME_ZONE,openai:{instances:process.env.OPENAI_API_KEY?[{id:"env-default",name:"Default (ENV)",apiKey:process.env.OPENAI_API_KEY,baseUrl:process.env.OPENAI_BASE_URL||"https://api.openai.com/v1",model:process.env.OPENAI_MODEL||"gpt-6.1-sol"}]:[],activeInstanceId:process.env.OPENAI_API_KEY?"env-default":void 0},gemini:{apiKey:process.env.GOOGLE_API_KEY,baseUrl:process.env.GEMINI_BASE_URL,model:process.env.GEMINI_MODEL||"gemini-2.5-flash"},azure:{apiKey:process.env.AZURE_OPENAI_API_KEY,endpoint:process.env.AZURE_OPENAI_ENDPOINT,deploymentName:process.env.AZURE_OPENAI_DEPLOYMENT,apiVersion:process.env.AZURE_OPENAI_API_VERSION||"2024-02-15-preview",model:process.env.AZURE_OPENAI_MODEL||"gpt-4o"},anthropic:{apiKey:process.env.ANTHROPIC_API_KEY,baseUrl:process.env.ANTHROPIC_BASE_URL,model:process.env.ANTHROPIC_MODEL||"claude-sonnet-5-5"},...Object.fromEntries(a.VENDOR_PROVIDER_IDS.map(e=>{let r=a.VENDOR_PRESETS[e].envPrefix;return[e,{apiKey:process.env[`${r}_API_KEY`],baseUrl:process.env[`${r}_BASE_URL`],model:process.env[`${r}_MODEL`]}]})),prompts:{analyze:"",similar:""},timeouts:{analyze:18e4}};function l(e,r){return Object.fromEntries(a.VENDOR_PROVIDER_IDS.map(t=>[t,{...e[t],...r[t]}]))}function p(){if(r.default.existsSync(o))try{var e;let t=r.default.readFileSync(o,"utf-8"),n=JSON.parse(t),a=n.openai;if((e=n.openai)&&"object"==typeof e&&"apiKey"in e&&!("instances"in e)){s.info("Detected legacy OpenAI config, migrating to multi-instance format..."),a=function(e){if(!e.apiKey)return{instances:[],activeInstanceId:void 0};let r={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let r=16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)}),name:"Default",apiKey:e.apiKey,baseUrl:e.baseUrl||"https://api.openai.com/v1",model:e.model||"gpt-6.1-sol"};return{instances:[r],activeInstanceId:r.id}}(n.openai);let e={...n,openai:a};r.default.writeFileSync(o,JSON.stringify(e,null,2)),s.info("Legacy OpenAI config migrated successfully")}return{...c,...n,timeZone:(0,i.isValidTimeZone)(n.timeZone)?n.timeZone.trim():i.DEFAULT_TIME_ZONE,openai:{instances:a?.instances||c.openai?.instances||[],activeInstanceId:a?.activeInstanceId||c.openai?.activeInstanceId},gemini:{...c.gemini,...n.gemini},azure:{...c.azure,...n.azure},anthropic:{...c.anthropic,...n.anthropic},...l(c,n),prompts:{...c.prompts,...n.prompts},timeouts:{...c.timeouts,...n.timeouts}}}catch(e){s.error({error:e},"Failed to read config file")}return c}e.s(["getActiveOpenAIConfig",0,function(){let e=p(),r=e.openai?.instances||[],t=e.openai?.activeInstanceId;if(t&&0!==r.length)return r.find(e=>e.id===t)},"getAppConfig",0,p,"getAppTimeZone",0,function(){return p().timeZone||i.DEFAULT_TIME_ZONE},"updateAppConfig",0,function(e){if(void 0!==e.timeZone&&!(0,i.isValidTimeZone)(e.timeZone))throw Error("INVALID_TIME_ZONE");let t=p(),n={...t,...e,timeZone:e.timeZone?.trim()??t.timeZone??i.DEFAULT_TIME_ZONE,openai:{instances:e.openai?.instances??t.openai?.instances??[],activeInstanceId:e.openai?.activeInstanceId??t.openai?.activeInstanceId},gemini:{...t.gemini,...e.gemini},azure:{...t.azure,...e.azure},anthropic:{...t.anthropic,...e.anthropic},...l(t,e),prompts:{...t.prompts,...e.prompts},timeouts:{...t.timeouts,...e.timeouts}};try{return r.default.writeFileSync(o,JSON.stringify(n,null,2)),n}catch(e){throw s.error({error:e},"Failed to write config file"),e}}])},63856,e=>e.a(async(r,t)=>{try{var n=e.i(13618),i=e.i(79832),a=e.i(98043),s=r([i]);async function o(){let e=await (0,n.getServerSession)(i.authOptions);return e?.user?.email?a.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),t()}catch(e){t(e)}},!1),50377,e=>{"use strict";let r={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function t(e,n={}){let i,a=r[e],s=(i=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==r[i]?r[i]:r.info;return(r,t)=>{let i,o;if(a<s)return;let c=new Date;"string"==typeof r?(i={},o=r):(i=r,o=t||"");{let r=JSON.stringify({level:e,time:c.toISOString(),...n,...i,msg:o});switch(e){case"error":case"fatal":console.error(r);break;case"warn":console.warn(r);break;default:console.log(r)}}}}let n=function e(r={}){return r.module,{trace:t("trace",r),debug:t("debug",r),info:t("info",r),warn:t("warn",r),error:t("error",r),fatal:t("fatal",r),child:t=>e({...r,...t}),box:(e,t,n="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...r,title:e,..."string"==typeof t?{content:t}:t||{},msg:e}))},divider:(e="-")=>{}}}({env:"production"});e.s(["createLogger",0,function(e){return n.child({module:e})}])},4752,e=>{"use strict";var r=e.i(98043),t=e.i(43911);let n=(0,e.i(50377).createLogger)("mastery"),i=["correct","wrong","not_attempted"];function a(e){return"string"==typeof e&&i.includes(e)}let s={easy:.85,medium:.95,hard:1,harder:1},o={wrong:.1,not_attempted:0};async function c(e){let i=await r.prisma.errorItem.findUnique({where:{id:e},select:{id:!0,questionText:!0,mistakeStatus:!0,tags:{select:{name:!0}},practiceRecords:{where:{result:{not:null}},orderBy:[{createdAt:"asc"},{id:"asc"}],select:{result:!0,difficulty:!0,source:!0,createdAt:!0}}}});if(!i)return;let c=i.practiceRecords.filter(e=>a(e.result)).map(e=>({date:e.createdAt.toISOString(),difficulty:e.difficulty,result:e.result,source:e.source})),l=function(e){if(0===e.length)return null;let r=.15,t=.5;return e.forEach((n,i)=>{let a=Math.pow(.7,e.length-1-i),c="correct"===n.result?s[n.difficulty||"medium"]??s.medium:o[n.result];r+=a*c,t+=a}),Math.round(r/t*100)/100}(c);if(null===l)return void await r.prisma.errorItem.update({where:{id:i.id},data:{masteryProbability:null,masteryReason:null,masterySource:null,masteryEvaluatedAt:null}});let p=l,u="",d="rule";try{let e=await (0,t.getAIService)().evaluateMastery({questionText:i.questionText||"",knowledgePoints:i.tags.map(e=>e.name),mistakeStatus:i.mistakeStatus,history:c,ruleProbability:l});p=e.probability,u=e.reason,d="ai"}catch(t){n.warn({errorItemId:e,error:t instanceof Error?t.message:String(t)},"AI mastery evaluation failed, using rule estimate");let r=c.filter(e=>"correct"===e.result).length;u=`共练习 ${c.length} 次,做对 ${r} 次(规则估算)`}await r.prisma.errorItem.update({where:{id:i.id},data:{masteryProbability:p,masteryReason:u,masterySource:d,masteryEvaluatedAt:new Date,masteryLevel:+(p>=.8)}}),n.info({errorItemId:e,probability:p,source:d},"Mastery evaluated")}let l=new Set,p=!1;async function u(){if(!p){p=!0;try{for(;l.size>0;){let[e]=l;l.delete(e);try{await c(e)}catch(r){n.error({errorItemId:e,error:r},"Mastery evaluation failed")}}}finally{p=!1}}}e.s(["PRACTICE_RESULTS",0,i,"isPracticeResult",0,a,"scheduleMasteryEvaluation",0,function(e){e.forEach(e=>l.add(e)),u()}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__11n87go._.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__11p4ahb._.js.map