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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
- package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/admin/dashboard/route.js +1 -1
- package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/models/route.js +2 -2
- package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/test/route.js +3 -3
- package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
- package/.next/server/app/api/analytics/route.js +1 -1
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route.js +2 -2
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/figure/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/geogebra/route.js +4 -3
- package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/reanswer/route.js +5 -4
- package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/retag/route.js +6 -6
- package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/list/route.js +1 -1
- package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/route.js +6 -6
- package/.next/server/app/api/error-items/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +5 -5
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/results/route.js +6 -6
- package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/retry/route.js +5 -5
- package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/route.js +3 -3
- package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/route.js +4 -4
- package/.next/server/app/api/exams/route.js.nft.json +1 -1
- package/.next/server/app/api/export/route.js +1 -1
- package/.next/server/app/api/export/route.js.nft.json +1 -1
- package/.next/server/app/api/geogebra-analyze/route.js +4 -4
- package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/import/route.js +6 -6
- package/.next/server/app/api/import/route.js.nft.json +1 -1
- package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/retag/route.js +3 -3
- package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
- package/.next/server/app/api/openclaw/batch-upload/route.js +5 -5
- package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/generate/route.js +4 -4
- package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/[id]/route.js +4 -4
- package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/route.js +4 -3
- package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
- package/.next/server/app/api/reanswer/route.js +4 -4
- package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/register/route.js +1 -1
- package/.next/server/app/api/register/route.js.nft.json +1 -1
- package/.next/server/app/api/register/status/route.js +1 -1
- package/.next/server/app/api/register/status/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +5 -4
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/route.js +1 -1
- package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/user/route.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/page.js.nft.json +1 -1
- package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
- package/.next/server/app/latex-test/page.js.nft.json +1 -1
- package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/practice/page.js.nft.json +1 -1
- package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
- package/.next/server/app/print-preview/page.js.nft.json +1 -1
- package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
- package/.next/server/app/register/page.js.nft.json +1 -1
- package/.next/server/app/register/page_client-reference-manifest.js +1 -1
- package/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tags/page.js.nft.json +1 -1
- package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0-8hf14._.js → [root-of-the-server]__02j1w81._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__08gak8r._.js → [root-of-the-server]__03nfvnm._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0gpohuv._.js → [root-of-the-server]__06_nln5._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__08zi-xg._.js → [root-of-the-server]__0be5c5r._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0994h9l._.js → [root-of-the-server]__0bqawi0._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1utxo11._.js → [root-of-the-server]__0d5dpu4._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__05no8nw._.js → [root-of-the-server]__0d9ijed._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0m_f8ct._.js → [root-of-the-server]__0k-nf6a._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0yds0ae._.js → [root-of-the-server]__0mqorxb._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0ynfeq-._.js → [root-of-the-server]__0obb4y-._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11n87go._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__131taws._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__04mu6-m._.js → [root-of-the-server]__16begv4._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__17duis5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__184u6de._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1loecue._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__1a4i9sz._.js → [root-of-the-server]__1nwf3ua._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__20465pr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +3 -0
- package/.next/server/chunks/_0-eguqv._.js +3 -0
- package/.next/server/chunks/_011-ll5._.js +1 -1
- package/.next/server/chunks/_0389uce._.js +3 -0
- package/.next/server/chunks/_0_o8yhv._.js +3 -0
- package/.next/server/chunks/_0c5hvv3._.js +1 -1
- package/.next/server/chunks/_0frix22._.js +1 -1
- package/.next/server/chunks/_0gwg6ba._.js +3 -0
- package/.next/server/chunks/_0rdo0a4._.js +3 -0
- package/.next/server/chunks/_13ffmxv._.js +1 -1
- package/.next/server/chunks/_167vv93._.js +3 -0
- package/.next/server/chunks/_16jdov0._.js +1 -1
- package/.next/server/chunks/{_1ve0z0w._.js → _1e1h1f1._.js} +1 -1
- package/.next/server/chunks/_1flar98._.js +3 -0
- package/.next/server/chunks/_1pvqo-q._.js +3 -0
- package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +20 -12
- package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
- package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
- package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
- package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +10 -10
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/130ch9mnvb6mp.css +3 -0
- package/.next/static/chunks/17wdtw8hml2n6.js +191 -0
- package/.next/static/chunks/2a0kgntckcbvf.js +1 -0
- package/.next/static/chunks/2f37cahijtel1.js +1 -0
- package/.next/static/chunks/2vm3br71ud51j.js +1 -0
- package/launcher.js +16 -0
- package/package.json +1 -1
- package/prisma/migrations/20261022000141_add_svg_animation_en/migration.sql +2 -0
- package/prisma/schema.prisma +2 -1
- package/prisma/seed.db +0 -0
- package/.next/server/chunks/[root-of-the-server]__00m7v48._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__01m28mx._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__07nvz1d._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0b3nww4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0bs5unr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dfbwm3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0els3c1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0grkic-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0hj9oe2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0j-gv3-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0je3zje._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0na-z2m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ns_tws._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0p3hkz7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0pli74s._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0qaih8c._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ra48rd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0sh6-yu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ssagl1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ws6c0v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ydrrdj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0z-sjqh._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zp1e41._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__108ydjw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__10yghm_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11-sf2-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11wobg2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__13_c7nc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14pcopd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__150ei9u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__15g7yjy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__19nm3y_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1e3crdc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1g-xe1f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1g3usdn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hmv25w._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hq73__._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ouzjax._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1pcgq22._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1q5nt5y._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1qt6_3b._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1v1dgs2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1v9b8go._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1vzxn91._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1wgn76g._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1wkh9sj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1xcmja4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1y6fx9-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zos_p4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zp0oig._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__203q6el._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__20bun16._.js +0 -3
- package/.next/server/chunks/_0ae3z2e._.js +0 -3
- package/.next/server/chunks/_0o1p57f._.js +0 -3
- package/.next/server/chunks/_0t6g4yt._.js +0 -3
- package/.next/server/chunks/_19fidvw._.js +0 -3
- package/.next/server/chunks/_1oqpwh8._.js +0 -3
- package/.next/server/chunks/_1q5w9fc._.js +0 -3
- package/.next/static/chunks/05q4yafxnvtzs.js +0 -1
- package/.next/static/chunks/1ad3ir88_e_v6.css +0 -3
- package/.next/static/chunks/29erttsjondpe.js +0 -1
- package/.next/static/chunks/31rxdwy0u_t29.js +0 -1
- package/.next/static/chunks/37g3bsrs22xg7.js +0 -191
- /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_buildManifest.js +0 -0
- /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{OpwRvHtdhPgxve2rKkWkK → xZpf28Jr6w9NoYOlVaWKI}/_ssgManifest.js +0 -0
|
@@ -6,6 +6,6 @@ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resour
|
|
|
6
6
|
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),sG.includes(n.model)&&n.thinking&&"enabled"===n.thinking.type&&console.warn(`Using Claude with ${n.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let o=t?.timeout??this._client._options.timeout;if(!n.stream&&null==o){let e=ig[n.model]??void 0;o=this._client.calculateNonstreamingTimeout(n.max_tokens,e)}let l=ie(n.tools,n.messages);return this._client.post("/v1/messages?beta=true",{body:n,timeout:o??6e5,...t,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0,...null!=s?{"anthropic-user-profile-id":s}:void 0,...null!=a?{"anthropic-workspace-id":a}:void 0},l,t?.headers]),stream:r.stream??!1})}parse(e,t){return t={...t,headers:r6([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},t?.headers])},this.create(e,t).then(t=>s_(t,e,{logger:this._client.logger??console}))}stream(e,t){return sg.createMessage(this,e,t)}countTokens(e,t){let{betas:r,user_profile_id:i,workspace_id:s,...a}=sR(e);return this._client.post("/v1/messages/count_tokens?beta=true",{body:a,...t,headers:r6([{"anthropic-beta":[...r??[],"token-counting-2024-11-01"].toString(),...null!=i?{"anthropic-user-profile-id":i}:void 0,...null!=s?{"anthropic-workspace-id":s}:void 0},t?.headers])})}toolRunner(e,t){return new sw(this._client,e,t)}}return e.Batches=sd,e.BetaToolRunner=sw,e.ToolError=i4.ToolError,e})();function sR(e){if(!e.output_format)return e;if(e.output_config?.format)throw new t3.AnthropicError("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:t,...r}=e;return{...r,output_config:{...e.output_config,format:t}}}let sT=["input_schema","name","allowed_callers","cache_control","defer_loading","description","eager_input_streaming","input_examples","strict","type","configs","display_height_px","display_width_px","display_number","enable_zoom","max_characters"];class sO extends rY{retrieve(e,t){return this._client.get(ip`/v1/organizations/api_keys/${e}?beta=true`,t)}update(e,t,r){return this._client.post(ip`/v1/organizations/api_keys/${e}?beta=true`,{body:t,...r})}list(e={},t){return this._client.getAPIList("/v1/organizations/api_keys?beta=true",rC,{query:e,...t})}}class sL extends rY{retrieve(e){return this._client.get("/v1/organizations/compliance_settings?beta=true",e)}update(e,t){return this._client.post("/v1/organizations/compliance_settings?beta=true",{body:e,...t})}}class sM extends rY{create(e,t){return this._client.post("/v1/organizations/external_keys?beta=true",{body:e,...t})}retrieve(e,t){return this._client.get(ip`/v1/organizations/external_keys/${e}?beta=true`,t)}update(e,t,r){return this._client.post(ip`/v1/organizations/external_keys/${e}?beta=true`,{body:t,...r})}list(e={},t){return this._client.getAPIList("/v1/organizations/external_keys?beta=true",rN,{query:e,...t})}delete(e,t){return this._client.delete(ip`/v1/organizations/external_keys/${e}?beta=true`,t)}validate(e,t){return this._client.post(ip`/v1/organizations/external_keys/${e}/validate?beta=true`,t)}}class sz extends rY{create(e,t){return this._client.post("/v1/organizations/invites?beta=true",{body:e,...t})}retrieve(e,t){return this._client.get(ip`/v1/organizations/invites/${e}?beta=true`,t)}list(e={},t){return this._client.getAPIList("/v1/organizations/invites?beta=true",rC,{query:e,...t})}delete(e,t){return this._client.delete(ip`/v1/organizations/invites/${e}?beta=true`,t)}}class sC extends rY{retrieve(e,t={},r){let{betas:i,...s}=t??{};return this._client.get(ip`/v1/organizations/plugin_marketplaces/${e}?beta=true`,{query:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}update(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/plugin_marketplaces/${e}?beta=true`,{body:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/plugin_marketplaces?beta=true",rN,{query:i,...t,headers:r6([{"anthropic-beta":[...r??[],"ce-plugins-2026-09-01"].toString()},t?.headers])})}validateArchive(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/plugin_marketplaces/validate_archive?beta=true",rH({body:i,...t,headers:r6([{"anthropic-beta":[...r??[],"ce-plugins-2026-09-01"].toString()},t?.headers])},this._client))}validateRepository(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/plugin_marketplaces/validate_repository?beta=true",{body:i,...t,headers:r6([{"anthropic-beta":[...r??[],"ce-plugins-2026-09-01"].toString()},t?.headers])})}}class sN extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/rate_limits?beta=true",rN,{query:e,...t})}}class sU extends rY{retrieve(e,t){return this._client.get(ip`/v1/organizations/users/${e}?beta=true`,t)}update(e,t,r){return this._client.post(ip`/v1/organizations/users/${e}?beta=true`,{body:t,...r})}list(e={},t){return this._client.getAPIList("/v1/organizations/users?beta=true",rC,{query:e,...t})}remove(e,t){return this._client.delete(ip`/v1/organizations/users/${e}?beta=true`,t)}}class sj extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/artifacts?beta=true",rN,{query:e,...t})}}class sW extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/analytics/connectors?beta=true",rN,{query:e,...t})}}class sD extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/cost_report?beta=true",rN,{query:e,...t})}}class sq extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/analytics/plugins?beta=true",rN,{query:e,...t})}}class sH extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/analytics/skills?beta=true",rN,{query:e,...t})}}class sB extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/summaries?beta=true",rN,{query:e,...t})}}class sK extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/usage_report?beta=true",rN,{query:e,...t})}}class sV extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/user_cost_report?beta=true",rN,{query:e,...t})}}class sJ extends rY{list(e,t){return this._client.getAPIList("/v1/organizations/analytics/user_usage_report?beta=true",rN,{query:e,...t})}}class sX extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/analytics/users?beta=true",rN,{query:e,...t})}}class sQ extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/analytics/apps/chat/projects?beta=true",rN,{query:e,...t})}}var sY=(()=>{class e extends rY{constructor(){super(...arguments),this.projects=new sQ(this._client)}}return e.Projects=sQ,e})(),sZ=(()=>{class e extends rY{constructor(){super(...arguments),this.chat=new sY(this._client)}}return e.Chat=sY,e})(),s0=(()=>{class e extends rY{constructor(){super(...arguments),this.summaries=new sB(this._client),this.users=new sX(this._client),this.apps=new sZ(this._client),this.connectors=new sW(this._client),this.plugins=new sq(this._client),this.skills=new sH(this._client),this.artifacts=new sj(this._client),this.usageReport=new sK(this._client),this.userUsageReport=new sJ(this._client),this.costReport=new sD(this._client),this.userCostReport=new sV(this._client)}}return e.Summaries=sB,e.Users=sX,e.Apps=sZ,e.Connectors=sW,e.Plugins=sq,e.Skills=sH,e.Artifacts=sj,e.UsageReport=sK,e.UserUsageReport=sJ,e.CostReport=sD,e.UserCostReport=sV,e})();class s1 extends rY{create(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/federation_issuers?beta=true",{body:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i}=t??{};return this._client.get(ip`/v1/organizations/federation_issuers/${e}?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}update(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/federation_issuers/${e}?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/federation_issuers?beta=true",rN,{query:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}archive(e,t={},r){let{betas:i}=t??{};return this._client.post(ip`/v1/organizations/federation_issuers/${e}/archive?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}}class s2 extends rY{list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/federation_rules/${e}/workspaces?beta=true`,rN,{query:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}add(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/federation_rules/${e}/workspaces?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}remove(e,t,r){let{federation_rule_id:i,betas:s}=t;return this._client.delete(ip`/v1/organizations/federation_rules/${i}/workspaces/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},r?.headers])})}}var s6=(()=>{class e extends rY{constructor(){super(...arguments),this.workspaces=new s2(this._client)}create(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/federation_rules?beta=true",{body:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i}=t??{};return this._client.get(ip`/v1/organizations/federation_rules/${e}?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}update(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/federation_rules/${e}?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/federation_rules?beta=true",rN,{query:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}archive(e,t={},r){let{betas:i}=t??{};return this._client.post(ip`/v1/organizations/federation_rules/${e}/archive?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}}return e.Workspaces=s2,e})(),s4=(()=>{class e extends rY{constructor(){super(...arguments),this.issuers=new s1(this._client),this.rules=new s6(this._client)}}return e.Issuers=s1,e.Rules=s6,e})();class s5 extends rY{list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/plugins/${e}/installation_settings?beta=true`,rN,{query:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}remove(e,t,r){let{plugin_id:i,betas:s}=t;return this._client.delete(ip`/v1/organizations/plugins/${i}/installation_settings/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}set(e,t,r){let{plugin_id:i,betas:s,...a}=t;return this._client.post(ip`/v1/organizations/plugins/${i}/installation_settings/${e}?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...s??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}}class s8 extends rY{list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/plugins/${e}/shares?beta=true`,rN,{query:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}}class s9 extends rY{create(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/plugins/${e}/versions?beta=true`,rH({body:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])},this._client))}retrieve(e,t,r){let{plugin_id:i,betas:s,...a}=t;return this._client.get(ip`/v1/organizations/plugins/${i}/versions/${e}?beta=true`,{query:a,...r,headers:r6([{"anthropic-beta":[...s??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/plugins/${e}/versions?beta=true`,rN,{query:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}download(e,t,r){let{plugin_id:i,betas:s,...a}=t;return this._client.get(ip`/v1/organizations/plugins/${i}/versions/${e}/content?beta=true`,{query:a,...r,headers:r6([{"anthropic-beta":[...s??[],"ce-plugins-2026-09-01"].toString(),Accept:"application/binary"},r?.headers]),__binaryResponse:!0})}}var s3=(()=>{class e extends rY{constructor(){super(...arguments),this.versions=new s9(this._client),this.installationSettings=new s5(this._client),this.shares=new s8(this._client)}create(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/plugins?beta=true",rH({body:i,...t,headers:r6([{"anthropic-beta":[...r??[],"ce-plugins-2026-09-01"].toString()},t?.headers])},this._client))}retrieve(e,t={},r){let{betas:i,...s}=t??{};return this._client.get(ip`/v1/organizations/plugins/${e}?beta=true`,{query:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}update(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/plugins/${e}?beta=true`,{body:s,...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/plugins?beta=true",rN,{query:i,...t,headers:r6([{"anthropic-beta":[...r??[],"ce-plugins-2026-09-01"].toString()},t?.headers])})}delete(e,t={},r){let{betas:i}=t??{};return this._client.delete(ip`/v1/organizations/plugins/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"ce-plugins-2026-09-01"].toString()},r?.headers])})}}return e.Versions=s9,e.InstallationSettings=s5,e.Shares=s8,e})();class s7 extends rY{list(e,t={},r){return this._client.getAPIList(ip`/v1/organizations/rbac_groups/${e}/members?beta=true`,rN,{query:t,...r})}add(e,t,r){return this._client.post(ip`/v1/organizations/rbac_groups/${e}/members?beta=true`,{body:t,...r})}remove(e,t,r){let{rbac_group_id:i}=t;return this._client.delete(ip`/v1/organizations/rbac_groups/${i}/members/${e}?beta=true`,r)}}var ae=(()=>{class e extends rY{constructor(){super(...arguments),this.members=new s7(this._client)}create(e,t){return this._client.post("/v1/organizations/rbac_groups?beta=true",{body:e,...t})}retrieve(e,t){return this._client.get(ip`/v1/organizations/rbac_groups/${e}?beta=true`,t)}update(e,t,r){return this._client.post(ip`/v1/organizations/rbac_groups/${e}?beta=true`,{body:t,...r})}list(e={},t){return this._client.getAPIList("/v1/organizations/rbac_groups?beta=true",rN,{query:e,...t})}delete(e,t){return this._client.delete(ip`/v1/organizations/rbac_groups/${e}?beta=true`,t)}}return e.Members=s7,e})();class at extends rY{list(e,t={},r){return this._client.getAPIList(ip`/v1/organizations/rbac_roles/${e}/permissions?beta=true`,rN,{query:t,...r})}}var ar=(()=>{class e extends rY{constructor(){super(...arguments),this.permissions=new at(this._client)}retrieve(e,t){return this._client.get(ip`/v1/organizations/rbac_roles/${e}?beta=true`,t)}list(e={},t){return this._client.getAPIList("/v1/organizations/rbac_roles?beta=true",rN,{query:e,...t})}}return e.Permissions=at,e})();class ai extends rY{list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/service_accounts/${e}/workspaces?beta=true`,rN,{query:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}add(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/service_accounts/${e}/workspaces?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}remove(e,t,r){let{service_account_id:i,betas:s}=t;return this._client.delete(ip`/v1/organizations/service_accounts/${i}/workspaces/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},r?.headers])})}}var as=(()=>{class e extends rY{constructor(){super(...arguments),this.workspaces=new ai(this._client)}create(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/service_accounts?beta=true",{body:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i}=t??{};return this._client.get(ip`/v1/organizations/service_accounts/${e}?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}update(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/service_accounts/${e}?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/service_accounts?beta=true",rN,{query:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}archive(e,t={},r){let{betas:i}=t??{};return this._client.post(ip`/v1/organizations/service_accounts/${e}/archive?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}}return e.Workspaces=ai,e})();class aa extends rY{list(e={},t){return this._client.getAPIList("/v1/organizations/spend_limits/effective?beta=true",rN,{query:e,...t})}}class an extends rY{retrieve(e,t){return this._client.get(ip`/v1/organizations/spend_limit_increase_requests/${e}?beta=true`,t)}list(e={},t){return this._client.getAPIList("/v1/organizations/spend_limit_increase_requests?beta=true",rN,{query:e,...t})}approve(e,t,r){return this._client.post(ip`/v1/organizations/spend_limit_increase_requests/${e}/approve?beta=true`,{body:t,...r})}deny(e,t,r){return this._client.post(ip`/v1/organizations/spend_limit_increase_requests/${e}/deny?beta=true`,{body:t,...r})}}var ao=(()=>{class e extends rY{constructor(){super(...arguments),this.effective=new aa(this._client),this.increaseRequests=new an(this._client)}retrieve(e,t){return this._client.get(ip`/v1/organizations/spend_limits/${e}?beta=true`,t)}list(e={},t){let{betas:r,...i}=e??{};return this._client.getAPIList("/v1/organizations/spend_limits?beta=true",rN,{query:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}delete(e,t){return this._client.delete(ip`/v1/organizations/spend_limits/${e}?beta=true`,t)}set(e,t){return this._client.post("/v1/organizations/spend_limits?beta=true",{body:e,...t})}}return e.Effective=aa,e.IncreaseRequests=an,e})();class al extends rY{retrieve(e,t,r){let{workspace_id:i}=t;return this._client.get(ip`/v1/organizations/workspaces/${i}/members/${e}?beta=true`,r)}update(e,t,r){let{workspace_id:i,...s}=t;return this._client.post(ip`/v1/organizations/workspaces/${i}/members/${e}?beta=true`,{body:s,...r})}list(e,t={},r){return this._client.getAPIList(ip`/v1/organizations/workspaces/${e}/members?beta=true`,rC,{query:t,...r})}add(e,t,r){return this._client.post(ip`/v1/organizations/workspaces/${e}/members?beta=true`,{body:t,...r})}remove(e,t,r){let{workspace_id:i}=t;return this._client.delete(ip`/v1/organizations/workspaces/${i}/members/${e}?beta=true`,r)}}class ac extends rY{list(e,t={},r){return this._client.getAPIList(ip`/v1/organizations/workspaces/${e}/rate_limits?beta=true`,rN,{query:t,...r})}}class ah extends rY{retrieve(e,t,r){let{workspace_id:i,betas:s}=t;return this._client.get(ip`/v1/organizations/workspaces/${i}/service_accounts/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},r?.headers])})}update(e,t,r){let{workspace_id:i,betas:s,...a}=t;return this._client.post(ip`/v1/organizations/workspaces/${i}/service_accounts/${e}?beta=true`,{body:a,...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,...s}=t??{};return this._client.getAPIList(ip`/v1/organizations/workspaces/${e}/service_accounts?beta=true`,rN,{query:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}add(e,t,r){let{betas:i,...s}=t;return this._client.post(ip`/v1/organizations/workspaces/${e}/service_accounts?beta=true`,{body:s,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0},r?.headers])})}remove(e,t,r){let{workspace_id:i,betas:s}=t;return this._client.delete(ip`/v1/organizations/workspaces/${i}/service_accounts/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},r?.headers])})}}var ad=(()=>{class e extends rY{constructor(){super(...arguments),this.rateLimits=new ac(this._client),this.members=new al(this._client),this.serviceAccounts=new ah(this._client)}create(e,t){let{betas:r,...i}=e;return this._client.post("/v1/organizations/workspaces?beta=true",{body:i,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},t?.headers])})}retrieve(e,t){return this._client.get(ip`/v1/organizations/workspaces/${e}?beta=true`,t)}update(e,t,r){return this._client.post(ip`/v1/organizations/workspaces/${e}?beta=true`,{body:t,...r})}list(e={},t){return this._client.getAPIList("/v1/organizations/workspaces?beta=true",rC,{query:e,...t})}archive(e,t){return this._client.post(ip`/v1/organizations/workspaces/${e}/archive?beta=true`,t)}}return e.RateLimits=ac,e.Members=al,e.ServiceAccounts=ah,e})(),au=(()=>{class e extends rY{constructor(){super(...arguments),this.apiKeys=new sO(this._client),this.externalKeys=new sM(this._client),this.federation=new s4(this._client),this.invites=new sz(this._client),this.serviceAccounts=new as(this._client),this.users=new sU(this._client),this.workspaces=new ad(this._client),this.rateLimits=new sN(this._client),this.complianceSettings=new sL(this._client),this.analytics=new s0(this._client),this.spendLimits=new ao(this._client),this.rbacGroups=new ae(this._client),this.rbacRoles=new ar(this._client),this.plugins=new s3(this._client),this.pluginMarketplaces=new sC(this._client)}retrieve(e){return this._client.get("/v1/organizations/me?beta=true",e)}}return e.APIKeys=sO,e.ExternalKeys=sM,e.Federation=s4,e.Invites=sz,e.ServiceAccounts=as,e.Users=sU,e.Workspaces=ad,e.RateLimits=sN,e.ComplianceSettings=sL,e.Analytics=s0,e.SpendLimits=ao,e.RBACGroups=ae,e.RBACRoles=ar,e.Plugins=s3,e.PluginMarketplaces=sC,e})(),ap=(()=>{class e extends rY{list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/sessions/${e}/events?beta=true`,rN,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}send(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/sessions/${e}/events?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}stream(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.get(ip`/v1/sessions/${e}/events/stream?beta=true`,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers]),stream:!0})}toolRunner(e,t){return new i7(e,{...t,client:this._client})}}return e.SessionToolRunner=i7,e})();class a_ extends rY{retrieve(e,t,r){let{session_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/sessions/${i}/resources/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}update(e,t,r){let{session_id:i,betas:s,workspace_id:a,...n}=t;return this._client.post(ip`/v1/sessions/${i}/resources/${e}?beta=true`,{body:n,...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/sessions/${e}/resources?beta=true`,rN,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}delete(e,t,r){let{session_id:i,betas:s,workspace_id:a}=t;return this._client.delete(ip`/v1/sessions/${i}/resources/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}add(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/sessions/${e}/resources?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}}class af extends rY{list(e,t,r){let{session_id:i,betas:s,workspace_id:a,...n}=t;return this._client.getAPIList(ip`/v1/sessions/${i}/threads/${e}/events?beta=true`,rN,{query:n,...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}stream(e,t,r){let{session_id:i,betas:s,workspace_id:a,...n}=t;return this._client.get(ip`/v1/sessions/${i}/threads/${e}/stream?beta=true`,{query:n,...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers]),stream:!0})}}var ag=(()=>{class e extends rY{constructor(){super(...arguments),this.events=new af(this._client)}retrieve(e,t,r){let{session_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/sessions/${i}/threads/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/sessions/${e}/threads?beta=true`,rN,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}archive(e,t,r){let{session_id:i,betas:s,workspace_id:a}=t;return this._client.post(ip`/v1/sessions/${i}/threads/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}}return e.Events=af,e})(),av=(()=>{class e extends rY{constructor(){super(...arguments),this.events=new ap(this._client),this.resources=new a_(this._client),this.threads=new ag(this._client)}create(e,t){let{betas:r,workspace_id:i,...s}=e;return this._client.post("/v1/sessions?beta=true",{body:s,...t,headers:r6([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.get(ip`/v1/sessions/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}update(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/sessions/${e}?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}list(e={},t){let{betas:r,workspace_id:i,...s}=e??{};return this._client.getAPIList("/v1/sessions?beta=true",rU,{query:s,...t,headers:r6([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}delete(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.delete(ip`/v1/sessions/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}archive(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.post(ip`/v1/sessions/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}}return e.Events=ap,e.Resources=a_,e.Threads=ag,e})();class am extends rY{create(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/skills/${e}/versions?beta=true`,rH({body:a,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0,...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])},this._client,!1))}retrieve(e,t,r){let{skill_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/skills/${i}/versions/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0,...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/skills/${e}/versions?beta=true`,rN,{query:a,...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0,...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}delete(e,t,r){let{skill_id:i,betas:s,workspace_id:a}=t;return this._client.delete(ip`/v1/skills/${i}/versions/${e}?beta=true`,{...r,headers:r6([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0,...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}download(e,t,r){let{skill_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/skills/${i}/versions/${e}/content?beta=true`,{...r,headers:r6([{Accept:"application/binary",...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0,...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers]),__binaryResponse:!0})}}var aw=(()=>{class e extends rY{constructor(){super(...arguments),this.versions=new am(this._client)}create(e,t){let{betas:r,workspace_id:i,...s}=e;return this._client.post("/v1/skills?beta=true",rH({body:s,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0,...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])},this._client,!1))}retrieve(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.get(ip`/v1/skills/${e}?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0,...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}list(e={},t){let{betas:r,workspace_id:i,...s}=e??{};return this._client.getAPIList("/v1/skills?beta=true",rN,{query:s,...t,headers:r6([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0,...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}delete(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.delete(ip`/v1/skills/${e}?beta=true`,{...r,headers:r6([{...i?.toString()!=null?{"anthropic-beta":i?.toString()}:void 0,...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}}return e.Versions=am,e})();class ab extends rY{create(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/tunnels/${e}/certificates?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}retrieve(e,t,r){let{tunnel_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/tunnels/${i}/certificates/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"mcp-tunnels-2026-06-22"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/tunnels/${e}/certificates?beta=true`,rN,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}archive(e,t,r){let{tunnel_id:i,betas:s,workspace_id:a}=t;return this._client.post(ip`/v1/tunnels/${i}/certificates/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"mcp-tunnels-2026-06-22"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}}var ay=(()=>{class e extends rY{constructor(){super(...arguments),this.certificates=new ab(this._client)}create(e,t){let{betas:r,workspace_id:i,...s}=e;return this._client.post("/v1/tunnels?beta=true",{body:s,...t,headers:r6([{"anthropic-beta":[...r??[],"mcp-tunnels-2026-06-22"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.get(ip`/v1/tunnels/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}list(e={},t){let{betas:r,workspace_id:i,...s}=e??{};return this._client.getAPIList("/v1/tunnels?beta=true",rN,{query:s,...t,headers:r6([{"anthropic-beta":[...r??[],"mcp-tunnels-2026-06-22"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}archive(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.post(ip`/v1/tunnels/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}revealToken(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.post(ip`/v1/tunnels/${e}/reveal_token?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}rotateToken(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/tunnels/${e}/rotate_token?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"mcp-tunnels-2026-06-22"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}}return e.Certificates=ab,e})();class ak extends rY{create(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/vaults/${e}/credentials?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}retrieve(e,t,r){let{vault_id:i,betas:s,workspace_id:a}=t;return this._client.get(ip`/v1/vaults/${i}/credentials/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}update(e,t,r){let{vault_id:i,betas:s,workspace_id:a,...n}=t;return this._client.post(ip`/v1/vaults/${i}/credentials/${e}?beta=true`,{body:n,...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}list(e,t={},r){let{betas:i,workspace_id:s,...a}=t??{};return this._client.getAPIList(ip`/v1/vaults/${e}/credentials?beta=true`,rN,{query:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}delete(e,t,r){let{vault_id:i,betas:s,workspace_id:a}=t;return this._client.delete(ip`/v1/vaults/${i}/credentials/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}archive(e,t,r){let{vault_id:i,betas:s,workspace_id:a}=t;return this._client.post(ip`/v1/vaults/${i}/credentials/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}mcpOAuthValidate(e,t,r){let{vault_id:i,betas:s,workspace_id:a}=t;return this._client.post(ip`/v1/vaults/${i}/credentials/${e}/mcp_oauth_validate?beta=true`,{...r,headers:r6([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString(),...null!=a?{"anthropic-workspace-id":a}:void 0},r?.headers])})}}var aP=(()=>{class e extends rY{constructor(){super(...arguments),this.credentials=new ak(this._client)}create(e,t){let{betas:r,workspace_id:i,...s}=e;return this._client.post("/v1/vaults?beta=true",{body:s,...t,headers:r6([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}retrieve(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.get(ip`/v1/vaults/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}update(e,t,r){let{betas:i,workspace_id:s,...a}=t;return this._client.post(ip`/v1/vaults/${e}?beta=true`,{body:a,...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}list(e={},t){let{betas:r,workspace_id:i,...s}=e??{};return this._client.getAPIList("/v1/vaults?beta=true",rN,{query:s,...t,headers:r6([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString(),...null!=i?{"anthropic-workspace-id":i}:void 0},t?.headers])})}delete(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.delete(ip`/v1/vaults/${e}?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}archive(e,t={},r){let{betas:i,workspace_id:s}=t??{};return this._client.post(ip`/v1/vaults/${e}/archive?beta=true`,{...r,headers:r6([{"anthropic-beta":[...i??[],"managed-agents-2026-04-01"].toString(),...null!=s?{"anthropic-workspace-id":s}:void 0},r?.headers])})}}return e.Credentials=ak,e})(),aS=(()=>{class e extends rY{constructor(){super(...arguments),this.models=new iH(this._client),this.messages=new s$(this._client),this.agents=new iX(this._client),this.environments=new so(this._client),this.sessions=new av(this._client),this.deployments=new iW(this._client),this.deploymentRuns=new ij(this._client),this.vaults=new aP(this._client),this.memoryStores=new sh(this._client),this.files=new iq(this._client),this.skills=new aw(this._client),this.webhooks=new iV(this._client),this.userProfiles=new iB(this._client),this.dreams=new iD(this._client),this.tunnels=new ay(this._client),this.organization=new au(this._client)}}return e.Models=iH,e.Messages=s$,e.Agents=iX,e.Environments=so,e.Sessions=av,e.Deployments=iW,e.DeploymentRuns=ij,e.Vaults=aP,e.MemoryStores=sh,e.Files=iq,e.Skills=aw,e.Webhooks=iV,e.UserProfiles=iB,e.Dreams=iD,e.Tunnels=ay,e.Organization=au,e})(),aF=(()=>{class e{get credentials(){return this._authState.provider}constructor({baseURL:e=(0,ru.readEnv)("ANTHROPIC_BASE_URL"),apiKey:t,authToken:r,webhookKey:i=(0,ru.readEnv)("ANTHROPIC_WEBHOOK_SIGNING_KEY")??null,...s}={}){if(tR.add(this),this._requestAuthFlags=new WeakMap,tO.set(this,void 0),void 0===t&&(t=null!=s.profile?null:(0,ru.readEnv)("ANTHROPIC_API_KEY")??null),void 0===r&&(r=null!=s.profile?null:(0,ru.readEnv)("ANTHROPIC_AUTH_TOKEN")??null),null!=s.profile&&(null!=s.credentials||null!=s.config))throw TypeError("Pass at most one of `profile`, `credentials`, or `config`.");const a={apiKey:t,authToken:r,webhookKey:i,...s,baseURL:e||"https://api.anthropic.com"};a.dangerouslyAllowBrowser,this.baseURL=a.baseURL,this._baseURLIsExplicit=s.__baseURLIsExplicit??!!e,this.timeout=a.timeout??tT.DEFAULT_TIMEOUT,this.logger=a.logger??console,this.logLevel=rF.defaultLogLevel,this.logLevel=(0,rF.parseLogLevel)(a.logLevel,"ClientOptions.logLevel",(0,rF.loggerFor)(this))??(0,rF.parseLogLevel)((0,ru.readEnv)("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",(0,rF.loggerFor)(this))??rF.defaultLogLevel,this.fetchOptions=a.fetchOptions,this.maxRetries=(0,tz.validatePositiveInteger)("maxRetries",a.maxRetries??2),this.fetch=a.fetch??function(){if("u">typeof fetch)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}(),(0,tM.__classPrivateFieldSet)(this,tO,tQ,"f"),this.middleware=[...a.middleware??[]];const n=(0,ru.readEnv)("ANTHROPIC_CUSTOM_HEADERS");if(n){const e={};for(const t of n.split("\n")){const r=t.indexOf(":");r>=0&&(e[t.substring(0,r).trim()]=t.substring(r+1).trim())}a.defaultHeaders={...e,...a.defaultHeaders}}const o=s.__auth;if(delete a.__auth,delete a.__baseURLIsExplicit,this._options=a,this.apiKey="string"==typeof t?t:null,this.authToken=r,this.webhookKey=i,o)this._authState=o,!this._baseURLIsExplicit&&o.baseURL&&(this.baseURL=o.baseURL);else if(this._authState={provider:null,tokenCache:null,resolution:null,error:null,extraHeaders:{}},null==this.apiKey&&null==this.authToken){const e=a.credentials??null;if(e)this._authState.provider=e,this._authState.tokenCache=this._makeTokenCache(e);else if(null!=a.config){const e=ry(a.config,this._credentialResolverOptions());this._authState.provider=e.provider,this._authState.tokenCache=this._makeTokenCache(e.provider),this._authState.extraHeaders=e.extraHeaders,this._applyCredentialBaseURL(e.baseURL)}else null!=a.profile?this._authState.resolution=this._resolveDefaultCredentials(a.profile):this._shouldResolveDefaultCredentials()&&(this._authState.resolution=this._resolveDefaultCredentials())}}_shouldResolveDefaultCredentials(){return!0}_applyCredentialBaseURL(e){if(!e)return;let t=e.replace(/\/+$/,"");this._authState.baseURL=t,this._baseURLIsExplicit||(this.baseURL=t)}_credentialResolverOptions(){return{baseURL:this.baseURL,fetch:this._credentialsFetch(),userAgent:this.getUserAgent(),onCacheWriteError:e=>{(0,rF.loggerFor)(this).debug("credential cache write failed (best-effort)",e)},onSafetyWarning:e=>{(0,rF.loggerFor)(this).warn(e)}}}_credentialsFetch(){return rT(this.fetch,this.middleware,void 0,this)}_makeTokenCache(e){return new rd(e,e=>{(0,rF.loggerFor)(this).debug("advisory token refresh failed; serving cached token",e)})}withOptions(e){let t="credentials"in e||"config"in e||"profile"in e,r="apiKey"in e||"authToken"in e||t,i={...this._options,...this._baseURLIsExplicit?{baseURL:this.baseURL}:{},maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,middleware:this.middleware,apiKey:this.apiKey,authToken:this.authToken,webhookKey:this.webhookKey,credentials:this.credentials,...t?{credentials:void 0,config:void 0,profile:void 0}:{},...e,__auth:r?void 0:this._authState,__baseURLIsExplicit:"baseURL"in e||this._baseURLIsExplicit};return new this.constructor(i)}async _resolveDefaultCredentials(e){try{let t=await rk(this._credentialResolverOptions(),e);if(t)this._authState.provider=t.provider,this._authState.tokenCache=this._makeTokenCache(t.provider),this._authState.extraHeaders=t.extraHeaders,this._applyCredentialBaseURL(t.baseURL);else if(null!=e)throw new t3.AnthropicError(`Profile "${e}" could not be resolved (no <config_dir>/configs/${e}.json found).`)}catch(e){this._authState.error=e}finally{this._authState.resolution=null}}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){if(!(e.get("x-api-key")||e.get("authorization"))){if(this._authState.error)throw this._authState.error;if(!(this._authState.tokenCache||this._authState.resolution||this.apiKey&&e.get("x-api-key")||t.has("x-api-key")||this.authToken&&e.get("authorization"))&&!t.has("authorization"))throw Error('Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}}_authFlags(e){let t=this._requestAuthFlags.get(e);return t||(t={usedTokenCache:!1,didRefreshFor401:!1},this._requestAuthFlags.set(e,t)),t}async authHeaders(e){if(this._authState.resolution&&await this._authState.resolution,!this._authState.error){if(this._authState.tokenCache&&null==this.apiKey){let t=await this._authState.tokenCache.getToken();return this._authFlags(e).usedTokenCache=!0,r6([{Authorization:`Bearer ${t}`}])}return r6([await this.apiKeyAuth(e),await this.bearerAuth(e)])}}async apiKeyAuth(e){if(null!=this.apiKey)return r6([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(null!=this.authToken)return r6([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return function(e,t={}){let r,i=e,s=function(e=t8){let t;if(void 0!==e.allowEmptyArrays&&"boolean"!=typeof e.allowEmptyArrays)throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==e.encodeDotInKeys&&"boolean"!=typeof e.encodeDotInKeys)throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw TypeError("Encoder has to be a function.");let r=e.charset||t8.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let i=tY;if(void 0!==e.format){if(!t1(t0,e.format))throw TypeError("Unknown format option provided.");i=e.format}let s=t0[i],a=t8.filter;if(("function"==typeof e.filter||(0,tz.isArray)(e.filter))&&(a=e.filter),t=e.arrayFormat&&e.arrayFormat in t4?e.arrayFormat:"indices"in e?e.indices?"indices":"repeat":t8.arrayFormat,"commaRoundTrip"in e&&"boolean"!=typeof e.commaRoundTrip)throw TypeError("`commaRoundTrip` must be a boolean, or absent");let n=void 0===e.allowDots?!0==!!e.encodeDotInKeys||t8.allowDots:!!e.allowDots;return{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:t8.addQueryPrefix,allowDots:n,allowEmptyArrays:"boolean"==typeof e.allowEmptyArrays?!!e.allowEmptyArrays:t8.allowEmptyArrays,arrayFormat:t,charset:r,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:t8.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:void 0===e.delimiter?t8.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:t8.encode,encodeDotInKeys:"boolean"==typeof e.encodeDotInKeys?e.encodeDotInKeys:t8.encodeDotInKeys,encoder:"function"==typeof e.encoder?e.encoder:t8.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:t8.encodeValuesOnly,filter:a,format:i,formatter:s,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:t8.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:t8.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:t8.strictNullHandling}}(t);"function"==typeof s.filter?i=(0,s.filter)("",i):(0,tz.isArray)(s.filter)&&(r=s.filter);let a=[];if("object"!=typeof i||null===i)return"";let n=t4[s.arrayFormat],o="comma"===n&&s.commaRoundTrip;r||(r=Object.keys(i)),s.sort&&r.sort(s.sort);let l=new WeakMap;for(let e=0;e<r.length;++e){let t=r[e];s.skipNulls&&null===i[t]||t5(a,function e(t,r,i,s,a,n,o,l,c,h,d,u,p,_,f,g,v,m){var w,b;let y,k=t,P=m,S=0,F=!1;for(;void 0!==(P=P.get(t9))&&!F;){let e=P.get(t);if(S+=1,void 0!==e)if(e===S)throw RangeError("Cyclic object value");else F=!0;void 0===P.get(t9)&&(S=0)}if("function"==typeof h?k=h(r,k):k instanceof Date?k=p?.(k):"comma"===i&&(0,tz.isArray)(k)&&(k=t6(k,function(e){return e instanceof Date?p?.(e):e})),null===k){if(n)return c&&!g?c(r,t8.encoder,v,"key",_):r;k=""}if("string"==typeof(w=k)||"number"==typeof w||"boolean"==typeof w||"symbol"==typeof w||"bigint"==typeof w||(b=k)&&"object"==typeof b&&b.constructor&&b.constructor.isBuffer&&b.constructor.isBuffer(b)){if(c){let e=g?r:c(r,t8.encoder,v,"key",_);return[f?.(e)+"="+f?.(c(k,t8.encoder,v,"value",_))]}return[f?.(r)+"="+f?.(String(k))]}let A=[];if(void 0===k)return A;if("comma"===i&&(0,tz.isArray)(k))g&&c&&(k=t6(k,c)),y=[{value:k.length>0?k.join(",")||null:void 0}];else if((0,tz.isArray)(h))y=h;else{let e=Object.keys(k);y=d?e.sort(d):e}let x=l?String(r).replace(/\./g,"%2E"):String(r),E=s&&(0,tz.isArray)(k)&&1===k.length?x+"[]":x;if(a&&(0,tz.isArray)(k)&&0===k.length)return E+"[]";for(let r=0;r<y.length;++r){let w=y[r],b="object"==typeof w&&void 0!==w.value?w.value:k[w];if(o&&null===b)continue;let P=u&&l?w.replace(/\./g,"%2E"):w,F=(0,tz.isArray)(k)?"function"==typeof i?i(E,P):E:E+(u?"."+P:"["+P+"]");m.set(t,S);let x=new WeakMap;x.set(t9,m),t5(A,e(b,F,i,s,a,n,o,l,"comma"===i&&g&&(0,tz.isArray)(k)?null:c,h,d,u,p,_,f,g,v,x))}return A}(i[t],t,n,o,s.allowEmptyArrays,s.strictNullHandling,s.skipNulls,s.encodeDotInKeys,s.encode?s.encoder:null,s.filter,s.sort,s.allowDots,s.serializeDate,s.format,s.formatter,s.encodeValuesOnly,s.charset,l))}let c=a.join(s.delimiter),h=!0===s.addQueryPrefix?"?":"";return s.charsetSentinel&&("iso-8859-1"===s.charset?h+="utf8=%26%2310003%3B&":h+="utf8=%E2%9C%93&"),c.length>0?h+c:""}(e,{arrayFormat:"brackets"})}getUserAgent(){return`Anthropic/JS ${tU}`}makeStatusError(e,t,r,i){return t3.APIError.generate(e,t,r,i)}buildURL(e,t,r){let i=!(0,tM.__classPrivateFieldGet)(this,tR,"m",tL).call(this)&&r||this.baseURL,s=new URL((0,tz.isAbsoluteURL)(e)?e:i+(i.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery(),n=Object.fromEntries(s.searchParams);return(0,tz.isEmptyObj)(a)&&(0,tz.isEmptyObj)(n)||(t={...n,...a,...t}),"object"==typeof t&&t&&!Array.isArray(t)&&(s.search=this.stringifyQuery(t)),s.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new t3.AnthropicError("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:t,options:r}){if(this._authState.tokenCache&&null==this.apiKey){let t=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[e,r]of Object.entries(this._authState.extraHeaders))t.has(e)||t.set(e,r);let r=t.get("anthropic-beta")?.split(",").map(e=>e.trim());r?.includes(rt)||t.set("anthropic-beta",[...r??[],rt].join(",")),e.headers=t}}backendMiddleware(){return[]}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,r){return this.request(Promise.resolve(r).then(r=>({method:e,path:t,...r})))}request(e,t=null){return new rL(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,r){var i;let s=await e,a=(0,tz.validatePositiveInteger)("maxRetries",s.maxRetries??this.maxRetries);this.isStreamBody(s.body)&&(a=0),null==t&&(t=a,this._requestAuthFlags.delete(s)),await this.prepareOptions(s);let{req:n,url:o,timeout:l}=await this.buildRequest(s,{retryCount:a-t}),c="log_"+(0x1000000*Math.random()|0).toString(16).padStart(6,"0"),h=void 0===r?"":`, retryOf: ${r}`,d=Date.now();if(s.signal?.aborted)throw new t3.APIUserAbortError;let u=new AbortController,p=await this.fetchWithTimeout(o,n,l,u,s,{requestLogID:c,retryOfRequestLogID:r}).catch(tN.castToError),_=Date.now();if(p instanceof globalThis.Error){tB(u);let e=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new t3.APIUserAbortError;let i=(0,tN.isAbortError)(p)||/timed? ?out/i.test(String(p)+("cause"in p?String(p.cause):"")),a=this.middleware.length>0||!!s.middleware?.length||this.backendMiddleware().length>0;if(a&&!i&&!function(e){let t=new Set;for(;"object"==typeof e&&null!==e&&!t.has(e);){if(t.add(e),rR(e)||(0,tN.isAbortError)(e)||e instanceof t3.APIConnectionError||e instanceof t3.RetryableError)return!0;e=e.cause}return!1}(p))throw(0,rF.loggerFor)(this).info(`[${c}] middleware error (not retryable)`),(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] middleware error (not retryable)`,{retryOfRequestLogID:r,url:o,durationMs:_-d,message:p.message}),p;if(t)return(0,rF.loggerFor)(this).info(`[${c}] connection ${i?"timed out":"failed"} - ${e}`),(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] connection ${i?"timed out":"failed"} (${e})`,{retryOfRequestLogID:r,url:o,durationMs:_-d,message:p.message}),this.retryRequest(s,t,r??c);if((0,rF.loggerFor)(this).info(`[${c}] connection ${i?"timed out":"failed"} - error; no more retries left`),(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] connection ${i?"timed out":"failed"} (error; no more retries left)`,{retryOfRequestLogID:r,url:o,durationMs:_-d,message:p.message}),i)throw new t3.APIConnectionTimeoutError;if(a&&!rR(p))throw p;throw new t3.APIConnectionError({cause:p})}let f=[...p.headers.entries()].filter(([e])=>"request-id"===e||"anthropic-workspace-id"===e).map(([e,t])=>", "+e+": "+JSON.stringify(t)).join(""),g=`[${c}${h}${f}] ${n.method} ${o} ${p.ok?"succeeded":"failed"} with status ${p.status} in ${_-d}ms`;if(!p.ok){let e=await this.shouldRetry(p,s);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await tX(p.body),tB(u),(0,rF.loggerFor)(this).info(`${g} - ${e}`),(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] response error (${e})`,{retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,durationMs:_-d}),this.retryRequest(s,t,r??c,p.headers)}let i=e?"error; no more retries left":"error; not retryable";(0,rF.loggerFor)(this).info(`${g} - ${i}`);let a=await p.text().catch(e=>(0,tN.castToError)(e).message),n=(0,tz.safeJSON)(a),o=n?void 0:a;throw(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] response error (${i})`,{retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,message:o,durationMs:Date.now()-d}),tB(u),this.makeStatusError(p.status,n,o,p.headers)}return(0,rF.loggerFor)(this).info(g),(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${c}] response start`,{retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,durationMs:_-d}),i=p.body??p,tq.has(u)&&tH?.register(i,u,u),{response:p,options:s,controller:u,requestLogID:c,retryOfRequestLogID:r,startTime:d}}getAPIList(e,t,r){return this.requestAPIList(t,r&&"then"in r?r.then(t=>({method:"get",path:e,...t})):{method:"get",path:e,...r})}requestAPIList(e,t){return new rz(this,this.makeRequest(t,null,void 0),e)}async fetchWithTimeout(e,t,r,i,s,a){let{signal:n,method:o,...l}=t||{},c=this._makeAbort(i);n&&(n.addEventListener("abort",c,{once:!0}),tq.set(i,()=>n.removeEventListener("abort",c)));let h=globalThis.ReadableStream&&l.body instanceof globalThis.ReadableStream||"object"==typeof l.body&&null!==l.body&&Symbol.asyncIterator in l.body,d={signal:i.signal,...h?{duplex:"half"}:{},method:"GET",...l};o&&(d.method=o.toUpperCase());let u=this.fetch,p=async(e,t)=>{let i=setTimeout(c,r);try{return await u.call(void 0,e,t)}finally{clearTimeout(i)}},_=void 0===s?p:async(e,t={})=>{let r="string"==typeof e?e:e instanceof URL?e.href:e.url;return t.headers=t.headers instanceof Headers?t.headers:new Headers(t.headers),await this.prepareRequest(t,{url:r,options:s}),a&&(0,rF.debugLogRequestDetails)((0,rF.loggerFor)(this),`[${a.requestLogID}] sending request`,{retryOfRequestLogID:a.retryOfRequestLogID,method:t.method,url:r,options:s,headers:t.headers}),p(e,t)},f=s?.middleware,g=this.backendMiddleware(),v=f?.length||g.length?[...this.middleware,...f??[],...g]:this.middleware;return await rT(_,v,s,this)(e,d)}async shouldRetry(e,t){let r=this._authFlags(t);if(401===e.status&&this._authState.tokenCache&&r.usedTokenCache&&!r.didRefreshFor401)return r.didRefreshFor401=!0,this._authState.tokenCache.invalidate(),!0;let i=e.headers.get("x-should-retry");return"true"===i||"false"!==i&&(408===e.status||409===e.status||429===e.status||!!(e.status>=500))}async retryRequest(e,t,r,i){let s,a=i?.get("retry-after-ms");if(a){let e=parseFloat(a);Number.isNaN(e)||(s=e)}let n=i?.get("retry-after");if(n&&!s){let e=parseFloat(n);s=Number.isNaN(e)?Date.parse(n)-Date.now():1e3*e}if(void 0===s||!(s>0&&s<=0x80000000-1)){let r=e.maxRetries??this.maxRetries;s=this.calculateDefaultRetryTimeoutMillis(t,r)}return await tC(s,e.signal??void 0),this.makeRequest(e,t-1,r)}calculateDefaultRetryTimeoutMillis(e,t){return Math.min(.5*Math.pow(2,t-e),8)*(1-.25*Math.random())*1e3}calculateNonstreamingTimeout(e,t){if(36e5*e/128e3>6e5||null!=t&&e>t)throw new t3.AnthropicError("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:t=0}={}){let r={...e},{method:i,path:s,query:a,defaultBaseURL:n}=r;this._authState.resolution&&await this._authState.resolution,!this._baseURLIsExplicit&&this._authState.baseURL&&this.baseURL!==this._authState.baseURL&&(this.baseURL=this._authState.baseURL);let o=this.buildURL(s,a,n);"timeout"in r&&(0,tz.validatePositiveInteger)("timeout",r.timeout),r.timeout=r.timeout??this.timeout;let{bodyHeaders:l,body:c}=this.buildBody({options:r}),h=await this.buildHeaders({options:e,method:i,bodyHeaders:l,retryCount:t,timeout:r.timeout});return{req:{method:i,headers:h,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&c instanceof globalThis.ReadableStream&&{duplex:"half"},...c&&{body:c},...this.fetchOptions??{},...r.fetchOptions??{}},url:o,timeout:r.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:r,retryCount:i,timeout:s}){let a=r6([{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(i),"X-Stainless-Timeout":String(Math.trunc(s/1e3)),...tD(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,r,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let r=r6([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||"string"==typeof e&&r.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:this.isStreamBody(e)?{bodyHeaders:void 0,body:tV(e)}:"object"==typeof e&&"application/x-www-form-urlencoded"===r.values.get("content-type")?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(e)}:(0,tM.__classPrivateFieldGet)(this,tO,"f").call(this,{body:e,headers:r})}isStreamBody(e){return!!globalThis.ReadableStream&&e instanceof globalThis.ReadableStream||"object"==typeof e&&null!==e&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&"function"==typeof e.next)}}return tT=e,tO=new WeakMap,tR=new WeakSet,tL=function(){return"https://api.anthropic.com"!==this.baseURL},e.Anthropic=tT,e.DEFAULT_TIMEOUT=6e5,e.AnthropicError=t3.AnthropicError,e.APIError=t3.APIError,e.APIConnectionError=t3.APIConnectionError,e.APIConnectionTimeoutError=t3.APIConnectionTimeoutError,e.APIUserAbortError=t3.APIUserAbortError,e.NotFoundError=t3.NotFoundError,e.ConflictError=t3.ConflictError,e.RateLimitError=t3.RateLimitError,e.BadRequestError=t3.BadRequestError,e.AuthenticationError=t3.AuthenticationError,e.InternalServerError=t3.InternalServerError,e.PermissionDeniedError=t3.PermissionDeniedError,e.UnprocessableEntityError=t3.UnprocessableEntityError,e.toFile=rX,e.HUMAN_PROMPT="\\n\\nHuman:",e.AI_PROMPT="\\n\\nAssistant:",e})(),aA=(()=>{class e extends aF{constructor(){super(...arguments),this.completions=new r4(this),this.messages=new iv(this),this.models=new ib(this),this.files=new iy(this),this.skills=new iP(this),this.organization=new iU(this),this.beta=new aS(this)}}return e.Completions=r4,e.Messages=iv,e.Models=ib,e.Files=iy,e.Skills=iP,e.Organization=iU,e.Beta=aS,e})(),ax=e.i(5898),aE=e.i(61829),aI=e.i(83598),aG=e.i(98003),a$=e.i(99617),aR=e.i(59398),aT=e.i(50377),aO=e.i(93716),aL=e.i(30166),aM=e.i(15851);let az=(0,aT.createLogger)("ai:anthropic"),aC="https://api.anthropic.com",aN="claude-sonnet-5-5";function aU(e,t){let r,i=e.match(/^data:([^;]+);base64,([\s\S]*)$/);return{type:"image",source:{type:"base64",media_type:"image/png"===(r=((i?i[1]:t)||"").toLowerCase())||"image/gif"===r||"image/webp"===r?r:"image/jpeg",data:i?i[2]:e}}}function aj(e,t){let r=`<${t}>`,i=`</${t}>`,s=e.indexOf(r);if(-1===s)return null;let a=s+r.length,n=e.lastIndexOf(i);return -1===n&&"analysis"===t?(az.warn({tagName:t},"Tag was verified unclosed, treating as truncated and reading to end"),e.substring(a).trim()):-1===n||a>=n?null:e.substring(a,n).trim()}function aW(e){return(e||"").split(/[,,\n]/).map(e=>e.trim()).filter(e=>e.length>0)}function aD(e){let t=aj(e,"question_text"),r=aj(e,"answer_text"),i=aj(e,"analysis");if(!t||!r||!i)throw az.error({rawTextSample:e.substring(0,500)},"Missing critical XML tags"),Error("Invalid AI response: Missing critical XML tags (<question_text>, <answer_text>, or <analysis>)");let s=aj(e,"wrong_answer_text")||"",a={questionText:t,answerText:r,analysis:i,wrongAnswerText:s,mistakeAnalysis:aj(e,"mistake_analysis")||"",mistakeStatus:(0,aL.normalizeMistakeStatusForSave)(aj(e,"mistake_status"),s),subject:(0,a$.normalizeSubject)(aj(e,"subject"))||"其他",knowledgePoints:aW(aj(e,"knowledge_points")),requiresImage:aj(e,"requires_image")?.toLowerCase().trim()==="true",difficultyStars:(0,a$.parseDifficultyStars)(aj(e,"difficulty_stars")),...(0,a$.parseFigure)(aj(e,"has_figure"),aj(e,"figure_svg"))},n=(0,a$.safeParseParsedQuestion)(a);return n.success?n.data:(az.warn({validationError:n.error.format()},"Schema validation warning"),a)}e.s(["AnthropicProvider",0,class{client;model;baseURL;constructor(e){const t=e?.apiKey;if(!t)throw Error("AI_AUTH_ERROR: ANTHROPIC_API_KEY is required for Anthropic provider");this.baseURL=(e?.baseUrl||aC).replace(/\/+$/,"").replace(/\/v1$/,""),this.model=e?.model||aN,this.client=new aA({apiKey:t,baseURL:this.baseURL,timeout:6e5}),az.info({provider:"Anthropic",model:this.model,baseURL:this.baseURL,apiKeyPrefix:t.substring(0,8)+"..."},"AI Provider initialized")}async complete(e,t,r){let i=await (0,aO.withTruncationRetry)(async r=>{let i=await this.client.messages.create({model:this.model,max_tokens:r,system:e,messages:[{role:"user",content:t}]}),s=i.content.filter(e=>"text"===e.type).map(e=>e.text).join("");return az.debug({stopReason:i.stop_reason,usage:i.usage},"Anthropic response received"),{text:s,choices:[{finish_reason:"max_tokens"===i.stop_reason?"length":i.stop_reason,message:{content:s}}]}},r,()=>az.warn("Output truncated by reasoning, retrying with larger max_tokens"));if(!i.text)throw Error("Empty response from AI");return i.text}async analyzeImage(e,t="image/jpeg",r="zh",i,s,a,n){let o=(0,aG.getAppConfig)(),l=(0,ax.generateAnalyzePrompt)(r,i,s,{customTemplate:o.prompts?.analyze,...n?{candidateTags:n}:await (0,aR.prefetchSubjectTags)(s,i)},a);az.box("🔍 AI Image Analysis Request",{provider:"Anthropic",endpoint:`${this.baseURL}/v1/messages`,imageSize:`${e.length} bytes`,mimeType:t,model:this.model,language:r,grade:i||"all"}),az.box("📝 Full System Prompt",l);try{let i=await this.complete(l,[aU(e,t),{type:"text",text:"zh"===r?"请分析图片中的题目。":"Please analyze the question in the image."}],8192);az.box("🤖 AI Raw Response",i);let s=aD(i);return az.box("✅ Parsed & Validated Result",JSON.stringify(s,null,2)),s}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during AI analysis"),this.handleError(e),e}}async generateSimilarQuestion(e,t,r="zh",i="medium",s,a){let n=(0,aG.getAppConfig)(),o=(0,ax.generateSimilarQuestionPrompt)(r,e,t,i,{customTemplate:n.prompts?.similar,originalFigureSvg:a},s),l=`
|
|
7
7
|
Original Question: "${e}"
|
|
8
8
|
Knowledge Points: ${t.join(", ")}
|
|
9
|
-
`;az.info({provider:"Anthropic",model:this.model,difficulty:i,language:r},"Generate Similar Question Request");try{let e=await this.complete(o,l,8192);return az.box("🤖 AI Raw Response",e),(0,aM.normalizeGeneratedQuestion)(aD(e))}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during question generation"),this.handleError(e),e}}async reanswerQuestion(e,t="zh",r,i,s,a){let n=(0,ax.generateReanswerPrompt)(t,e,r,{candidateTags:a},s);az.info({provider:"Anthropic",model:this.model,questionLength:e.length,subject:r||"auto",hasImage:!!i},"Reanswer Question Request");try{let e=i?[aU(i),{type:"text",text:"请结合图片和题目描述提供答案和解析。"}]:"请根据上述题目提供答案和解析。",t=await this.complete(n,e,8192);az.debug({rawResponse:t},"AI raw response");let r=aj(t,"wrong_answer_text")||"";return{answerText:aj(t,"answer_text")||"",analysis:aj(t,"analysis")||"",knowledgePoints:aW(aj(t,"knowledge_points")),wrongAnswerText:r,mistakeAnalysis:aj(t,"mistake_analysis")||"",mistakeStatus:(0,aL.normalizeMistakeStatusForSave)(aj(t,"mistake_status"),r),subject:(0,a$.normalizeSubject)(aj(t,"subject")),difficultyStars:(0,a$.parseDifficultyStars)(aj(t,"difficulty_stars"))}}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during reanswer"),this.handleError(e),e}}async analyzeForGeogebra(e,t,r,i){let s=(0,ax.generateGeogebraPrompt)(e,t,r,i);az.info({provider:"Anthropic",model:this.model,questionLength:e.length},"GeoGebra Analysis Request");try{let e=await this.complete(s,"请分析上述题目并生成 GeoGebra 演示命令。",4096);az.debug({rawResponse:e},"GeoGebra AI raw response");let t=(0,a$.extractJsonObject)(e);return{suitable:!!t.suitable,commands:Array.isArray(t.commands)?t.commands:[],description:"string"==typeof t.description?t.description:""}}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during GeoGebra analysis"),this.handleError(e),e}}async evaluateMastery(e){az.info({provider:"Anthropic",historyCount:e.history.length},"Mastery Evaluation Request");try{let t=await this.complete((0,ax.generateMasteryPrompt)(e),"请根据上述练习历史给出掌握概率评估。",4096);return az.debug({rawResponse:t},"Mastery AI raw response"),(0,a$.parseMasteryEvaluation)(t)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during mastery evaluation"),this.handleError(e),e}}async suggestKnowledgeTags(e){az.info({provider:"Anthropic",subject:e.subject,allowedTagCount:e.allowedTags.length},"Tag Suggestion Request");try{let t=await this.complete((0,ax.generateTagSuggestPrompt)(e),"请为上述题目选择知识点。",4096);return az.debug({rawResponse:t},"Tag suggestion AI raw response"),(0,a$.parseTagSuggestion)(t,e.allowedTags)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during tag suggestion"),this.handleError(e),e}}async generateFigureSvg(e,t,r){az.info({provider:"Anthropic",model:this.model,imageSize:e.length},"Figure SVG Request");try{let i=await this.complete((0,ax.generateFigurePrompt)(r),[aU(e,t),{type:"text",text:"请重新绘制图中题目的配图。"}],8192);return az.debug({rawResponse:i},"Figure SVG AI raw response"),(0,a$.parseFigure)(aj(i,"has_figure"),aj(i,"figure_svg"))}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during figure SVG generation"),this.handleError(e),e}}async fixLatex(e){az.info({provider:"Anthropic",model:this.model,fields:Object.keys(e)},"LaTeX Fix Request");try{let t=await this.complete((0,ax.generateLatexFixPrompt)(e),"请修复上述内容中的 LaTeX 语法。",8192);return az.debug({rawResponse:t},"LaTeX fix AI raw response"),(0,aI.parseLatexFix)(t,e)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during LaTeX fix"),this.handleError(e),e}}async generateSvgAnimation(e,t,r,i){az.info({provider:"Anthropic",model:this.model,questionLength:e.length},"SVG Animation Request");try{let s=await this.complete((0,ax.generateSvgAnimationPrompt)(e,t,r,i),"请为上述题目制作 SVG 动画讲解。",16384);return az.debug({rawResponse:s},"SVG animation AI raw response"),(0,aE.sanitizeSvgAnimation)(aj(s,"svg_animation")||s)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during SVG animation generation"),this.handleError(e),e}}handleError(e){if(az.error({error:e},"Anthropic error"),e instanceof Error&&(e.message===aO.AI_OUTPUT_TRUNCATED||e.message.startsWith("AI_RESPONSE_ERROR:")))throw e;if(e instanceof aA.APIConnectionTimeoutError)throw Error("AI_TIMEOUT_ERROR");if(e instanceof aA.APIConnectionError)throw Error("AI_CONNECTION_FAILED");if(e instanceof aA.APIError&&e.status){let t=e.status;if(401===t)throw Error("AI_AUTH_ERROR");if(403===t)throw Error("AI_PERMISSION_DENIED");if(404===t)throw Error("AI_NOT_FOUND");if(408===t)throw Error("AI_TIMEOUT_ERROR");if(429===t)throw Error("AI_QUOTA_EXCEEDED");if(t>=500)throw Error("AI_SERVICE_UNAVAILABLE")}if(e instanceof Error){let t=e.message.toLowerCase();if(t.includes("fetch failed")||t.includes("network")||t.includes("connect"))throw Error("AI_CONNECTION_FAILED");if(t.includes("timeout")||t.includes("timed out")||t.includes("aborted"))throw Error("AI_TIMEOUT_ERROR");if(t.includes("invalid json")||t.includes("parse")||t.includes("json")||t.includes("missing critical xml"))throw Error("AI_RESPONSE_ERROR")}throw Error("AI_UNKNOWN_ERROR")}},"DEFAULT_ANTHROPIC_BASE_URL",0,aC,"DEFAULT_ANTHROPIC_MODEL",0,aN],90604)},99617,e=>{"use strict";var t=e.i(69719),r=e.i(19428);let i=t.z.object({questionText:t.z.string().min(1,"题目文本不能为空"),answerText:t.z.string().min(1,"答案不能为空"),analysis:t.z.string().min(1,"解析不能为空"),wrongAnswerText:t.z.string().optional().default(""),mistakeAnalysis:t.z.string().optional().default(""),mistakeStatus:t.z.enum(["not_attempted","wrong_attempt","unknown"]).optional().default("unknown"),subject:t.z.enum(["数学","物理","化学","生物","英语","语文","历史","地理","政治","其他"]),knowledgePoints:t.z.array(t.z.string()).max(5,"知识点最多 5 个"),requiresImage:t.z.boolean().optional().default(!1),difficultyStars:t.z.number().int().min(1).max(5).nullable().optional(),hasFigure:t.z.boolean().optional(),figureSvg:t.z.string().nullable().optional()}),s=t.z.object({probability:t.z.coerce.number().min(0).max(100),reason:t.z.string().trim().min(1).max(500)});function a(e){let t=e.trim(),r=t.match(/```(?:json)?\s*([\s\S]*?)```/);r&&(t=r[1].trim());let i=t.indexOf("{"),s=t.lastIndexOf("}");return -1!==i&&s>i&&(t=t.substring(i,s+1)),JSON.parse(t)}function n(e){let t;if("number"==typeof e)t=e;else{if("string"!=typeof e)return null;let r=e.trim(),i=(r.match(/[★⭐]/gu)||[]).length,s=r.match(/\d+(\.\d+)?/);t=i>0&&!s?i:s?Number(s[0]):NaN}if(!Number.isFinite(t))return null;let r=Math.round(t);return r>=1&&r<=5?r:null}e.s(["extractJsonObject",0,a,"normalizeSubject",0,function(e){let t=i.shape.subject.safeParse(e?.trim());return t.success?t.data:void 0},"parseDifficultyStars",0,n,"parseFigure",0,function(e,t){let i=(0,r.sanitizeFigureSvg)(t);return{hasFigure:e?.trim().toLowerCase()==="true"||null!==i,figureSvg:i}},"parseMasteryEvaluation",0,function(e){let t=s.parse(a(e));return{probability:Math.round(t.probability)/100,reason:t.reason}},"parseTagSuggestion",0,function(e,r){let i=t.z.object({tags:t.z.array(t.z.string()),difficultyStars:t.z.unknown().optional()}).parse(a(e)),s=new Set(r),o=[];for(let e of i.tags.map(e=>e.trim()))s.has(e)&&!o.includes(e)&&o.push(e);return{tags:o.slice(0,5),difficultyStars:n(i.difficultyStars)}},"safeParseParsedQuestion",0,function(e){return i.safeParse(e)}])},59398,e=>{"use strict";var t=e.i(98043),r=e.i(50377),i=e.i(68426);let s=(0,r.createLogger)("ai:tag-service");async function a(e){let r={1:["一年级"],2:["二年级"],3:["三年级"],4:["四年级"],5:["五年级"],6:["六年级"],7:["七年级上","七年级下"],8:["八年级上","八年级下"],9:["九年级上","九年级下"],10:["高一上","高一下"],11:["高二上","高二下"],12:["高三上","高三下","高三"]},i=[];if(e)if(e<=6)for(let t=1;t<=e;t++)i.push(...r[t]);else if(e>=7&&e<=9)for(let t=7;t<=e;t++)i.push(...r[t]||[]);else for(let t=10;t<=e;t++)i.push(...r[t]||[]);else for(let e=7;e<=12;e++)i.push(...r[e]);try{let e=(await t.prisma.knowledgeTag.findMany({where:{subject:"math",parentId:null,name:{in:i}},select:{id:!0}})).map(e=>e.id),r=await t.prisma.knowledgeTag.findMany({where:{subject:"math",isSystem:!0},select:{id:!0,name:!0,parentId:!0}}),s=new Map;r.forEach(e=>{if(e.parentId){let t=s.get(e.parentId)||[];t.push(e.id),s.set(e.parentId,t)}});let a=e=>{let t=s.get(e)||[];return 0===t.length?[e]:t.flatMap(e=>a(e))},n=new Set;e.forEach(e=>{a(e).forEach(e=>n.add(e))});let o=new Map(r.map(e=>[e.id,e.name]));return Array.from(n).map(e=>o.get(e)).filter(e=>!!e)}catch(e){return s.error({error:e},"getMathTagsFromDB error"),[]}}async function n(e){try{return(await t.prisma.knowledgeTag.findMany({where:{subject:e,isSystem:!0,children:{none:{}}},select:{name:!0},orderBy:{order:"asc"}})).map(e=>e.name)}catch(e){return s.error({error:e},"getTagsFromDB error"),[]}}async function o(e,r){try{let s=await t.prisma.knowledgeTag.findMany({where:{subject:e,isSystem:!0},select:{id:!0,name:!0,parentId:!0},orderBy:[{order:"asc"},{createdAt:"asc"}]}),a=new Map;for(let e of s)if(e.parentId){let t=a.get(e.parentId)||[];t.push(e),a.set(e.parentId,t)}let n=new Set,o=e=>{let t=a.get(e.id);t?.length?t.forEach(o):n.add(e.name)};return s.filter(e=>!e.parentId&&(0,i.isGradeInStage)(e.name,r)).forEach(o),Array.from(n)}catch(t){return s.error({error:t,subject:e,stage:r},"getScopeTagsFromDB error"),[]}}async function l(e){if(e.subject)return{subjectName:i.SUBJECT_DISPLAY_NAMES[e.subject],tags:await o(e.subject,e.stage)}}async function c(e,t){return{prefetchedMathTags:"数学"!==e&&e?[]:await a(t||null),prefetchedPhysicsTags:"物理"!==e&&e?[]:await n("physics"),prefetchedChemistryTags:"化学"!==e&&e?[]:await n("chemistry"),prefetchedBiologyTags:"生物"!==e&&e?[]:await n("biology"),prefetchedEnglishTags:"英语"!==e&&e?[]:await n("english")}}e.s(["getMathTagsFromDB",0,a,"getNotebookCandidateTags",0,l,"getScopeTagsFromDB",0,o,"prefetchSubjectTags",0,c])},19428,e=>{"use strict";let t=/<(script|foreignObject|iframe|object|embed|audio|video|image)\b[\s\S]*?(<\/\1\s*>|\/>)/gi,r=/<\/?(script|foreignObject|iframe|object|embed|audio|video|image)\b[^>]*>/gi;e.s(["MAX_FIGURE_SVG_LENGTH",0,1e5,"sanitizeFigureSvg",0,function(e,i=1e5){if("string"!=typeof e)return null;let s=e.search(/<svg[\s>]/i),a=e.toLowerCase().lastIndexOf("</svg>");if(-1===s||-1===a||a<s)return null;let n=e.slice(s,a+6);return n.length>i?null:(n=n.replace(/<!--[\s\S]*?-->/g,"").replace(/<!DOCTYPE[^>]*>/gi,"").replace(/<\?[\s\S]*?\?>/g,"").replace(t,"").replace(r,"").replace(/\s+on[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/\s+(?:xlink:)?href\s*=\s*("(?!#)[^"]*"|'(?!#)[^']*'|(?!["'#])[^\s>"']+)/gi,"").replace(/@import[^;]*;?/gi,"").replace(/url\(\s*(['"]?)(?!#)[^)]*\)/gi,"none").replace(/javascript:/gi,""),/<svg[^>]*\sxmlns\s*=/i.test(n)||(n=n.replace(/<svg/i,'<svg xmlns="http://www.w3.org/2000/svg"')),/<(line|polyline|polygon|rect|circle|ellipse|path|text)\b/i.test(n))?n:null}])},61829,83598,93716,15851,e=>{"use strict";var t=e.i(19428);let r=/<(animate|set)\b[^>]*attributeName\s*=\s*["']?(?:xlink:)?href["']?[^>]*?(\/>|>[\s\S]*?<\/\1\s*>)/gi;e.s(["sanitizeSvgAnimation",0,function(e){let i=(0,t.sanitizeFigureSvg)(e,2e5);return i?i.replace(r,""):null}],61829);var i=e.i(5898);e.s(["parseLatexFix",0,function(e,t){let r={};for(let s of Object.keys(t)){let t=i.LATEX_FIX_TAGS[s],a=e.indexOf(`<${t}>`);if(-1===a)continue;let n=a+t.length+2,o=e.indexOf(`</${t}>`,n);if(-1===o)continue;let l=e.slice(n,o).trim();l&&(r[s]=l)}return r}],83598);let s="AI_OUTPUT_TRUNCATED";function a(e){let t=e?.choices?.[0];return!!t&&"length"===t.finish_reason&&!(t.message?.content||"").trim()}async function n(e,t,r){let i=await e(t);if(i?.choices?.[0]?.finish_reason!=="length")return i;if(t>=32768){if(a(i))throw Error(s);return i}r?.();let n=await e(32768);if(a(n))throw Error(s);return n}e.s(["AI_OUTPUT_TRUNCATED",0,s,"withTruncationRetry",0,n],93716),e.s(["normalizeGeneratedQuestion",0,function(e){let t=e.questionText.replace(/[((【\[]\s*(?:(?:本题|共|满分)\s*)?\d+(?:\.\d+)?\s*(?:分|points?|marks?|pts?\.?)\s*[))】\]]/giu,"").replace(/^\s*(?:#{1,6}\s*)?(?:第\s*\d+\s*题\s*[::.、]?|(?:Question|Problem)\s*\d+\s*[::.、]?|\d+\s*(?:[、.]|\.(?!\d)))\s*/iu,"").trim(),r=/^\s*(?:[-*]\s*)?(?:[A-DA-D][..、::))]|[((][A-DA-D][))])\s*\S/imu.test(t),i=t.match(/(?:^|\s)(?:[A-DA-D][..、::))]|[((][A-DA-D][))])/giu)||[],s=t.match(/[①②③④⑤⑥⑦⑧⑨⑩]/gu)||[];if(!t||r||i.length>=2||s.length>=2)throw Error("AI_RESPONSE_ERROR: 生成题目必须为不含选项的填空题或解答题");return{...e,questionText:t}}],15851)}];
|
|
9
|
+
`;az.info({provider:"Anthropic",model:this.model,difficulty:i,language:r},"Generate Similar Question Request");try{let e=await this.complete(o,l,8192);return az.box("🤖 AI Raw Response",e),(0,aM.normalizeGeneratedQuestion)(aD(e))}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during question generation"),this.handleError(e),e}}async reanswerQuestion(e,t="zh",r,i,s,a){let n=(0,ax.generateReanswerPrompt)(t,e,r,{candidateTags:a},s);az.info({provider:"Anthropic",model:this.model,questionLength:e.length,subject:r||"auto",hasImage:!!i},"Reanswer Question Request");try{let e=i?[aU(i),{type:"text",text:"请结合图片和题目描述提供答案和解析。"}]:"请根据上述题目提供答案和解析。",t=await this.complete(n,e,8192);az.debug({rawResponse:t},"AI raw response");let r=aj(t,"wrong_answer_text")||"";return{answerText:aj(t,"answer_text")||"",analysis:aj(t,"analysis")||"",knowledgePoints:aW(aj(t,"knowledge_points")),wrongAnswerText:r,mistakeAnalysis:aj(t,"mistake_analysis")||"",mistakeStatus:(0,aL.normalizeMistakeStatusForSave)(aj(t,"mistake_status"),r),subject:(0,a$.normalizeSubject)(aj(t,"subject")),difficultyStars:(0,a$.parseDifficultyStars)(aj(t,"difficulty_stars"))}}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during reanswer"),this.handleError(e),e}}async analyzeForGeogebra(e,t,r,i){let s=(0,ax.generateGeogebraPrompt)(e,t,r,i);az.info({provider:"Anthropic",model:this.model,questionLength:e.length},"GeoGebra Analysis Request");try{let e=await this.complete(s,"请分析上述题目并生成 GeoGebra 演示命令。",4096);az.debug({rawResponse:e},"GeoGebra AI raw response");let t=(0,a$.extractJsonObject)(e);return{suitable:!!t.suitable,commands:Array.isArray(t.commands)?t.commands:[],description:"string"==typeof t.description?t.description:""}}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during GeoGebra analysis"),this.handleError(e),e}}async evaluateMastery(e){az.info({provider:"Anthropic",historyCount:e.history.length},"Mastery Evaluation Request");try{let t=await this.complete((0,ax.generateMasteryPrompt)(e),"请根据上述练习历史给出掌握概率评估。",4096);return az.debug({rawResponse:t},"Mastery AI raw response"),(0,a$.parseMasteryEvaluation)(t)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during mastery evaluation"),this.handleError(e),e}}async suggestKnowledgeTags(e){az.info({provider:"Anthropic",subject:e.subject,allowedTagCount:e.allowedTags.length},"Tag Suggestion Request");try{let t=await this.complete((0,ax.generateTagSuggestPrompt)(e),"请为上述题目选择知识点。",4096);return az.debug({rawResponse:t},"Tag suggestion AI raw response"),(0,a$.parseTagSuggestion)(t,e.allowedTags)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during tag suggestion"),this.handleError(e),e}}async generateFigureSvg(e,t,r){az.info({provider:"Anthropic",model:this.model,imageSize:e.length},"Figure SVG Request");try{let i=await this.complete((0,ax.generateFigurePrompt)(r),[aU(e,t),{type:"text",text:"请重新绘制图中题目的配图。"}],8192);return az.debug({rawResponse:i},"Figure SVG AI raw response"),(0,a$.parseFigure)(aj(i,"has_figure"),aj(i,"figure_svg"))}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during figure SVG generation"),this.handleError(e),e}}async fixLatex(e){az.info({provider:"Anthropic",model:this.model,fields:Object.keys(e)},"LaTeX Fix Request");try{let t=await this.complete((0,ax.generateLatexFixPrompt)(e),"请修复上述内容中的 LaTeX 语法。",8192);return az.debug({rawResponse:t},"LaTeX fix AI raw response"),(0,aI.parseLatexFix)(t,e)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during LaTeX fix"),this.handleError(e),e}}async generateSvgAnimation(e,t,r,i,s="zh"){az.info({provider:"Anthropic",model:this.model,questionLength:e.length},"SVG Animation Request");try{let a=await this.complete((0,ax.generateSvgAnimationPrompt)(e,t,r,i,s),ax.SVG_ANIMATION_REQUEST[s],16384);return az.debug({rawResponse:a},"SVG animation AI raw response"),(0,aE.sanitizeSvgAnimation)(aj(a,"svg_animation")||a)}catch(e){throw az.error({error:e,stack:e instanceof Error?e.stack:void 0},"Error during SVG animation generation"),this.handleError(e),e}}handleError(e){if(az.error({error:e},"Anthropic error"),e instanceof Error&&(e.message===aO.AI_OUTPUT_TRUNCATED||e.message.startsWith("AI_RESPONSE_ERROR:")))throw e;if(e instanceof aA.APIConnectionTimeoutError)throw Error("AI_TIMEOUT_ERROR");if(e instanceof aA.APIConnectionError)throw Error("AI_CONNECTION_FAILED");if(e instanceof aA.APIError&&e.status){let t=e.status;if(401===t)throw Error("AI_AUTH_ERROR");if(403===t)throw Error("AI_PERMISSION_DENIED");if(404===t)throw Error("AI_NOT_FOUND");if(408===t)throw Error("AI_TIMEOUT_ERROR");if(429===t)throw Error("AI_QUOTA_EXCEEDED");if(t>=500)throw Error("AI_SERVICE_UNAVAILABLE")}if(e instanceof Error){let t=e.message.toLowerCase();if(t.includes("fetch failed")||t.includes("network")||t.includes("connect"))throw Error("AI_CONNECTION_FAILED");if(t.includes("timeout")||t.includes("timed out")||t.includes("aborted"))throw Error("AI_TIMEOUT_ERROR");if(t.includes("invalid json")||t.includes("parse")||t.includes("json")||t.includes("missing critical xml"))throw Error("AI_RESPONSE_ERROR")}throw Error("AI_UNKNOWN_ERROR")}},"DEFAULT_ANTHROPIC_BASE_URL",0,aC,"DEFAULT_ANTHROPIC_MODEL",0,aN],90604)},99617,e=>{"use strict";var t=e.i(69719),r=e.i(19428);let i=t.z.object({questionText:t.z.string().min(1,"题目文本不能为空"),answerText:t.z.string().min(1,"答案不能为空"),analysis:t.z.string().min(1,"解析不能为空"),wrongAnswerText:t.z.string().optional().default(""),mistakeAnalysis:t.z.string().optional().default(""),mistakeStatus:t.z.enum(["not_attempted","wrong_attempt","unknown"]).optional().default("unknown"),subject:t.z.enum(["数学","物理","化学","生物","英语","语文","历史","地理","政治","其他"]),knowledgePoints:t.z.array(t.z.string()).max(5,"知识点最多 5 个"),requiresImage:t.z.boolean().optional().default(!1),difficultyStars:t.z.number().int().min(1).max(5).nullable().optional(),hasFigure:t.z.boolean().optional(),figureSvg:t.z.string().nullable().optional()}),s=t.z.object({probability:t.z.coerce.number().min(0).max(100),reason:t.z.string().trim().min(1).max(500)});function a(e){let t=e.trim(),r=t.match(/```(?:json)?\s*([\s\S]*?)```/);r&&(t=r[1].trim());let i=t.indexOf("{"),s=t.lastIndexOf("}");return -1!==i&&s>i&&(t=t.substring(i,s+1)),JSON.parse(t)}function n(e){let t;if("number"==typeof e)t=e;else{if("string"!=typeof e)return null;let r=e.trim(),i=(r.match(/[★⭐]/gu)||[]).length,s=r.match(/\d+(\.\d+)?/);t=i>0&&!s?i:s?Number(s[0]):NaN}if(!Number.isFinite(t))return null;let r=Math.round(t);return r>=1&&r<=5?r:null}e.s(["extractJsonObject",0,a,"normalizeSubject",0,function(e){let t=i.shape.subject.safeParse(e?.trim());return t.success?t.data:void 0},"parseDifficultyStars",0,n,"parseFigure",0,function(e,t){let i=(0,r.sanitizeFigureSvg)(t);return{hasFigure:e?.trim().toLowerCase()==="true"||null!==i,figureSvg:i}},"parseMasteryEvaluation",0,function(e){let t=s.parse(a(e));return{probability:Math.round(t.probability)/100,reason:t.reason}},"parseTagSuggestion",0,function(e,r){let i=t.z.object({tags:t.z.array(t.z.string()),difficultyStars:t.z.unknown().optional()}).parse(a(e)),s=new Set(r),o=[];for(let e of i.tags.map(e=>e.trim()))s.has(e)&&!o.includes(e)&&o.push(e);return{tags:o.slice(0,5),difficultyStars:n(i.difficultyStars)}},"safeParseParsedQuestion",0,function(e){return i.safeParse(e)}])},59398,e=>{"use strict";var t=e.i(98043),r=e.i(50377),i=e.i(68426);let s=(0,r.createLogger)("ai:tag-service");async function a(e){let r={1:["一年级"],2:["二年级"],3:["三年级"],4:["四年级"],5:["五年级"],6:["六年级"],7:["七年级上","七年级下"],8:["八年级上","八年级下"],9:["九年级上","九年级下"],10:["高一上","高一下"],11:["高二上","高二下"],12:["高三上","高三下","高三"]},i=[];if(e)if(e<=6)for(let t=1;t<=e;t++)i.push(...r[t]);else if(e>=7&&e<=9)for(let t=7;t<=e;t++)i.push(...r[t]||[]);else for(let t=10;t<=e;t++)i.push(...r[t]||[]);else for(let e=7;e<=12;e++)i.push(...r[e]);try{let e=(await t.prisma.knowledgeTag.findMany({where:{subject:"math",parentId:null,name:{in:i}},select:{id:!0}})).map(e=>e.id),r=await t.prisma.knowledgeTag.findMany({where:{subject:"math",isSystem:!0},select:{id:!0,name:!0,parentId:!0}}),s=new Map;r.forEach(e=>{if(e.parentId){let t=s.get(e.parentId)||[];t.push(e.id),s.set(e.parentId,t)}});let a=e=>{let t=s.get(e)||[];return 0===t.length?[e]:t.flatMap(e=>a(e))},n=new Set;e.forEach(e=>{a(e).forEach(e=>n.add(e))});let o=new Map(r.map(e=>[e.id,e.name]));return Array.from(n).map(e=>o.get(e)).filter(e=>!!e)}catch(e){return s.error({error:e},"getMathTagsFromDB error"),[]}}async function n(e){try{return(await t.prisma.knowledgeTag.findMany({where:{subject:e,isSystem:!0,children:{none:{}}},select:{name:!0},orderBy:{order:"asc"}})).map(e=>e.name)}catch(e){return s.error({error:e},"getTagsFromDB error"),[]}}async function o(e,r){try{let s=await t.prisma.knowledgeTag.findMany({where:{subject:e,isSystem:!0},select:{id:!0,name:!0,parentId:!0},orderBy:[{order:"asc"},{createdAt:"asc"}]}),a=new Map;for(let e of s)if(e.parentId){let t=a.get(e.parentId)||[];t.push(e),a.set(e.parentId,t)}let n=new Set,o=e=>{let t=a.get(e.id);t?.length?t.forEach(o):n.add(e.name)};return s.filter(e=>!e.parentId&&(0,i.isGradeInStage)(e.name,r)).forEach(o),Array.from(n)}catch(t){return s.error({error:t,subject:e,stage:r},"getScopeTagsFromDB error"),[]}}async function l(e){if(e.subject)return{subjectName:i.SUBJECT_DISPLAY_NAMES[e.subject],tags:await o(e.subject,e.stage)}}async function c(e,t){return{prefetchedMathTags:"数学"!==e&&e?[]:await a(t||null),prefetchedPhysicsTags:"物理"!==e&&e?[]:await n("physics"),prefetchedChemistryTags:"化学"!==e&&e?[]:await n("chemistry"),prefetchedBiologyTags:"生物"!==e&&e?[]:await n("biology"),prefetchedEnglishTags:"英语"!==e&&e?[]:await n("english")}}e.s(["getMathTagsFromDB",0,a,"getNotebookCandidateTags",0,l,"getScopeTagsFromDB",0,o,"prefetchSubjectTags",0,c])},19428,e=>{"use strict";let t=/<(script|foreignObject|iframe|object|embed|audio|video|image)\b[\s\S]*?(<\/\1\s*>|\/>)/gi,r=/<\/?(script|foreignObject|iframe|object|embed|audio|video|image)\b[^>]*>/gi;e.s(["MAX_FIGURE_SVG_LENGTH",0,1e5,"sanitizeFigureSvg",0,function(e,i=1e5){if("string"!=typeof e)return null;let s=e.search(/<svg[\s>]/i),a=e.toLowerCase().lastIndexOf("</svg>");if(-1===s||-1===a||a<s)return null;let n=e.slice(s,a+6);return n.length>i?null:(n=n.replace(/<!--[\s\S]*?-->/g,"").replace(/<!DOCTYPE[^>]*>/gi,"").replace(/<\?[\s\S]*?\?>/g,"").replace(t,"").replace(r,"").replace(/\s+on[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/\s+(?:xlink:)?href\s*=\s*("(?!#)[^"]*"|'(?!#)[^']*'|(?!["'#])[^\s>"']+)/gi,"").replace(/@import[^;]*;?/gi,"").replace(/url\(\s*(['"]?)(?!#)[^)]*\)/gi,"none").replace(/javascript:/gi,""),/<svg[^>]*\sxmlns\s*=/i.test(n)||(n=n.replace(/<svg/i,'<svg xmlns="http://www.w3.org/2000/svg"')),/<(line|polyline|polygon|rect|circle|ellipse|path|text)\b/i.test(n))?n:null}])},61829,83598,93716,15851,e=>{"use strict";var t=e.i(19428);let r=/<(animate|set)\b[^>]*attributeName\s*=\s*["']?(?:xlink:)?href["']?[^>]*?(\/>|>[\s\S]*?<\/\1\s*>)/gi;e.s(["sanitizeSvgAnimation",0,function(e){let i=(0,t.sanitizeFigureSvg)(e,2e5);return i?i.replace(r,""):null}],61829);var i=e.i(5898);e.s(["parseLatexFix",0,function(e,t){let r={};for(let s of Object.keys(t)){let t=i.LATEX_FIX_TAGS[s],a=e.indexOf(`<${t}>`);if(-1===a)continue;let n=a+t.length+2,o=e.indexOf(`</${t}>`,n);if(-1===o)continue;let l=e.slice(n,o).trim();l&&(r[s]=l)}return r}],83598);let s="AI_OUTPUT_TRUNCATED";function a(e){let t=e?.choices?.[0];return!!t&&"length"===t.finish_reason&&!(t.message?.content||"").trim()}async function n(e,t,r){let i=await e(t);if(i?.choices?.[0]?.finish_reason!=="length")return i;if(t>=32768){if(a(i))throw Error(s);return i}r?.();let n=await e(32768);if(a(n))throw Error(s);return n}e.s(["AI_OUTPUT_TRUNCATED",0,s,"withTruncationRetry",0,n],93716),e.s(["normalizeGeneratedQuestion",0,function(e){let t=e.questionText.replace(/[((【\[]\s*(?:(?:本题|共|满分)\s*)?\d+(?:\.\d+)?\s*(?:分|points?|marks?|pts?\.?)\s*[))】\]]/giu,"").replace(/^\s*(?:#{1,6}\s*)?(?:第\s*\d+\s*题\s*[::.、]?|(?:Question|Problem)\s*\d+\s*[::.、]?|\d+\s*(?:[、.]|\.(?!\d)))\s*/iu,"").trim(),r=/^\s*(?:[-*]\s*)?(?:[A-DA-D][..、::))]|[((][A-DA-D][))])\s*\S/imu.test(t),i=t.match(/(?:^|\s)(?:[A-DA-D][..、::))]|[((][A-DA-D][))])/giu)||[],s=t.match(/[①②③④⑤⑥⑦⑧⑨⑩]/gu)||[];if(!t||r||i.length>=2||s.length>=2)throw Error("AI_RESPONSE_ERROR: 生成题目必须为不含选项的填空题或解答题");return{...e,questionText:t}}],15851)}];
|
|
10
10
|
|
|
11
11
|
//# sourceMappingURL=_0frix22._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[71253,e=>e.a(async(t,r)=>{try{var a=e.i(58821),n=e.i(98043),i=e.i(63856),o=e.i(76759),s=e.i(50377),l=e.i(83918),u=t([i]);[i]=u.then?(await u)():u;let p=(0,s.createLogger)("api:notebooks:retag");async function d(e,t){let r=await n.prisma.subject.findUnique({where:{id:e},select:{userId:!0}});return r?.userId===t}async function c(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json((0,l.getRetagJob)(e.id,r))}catch(e){return p.error({error:e},"Error fetching retag job"),(0,o.internalError)("Failed to fetch retag status")}}async function g(e,{params:t}){let{id:r}=await t;try{let e=await (0,i.getCurrentUser)();if(!e)return(0,o.unauthorized)("Authentication required");if(!await d(r,e.id))return(0,o.notFound)("Notebook not found");return a.NextResponse.json(await (0,l.startRetagJob)(e.id,r),{status:202})}catch(e){return p.error({error:e},"Error starting retag job"),(0,o.internalError)("Failed to start retag job")}}e.s(["GET",0,c,"POST",0,g]),r()}catch(e){r(e)}},!1),17805,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),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 R=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/notebooks/[id]/retag/route",pathname:"/api/notebooks/[id]/retag",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/notebooks/[id]/retag/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(71253),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:S}=v;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/notebooks/[id]/retag/route";E=E.replace(/\/index$/,"")||"/";let y=await v.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:S,deploymentId:T,params:b,nextConfig:A,parsedUrl:C,isDraftMode:x,prerenderManifest:N,routerServerContext:I,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:q}=y,D=(0,s.normalizeAppPath)(E),j=!!N.routes[P]&&(v.isDev||(0,w.isRouteCacheOwner)(P,v.cacheOwner,N.routes[P])),M=!!(N.dynamicRoutes[D]||j),U=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!x){let e=N.dynamicRoutes[D];if(e&&!1===e.fallback&&!j){if(A.adapterPath)return await U();throw new f.NoFallbackError}}let H=null;!M||v.isDev||x||(H="/index"===(H=P)?"/":H);let G=!0===v.isDev||!M,L=M&&!G;q&&k&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:k,serverActionsManifest:q});let F=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),J=!!(null==I?void 0:I.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),Y=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,N,K);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let z={params:b,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:x,supportsDynamicResponse:G,incrementalCache:Y,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)=>v.onRequestError(e,t,a,n,I)},sharedContext:{buildId:S,deploymentId:T}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),W=async({previousCacheEntry:r})=>{try{if(!K&&_&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await v.handle(Z,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=z.renderOpts.collectedTags;if(!M)return await (0,g.sendResponse)(V,X,n,i),null;{let e=await n.blob(),t=(0,p.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!==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:R.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 v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),t}},Q=async(n,o)=>{try{var s,l;let n=await v.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:W,waitUntil:a.waitUntil,isMinimalMode:K});if(!M)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.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});K||t.setHeader("x-nextjs-cache",_?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&M||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)(V,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:_})},!1,I),M)throw t;await (0,g.sendResponse)(V,X,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")||D,s=`${F} ${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(J&&B)await Q(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!J)}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,y])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),n=e.i(79832),i=e.i(98043),o=t([n]);async function s(){let e=await (0,a.getServerSession)(n.authOptions);return e?.user?.email?i.prisma.user.findUnique({where:{email:e.user.email}}):null}[n]=o.then?(await o)():o,e.s(["getCurrentUser",0,s]),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 o=(0,t.getCalendarDate)(a,i),s=o.getFullYear(),l=o.getMonth()+1,u=s-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),o=e.i(68426),s=e.i(50377),l=e.i(55920),u=e.i(98003),d=e.i(26828);let c=(0,s.createLogger)("retag");async function g(e,s){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!==s)throw Error("ITEM_NOT_FOUND");if(!l.questionText?.trim())throw Error("NO_QUESTION_TEXT");let d=l.subject?(0,o.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:o.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 R=h.filter(e=>w.has(e));return{tagNames:[...R,...l.tags.filter(e=>!e.isSystem).map(e=>e.name).filter(e=>!R.includes(e))],difficultyStars:m,paperLevel:l.paperLevel,newTagIds:R.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:o,paperLevel:s}=await g(e,r),u=s?null:(0,l.getDefaultPaperLevel)(o);return await t.prisma.errorItem.update({where:{id:e},data:{knowledgePoints:JSON.stringify(a),...null!==o?{difficultyStars:o}:{},...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:o},"Error item retagged"),{errorItemId:e,tags:a,difficultyStars:o}}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"}}),o={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,o);let s=await t.prisma.subject.findUnique({where:{id:r},select:{name:!0}}),l=(0,d.startBackgroundTask)({userId:e,kind:"retag_notebook",subject:s?.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){o.failed++,c.warn({errorItemId:t,error:e instanceof Error?e.message:String(e)},"Retag failed")}finally{o.done++,l.setProgress(o.done,o.total,o.failed)}}};return Promise.all(Array.from({length:Math.min(2,u.length)},g)).finally(()=>{o.running=!1,o.finishedAt=new Date().toISOString(),o.total>0&&o.failed===o.total?l.fail("ALL_FAILED"):l.succeed(),c.info({subjectId:r,total:o.total,failed:o.failed},"Retag job finished")}),o}e.s(["getRetagJob",0,function(e,t){return m.get(f(e,t))??null},"previewRetagErrorItem",0,p,"retagErrorItem",0,h,"startRetagJob",0,w])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0gwg6ba._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[34828,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(69719),n=e.i(98043),s=e.i(63856),o=e.i(76759),u=e.i(50377),l=e.i(74866),d=t([s]);[s]=d.then?(await d)():d;let p=(0,u.createLogger)("api:exams:retry"),m=i.z.object({language:i.z.enum(["zh","en"]).optional()});async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,o.unauthorized)("Authentication required");let i=await n.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!i||i.userId!==t.id)return(0,o.notFound)("Exam paper not found");let u=m.safeParse(await e.json().catch(()=>({})));return await n.prisma.examPaper.update({where:{id:r},data:{status:"generating"}}),(0,l.generateExamPaper)(r,u.success&&u.data.language||"zh"),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error retrying exam paper"),(0,o.internalError)("Failed to retry exam paper")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),15947,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),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),h=e.i(74838),g=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var x=e.i(220);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/retry/route",pathname:"/api/exams/[id]/retry",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/retry/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(34828),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:v}=E;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/exams/[id]/retry/route";y=y.replace(/\/index$/,"")||"/";let R=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:S,params:T,nextConfig:I,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:P,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:M,serverActionsManifest:O}=R,U=(0,o.normalizeAppPath)(y),k=!!_.routes[b]&&(E.isDev||(0,w.isRouteCacheOwner)(b,E.cacheOwner,_.routes[b])),D=!!(_.dynamicRoutes[U]||k),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[U];if(e&&!1===e.fallback&&!k){if(I.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!D||E.isDev||C||(L="/index"===(L=b)?"/":L);let H=!0===E.isDev||!D,Q=D&&!H;O&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:O});let F=e.method||"GET",X=(0,n.getTracer)(),K=X.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,I,_,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let G={params:T,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:H,incrementalCache:z,hmrRefreshHash:(0,i.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,i)=>E.onRequestError(e,t,a,i,P)},sharedContext:{buildId:v,deploymentId:S}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!B&&q&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await E.handle(J,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let n=G.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=G.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:x.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 E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),t}},Z=async(i,s)=>{try{var o,u;let i=await E.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:N,responseGenerator:Y,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==x.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",q?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&D||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:q})},!1,P),D)throw t;await (0,p.sendResponse)(V,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=X.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")||U,o=`${F} ${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)await Z(K,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!$)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,E,"serverHooks",0,v,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(26828),n=e.i(68426);let s=(0,a.createLogger)("exam"),o="least_practiced";function u(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function l(e,r){let a,i=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.masteryLevel=0:"mastered"===r.scope&&(a.masteryLevel={gt:0}),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??o)==="random"?u(i,r.count):function(e,t,r=Math.random){return u(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(i,r.count)}function d(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function c(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function p(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",c(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);s.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let m=new Set;async function h(e,r="zh"){if(m.has(e))return;m.add(e);let a=null;try{let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!n)return;let s=n.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,i.startBackgroundTask)({userId:n.userId,kind:"exam",subject:n.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await p(s.shift(),n.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let c=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),m=d(c.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:m}}),a?.setProgress(u,o,c.filter(e=>"failed"===e.status).length),"failed"===m?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){s.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{m.delete(e)}}let g={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function f(e,a,o,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==o)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let p={userId:o,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let n=d.errorItem;if(!n)throw Error("SOURCE_DELETED");let s=await (0,i.trackBackgroundTask)({...p,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(n.questionText||"",c(n),l,d.paper.difficulty,n.gradeSemester,n.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await w(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let s=d.errorItem?.subject?(0,n.resolveNotebookScope)(d.errorItem.subject):null,o=s?.subject?n.SUBJECT_DISPLAY_NAMES[s.subject]:null,u=await (0,i.trackBackgroundTask)({...p,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let c={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:c}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:c})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:g});return s.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function w(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:d(r.map(e=>e.status))}})}async function x(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,o,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,h,"isPaperGenerating",0,function(e){return m.has(e)},"recordExamResults",0,x,"regenerateExamQuestion",0,f,"selectSourceItems",0,l])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0rdo0a4._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[19464,e=>e.a(async(t,i)=>{try{var o=e.i(58821),n=e.i(13618),r=e.i(79832),a=e.i(92938),s=e.i(93963),A=e.i(29236),l=e.i(90604),u=e.i(58078),d=e.i(50377),c=t([r]);[r]=c.then?(await c)():c;let E=(0,d.createLogger)("api:ai:test"),R="/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCABkAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2aiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACobu5js7SW5lDFIkLsEXJIA6AdzU1QXpuxZTfYVha62HyhOxCbu24gE4+lAEOm6kmorPiCa3ltpfKmhm27kbarfwkg5VlPBPWrAuYXgeaOQSohYMY/n5UkMOO4IIx1yMVQ0XT57XS3tr1EWaRmaWSK4Z2lZurltqkEnPAHAAx04ZpegnR9MurW0vJjNPJNIksrvIIy7u6/KzHpu5P8WMnk0ATabrEeozz25tbi1ngRJGinC7tr52n5WOM7W4OCMcjpVy5uEtbWW5k3bIULttUscAZOAOprL0fS7m2vL+7uobS2a9Cb4bUlkLjdukJKj5m3AHjog5NS6NoNtonnfZ33edt3fuIY+mf+eaLnr3z7d6AJ9N1NNSSbEE1vLby+VLDMF3I21WH3SR91lPB71dqpYWYtEmyoDzTySud27dluOcD+EKMdsYycZNugAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==",g="image/jpeg";function p(e){let t=e instanceof Error?e.message:String(e),i=t.toLowerCase();for(let e of["AI_CONNECTION_FAILED","AI_TIMEOUT_ERROR","AI_QUOTA_EXCEEDED","AI_PERMISSION_DENIED","AI_NOT_FOUND","AI_RESPONSE_ERROR","AI_AUTH_ERROR","AI_SERVICE_UNAVAILABLE","AI_UNKNOWN_ERROR"])if(t.includes(e))return e;return i.includes("401")||i.includes("unauthorized")||i.includes("api key")?"AI_AUTH_ERROR":i.includes("403")||i.includes("forbidden")?"AI_PERMISSION_DENIED":i.includes("404")||i.includes("not found")?"AI_NOT_FOUND":i.includes("429")||i.includes("rate limit")||i.includes("too many")||i.includes("quota")||i.includes("额度")?"AI_QUOTA_EXCEEDED":i.includes("fetch failed")||i.includes("network")||i.includes("connect")||i.includes("enotfound")||i.includes("econnrefused")||i.includes("etimedout")||i.includes("econnreset")?"AI_CONNECTION_FAILED":i.includes("timeout")||i.includes("timed out")||i.includes("aborted")||i.includes("408")?"AI_TIMEOUT_ERROR":i.includes("500")||i.includes("502")||i.includes("503")||i.includes("504")||i.includes("overloaded")?"AI_UNKNOWN_ERROR":i.includes("invalid json")||i.includes("parse")||i.includes("missing critical xml")?"AI_RESPONSE_ERROR":"AI_UNKNOWN_ERROR"}async function K(e){try{let t,i,d,c=await (0,n.getServerSession)(r.authOptions);if(!c?.user)return o.NextResponse.json({error:"Unauthorized"},{status:401});if(!(0,u.requireAdmin)(c))return o.NextResponse.json({error:"Admin access required"},{status:403});let{provider:K,apiKey:h,baseUrl:I,model:O,endpoint:C,deploymentName:m,apiVersion:N,language:f="zh"}=await e.json();if(!K||!h)return o.NextResponse.json({error:"Missing provider or apiKey"},{status:400});E.info({provider:K,model:O,baseUrl:I||C},"AI 连接测试开始");let w=!1,v=!1;try{if("openai"===K){let e=new a.OpenAIProvider({apiKey:h,baseUrl:I,model:O}),t=await e.analyzeImage(R,g,f);(t.questionText||t.analysis)&&(w=!0,v=!0,d=O||"gpt-4o")}else if("gemini"===K){let e=new s.GeminiProvider({apiKey:h,baseUrl:I,model:O}),t=await e.analyzeImage(R,g,f);(t.questionText||t.analysis)&&(w=!0,v=!0,d=O||"gemini-2.0-flash")}else if("anthropic"===K){let e=new l.AnthropicProvider({apiKey:h,baseUrl:I,model:O}),t=await e.analyzeImage(R,g,f);(t.questionText||t.analysis)&&(w=!0,v=!0,d=O||l.DEFAULT_ANTHROPIC_MODEL)}else if("azure"===K){if(!C||!m)return o.NextResponse.json({error:"Azure 需要 endpoint 和 deploymentName"},{status:400});let e=new A.AzureOpenAIProvider({apiKey:h,endpoint:C,deploymentName:m,apiVersion:N,model:O}),t=await e.analyzeImage(R,g,f);(t.questionText||t.analysis)&&(w=!0,v=!0,d=O||m)}}catch(n){let e=p(n),o=n instanceof Error?n.message:String(n);E.info({error:o,errorCode:e,provider:K},"视觉测试失败"),["AI_AUTH_ERROR","AI_CONNECTION_FAILED","AI_TIMEOUT_ERROR","AI_QUOTA_EXCEEDED","AI_PERMISSION_DENIED","AI_SERVICE_UNAVAILABLE"].includes(e)?(t=e,i=e,E.warn({errorCode:e,provider:K},"配置错误,跳过文本测试")):i="VISION_NOT_SUPPORTED"}if(!w&&!t)try{if("openai"===K){let e=new a.OpenAIProvider({apiKey:h,baseUrl:I,model:O});(await e.generateSimilarQuestion("1+1=?",["基础算术"],f,"easy")).questionText&&(w=!0,d=O||"gpt-4o")}else if("gemini"===K){let e=new s.GeminiProvider({apiKey:h,baseUrl:I,model:O});(await e.generateSimilarQuestion("1+1=?",["基础算术"],f,"easy")).questionText&&(w=!0,d=O||"gemini-2.0-flash")}else if("anthropic"===K){let e=new l.AnthropicProvider({apiKey:h,baseUrl:I,model:O});(await e.generateSimilarQuestion("1+1=?",["基础算术"],f,"easy")).questionText&&(w=!0,d=O||l.DEFAULT_ANTHROPIC_MODEL)}else if("azure"===K){let e=new A.AzureOpenAIProvider({apiKey:h,endpoint:C,deploymentName:m,apiVersion:N,model:O});(await e.generateSimilarQuestion("1+1=?",["基础算术"],f,"easy")).questionText&&(w=!0,d=O||m)}}catch(e){t=p(e),E.warn({error:e,provider:K},"文本生成测试失败")}let _={success:w,textSupport:w,visionSupport:v,textError:t,visionError:i,modelInfo:d};return E.info({response:_},"AI 连接测试完成"),o.NextResponse.json(_)}catch(e){return E.error({error:e},"AI 测试 API 异常"),o.NextResponse.json({error:e instanceof Error?e.message:"Internal server error"},{status:500})}}e.s(["POST",0,K]),i()}catch(e){i(e)}},!1),23684,e=>{"use strict";var t=e.i(47909),i=e.i(74017),o=e.i(96250),n=e.i(59756),r=e.i(61916),a=e.i(74677),s=e.i(69741),A=e.i(16795),l=e.i(87718),u=e.i(95169),d=e.i(47587),c=e.i(66012),p=e.i(70101),K=e.i(74838),E=e.i(10372),R=e.i(93695),g=e.i(9580);e.i(52474);var h=e.i(220);let I=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/ai/test/route",pathname:"/api/ai/test",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/ai/test/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(19464),...{}}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:m}=I;async function N(e,t,o){o.requestMeta&&(0,n.setRequestMeta)(e,o.requestMeta),I.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let O="/api/ai/test/route";O=O.replace(/\/index$/,"")||"/";let C=await I.prepare(e,t,{srcPage:O,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:m,deploymentId:N,params:f,nextConfig:w,parsedUrl:v,isDraftMode:_,prerenderManifest:S,routerServerContext:T,isOnDemandRevalidate:x,revalidateOnlyGenerated:y,resolvedPathname:P,clientReferenceManifest:D,serverActionsManifest:U}=C,b=(0,s.normalizeAppPath)(O),M=!!S.routes[P]&&(I.isDev||(0,g.isRouteCacheOwner)(P,I.cacheOwner,S.routes[P])),k=!!(S.dynamicRoutes[b]||M),q=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,v,!1):t.end("This page could not be found"),null);if(k&&!_){let e=S.dynamicRoutes[b];if(e&&!1===e.fallback&&!M){if(w.adapterPath)return await q();throw new R.NoFallbackError}}let z=null;!k||I.isDev||_||(z="/index"===(z=P)?"/":z);let B=!0===I.isDev||!k,H=k&&!B;U&&D&&(0,a.setManifestsSingleton)({page:O,clientReferenceManifest:D,serverActionsManifest:U});let Q=e.method||"GET",L=(0,r.getTracer)(),j=L.getActiveScopeSpan(),F=!!(null==T?void 0:T.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,w,S,W);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let J={params:f,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts,useCacheTimeout:w.experimental.useCacheTimeout},cacheComponents:!!w.cacheComponents,validationLevel:w.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:B,incrementalCache:V,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:w.cacheLife,staticPageGenerationTimeout:w.staticPageGenerationTimeout,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,o,n)=>I.onRequestError(e,t,o,n,T)},sharedContext:{buildId:m,deploymentId:N}},Z=new A.NodeNextRequest(e),X=new A.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(Z,(0,l.signalFromNodeResponse)(t)),G=async({previousCacheEntry:i})=>{try{if(!W&&x&&y&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await I.handle(Y,J);e.fetchMetrics=J.renderOpts.fetchMetrics;let r=J.renderOpts.pendingWaitUntil;r&&o.waitUntil&&(o.waitUntil(r),r=void 0);let a=J.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(Z,X,n,r),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);a&&(t[E.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,o=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==i&&i>0?w.expireTime:void 0:J.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:o}}}}catch(t){throw(null==i?void 0:i.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:x})},!1,T),t}},$=async(n,a)=>{try{var s,A;let n=await I.handleResponse({req:e,nextConfig:w,cacheKey:z,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:y,responseGenerator:G,waitUntil:o.waitUntil,isMinimalMode:W});if(!k)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(A=n.value)?void 0:A.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",x?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,p.fromNodeOutgoingHttpHeaders)(n.value.headers);W&&k||r.delete(E.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,K.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(Z,X,new Response(n.value.body,{headers:r,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:x})},!1,T),k)throw t;await (0,c.sendResponse)(Z,X,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:r.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let i=L.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=i.get("next.route")||b,s=`${Q} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":s}),n.updateName(s),a&&a!==n&&(a.setAttribute("http.route",o),a.updateName(s))})()}};if(F&&j)await $(j,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${Q} ${O}`,kind:r.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":e.url}},e=>$(e,t)),void 0,!F)}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})},"routeModule",0,I,"serverHooks",0,m,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,C])}];
|
|
1
|
+
module.exports=[19464,e=>e.a(async(t,i)=>{try{var o=e.i(58821),n=e.i(13618),r=e.i(79832),a=e.i(92938),s=e.i(93963),A=e.i(29236),l=e.i(90604),u=e.i(98876),d=e.i(58078),c=e.i(50377),E=t([r]);[r]=E.then?(await E)():E;let R=(0,c.createLogger)("api:ai:test"),g="/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCABkAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2aiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACobu5js7SW5lDFIkLsEXJIA6AdzU1QXpuxZTfYVha62HyhOxCbu24gE4+lAEOm6kmorPiCa3ltpfKmhm27kbarfwkg5VlPBPWrAuYXgeaOQSohYMY/n5UkMOO4IIx1yMVQ0XT57XS3tr1EWaRmaWSK4Z2lZurltqkEnPAHAAx04ZpegnR9MurW0vJjNPJNIksrvIIy7u6/KzHpu5P8WMnk0ATabrEeozz25tbi1ngRJGinC7tr52n5WOM7W4OCMcjpVy5uEtbWW5k3bIULttUscAZOAOprL0fS7m2vL+7uobS2a9Cb4bUlkLjdukJKj5m3AHjog5NS6NoNtonnfZ33edt3fuIY+mf+eaLnr3z7d6AJ9N1NNSSbEE1vLby+VLDMF3I21WH3SR91lPB71dqpYWYtEmyoDzTySud27dluOcD+EKMdsYycZNugAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==",h="image/jpeg";function p(e){let t=e instanceof Error?e.message:String(e),i=t.toLowerCase();for(let e of["AI_CONNECTION_FAILED","AI_TIMEOUT_ERROR","AI_QUOTA_EXCEEDED","AI_PERMISSION_DENIED","AI_NOT_FOUND","AI_RESPONSE_ERROR","AI_AUTH_ERROR","AI_SERVICE_UNAVAILABLE","AI_UNKNOWN_ERROR"])if(t.includes(e))return e;return i.includes("401")||i.includes("unauthorized")||i.includes("api key")?"AI_AUTH_ERROR":i.includes("403")||i.includes("forbidden")?"AI_PERMISSION_DENIED":i.includes("404")||i.includes("not found")?"AI_NOT_FOUND":i.includes("429")||i.includes("rate limit")||i.includes("too many")||i.includes("quota")||i.includes("额度")?"AI_QUOTA_EXCEEDED":i.includes("fetch failed")||i.includes("network")||i.includes("connect")||i.includes("enotfound")||i.includes("econnrefused")||i.includes("etimedout")||i.includes("econnreset")?"AI_CONNECTION_FAILED":i.includes("timeout")||i.includes("timed out")||i.includes("aborted")||i.includes("408")?"AI_TIMEOUT_ERROR":i.includes("500")||i.includes("502")||i.includes("503")||i.includes("504")||i.includes("overloaded")?"AI_UNKNOWN_ERROR":i.includes("invalid json")||i.includes("parse")||i.includes("missing critical xml")?"AI_RESPONSE_ERROR":"AI_UNKNOWN_ERROR"}async function K(e){try{let t,i,c,E=await (0,n.getServerSession)(r.authOptions);if(!E?.user)return o.NextResponse.json({error:"Unauthorized"},{status:401});if(!(0,d.requireAdmin)(E))return o.NextResponse.json({error:"Admin access required"},{status:403});let{provider:K,apiKey:I,baseUrl:O,model:C,endpoint:m,deploymentName:f,apiVersion:N,language:w="zh"}=await e.json();if(!K||!I)return o.NextResponse.json({error:"Missing provider or apiKey"},{status:400});R.info({provider:K,model:C,baseUrl:O||m},"AI 连接测试开始");let v=!1,_=!1;try{if("openai"===K){let e=new a.OpenAIProvider({apiKey:I,baseUrl:O,model:C}),t=await e.analyzeImage(g,h,w);(t.questionText||t.analysis)&&(v=!0,_=!0,c=C||a.DEFAULT_OPENAI_MODEL)}else if("gemini"===K){let e=new s.GeminiProvider({apiKey:I,baseUrl:O,model:C}),t=await e.analyzeImage(g,h,w);(t.questionText||t.analysis)&&(v=!0,_=!0,c=C||"gemini-2.0-flash")}else if("anthropic"===K){let e=new l.AnthropicProvider({apiKey:I,baseUrl:O,model:C}),t=await e.analyzeImage(g,h,w);(t.questionText||t.analysis)&&(v=!0,_=!0,c=C||l.DEFAULT_ANTHROPIC_MODEL)}else if((0,u.isVendorProvider)(K)){let e=(0,u.resolveVendorConfig)(K,{apiKey:I,baseUrl:O,model:C}),t=await new a.OpenAIProvider(e).analyzeImage(g,h,w);(t.questionText||t.analysis)&&(v=!0,_=!0,c=e.model)}else if("azure"===K){if(!m||!f)return o.NextResponse.json({error:"Azure 需要 endpoint 和 deploymentName"},{status:400});let e=new A.AzureOpenAIProvider({apiKey:I,endpoint:m,deploymentName:f,apiVersion:N,model:C}),t=await e.analyzeImage(g,h,w);(t.questionText||t.analysis)&&(v=!0,_=!0,c=C||f)}}catch(n){let e=p(n),o=n instanceof Error?n.message:String(n);R.info({error:o,errorCode:e,provider:K},"视觉测试失败"),["AI_AUTH_ERROR","AI_CONNECTION_FAILED","AI_TIMEOUT_ERROR","AI_QUOTA_EXCEEDED","AI_PERMISSION_DENIED","AI_SERVICE_UNAVAILABLE"].includes(e)?(t=e,i=e,R.warn({errorCode:e,provider:K},"配置错误,跳过文本测试")):i="VISION_NOT_SUPPORTED"}if(!v&&!t)try{if("openai"===K){let e=new a.OpenAIProvider({apiKey:I,baseUrl:O,model:C});(await e.generateSimilarQuestion("1+1=?",["基础算术"],w,"easy")).questionText&&(v=!0,c=C||a.DEFAULT_OPENAI_MODEL)}else if("gemini"===K){let e=new s.GeminiProvider({apiKey:I,baseUrl:O,model:C});(await e.generateSimilarQuestion("1+1=?",["基础算术"],w,"easy")).questionText&&(v=!0,c=C||"gemini-2.0-flash")}else if("anthropic"===K){let e=new l.AnthropicProvider({apiKey:I,baseUrl:O,model:C});(await e.generateSimilarQuestion("1+1=?",["基础算术"],w,"easy")).questionText&&(v=!0,c=C||l.DEFAULT_ANTHROPIC_MODEL)}else if((0,u.isVendorProvider)(K)){let e=(0,u.resolveVendorConfig)(K,{apiKey:I,baseUrl:O,model:C});(await new a.OpenAIProvider(e).generateSimilarQuestion("1+1=?",["基础算术"],w,"easy")).questionText&&(v=!0,c=e.model)}else if("azure"===K){let e=new A.AzureOpenAIProvider({apiKey:I,endpoint:m,deploymentName:f,apiVersion:N,model:C});(await e.generateSimilarQuestion("1+1=?",["基础算术"],w,"easy")).questionText&&(v=!0,c=C||f)}}catch(e){t=p(e),R.warn({error:e,provider:K},"文本生成测试失败")}let T={success:v,textSupport:v,visionSupport:_,textError:t,visionError:i,modelInfo:c};return R.info({response:T},"AI 连接测试完成"),o.NextResponse.json(T)}catch(e){return R.error({error:e},"AI 测试 API 异常"),o.NextResponse.json({error:e instanceof Error?e.message:"Internal server error"},{status:500})}}e.s(["POST",0,K]),i()}catch(e){i(e)}},!1),23684,e=>{"use strict";var t=e.i(47909),i=e.i(74017),o=e.i(96250),n=e.i(59756),r=e.i(61916),a=e.i(74677),s=e.i(69741),A=e.i(16795),l=e.i(87718),u=e.i(95169),d=e.i(47587),c=e.i(66012),E=e.i(70101),p=e.i(74838),K=e.i(10372),R=e.i(93695),g=e.i(9580);e.i(52474);var h=e.i(220);let I=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/ai/test/route",pathname:"/api/ai/test",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/ai/test/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(19464),...{}}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:m}=I;async function f(e,t,o){o.requestMeta&&(0,n.setRequestMeta)(e,o.requestMeta),I.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let O="/api/ai/test/route";O=O.replace(/\/index$/,"")||"/";let C=await I.prepare(e,t,{srcPage:O,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:m,deploymentId:f,params:N,nextConfig:w,parsedUrl:v,isDraftMode:_,prerenderManifest:T,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:x,resolvedPathname:y,clientReferenceManifest:D,serverActionsManifest:U}=C,M=(0,s.normalizeAppPath)(O),b=!!T.routes[y]&&(I.isDev||(0,g.isRouteCacheOwner)(y,I.cacheOwner,T.routes[y])),q=!!(T.dynamicRoutes[M]||b),L=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,v,!1):t.end("This page could not be found"),null);if(q&&!_){let e=T.dynamicRoutes[M];if(e&&!1===e.fallback&&!b){if(w.adapterPath)return await L();throw new R.NoFallbackError}}let k=null;!q||I.isDev||_||(k="/index"===(k=y)?"/":k);let z=!0===I.isDev||!q,Q=q&&!z;U&&D&&(0,a.setManifestsSingleton)({page:O,clientReferenceManifest:D,serverActionsManifest:U});let B=e.method||"GET",H=(0,r.getTracer)(),F=H.getActiveScopeSpan(),j=!!(null==S?void 0:S.isWrappedByNextServer),V=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,w,T,V);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let J={params:N,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts,useCacheTimeout:w.experimental.useCacheTimeout},cacheComponents:!!w.cacheComponents,validationLevel:w.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:z,incrementalCache:W,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:w.cacheLife,staticPageGenerationTimeout:w.staticPageGenerationTimeout,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,o,n)=>I.onRequestError(e,t,o,n,S)},sharedContext:{buildId:m,deploymentId:f}},Z=new A.NodeNextRequest(e),X=new A.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(Z,(0,l.signalFromNodeResponse)(t)),G=async({previousCacheEntry:i})=>{try{if(!V&&P&&x&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await I.handle(Y,J);e.fetchMetrics=J.renderOpts.fetchMetrics;let r=J.renderOpts.pendingWaitUntil;r&&o.waitUntil&&(o.waitUntil(r),r=void 0);let a=J.renderOpts.collectedTags;if(!q)return await (0,c.sendResponse)(Z,X,n,r),null;{let e=await n.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(n.headers);a&&(t[K.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=K.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,o=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=K.INFINITE_CACHE?!1!==i&&i>0?w.expireTime:void 0:J.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:o}}}}catch(t){throw(null==i?void 0:i.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,S),t}},$=async(n,a)=>{try{var s,A;let n=await I.handleResponse({req:e,nextConfig:w,cacheKey:k,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:x,responseGenerator:G,waitUntil:o.waitUntil,isMinimalMode:V});if(!q)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(A=n.value)?void 0:A.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,E.fromNodeOutgoingHttpHeaders)(n.value.headers);V&&q||r.delete(K.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,p.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(Z,X,new Response(n.value.body,{headers:r,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,S),q)throw t;await (0,c.sendResponse)(Z,X,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:r.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let i=H.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=i.get("next.route")||M,s=`${B} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":s}),n.updateName(s),a&&a!==n&&(a.setAttribute("http.route",o),a.updateName(s))})()}};if(j&&F)await $(F,void 0);else{let t=H.getActiveScopeSpan();await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${O}`,kind:r.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},e=>$(e,t)),void 0,!j)}}e.s(["handler",0,f,"patchFetch",0,function(){return(0,o.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})},"routeModule",0,I,"serverHooks",0,m,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,C])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_13ffmxv._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[15965,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(69719),s=e.i(63856),n=e.i(76759),o=e.i(50377),u=e.i(74866),l=e.i(4752),d=t([s]);[s]=d.then?(await d)():d;let m=(0,o.createLogger)("api:exams:results"),p=i.z.object({takenAt:i.z.string().datetime({offset:!0}).optional(),results:i.z.array(i.z.object({questionId:i.z.string().min(1),result:i.z.enum(l.PRACTICE_RESULTS).nullable()})).min(1).max(100)});async function c(e,{params:t}){let{id:r}=await t;try{let t=await (0,s.getCurrentUser)();if(!t)return(0,n.unauthorized)("Authentication required");let i=p.safeParse(await e.json());if(!i.success)return(0,n.validationError)("Invalid exam results",i.error.issues);let o=i.data.takenAt?new Date(i.data.takenAt):new Date,d=await (0,u.recordExamResults)(r,t.id,o,i.data.results);return(0,l.scheduleMasteryEvaluation)(d),a.NextResponse.json({success:!0,affectedCount:d.length})}catch(e){if(e instanceof Error&&"EXAM_NOT_FOUND"===e.message)return(0,n.notFound)("Exam paper not found");return m.error({error:e},"Error recording exam results"),(0,n.internalError)("Failed to record exam results")}}e.s(["POST",0,c]),r()}catch(e){r(e)}},!1),59744,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),s=e.i(61916),n=e.i(74677),o=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),m=e.i(66012),p=e.i(70101),f=e.i(74838),h=e.i(10372),g=e.i(93695),w=e.i(9580);e.i(52474);var y=e.i(220);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/results/route",pathname:"/api/exams/[id]/results",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/results/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(15965),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:R,serverHooks:v}=E;async function S(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/exams/[id]/results/route";x=x.replace(/\/index$/,"")||"/";let R=await E.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:S,params:I,nextConfig:T,parsedUrl:A,isDraftMode:_,prerenderManifest:C,routerServerContext:q,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,resolvedPathname:M,clientReferenceManifest:N,serverActionsManifest:O}=R,U=(0,o.normalizeAppPath)(x),k=!!C.routes[M]&&(E.isDev||(0,w.isRouteCacheOwner)(M,E.cacheOwner,C.routes[M])),D=!!(C.dynamicRoutes[U]||k),L=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!_){let e=C.dynamicRoutes[U];if(e&&!1===e.fallback&&!k){if(T.adapterPath)return await L();throw new g.NoFallbackError}}let j=null;!D||E.isDev||_||(j="/index"===(j=M)?"/":j);let H=!0===E.isDev||!D,Q=D&&!H;O&&N&&(0,n.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:O});let F=e.method||"GET",X=(0,s.getTracer)(),$=X.getActiveScopeSpan(),z=!!(null==q?void 0:q.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),K=(0,i.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,T,C,B);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:I,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:H,incrementalCache:K,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,q)},sharedContext:{buildId:v,deploymentId:S}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!B&&P&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await E.handle(J,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let n=G.renderOpts.collectedTags;if(!D)return await (0,m.sendResponse)(V,W,i,s),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);n&&(t[h.NEXT_CACHE_TAGS_HEADER]=n),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?T.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:y.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 E.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,q),t}},Z=async(i,n)=>{try{var o,u;let i=await E.handleResponse({req:e,nextConfig:T,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,responseGenerator:Y,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==y.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.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);B&&D||s.delete(h.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,f.getCacheControlHeader)(i.cacheControl)),await (0,m.sendResponse)(V,W,new Response(i.value.body,{headers:s,status:i.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,q),D)throw t;await (0,m.sendResponse)(V,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:s.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=X.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")||U,o=`${F} ${a}`;i.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),i.updateName(o),n&&n!==i&&(n.setAttribute("http.route",a),n.updateName(o))})()}};if(z&&$)await Z($,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!z)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:R})},"routeModule",0,E,"serverHooks",0,v,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,R])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),s=e.i(98043),n=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?s.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=n.then?(await n)():n,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(26828),s=e.i(68426);let n=(0,a.createLogger)("exam"),o="least_practiced";function u(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function l(e,r){let a,i=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.masteryLevel=0:"mastered"===r.scope&&(a.masteryLevel={gt:0}),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??o)==="random"?u(i,r.count):function(e,t,r=Math.random){return u(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(i,r.count)}function d(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function c(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function m(e,a,i){let s=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!s?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let n=await (0,r.getAIService)().generateSimilarQuestion(s.errorItem.questionText||"",c(s.errorItem),i,a,s.errorItem.gradeSemester,s.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:n.questionText,answerText:n.answerText,analysis:n.analysis,figureSvg:n.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);n.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let p=new Set;async function f(e,r="zh"){if(p.has(e))return;p.add(e);let a=null;try{let s=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!s)return;let n=s.questions.map(e=>e.id),o=n.length,u=0;o>0&&(a=(0,i.startBackgroundTask)({userId:s.userId,kind:"exam",subject:s.title,link:`/exams/${e}`,total:o})),n.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:n}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;n.length>0;)await m(n.shift(),s.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,n.length)},l));let c=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),p=d(c.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:p}}),a?.setProgress(u,o,c.filter(e=>"failed"===e.status).length),"failed"===p?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){n.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{p.delete(e)}}let h={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function g(e,a,o,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==o)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let m={userId:o,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let s=d.errorItem;if(!s)throw Error("SOURCE_DELETED");let n=await (0,i.trackBackgroundTask)({...m,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(s.questionText||"",c(s),l,d.paper.difficulty,s.gradeSemester,s.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:n.questionText,answerText:n.answerText,analysis:n.analysis,figureSvg:n.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await w(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let n=d.errorItem?.subject?(0,s.resolveNotebookScope)(d.errorItem.subject):null,o=n?.subject?s.SUBJECT_DISPLAY_NAMES[n.subject]:null,u=await (0,i.trackBackgroundTask)({...m,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let c={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:c}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:c})])}let p=await t.prisma.examQuestion.findUnique({where:{id:a},select:h});return n.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),p}async function w(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:d(r.map(e=>e.status))}})}async function y(e,r,a,i){let s=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!s||s.userId!==r)throw Error("EXAM_NOT_FOUND");let n=new Map(s.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=n.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:s.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,o,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,f,"isPaperGenerating",0,function(e){return p.has(e)},"recordExamResults",0,y,"regenerateExamQuestion",0,g,"selectSourceItems",0,l])},4752,e=>{"use strict";var t=e.i(98043),r=e.i(43911);let a=(0,e.i(50377).createLogger)("mastery"),i=["correct","wrong","not_attempted"];function s(e){return"string"==typeof e&&i.includes(e)}let n={easy:.85,medium:.95,hard:1,harder:1},o={wrong:.1,not_attempted:0};async function u(e){let i=await t.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 u=i.practiceRecords.filter(e=>s(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 t=.15,r=.5;return e.forEach((a,i)=>{let s=Math.pow(.7,e.length-1-i),u="correct"===a.result?n[a.difficulty||"medium"]??n.medium:o[a.result];t+=s*u,r+=s}),Math.round(t/r*100)/100}(u);if(null===l)return void await t.prisma.errorItem.update({where:{id:i.id},data:{masteryProbability:null,masteryReason:null,masterySource:null,masteryEvaluatedAt:null}});let d=l,c="",m="rule";try{let e=await (0,r.getAIService)().evaluateMastery({questionText:i.questionText||"",knowledgePoints:i.tags.map(e=>e.name),mistakeStatus:i.mistakeStatus,history:u,ruleProbability:l});d=e.probability,c=e.reason,m="ai"}catch(r){a.warn({errorItemId:e,error:r instanceof Error?r.message:String(r)},"AI mastery evaluation failed, using rule estimate");let t=u.filter(e=>"correct"===e.result).length;c=`共练习 ${u.length} 次,做对 ${t} 次(规则估算)`}await t.prisma.errorItem.update({where:{id:i.id},data:{masteryProbability:d,masteryReason:c,masterySource:m,masteryEvaluatedAt:new Date,masteryLevel:+(d>=.8)}}),a.info({errorItemId:e,probability:d,source:m},"Mastery evaluated")}let l=new Set,d=!1;async function c(){if(!d){d=!0;try{for(;l.size>0;){let[e]=l;l.delete(e);try{await u(e)}catch(t){a.error({errorItemId:e,error:t},"Mastery evaluation failed")}}}finally{d=!1}}}e.s(["PRACTICE_RESULTS",0,i,"isPracticeResult",0,s,"scheduleMasteryEvaluation",0,function(e){e.forEach(e=>l.add(e)),c()}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_167vv93._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[66455,e=>e.a(async(t,a)=>{try{var r=e.i(58821),n=e.i(13618),i=e.i(79832),o=e.i(58078),s=e.i(76759),l=e.i(90604),u=e.i(50377),
|
|
1
|
+
module.exports=[66455,e=>e.a(async(t,a)=>{try{var r=e.i(58821),n=e.i(13618),i=e.i(79832),o=e.i(58078),s=e.i(76759),l=e.i(90604),d=e.i(98876),u=e.i(50377),c=t([i]);[i]=c.then?(await c)():c;let v=(0,u.createLogger)("api:ai:models");async function p(e,t){let a=`${t}/v1beta/models?key=${e}`,r=await fetch(a,{headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw v.error({status:r.status,errorText:e},"Gemini models API error"),Error(`Gemini API error: ${r.status}`)}return((await r.json()).models||[]).map(e=>{let t=e.name.replace(/^models\//,"");return{id:t,name:t,owned_by:"Google"}})}async function h(e,t){let a=`${t}/models`,r=await fetch(a,{headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw v.error({statusText:r.statusText},"OpenAI models API error"),Error(`API error: ${r.status}`);return((await r.json()).data||[]).map(e=>({id:e.id,name:e.id,owned_by:e.owned_by}))}async function m(e,t){let a=await fetch(`${t.replace(/\/+$/,"")}/v1/models?limit=100`,{headers:{"x-api-key":e,"anthropic-version":"2023-06-01"}});if(!a.ok)throw v.error({status:a.status},"Anthropic models API error"),Error(`API error: ${a.status}`);return((await a.json()).data||[]).map(e=>({id:e.id,name:e.display_name||e.id,owned_by:"Anthropic"}))}async function R(e){let t=await (0,n.getServerSession)(i.authOptions);if(!(0,o.requireAdmin)(t))return(0,s.forbidden)("Admin access required");try{let{provider:t,apiKey:a,baseUrl:n}=await e.json();if(!a)return r.NextResponse.json({error:"API key is required"},{status:400});let i=[];if("anthropic"===t)i=await m(a,n||l.DEFAULT_ANTHROPIC_BASE_URL);else if((0,d.isVendorProvider)(t))i=await h(a,n||d.VENDOR_PRESETS[t].baseUrl);else if("gemini"===t){let e=n||"https://generativelanguage.googleapis.com";i=await p(a,e)}else{let e=n||"https://api.openai.com/v1";i=await h(a,e)}return r.NextResponse.json({models:i})}catch(e){return v.error({error:e},"Error fetching models"),r.NextResponse.json({error:e.message||"Internal server error",models:[]},{status:200})}}e.s(["POST",0,R]),a()}catch(e){a(e)}},!1),50936,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),m=e.i(74838),R=e.i(10372),v=e.i(93695),w=e.i(9580);e.i(52474);var f=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/ai/models/route",pathname:"/api/ai/models",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/ai/models/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(66455),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:y}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/ai/models/route";E=E.replace(/\/index$/,"")||"/";let A=await g.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!A)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:y,deploymentId:C,params:x,nextConfig:T,parsedUrl:P,isDraftMode:S,prerenderManifest:b,routerServerContext:_,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:I,clientReferenceManifest:q,serverActionsManifest:H}=A,k=(0,s.normalizeAppPath)(E),U=!!b.routes[I]&&(g.isDev||(0,w.isRouteCacheOwner)(I,g.cacheOwner,b.routes[I])),j=!!(b.dynamicRoutes[k]||U),D=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,P,!1):t.end("This page could not be found"),null);if(j&&!S){let e=b.dynamicRoutes[k];if(e&&!1===e.fallback&&!U){if(T.adapterPath)return await D();throw new v.NoFallbackError}}let M=null;!j||g.isDev||S||(M="/index"===(M=I)?"/":M);let $=!0===g.isDev||!j,L=j&&!$;H&&q&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:H});let F=e.method||"GET",B=(0,i.getTracer)(),G=B.getActiveScopeSpan(),K=!!(null==_?void 0:_.isWrappedByNextServer),V=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,T,b,V);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let z={params:x,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:S,supportsDynamicResponse:$,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,_)},sharedContext:{buildId:y,deploymentId:C}},W=new l.NodeNextRequest(e),Z=new l.NodeNextResponse(t),J=d.NextRequestAdapter.fromNodeNextRequest(W,(0,d.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:a})=>{try{if(!V&&N&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(J,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let o=z.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(W,Z,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[R.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?T.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:N})},!1,_),t}},Y=async(n,o)=>{try{var s,l;let n=await g.handleResponse({req:e,nextConfig:T,cacheKey:M,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:Q,waitUntil:r.waitUntil,isMinimalMode:V});if(!j)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==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);V&&j||i.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,m.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(W,Z,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:N})},!1,_),j)throw t;await (0,p.sendResponse)(W,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 a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||k,s=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",r),o.updateName(s))})()}};if(K&&G)await Y(G,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Y(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})},"routeModule",0,g,"serverHooks",0,y,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,A])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_16jdov0._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[79955,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1_gkx5x._.js"].map(r=>e.l(r))).then(()=>r(35611)))},46735,e=>{e.v(r=>Promise.all(["server/chunks/[externals]__04n7qbr._.js","server/chunks/[root-of-the-server]__0rk_yxy._.js"].map(r=>e.l(r))).then(()=>r(83085)))},58078,e=>{"use strict";e.s(["requireAdmin",0,function(e){var r;return!!e&&(r=e.user,r?.role==="admin")}])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_1e1h1f1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[75185,e=>e.a(async(t,r)=>{try{var a=e.i(58821),i=e.i(98043),n=e.i(63856),s=e.i(76759),o=e.i(50377),u=e.i(74866),l=t([n]);[n]=l.then?(await l)():l;let p=(0,o.createLogger)("api:exams:id");async function d(e,{params:t}){let{id:r}=await t;try{let e=await (0,n.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.examPaper.findUnique({where:{id:r},include:{questions:{orderBy:{order:"asc"},include:{errorItem:{select:{id:!0,subject:{select:{name:!0}}}},practiceRecords:{orderBy:[{createdAt:"asc"},{id:"asc"}],select:{id:!0,result:!0,createdAt:!0}}}}}});if(!t||t.userId!==e.id)return(0,s.notFound)("Exam paper not found");"generating"!==t.status||(0,u.isPaperGenerating)(t.id)||(0,u.generateExamPaper)(t.id);let{userId:o,questions:l,...d}=t;return a.NextResponse.json({...d,questions:l.map(({errorItem:e,practiceRecords:t,...r})=>({...r,notebookName:e?.subject?.name??null,attempts:t}))})}catch(e){return p.error({error:e},"Error fetching exam paper"),(0,s.internalError)("Failed to fetch exam paper")}}async function c(e,{params:t}){let{id:r}=await t;try{let e=await (0,n.getCurrentUser)();if(!e)return(0,s.unauthorized)("Authentication required");let t=await i.prisma.examPaper.findUnique({where:{id:r},select:{userId:!0}});if(!t||t.userId!==e.id)return(0,s.notFound)("Exam paper not found");return await i.prisma.examPaper.delete({where:{id:r}}),a.NextResponse.json({success:!0})}catch(e){return p.error({error:e},"Error deleting exam paper"),(0,s.internalError)("Failed to delete exam paper")}}e.s(["DELETE",0,c,"GET",0,d]),r()}catch(e){r(e)}},!1),98057,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),u=e.i(16795),l=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),m=e.i(70101),h=e.i(74838),g=e.i(10372),f=e.i(93695),w=e.i(9580);e.i(52474);var E=e.i(220);let x=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/exams/[id]/route",pathname:"/api/exams/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/exams/[id]/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(75185),...{}}),{workAsyncStorage:R,workUnitAsyncStorage:y,serverHooks:v}=x;async function I(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/exams/[id]/route";R=R.replace(/\/index$/,"")||"/";let y=await x.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:I,params:S,nextConfig:T,parsedUrl:A,isDraftMode:C,prerenderManifest:_,routerServerContext:q,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:U,serverActionsManifest:M}=y,O=(0,o.normalizeAppPath)(R),k=!!_.routes[b]&&(x.isDev||(0,w.isRouteCacheOwner)(b,x.cacheOwner,_.routes[b])),D=!!(_.dynamicRoutes[O]||k),j=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!C){let e=_.dynamicRoutes[O];if(e&&!1===e.fallback&&!k){if(T.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!D||x.isDev||C||(L="/index"===(L=b)?"/":L);let H=!0===x.isDev||!D,Q=D&&!H;M&&U&&(0,s.setManifestsSingleton)({page:R,clientReferenceManifest:U,serverActionsManifest:M});let F=e.method||"GET",X=(0,n.getTracer)(),B=X.getActiveScopeSpan(),G=!!(null==q?void 0:q.isWrappedByNextServer),K=!!(0,i.getRequestMeta)(e,"minimalMode"),$=(0,i.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,T,_,K);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let z={params:S,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:H,incrementalCache:$,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>x.onRequestError(e,t,a,i,q)},sharedContext:{buildId:v,deploymentId:I}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:r})=>{try{if(!K&&P&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await x.handle(J,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let n=z.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=z.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,W,i,n),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[g.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>=g.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?T.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:E.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 x.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,q),t}},Z=async(i,s)=>{try{var o,u;let i=await x.handleResponse({req:e,nextConfig:T,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:Y,waitUntil:a.waitUntil,isMinimalMode:K});if(!D)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==E.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});K||t.setHeader("x-nextjs-cache",P?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,m.fromNodeOutgoingHttpHeaders)(i.value.headers);K&&D||n.delete(g.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(V,W,new Response(i.value.body,{headers:n,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:Q,isOnDemandRevalidate:P})},!1,q),D)throw t;await (0,p.sendResponse)(V,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=X.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,o=`${F} ${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(G&&B)await Z(B,void 0);else{let t=X.getActiveScopeSpan();await X.withPropagatedContext(e.headers,()=>X.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${R}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:y})},"routeModule",0,x,"serverHooks",0,v,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,y])},63856,e=>e.a(async(t,r)=>{try{var a=e.i(13618),i=e.i(79832),n=e.i(98043),s=t([i]);async function o(){let e=await (0,a.getServerSession)(i.authOptions);return e?.user?.email?n.prisma.user.findUnique({where:{email:e.user.email}}):null}[i]=s.then?(await s)():s,e.s(["getCurrentUser",0,o]),r()}catch(e){r(e)}},!1),74866,e=>{"use strict";var t=e.i(98043),r=e.i(43911),a=e.i(50377),i=e.i(26828),n=e.i(68426);let s=(0,a.createLogger)("exam"),o="least_practiced";function u(e,t,r=Math.random){let a=[...e];for(let e=a.length-1;e>0;e--){let t=Math.floor(r()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,t)}async function l(e,r){let a,i=(await t.prisma.errorItem.findMany({where:(a={userId:e,subjectId:{in:r.subjectIds},shortId:{not:null}},"unmastered"===r.scope?a.masteryLevel=0:"mastered"===r.scope&&(a.masteryLevel={gt:0}),r.tagNames&&r.tagNames.length>0&&(a.tags={some:{name:{in:r.tagNames}}}),a),select:{id:!0,shortId:!0,_count:{select:{practiceRecords:!0}}}})).map(({_count:e,...t})=>({...t,practiceCount:e.practiceRecords}));return(r.pickRule??o)==="random"?u(i,r.count):function(e,t,r=Math.random){return u(e,e.length,r).sort((e,t)=>e.practiceCount-t.practiceCount).slice(0,t)}(i,r.count)}function d(e){if(e.some(e=>"pending"===e))return"generating";let t=e.filter(e=>"ready"===e).length;return t===e.length?"ready":0===t?"failed":"partial"}function c(e){if(e.tags.length>0)return e.tags.map(e=>e.name);try{let t=JSON.parse(e.knowledgePoints||"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function p(e,a,i){let n=await t.prisma.examQuestion.findUnique({where:{id:e},select:{errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}}}}}});if(!n?.errorItem)return void await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:"SOURCE_DELETED"}});try{let s=await (0,r.getAIService)().generateSimilarQuestion(n.errorItem.questionText||"",c(n.errorItem),i,a,n.errorItem.gradeSemester,n.errorItem.figureSvg);await t.prisma.examQuestion.update({where:{id:e},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}})}catch(a){let r=a instanceof Error?a.message:String(a);s.warn({questionId:e,error:r},"Exam question generation failed"),await t.prisma.examQuestion.update({where:{id:e},data:{status:"failed",error:r.slice(0,200)}})}}let m=new Set;async function h(e,r="zh"){if(m.has(e))return;m.add(e);let a=null;try{let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,title:!0,difficulty:!0,questions:{where:{status:{not:"ready"}},select:{id:!0}}}});if(!n)return;let s=n.questions.map(e=>e.id),o=s.length,u=0;o>0&&(a=(0,i.startBackgroundTask)({userId:n.userId,kind:"exam",subject:n.title,link:`/exams/${e}`,total:o})),s.length>0&&(await t.prisma.examQuestion.updateMany({where:{id:{in:s}},data:{status:"pending",error:null}}),await t.prisma.examPaper.update({where:{id:e},data:{status:"generating"}}));let l=async()=>{for(;s.length>0;)await p(s.shift(),n.difficulty,r),a?.setProgress(++u,o)};await Promise.all(Array.from({length:Math.min(3,s.length)},l));let c=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}}),m=d(c.map(e=>e.status));await t.prisma.examPaper.update({where:{id:e},data:{status:m}}),a?.setProgress(u,o,c.filter(e=>"failed"===e.status).length),"failed"===m?a?.fail("ALL_FAILED"):a?.succeed()}catch(t){s.error({paperId:e,error:t},"Exam paper generation failed"),a?.fail(t)}finally{m.delete(e)}}let g={status:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,error:!0};async function f(e,a,o,u,l="zh"){let d=await t.prisma.examQuestion.findUnique({where:{id:a},select:{paperId:!0,status:!0,questionText:!0,paper:{select:{userId:!0,title:!0,difficulty:!0}},errorItem:{select:{questionText:!0,knowledgePoints:!0,gradeSemester:!0,figureSvg:!0,tags:{select:{name:!0}},subject:{select:{name:!0,stage:!0,subjectKey:!0}}}},_count:{select:{practiceRecords:!0}}}});if(!d||d.paperId!==e||d.paper.userId!==o)throw Error("EXAM_QUESTION_NOT_FOUND");if("pending"===d.status)throw Error("QUESTION_GENERATING");let p={userId:o,subject:d.paper.title,link:`/exams/${e}`};if("question"===u){if(d._count.practiceRecords>0)throw Error("HAS_RESULTS");let n=d.errorItem;if(!n)throw Error("SOURCE_DELETED");let s=await (0,i.trackBackgroundTask)({...p,kind:"exam"},()=>(0,r.getAIService)().generateSimilarQuestion(n.questionText||"",c(n),l,d.paper.difficulty,n.gradeSemester,n.figureSvg)),{count:o}=await t.prisma.examQuestion.updateMany({where:{id:a,practiceRecords:{none:{}}},data:{status:"ready",questionText:s.questionText,answerText:s.answerText,analysis:s.analysis,figureSvg:s.figureSvg??null,error:null}});if(0===o)throw Error("HAS_RESULTS");await w(e)}else{let e=d.questionText;if("ready"!==d.status||!e?.trim())throw Error("NO_QUESTION_TEXT");let s=d.errorItem?.subject?(0,n.resolveNotebookScope)(d.errorItem.subject):null,o=s?.subject?n.SUBJECT_DISPLAY_NAMES[s.subject]:null,u=await (0,i.trackBackgroundTask)({...p,kind:"reanswer"},()=>(0,r.getAIService)().reanswerQuestion(e,l,o,void 0,d.errorItem?.gradeSemester));if(!u.answerText.trim()&&!u.analysis.trim())throw Error("EMPTY_ANSWER");let c={answerText:u.answerText,analysis:u.analysis};await t.prisma.$transaction([t.prisma.examQuestion.update({where:{id:a},data:c}),t.prisma.practiceRecord.updateMany({where:{examQuestionId:a},data:c})])}let m=await t.prisma.examQuestion.findUnique({where:{id:a},select:g});return s.info({paperId:e,questionId:a,mode:u},"Exam question regenerated"),m}async function w(e){let r=await t.prisma.examQuestion.findMany({where:{paperId:e},select:{status:!0}});await t.prisma.examPaper.update({where:{id:e},data:{status:d(r.map(e=>e.status))}})}async function E(e,r,a,i){let n=await t.prisma.examPaper.findUnique({where:{id:e},select:{userId:!0,difficulty:!0,questions:{select:{id:!0,errorItemId:!0,questionText:!0,answerText:!0,analysis:!0,figureSvg:!0,errorItem:{select:{subject:{select:{name:!0}}}}}}}});if(!n||n.userId!==r)throw Error("EXAM_NOT_FOUND");let s=new Map(n.questions.map(e=>[e.id,e])),o=new Set;return await t.prisma.$transaction(async t=>{for(let{questionId:e,result:u}of i){let i=s.get(e);i?.errorItemId&&null!==u&&(await t.practiceRecord.create({data:{userId:r,errorItemId:i.errorItemId,examQuestionId:i.id,source:"exam",result:u,isCorrect:"correct"===u,createdAt:a,difficulty:n.difficulty,subject:i.errorItem?.subject?.name??null,questionText:i.questionText,answerText:i.answerText,analysis:i.analysis,figureSvg:i.figureSvg}}),o.add(i.errorItemId))}o.size>0&&await t.examPaper.update({where:{id:e},data:{resultsRecordedAt:new Date}})}),[...o]}e.s(["DEFAULT_EXAM_PICK_RULE",0,o,"EXAM_DIFFICULTIES",0,["easy","medium","hard","harder"],"EXAM_PICK_RULES",0,["least_practiced","random"],"EXAM_REGENERATE_MODES",0,["question","answer"],"EXAM_SCOPES",0,["unmastered","mastered","all"],"MAX_EXAM_QUESTIONS",0,50,"generateExamPaper",0,h,"isPaperGenerating",0,function(e){return m.has(e)},"recordExamResults",0,E,"regenerateExamQuestion",0,f,"selectSourceItems",0,l])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1flar98._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[36189,e=>e.a(async(t,a)=>{try{var i=e.i(58821),r=e.i(13618),n=e.i(79832),o=e.i(58078),s=e.i(98003),u=e.i(76759),l=e.i(50377),d=e.i(76025),p=e.i(98876),c=t([n]);[n]=c.then?(await c)():c;let g=(0,l.createLogger)("api:settings");async function h(){let e=await (0,r.getServerSession)(n.authOptions);if(!e?.user)return(0,u.unauthorized)("Authentication required");let t=(0,s.getAppConfig)();return(0,o.requireAdmin)(e)?i.NextResponse.json(t):i.NextResponse.json({aiProvider:t.aiProvider,timeouts:t.timeouts,timeZone:t.timeZone})}async function R(e){let t=await (0,r.getServerSession)(n.authOptions);if(!t?.user)return(0,u.unauthorized)("Authentication required");if(!(0,o.requireAdmin)(t))return(0,u.forbidden)("Admin access required");try{let t=await e.json();if(void 0!==t.timeZone){if(!(0,d.isValidTimeZone)(t.timeZone))return(0,u.badRequest)("INVALID_TIME_ZONE");t.timeZone=t.timeZone.trim()}let a=(0,s.getAppConfig)();if(t.gemini?.apiKey==="********"&&(t.gemini.apiKey=a.gemini?.apiKey),t.openai?.instances){let e=a.openai?.instances||[];t.openai.instances=t.openai.instances.map(t=>{if("********"===t.apiKey){let a=e.find(e=>e.id===t.id);return{...t,apiKey:a?.apiKey||""}}return t})}for(let e of(t.azure?.apiKey==="********"&&(t.azure.apiKey=a.azure?.apiKey),t.anthropic?.apiKey==="********"&&(t.anthropic.apiKey=a.anthropic?.apiKey),p.VENDOR_PROVIDER_IDS))t[e]?.apiKey==="********"&&(t[e].apiKey=a[e]?.apiKey);let r=(0,s.updateAppConfig)(t);return i.NextResponse.json(r)}catch(e){return g.error({error:e},"Failed to update settings"),(0,u.internalError)("Failed to update settings")}}e.s(["GET",0,h,"POST",0,R,"dynamic",0,"force-dynamic"]),a()}catch(e){a(e)}},!1),61525,e=>{"use strict";var t=e.i(47909),a=e.i(74017),i=e.i(96250),r=e.i(59756),n=e.i(61916),o=e.i(74677),s=e.i(69741),u=e.i(16795),l=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),R=e.i(74838),g=e.i(10372),m=e.i(93695),v=e.i(9580);e.i(52474);var f=e.i(220);let y=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(36189),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:w,serverHooks:C}=y;async function A(e,t,i){i.requestMeta&&(0,r.setRequestMeta)(e,i.requestMeta),y.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/settings/route";E=E.replace(/\/index$/,"")||"/";let w=await y.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:C,deploymentId:A,params:x,nextConfig:T,parsedUrl:S,isDraftMode:N,prerenderManifest:P,routerServerContext:O,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,resolvedPathname:q,clientReferenceManifest:K,serverActionsManifest:I}=w,H=(0,s.normalizeAppPath)(E),D=!!P.routes[q]&&(y.isDev||(0,v.isRouteCacheOwner)(q,y.cacheOwner,P.routes[q])),M=!!(P.dynamicRoutes[H]||D),U=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!N){let e=P.dynamicRoutes[H];if(e&&!1===e.fallback&&!D){if(T.adapterPath)return await U();throw new m.NoFallbackError}}let k=null;!M||y.isDev||N||(k="/index"===(k=q)?"/":k);let j=!0===y.isDev||!M,F=M&&!j;I&&K&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:K,serverActionsManifest:I});let L=e.method||"GET",Z=(0,n.getTracer)(),V=Z.getActiveScopeSpan(),$=!!(null==O?void 0:O.isWrappedByNextServer),z=!!(0,r.getRequestMeta)(e,"minimalMode"),B=(0,r.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,T,P,z);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let G={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:N,supportsDynamicResponse:j,incrementalCache:B,hmrRefreshHash:(0,r.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,i,r)=>y.onRequestError(e,t,i,r,O)},sharedContext:{buildId:C,deploymentId:A}},X=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),J=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:a})=>{try{if(!z&&b&&_&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await y.handle(J,G);e.fetchMetrics=G.renderOpts.fetchMetrics;let n=G.renderOpts.pendingWaitUntil;n&&i.waitUntil&&(i.waitUntil(n),n=void 0);let o=G.renderOpts.collectedTags;if(!M)return await (0,c.sendResponse)(X,W,r,n),null;{let e=await r.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(r.headers);o&&(t[g.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,i=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==a&&a>0?T.expireTime:void 0:G.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:i}}}}catch(t){throw(null==a?void 0:a.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:b})},!1,O),t}},Y=async(r,o)=>{try{var s,u;let r=await y.handleResponse({req:e,nextConfig:T,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,responseGenerator:Q,waitUntil:i.waitUntil,isMinimalMode:z});if(!M)return;if((null==r||null==(s=r.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==r||null==(u=r.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});z||t.setHeader("x-nextjs-cache",b?"REVALIDATED":r.isMiss?"MISS":r.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(r.value.headers);z&&M||n.delete(g.NEXT_CACHE_TAGS_HEADER),!r.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,R.getCacheControlHeader)(r.cacheControl)),await (0,c.sendResponse)(X,W,new Response(r.value.body,{headers:n,status:r.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:b})},!1,O),M)throw t;await (0,c.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!r)return;let e=t.statusCode;r.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(r.setStatus({code:n.SpanStatusCode.ERROR}),r.setAttribute("error.type",e.toString()));let a=Z.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=a.get("next.route")||H,s=`${L} ${i}`;r.setAttributes({"next.route":i,"http.route":i,"next.span_name":s}),r.updateName(s),o&&o!==r&&(o.setAttribute("http.route",i),o.updateName(s))})()}};if($&&V)await Y(V,void 0);else{let t=Z.getActiveScopeSpan();await Z.withPropagatedContext(e.headers,()=>Z.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${E}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>Y(e,t)),void 0,!$)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:w})},"routeModule",0,y,"serverHooks",0,C,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,w])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1pvqo-q._.js.map
|