@customize-agent/server 4.0.70 → 4.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/5247.js +65 -48
  5. package/.next/server/chunks/8661.js +1 -0
  6. package/.next/server/middleware-build-manifest.js +1 -1
  7. package/.next/server/pages/404.html +1 -1
  8. package/.next/server/pages/500.html +1 -1
  9. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  10. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  11. package/.next/server/pages/api/assets/generated.js +1 -1
  12. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  13. package/.next/server/pages/api/documents/export.js +2 -2
  14. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  15. package/.next/server/pages/api/documents/generate.js +2 -2
  16. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  17. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  18. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  19. package/.next/server/pages/api/documents/generated.js +1 -1
  20. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  21. package/.next/server/pages/asset-library.html +1 -1
  22. package/.next/server/pages/context/long-term.html +1 -1
  23. package/.next/server/pages/context/short-term.html +1 -1
  24. package/.next/server/pages/document-roles.html +1 -1
  25. package/.next/server/pages/documents.html +1 -1
  26. package/.next/server/pages/guide.html +1 -1
  27. package/.next/server/pages/index.html +1 -1
  28. package/.next/server/pages/knowledge/file-detail.html +1 -1
  29. package/.next/server/pages/knowledge/files.html +1 -1
  30. package/.next/server/pages/knowledge/manage.html +1 -1
  31. package/.next/server/pages/knowledge/search.html +1 -1
  32. package/.next/server/pages/knowledge.html +1 -1
  33. package/.next/server/pages/models.html +1 -1
  34. package/.next/server/pages/overview.html +1 -1
  35. package/.next/server/pages/prompt.html +1 -1
  36. package/.next/server/pages/settings.html +1 -1
  37. package/.next/server/pages/system/logs.html +1 -1
  38. package/.next/server/pages-manifest.json +11 -11
  39. package/.next/static/{0NId-lDXjlrJ2oZ70HQzh → G2viAcdgjbPEipVUbf4jw}/_buildManifest.js +1 -1
  40. package/.next/static/chunks/pages/documents-9209f54ac7717b41.js +1 -0
  41. package/package.json +4 -4
  42. package/.next/static/chunks/pages/documents-84fe27cb0fbbb040.js +0 -1
  43. /package/.next/static/{0NId-lDXjlrJ2oZ70HQzh → G2viAcdgjbPEipVUbf4jw}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(48661);function j(a,b){try{let c="string"==typeof a.query.projectRoot?a.query.projectRoot:void 0,d="string"==typeof a.body?.projectRoot?a.body.projectRoot:void 0,e=c||d;if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c,e);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)(e)})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let f=(0,i.a6)(c,d,e);if(!f)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:f})}if("POST"===a.method){let{action:c,documentId:d}=a.body;if("abort"===c&&d){let a=(0,i.r)(d,e);if(!a)return b.status(409).json({error:"Document not found or not generating"});return b.status(200).json({document:a})}if("resume"===c&&d){let a=(0,i.v7)(d,e);if(!a)return b.status(404).json({error:"Document not found"});let c=(0,i.YL)({templateId:a.templateId,requirement:a.requirement,resumeDocumentId:d},a.projectRoot||e);return b.status(202).json(c)}return b.status(400).json({error:"Unknown action"})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c,e),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},48661:(a,b,c)=>{c.d(b,{BH:()=>E,Gl:()=>p,JU:()=>H,Jz:()=>L,M$:()=>y,QG:()=>D,SE:()=>t,YL:()=>O,a6:()=>B,r:()=>C,uc:()=>K,v7:()=>z,yE:()=>G});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(35247),i=c(19898),j=c(44533);function k(a,b){return a?.map(a=>"running"===a.status?{...a,status:"failed",message:b}:a)}let l=new Map,m=Math.max(6e5,Number(process.env.DOCUMENT_TASK_TIMEOUT_MS??72e5)),n=Math.max(6e4,Number(process.env.DOCUMENT_TASK_STALE_MS??3e5)),o=Math.max(3e5,Number(process.env.DOCUMENT_TASK_NO_PROGRESS_MS??9e5));function p(a=(0,j.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,j.aY)()){return(0,i.computeProjectId)(g.resolve(a))}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function q(a=(0,j.aY)()){return g.join(p(a),"index.json")}function r(a=(0,j.aY)()){return g.join(p(a),"assets.json")}function s(a,b=(0,j.aY)()){return g.join(p(b),"drafts",`${a}.json`)}function t(a,b=(0,j.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(p(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function u(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function v(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function w(a){for(let b of l.values())if(b.documentId===a)return b;return null}function x(a,b=(0,j.aY)()){if("generating"!==a.status||w(a.id)||Date.now()-a.updatedAt<n)return a;let c=Date.now();return A({...a,status:"failed",error:"生成任务已失联,请点击继续生成或重新生成",executionStages:k(a.executionStages,"生成任务已失联"),completedAt:c},b)}function y(a=(0,j.aY)()){return u(q(a),[]).map(b=>x(b,a)).sort((a,b)=>b.updatedAt-a.updatedAt)}function z(a,b=(0,j.aY)()){let c=u(s(a,b),null);return c?x(c,b):null}function A(a,b=(0,j.aY)()){let c=Date.now(),d={...a,updatedAt:c};v(s(d.id,b),d);let e=u(q(b),[]).filter(a=>a.id!==d.id);return e.unshift(d),v(q(b),e.map(a=>({...a,draft:void 0,executionStages:a.executionStages,partialChapters:a.partialChapters,reviewMetadata:a.reviewMetadata}))),d}function B(a,b,c=(0,j.aY)()){let d=z(a,c);return d?A({...d,...b,id:a},c):null}function C(a,b=(0,j.aY)()){let c=z(a,b);if(!c)return null;if("generating"!==c.status)return c;for(let[b,c]of l)c.documentId===a&&(c.status="aborted",c.controller.abort(),M(c),l.delete(b));return A({...c,status:"aborted",error:"用户中止",executionStages:k(c.executionStages,"用户中止"),completedAt:Date.now()},b)}function D(a,b=(0,j.aY)()){try{e.rmSync(s(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}v(q(b),y(b).filter(b=>b.id!==a))}function E(a=(0,j.aY)()){return u(r(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function F(a,b,c=(0,j.aY)()){let d=Date.now(),e=[...E(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return v(r(c),e),e}function G(a,b=(0,j.aY)()){return E(b).find(b=>b.id===a)||null}function H(a,b=(0,j.aY)()){let c=G(a,b);if(!c)return!1;let d=t(c,b);if(d&&d.startsWith(p(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return v(r(b),E(b).filter(b=>b.id!==a)),!0}function I(a){return a.replace(/[\\/:*?"<>|]/gu,"_").slice(0,120)||"generated-document"}async function J(a,b=(0,j.aY)()){let c=g.join("生成文档",`${I(a.title)}-${a.id}.md`).split(g.sep).join("/"),d=g.join(b,"knowledgeBase",c);e.mkdirSync(g.dirname(d),{recursive:!0}),e.writeFileSync(d,a.editedMarkdown||a.markdown,"utf8");let f=await (0,j.Qh)().getProject(b);return await f.reindexFile(c),c}async function K(a,b=(0,j.aY)()){let c=G(a,b);if(!c?.path)return null;let d=t(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let i=await (0,j.Qh)().getProject(b);await i.reindexFile(f);let k=E(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return v(r(b),k),k.find(b=>b.id===a)||null}function L(a,b,c=(0,j.aY)()){let d=G(a,c);if(!d)return null;let f=t(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function M(a){a.timeoutTimer&&clearTimeout(a.timeoutTimer),a.progressTimer&&clearInterval(a.progressTimer)}function N(a,b){let c=z(a.documentId,b);return c&&"generating"===c.status?{taskId:a.id,documentId:a.documentId,record:c}:null}function O(a,b=(0,j.aY)()){let c=g.resolve(b),f=(0,i.computeProjectId)(c),n=Date.now(),q=a.resumeDocumentId?z(a.resumeDocumentId,c):null;if(q){let a=w(q.id),b=a?N(a,c):null;if(b)return b}if(!q)for(let b of l.values()){let d=N(b,c);if(d&&d.record.templateId===a.templateId&&d.record.projectRoot===c)return d}let r=q?.id||`doc-${n}-${d.randomBytes(4).toString("hex")}`,s=`task-${n}-${d.randomBytes(4).toString("hex")}`,t=q?{...q,taskId:s,status:"generating",error:void 0,completedAt:void 0,executionStages:[...q.executionStages||[],{type:"validation",roleId:"resume-generation",status:"running",message:"已从上次结果继续生成,系统将自动复用可用章节缓存和进度数据"}],updatedAt:n}:{id:r,taskId:s,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",projectRoot:c,projectId:f,knowledgeBasePath:g.join(c,"knowledgeBase"),markdown:"",status:"generating",assets:[],createdAt:n,updatedAt:n};A(t,c);let u=new AbortController,v={},x=a=>{u.abort(),v.current&&M(v.current),function(a,b,c){let d=z(a,b);d&&"generating"===d.status&&A({...d,status:"failed",error:c,executionStages:k(d.executionStages,c),completedAt:Date.now()},b)}(r,c,a),l.delete(s)},y=(0,h.OXS)({...a,projectRoot:c,resumeChapters:q?.draft?.chapters||[],signal:u.signal,onProgress:a=>{try{v.current&&(v.current.lastProgressAt=Date.now());let b=z(r,c);b&&"generating"===b.status&&(A({...b,executionStages:a},c),console.log(`[gen] progress saved: ${a.length} stages, doc=${r}`))}catch(a){console.error("[gen] progress save error:",a)}}}).then(async a=>{let b=z(r,c);if(!b||"generating"!==b.status)return b??t;let d=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message);a.exportGate.passed||0!==d.length||d.push("导出门禁未通过:存在未完成的检查项");let f=A(function(a){let b=a=>({...a,content:a.content.slice(0,500)}),c=a.draft?{...a.draft,chapters:a.draft.chapters.map(a=>({...a,evidence:a.evidence.map(b)}))}:a.draft;return{...a,draft:c}}({...b,templateName:a.templateName,title:a.title,markdown:a.markdown,status:d.length>0?"warning":"completed",draft:a,executionStages:a.executionStages,partialChapters:a.partialChapters,reviewMetadata:a.reviewMetadata,assets:a.assets||[],completedAt:Date.now(),warningIssues:d}),c);!function(a,b=(0,j.aY)()){Date.now();let c=`generatedDocuments/assets/${I(a.title)}-${a.id}.md`,d=g.join(p(b),c.replace(/^generatedDocuments\//u,""));e.mkdirSync(g.dirname(d),{recursive:!0}),e.writeFileSync(d,a.editedMarkdown||a.markdown,"utf8");let f={id:`document-${a.id}`,type:"file",role:"generated",path:c,status:"generated",message:"模板运行生成的 Markdown 文档,默认仅登记到生成资源,需手动加入知识库"};F([f],a.id,b).find(a=>a.id===f.id)}(f,c);let h=F(a.assets||[],r,c);if("1"===process.env.DOCUMENT_AUTO_INDEX_GENERATED)for(let a of(await J(f,c).catch(a=>console.warn("[generated-documents] 自动入库生成文档失败",a)),h.filter(a=>a.usedByDocumentIds.includes(r)&&!a.indexed)))await K(a.id,c).catch(b=>console.warn("[generated-documents] 自动入库生成资源失败",a.id,b));return f}).catch(a=>{let b=z(r,c);if(!b||"generating"!==b.status)return b??t;let d=a instanceof Error?a.message:String(a),e=a instanceof Error&&/用户中止|aborted|abort/i.test(a.message)?"aborted":"failed";return A({...b,status:e,error:d,executionStages:k(b.executionStages,d),completedAt:Date.now()},c)}).finally(()=>{v.current&&M(v.current),l.delete(s)}),B={id:s,documentId:r,status:"generating",controller:u,promise:y,startedAt:n,lastProgressAt:n};return v.current=B,B.timeoutTimer=setTimeout(()=>x("生成任务超时,请点击继续生成或重新生成"),m),B.progressTimer=setInterval(()=>{Date.now()-B.lastProgressAt>o&&x("生成任务长时间无进度,请点击继续生成或重新生成")},Math.min(6e4,o)),l.set(s,B),{taskId:s,documentId:r,record:t}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,7899,5247],()=>b(b.s=36583));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(48661);function j(a,b){try{let c="string"==typeof a.query.projectRoot?a.query.projectRoot:void 0,d="string"==typeof a.body?.projectRoot?a.body.projectRoot:void 0,e=c||d;if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c,e);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)(e)})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let f=(0,i.a6)(c,d,e);if(!f)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:f})}if("POST"===a.method){let{action:c,documentId:d}=a.body;if("abort"===c&&d){let a=(0,i.r)(d,e);if(!a)return b.status(409).json({error:"Document not found or not generating"});return b.status(200).json({document:a})}if("resume"===c&&d){let a=(0,i.v7)(d,e);if(!a)return b.status(404).json({error:"Document not found"});let c=(0,i.YL)({templateId:a.templateId,requirement:a.requirement,resumeDocumentId:d},a.projectRoot||e);return b.status(202).json(c)}return b.status(400).json({error:"Unknown action"})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c,e),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,7899,5247,8661],()=>b(b.s=36583));module.exports=c})();