@customize-agent/server 4.2.4 → 4.2.5

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.
@@ -49,7 +49,7 @@ ${o}${a.slice(n)}`}return a}(l.content,f,r);(s=a!==l.content)&&(au[h]={...l,cont
49
49
  ${a.graphContext}`:"",b?`事实卡:
50
50
  ${b}`:"",`小节任务:
51
51
  ${c}`,"写作要求:必须严格按“小节任务”逐项输出,每个任务都必须保留完全一致的三级标题“### 小节标题”;不得合并小节、不得改写小节标题、不得省略小节;只使用事实卡、图谱上下文和绑定证据;不得输出后台话术、兜底措辞、待确认、不适用;缺少事实的小节不得编造。"].filter(Boolean).join("\n\n")}function bZ(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function b$(a){return bR(bZ(a)).replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/\s/gu,"")}function b_(a,b){let c=a.split("\n"),d=bR(bZ(b)),e=b$(b),f=[],g=-1,h=a=>{if(g<0)return;let b=c.slice(g,a).join("\n").trim();b&&f.push(b),g=-1};for(let a=0;a<c.length;a+=1){var i;if(!/^\s*#{2,3}\s+/u.test(c[a]))continue;h(a);let b=(i=bZ(c[a]),bR(bZ(i))),f=b$(bZ(c[a]));(b===d||b.includes(d)||d.includes(b)||f===e||f.includes(e)||e.includes(f))&&(g=a+1)}return h(c.length),f.sort((a,b)=>(0,w.V7)(b)-(0,w.V7)(a))[0]||""}function b0(a){let b=bT(a);return!(!b||b.length<3||/^(?:见|详见|按|执行|参见|依据).{0,16}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料)$/u.test(b)||/^(?:合同协议书|通用条款|专用条款|招标文件|招标公告|投标人须知前附表|附件|资料)$/u.test(b.replace(/[()()\d一二三四五六七八九十、..\s]/gu,"")))&&/项目|工程|编号|地点|规模|范围|工期|质量|安全|资源|材料|设备|验收|\d/u.test(bS(a))}function b1(a){let b=[],c=a.draft.content||"";for(let d of bQ)"围绕"!==d&&c.includes(d)&&b.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`${a.draft.title} 正文包含禁止话术:${d}`,suggestion:"改为事实支撑的正式表达;缺失事实不得占位。"});for(let d of((0,w.V7)(c),a.task.sections)){let a=b_(c,d.title);if(a.includes("[WRITER_MISSING_SECTION]")||!a&&c.includes("[WRITER_MISSING_SECTION]"))b.push({level:"error",severity:"blocker",category:"structure",owner:"system",message:`${d.title} Writer 未完成`,suggestion:"Repairer 必须基于该小节事实卡和证据生成正式正文,并删除 WRITER_MISSING_SECTION 标记。"});else if(a&&(0,w.V7)(a)<d.minChars){let c=/项目特点.*重点.*难点|重点.*难点.*分析|项目主要施工内容|主要分部分项工程施工方案|主要施工方法|危大工程专项施工方案审批流程|原材料进场复试|见证取样/u.test(d.title),e=(0,w.V7)(a)>=Math.floor(.7*d.minChars);b.push({level:c&&!e?"error":"warning",severity:c&&!e?"blocker":"warning",category:"structure",owner:"system",message:`${d.title} 正文不足,未达到任务最小深度`,suggestion:c?"关键小节必须基于项目事实和对应关系重写补足;不得仅保留概述性文字。":"应基于该小节事实卡和证据重新生成,不得使用标题占位。"})}else if(!a){let a=/项目特点.*重点.*难点|重点.*难点.*分析|项目主要施工内容|主要分部分项工程施工方案|主要施工方法|危大工程专项施工方案审批流程|原材料进场复试|见证取样/u.test(d.title);b.push({level:a?"error":"warning",severity:a?"blocker":"warning",category:"structure",owner:"system",message:a?`${d.title} 正文不足,未达到任务最小深度`:`${d.title} 未匹配到独立小节标题`,suggestion:a?"关键小节缺失正文,必须基于该小节事实卡和证据生成正式正文,不得以标题占位。":"正文已成文但小节标题与规划标题不完全一致,建议后续按规划标题进一步规范结构。"})}if(d.ready||b.push(...d.issues.map(a=>({...a,level:"warning",severity:"warning"}))),/主要分部分项工程施工方案|主要施工方法/u.test(d.title)){let a=b_(c,d.title),e=new Set([...a.match(bz)||[],...a.match(bA)||[]]).size;(0,w.V7)(a)>=800&&e<4&&b.push({level:"warning",severity:"warning",category:"professional_chain",owner:"system",message:`${d.title} 工艺参数落位不足:当前 ${e} 个,要求不少于 4 个`,suggestion:"必须补充 mm/MPa/间距/偏差/坡度/试验压力等工艺参数(来自绑定资料或行业规范值)或设备型号规格参数。"})}}let d=a.context.materialScope.selectedRoots;for(let e of a.context.materialScope.rejectedRoots)e&&!d.includes(e)&&c.includes(e)&&b.push({level:"error",severity:"blocker",category:"evidence_coverage",owner:"system",message:`${a.draft.title} 混入非当前资料组名称:${e}`,suggestion:"必须删除跨项目内容并重新检索当前资料组证据。"});let e=a.task.facts.filter(b0),f=e.filter(a=>{let b=bT(a);return b.length>=2&&c.includes(b.slice(0,Math.min(18,b.length)))}).length;e.length>=3&&0===f&&1200>(0,w.V7)(c)&&b.push({level:"warning",severity:"warning",category:"evidence_coverage",owner:"system",message:`${a.draft.title} 未明显落位章节事实卡`,suggestion:"建议将章节事实卡中的关键工程事实写入对应小节,但不因引用型或低可执行事实阻断。"});let g=b.filter(a=>"error"===a.level||"blocker"===a.severity),h=b.filter(a=>/正文不足|未落位章节事实卡/u.test(a.message)),i=g.some(a=>/Writer 未完成|正文不足,未达到任务最小深度/u.test(a.message));return{issues:b,supportedFacts:f,unsupportedSignals:b.map(a=>a.message),repairable:b.length>0&&(b.length<=6||h.length===b.length||0===g.length||i)}}function b2(a){return a.replace(/\s+/gu,"").toLowerCase()}var b3=c(14070);async function b4(a){(0,z.Te)(a.signal);let b=(0,d.QJ)(a.templateId);if(!b)throw Error("Document template not found");let c=e.resolve(a.projectRoot||(0,g.aY)());if(!c)throw Error("No knowledge base project found");let o=(0,f.computeProjectId)(c),p=b,q=(0,g.Qh)(),y=[],A=[],B=(b,c=I)=>{let d=b?[...b].sort((a,b)=>{let c=A.indexOf(a.id),d=A.indexOf(b.id);return(c<0?Number.MAX_SAFE_INTEGER:c)-(d<0?Number.MAX_SAFE_INTEGER:d)}):void 0;a.onProgress?.([...c],d?{chapters:d}:void 0)},C=Math.max(15e3,Math.min(6e4,Number(process.env.DOCUMENT_GENERATION_HEARTBEAT_MS??3e4))),D=async(b,c=I)=>{let d=setInterval(()=>{a.signal?.aborted||B(y,c)},C);try{return await b()}finally{clearInterval(d)}},E=(0,d.N6)(p)||"none",H=(0,i.Mu)(E)?.name||E,I=[(0,ak.X5)({type:"role_binding",roleId:E,status:"running",message:`生成任务已创建,正在读取模板与角色配置:${p.name}`,details:[`当前项目:${o}`,`资料目录:${e.join(c,"knowledgeBase")}`,"正在读取项目资料包和提示词配置"],progress:{current:1,total:4,label:"初始化配置"}},{subtitle:H,roleName:H,order:0})];B();let J=(0,d.bj)(p),P=J.bindings;(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-preparation",status:"running",message:"正在分析模板规范、用户要求与项目资料包",details:["解析 OUTLINE 与模板章节","读取项目资料包","自动识别资料类型并构建项目理解"],progress:{current:1,total:3,label:"准备分析"}},{subtitle:"生成准备",order:I.length})),B();let Q=(0,a0.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:[]}).materialScope.selectedFiles;if(0===Q.length)throw Error("模板未绑定可用项目资料包,请先在模板中绑定需要参与生成的项目文件夹。");let U=(0,am.W9)(c,p,{requirement:a.requirement}),V=(0,am._n)(p,U),{kindByPath:X,processingByPath:Y}=(0,am.Hz)(U),_=(0,al.fC)([...J.writerPrompts,...J.chapterPrompts]),aa=(0,t.cs)([{text:a.requirement,source:"用户需求",strict:!0},{text:_,source:"提示词角色",strict:!0}]),ab=aa.length>=2;ab&&(p={...b,chapters:aa});let ap=await D(()=>Promise.resolve((0,k.P)(c,{requirement:a.requirement,boundFilePaths:Q})));(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-preparation",status:"running",message:"正在生成自动文档规格并评估生成准备度",details:[`项目资料:${Q.length} 份`,`资料类型:${Object.values(U.groups).filter(a=>a.length>0).length} 类`,"生成事实字段与章节约束"],progress:{current:2,total:3,label:"规格评估"}},{subtitle:"生成准备",order:I.length})),B();let aq=await D(()=>Promise.resolve((0,j.x)(p,a.requirement||""))),ar=aq.spec,as=function(a,b=""){let c=`${a?.id||""} ${a?.name||""} ${a?.category||""} ${a?.description||""} ${a?.outputTitle||""} ${b}`;return/施工组织设计|施工方案|危大工程|人、材、机|安全文明施工/u.test(c)?m:l}(p,a.requirement||""),at=(0,r.$)({template:p,spec:ar,summary:ap,resolvedRoles:[]});if(!at.ready)throw Error(`生成准备度不足:${at.blockingIssues.join(";")}`);let au=[V.prompt,(0,k.F)(ap,{publicSafe:!0}),(0,j.N)(ar,aq.sourceHash,{publicSafe:!0}),(0,r.R)(at,{publicSafe:!0})].filter(Boolean).join("\n\n"),av=[V.prompt,(0,k.F)(ap),(0,j.N)(ar,aq.sourceHash),(0,r.R)(at)].filter(Boolean).join("\n\n"),ax=(0,al.fC)([...J.writerPrompts,...J.formattingPrompts]),az=(0,al.fC)([...J.writerPrompts,...J.chapterPrompts,...J.formattingPrompts]),aA=(0,al.fC)(J.prompts),aE=(0,h.I)().load().webAccess||{enabled:!1,allowProjectFacts:!1,maxQueriesPerChapter:2,maxResultsPerQuery:3,trustedDomains:[]},aF=(0,ao.c_)({promptTexts:[au,aA].filter(Boolean).join("\n\n"),requirement:a.requirement,template:p,rolePrompts:J.prompts}),aG=[(0,ao.el)(aF),!aE.enabled?"":"公开资料补充使用规则:\n1. 公开资料只可用于补充通用规范、政策、工艺和措施。\n2. 不得使用公开资料新增或修改项目名称、建设地点、建设规模、工期、质量标准、工程量、材料规格、图纸参数、商务数据。\n3. 本地项目资料与公开资料冲突时,必须以本地项目资料为准。\n4. 不得在正文中出现任何检索过程、外部页面、工具调用或系统内部过程性表述。\n5. 不得把公开资料中的其他项目案例参数写入本项目正文。"].filter(Boolean).join("\n\n"),aH=[au,aG,`生成前规划章节结构:
52
- ${(0,v.CK)(p)}`,ax||az].filter(Boolean).join("\n\n"),aI=[av,aG,(0,al.fC)([...J.extractionPrompts,...J.referencePrompts])].filter(Boolean).join("\n\n"),aJ=[au,aG,(0,al.fC)([...J.writerPrompts,...J.chapterPrompts,...J.formattingPrompts])].filter(Boolean).join("\n\n");(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-preparation",status:"success",message:`模板规范与项目资料理解完成,识别 ${Q.length} 份项目资料`,details:[`提示词绑定:${P.length} 个`,`项目资料包:${U.materialRoots.join("、")||"当前知识库"}`,ab?`识别 OUTLINE 章节:${aa.length} 个`:"未识别显式 OUTLINE,使用模板章节"],progress:{current:3,total:3,label:"准备完成"}},{subtitle:"生成准备",order:I.length})),B();let aK=new Set(Q),aL=new Map([...X.entries()].map(([a,b])=>[a,(0,am._W)(b)])),aM=new Map([...Y.entries()].map(([a,b])=>[a,b]));(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:"running",message:"正在读取项目资料包索引",details:["使用上传阶段已完成的解析、切片和索引结果","不在生成流程中重新解析或入库","准备按资料类型召回章节证据"],progress:{current:1,total:3,label:"读取索引"}},{subtitle:"知识库检索",order:I.length})),B();let aN=await D(()=>q.getProject(c)),aO=function(a,b){let c=new Set(b.filter(Boolean)),d=(a.listFiles?.()||[]).filter(a=>0===c.size||c.has(a.relativePath)),e=new Set(d.map(a=>a.relativePath)),f=[...c].filter(a=>!e.has(a)),g=d.filter(a=>0===Math.max(0,Math.ceil(Number(a.chunkCount)||0))).map(a=>a.relativePath),h=d.filter(a=>"error"===a.status).map(a=>a.relativePath),i="function"==typeof a.countPendingIndexJobs?a.countPendingIndexJobs():0,j="function"==typeof a.getVectorStatus?a.getVectorStatus():void 0,k=d.filter(a=>"error"!==a.status&&Math.max(0,Math.ceil(Number(a.chunkCount)||0))>0),l=k.map(a=>a.relativePath),m=k.reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0),n=[...bv("部分绑定文件未完成索引,已自动跳过",f),...bv("部分绑定文件没有可用切片,已自动跳过",g),...bv("部分绑定文件索引失败,已自动跳过",h)],o=c.size>0&&0===m?["所有绑定文件均无可用切片"]:[],p=[...n,...i>0?[`仍有 ${i} 个待索引任务,建议等待索引完成后生成`]:[],...j&&"ready"!==j.status?[`向量索引状态为 ${j.status},当前召回质量可能下降`]:[]];return{scopedRecords:d,usablePaths:l,missingFiles:f,emptyFiles:g,errorFiles:h,pendingJobs:i,vectorStatus:j,usableChunkCount:m,blockingIssues:o,warnings:p}}(aN,[...aK]);if(aO.blockingIssues.length>0)throw Error(`生成前知识索引不可用:${aO.blockingIssues.join(";")}`);let aP=new Set(aO.usablePaths),aQ=ay(o,[...aP]),aR=bw(aN,[...aP],a.maxEvidencePerChapter),aS=aO.pendingJobs>0||0===aO.usableChunkCount,aT=function(a){let b=Math.max(0,Math.ceil(a.totalChunks||0)),c=Math.max(0,Math.ceil(a.loadedChunks||0)),d=Math.max(0,b-c),e=b>0?c/b:1,f=[...b>=1e3&&e<.35?["切片未完全预加载"]:[],...!1===a.vectorReady?["向量索引未就绪"]:[]];return{totalChunks:b,loadedChunks:c,omittedChunks:d,loadedRatio:e,highRisk:f.length>0,riskReason:f.join("、")||void 0}}({totalChunks:Math.min(aO.usableChunkCount,20*Q.length),loadedChunks:Math.min(aO.usableChunkCount,20*Q.length),vectorReady:aO.vectorStatus?"ready"===aO.vectorStatus.status:void 0});(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:aS?"failed":"success",message:`已读取知识索引:项目资料 ${aO.scopedRecords.length} 份,可用切片 ${aO.usableChunkCount} 条`,details:[`项目资料:${aK.size} 份`,`可用证据文件:${aP.size} 份`,`向量状态:${aO.vectorStatus?.status||"unknown"}`,...aO.warnings,"后续将按招标正文/清单/图纸/补疑等资料类型召回"],progress:{current:3,total:3,label:"索引已就绪"}},{subtitle:"知识库检索",order:I.length})),B(),(0,z.Te)(a.signal);let aU=[],aV=[],aX={enabled:aE.enabled,queries:[],evidenceCount:0,filteredCount:0,chapters:[]},aY=[],a1=[],a3=[],a5=[],a6=[],a7=-1,a8=new Map,a9=new Map,ba=(a,b)=>{let c=`${a}::${b.maxChunkContentChars}`;if(!a9.has(c))try{a9.set(c,aN.getFileDetail?.(a,b))}catch{a9.set(c,void 0)}return a9.get(c)},bb=async(a,b,d,e)=>{let f=bo(e),g=(0,z.c6)({query:a,scopedFilePaths:b,limit:d,weights:f,generationMode:!1}),h=a8.get(g);if(h)return h;let i=await q.search(c,a,{scope:"project",filters:{filePaths:b},limit:d,weights:f,generationMode:!1}).catch(()=>null),j=i?.results||[];return a8.set(g,j),j},bc={stage:(0,ak.X5)({type:"file_understanding",roleId:"project-understanding",status:"success",message:`已完成项目资料理解:${U.files.length} 份资料,${Object.values(U.groups).filter(a=>a.length>0).length} 类资料类型`,details:V.prompt.split("\n").slice(0,16)},{subtitle:"项目资料理解",order:I.length})};(0,ak.fx)(I,bc.stage),B();let bd=aB(await a4({manager:q,project:aN,projectRoot:c,scopedFilePaths:[...aK].filter(Boolean).sort(),fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}),aQ);aD(bd,aQ,"project-basic-evidence"),bd.length>0&&(aU.push(...bd),(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"project-basic-evidence",status:"success",message:`已锁定项目基础事实证据 ${bd.length} 条`,details:bd.slice(0,8).map(a=>`${e.basename(a.filePath)}|${a.sectionTitle||"正文片段"}|score=${a.score.toFixed(2)}`)},{subtitle:"基础事实召回",order:I.length})),B());let be=aC(T(aU,p,ar),aQ),bf=aC(Z(aU),aQ),bg=[...be,...bf,...aC($(aU,as),aQ)],bh=(0,bP.hp)({projectRoot:c,template:p,requirement:a.requirement}),bk=[...bh?.facts||[],...bg],bl=aj(bk,aC(S(aU),aQ),aY,ar,as),bm=(0,a0.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:bk,projectGraph:bh?.projectGraph,projectGraphSource:bh?"project-intelligence":void 0});for(let a of(0,a0.SU)(bm))(0,ak.fx)(I,a);bh&&(0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-intelligence-cache",status:"success",message:`已复用入库后项目理解资产与绑定 scope 快照:${bh.files.length} 份绑定资料`,details:[`项目级缓存时间:${new Date(bh.cache.createdAt).toLocaleString()}`,`scope 快照:${bh.scopeSnapshot.scopeHash.slice(0,12)}`,`复用预计算事实:${bh.facts.length} 条`,`复用预计算项目图谱:${bh.projectGraph.works.length}工程/${bh.projectGraph.methods.length}工法/${bh.projectGraph.resources.length}资源`,`复用施工组织设计专项图谱:${bh.constructionOrganizationGraph.workPackages.length} 个工作包/${bh.constructionOrganizationGraph.controlMatrix.length} 条控制矩阵`,`图谱来源:${bh.cache.projectGraphMessage}`,`章节意图证据覆盖:${Object.keys(bh.evidenceByChapterId||{}).length}/${p.chapters.length} 章`,`排除正文不适用资料:${bh.files.filter(a=>!a.usableForBody).length} 份`]},{subtitle:"项目理解缓存 / Scope 快照"})),B();let bn=bm.baseProjectGraph;if(!bh){(0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-graph",status:"running",message:`正在临时构建完整项目图谱:${aU.length} 条证据 → LLM 结构化提取`,details:["缓存缺失或版本过期,建议重新构建项目理解缓存;本次生成将临时构建完整项目图谱。","提取:工程内容、施工方法、材料设备、技术标准、重点难点"],progress:{current:2,total:3,label:"项目图谱"}},{subtitle:"项目资料图谱分析",order:I.length})),B();let b=await D(()=>(0,bO.i)({evidence:aU,signal:a.signal,projectRoot:c,requirement:a.requirement,templateId:p.id,diagnostics:b5}),I);if(!b.graph)throw Error(`完整项目图谱构建失败:${b.stage.message||b.stage.status}`);bn=b.graph,(0,ak.fx)(I,b.stage),B()}bn&&(V=(0,am._n)(p,U,bn));let bx=function(a){var b;let c=(0,z.c6)({version:"canonical-facts-v2",requirement:a.requirement||"",templateId:a.templateId||"",requiredKeys:a.requiredKeys||[],facts:a.facts.map(a=>({key:a.key,fieldId:a.fieldId,fieldName:a.fieldName,value:a.value,sourceFile:a.sourceFile,roleId:a.roleId,confidence:a.confidence})).sort((a,b)=>`${a.sourceFile}${a.key}${a.value}`.localeCompare(`${b.sourceFile}${b.key}${b.value}`)),graphHash:a.projectGraph?(0,z.c6)(a.projectGraph):"",markdownHash:a.markdown?(0,z.c6)(a.markdown.slice(0,2e4)):""}),d=function(a,b){let c=a_(a);if(c)try{let a=JSON.parse(O.readFileSync(e.join(c,`canonical-facts-${b}.json`),"utf8"));return a&&a.byKey?a:void 0}catch{return}}(a.projectRoot,c);if(d)return d;let f=aZ({facts:a.facts,markdown:a.markdown}),g={};for(let[a,b]of f.entries())g[a]=function(a){let b=a.source.includes("generated_markdown")?"generated_markdown":a.source.includes("evidence")?"evidence":"structured_fact";return{key:a.fieldKey,label:a.label,value:a.value,normalizedValue:W(a.value),sourceType:b,sourceFile:a.source,confidence:a.confidence,priority:a$(b),locked:a$(b)>=80,selectedReason:a.selectedReason}}(b);let h=a.facts||[],i=[];for(let a of[{key:"project_name",label:"项目名称",pattern:/项目名称|工程名称|招标项目名称|project_name/u,bucket:"projectIdentity"},{key:"project_code",label:"项目编号",pattern:/项目编号|招标项目编号|project_code/u,bucket:"projectIdentity"},{key:"owner",label:"招标人",pattern:/招标人|建设单位|发包人|owner/u,bucket:"projectIdentity"},{key:"project_location",label:"建设地点",pattern:/建设地点|实施地点|project_location/u,bucket:"projectIdentity"},{key:"project_scale",label:"建设规模",pattern:/建设规模|工程规模|project_scale/u,bucket:"projectScope"},{key:"construction_scope",label:"施工范围",pattern:/施工范围|招标范围|工程范围/u,bucket:"projectScope"},{key:"duration",label:"计划工期",pattern:/计划工期|合同工期|总工期|schedule_requirement|duration/u,bucket:"schedule"},{key:"quality_target",label:"质量目标",pattern:/质量标准|质量目标|quality_standard/u,bucket:"quality"}]){let b=function(a,b,c,d){return a.filter(a=>d.test(`${a.fieldId||""}${a.key||""}${a.fieldName||""}`)).map(a=>(function(a,b,c){let d=(0,z.lG)(a.value),e=function(a){let b=`${a.sourceFile||""} ${a.sourceRef?.sectionTitle||""} ${a.roleId||""}`;return/合同/u.test(b)?"contract":/招标|公告|前附表|需求书/u.test(b)?"tender":/清单|工程量|BOQ|报价/u.test(b)?"boq":/图纸|设计|CAD|DWG/u.test(b)?"drawing":/规范|标准/u.test(b)?"standard":"structured_fact"}(a);return{key:b,label:c,value:d,normalizedValue:W(d),sourceType:e,sourceFile:a.sourceFile,sourceRef:a.sourceRef?.sectionTitle,confidence:Math.round(100*(a.confidence||.5)),priority:a$(e),locked:a$(e)>=80,selectedReason:"按资料来源优先级和字段置信度决策"}})(a,b,c)).filter(a=>a.value&&!/资料未明确|系统暂未确认/u.test(a.value)).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence||a.value.length-b.value.length)}(h,a.key,a.label,a.pattern);!g[a.key]&&b.length>0&&(g[a.key]=b[0]);let c=function(a,b,c){let d=[...new Map(c.map(a=>[a.normalizedValue,a])).values()];if(d.length<=1)return;let e=Math.max(...d.map(a=>a.priority)),f=d.filter(a=>a.priority===e);return{key:a,label:b,values:d.map(a=>({value:a.value,sourceFile:a.sourceFile,priority:a.priority,confidence:a.confidence})),decision:1===f.length?"highest_priority_selected":"manual_review_required"}}(a.key,a.label,b);c&&i.push(c)}let j=(b=a.projectGraph)?[...(b.resources||[]).map(a=>({key:`resource_${a.type}_${a.name}`,label:"equipment"===a.type?"机械设备":"labor"===a.type?"劳动力":"材料资源",value:[a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" "),normalizedValue:W([a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:a$("projectGraph"),locked:!1,selectedReason:"来自项目图谱资源节点"})).filter(a=>a.value),...(b.risks||[]).map(a=>({key:`risk_${a.risk}`,label:"风险源",value:[a.risk,a.level,a.mitigation].filter(Boolean).join(" "),normalizedValue:W([a.risk,a.level,a.mitigation].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:a$("projectGraph"),locked:!1,selectedReason:"来自项目图谱风险节点"})).filter(a=>a.value)]:[],k=j.filter(a=>/resource_/u.test(a.key)),l=j.filter(a=>/risk_/u.test(a.key));for(let a of j)g[a.key]||(g[a.key]=a);let m=(a.requiredKeys||[]).filter(a=>!g[a]).map(a=>({key:a,label:aW.find(b=>b.key===a)?.label||a,reason:"未从用户输入、招标资料、清单、图纸或项目图谱中确认该事实"})),n={projectIdentity:{projectName:g.project_name,projectCode:g.project_code,owner:g.owner,location:g.project_location},projectScope:{scale:g.project_scale,constructionScope:g.construction_scope},schedule:{duration:g.duration||g.schedule_requirement},quality:{target:g.quality_target||g.quality_standard},safety:{risks:l},resources:{resources:k},environment:{},constraints:{},byKey:g,conflicts:i,gaps:m},o=a_(a.projectRoot);return o&&O.writeFileSync(e.join(o,`canonical-facts-${c}.json`),JSON.stringify(n,null,2)),n}({facts:bk,projectGraph:bn,requiredKeys:aW.map(a=>a.key),projectRoot:c,requirement:a.requirement,templateId:p.id});bl.canonical=bx;let by=(0,t._9)(p,ar,{preserveExplicitOutline:ab}),bz=(0,G.dK)({template:p,chapters:by,requirement:a.requirement}),bA=K({template:p,chapters:bz,requirement:a.requirement}),bB=(0,M.w)({chapters:bA.enrichedChapters,projectGraph:bn,canonicalFacts:bx});p={...p,chapters:bB};let bC=new Map;if(bn){let a=new Set;for(let b of[...bn.works,...bn.methods,...bn.resources,...bn.schedule,...bn.standards,...bn.risks,...bn.requirements,...bn.siteConditions])(b.sourceFiles||[]).forEach(b=>a.add(b));for(let b of bB){let c=[b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]].join(" "),d=a=>a&&((0,b3.C1)(a,c,.18)||(0,b3.C1)(a,b.title,.12)),e=/概况|总体|部署|施工|进度|工期|质量|安全|资源|人材机|材料|机械|劳动力|风险|危大|绿色|环保/u.test(c),f=bn.works.filter(a=>a.name&&(d(a.name)||e)),g=bn.methods.filter(a=>a.name&&(d(a.name)||(a.applicableWorks||[]).some(d)||e)),h=bn.resources.filter(a=>a.name&&(d(a.name)||/资源|人材机|材料|机械|劳动力/u.test(c)&&/material|equipment|labor/u.test(a.type))),i=bn.gaps.filter(a=>d(a)||e),j=new Set;for(let a of f)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of g)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of h)(a.sourceFiles||[]).forEach(a=>j.add(a));0===j.size&&e&&[...a].slice(0,12).forEach(a=>j.add(a)),bC.set(b.id,{graphFiles:j,graphBoqItems:h.map(a=>({name:a.name,quantity:a.quantity,unit:a.unit,sourceFiles:a.sourceFiles||[]})),graphWorks:f.map(a=>a.name),graphMethods:g.map(a=>a.name),gaps:i})}bh||((0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-graph-match",status:"success",message:`图谱→章节映射完成:${bn.works.length}工程 ${bn.methods.length}工法 ${bn.resources.length}资源 → ${bB.length}章`,details:bB.map(a=>{let b=bC.get(a.id);return`${(0,t.GQ)(a.title)}:匹配文件${b?.graphFiles.size||0}个,BOQ项${b?.graphBoqItems.length||0}个`})},{subtitle:"图谱章节映射"})),B())}let bD=bB,bE=(0,bP.TD)(bh?.constructionOrganizationGraph)||bh?.constructionOrganizationContext,bF=[V.prompt,bE].filter(Boolean).join("\n\n"),bG=[bF,F({template:{...p,chapters:bD},chapters:bD,factsModel:bl,requirement:a.requirement})].filter(Boolean).join("\n\n"),bH={...p,chapters:bD},bI=(0,ao.My)([aH,a.requirement||""].filter(Boolean).join("\n\n"),bD),bJ=(0,w.tF)({requirement:a.requirement,promptTexts:aH,template:bH,chapters:bD,spec:ar}),bK=0,bL=0,bM=await (0,z.l$)(bD.map((a,b)=>({chapter:a,chapterIndex:b})),async({chapter:b,chapterIndex:c})=>{if(b.sections?.length){bK+=1;let a=bI.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title)),d=(0,ao.k2)([...a,...b.sections],b.title);return{...b,sections:d.length?d:(0,ao.k2)(b.sections,b.title)}}bL+=1;let d=(0,s.QR)(aU.filter(a=>a.chapterId===b.id||(0,u.Lk)(a,b.title)),{maxChars:(0,s.Pc)(bJ.chapterTargets.get(b.id)||1200),preservePinned:!0}),e=V.chapterPlans.find(a=>a.chapterId===b.id)?.writingGoal||"",f=bj(J,b),g=await (0,ao.SP)({template:bH,chapter:b,chapterIndex:c,evidence:d,promptTexts:f.promptTexts,projectContext:bG,requirement:a.requirement,roleContext:e,targetWords:bJ.chapterTargets.get(b.id)||1200,structuralRules:bI,signal:a.signal}),h=bI.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.map(a=>`强制小节:${a.title}`));if((0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"section-planning",promptId:f.primaryPromptId,status:g.length?"success":"failed",message:`${(0,t.GQ)(b.title)} 小节规划${g.length?`生成 ${g.length} 个小节`:"未生成可用小节"}`,details:[...f.promptDetails,...h,...g.length?g.map(a=>`规划小节:${a}`):["规划结果为空或被污染过滤"]]},{subtitle:"小节规划"})),!g.length)throw Error(`${(0,t.GQ)(b.title)} 小节规划未生成可用小节`);return{...b,sections:g}},{kind:"llmRepair",targetWords:bJ.targetChars||4e3,concurrency:2}),bS=(0,G.dK)({template:p,chapters:bM,requirement:a.requirement}),bT=K({template:p,chapters:bS,requirement:a.requirement});bD=(0,M.w)({chapters:bT.enrichedChapters,projectGraph:bn,canonicalFacts:bx}),(bT.issues.length>0||bA.issues.length>0)&&(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"bid-structure-audit",status:bT.issues.some(a=>"blocker"===a.severity)?"failed":"success",message:`评标结构符合性校验:${bT.diagnostics.length} 个结构组,${bT.diagnostics.filter(a=>"satisfied"===a.status).length} 个已满足,${bT.diagnostics.filter(a=>"missing"===a.status&&"required"===a.level).length} 个必查缺失(已自动补挂),${bT.diagnostics.filter(a=>"fragmented"===a.status).length} 个分散`,details:[...bT.diagnostics.map(a=>`${"satisfied"===a.status?"满足":"fragmented"===a.status?"分散":"补挂"}:${a.groupTitle}${"missing"===a.status?`(补挂小节:${a.missingSections.join("、")})`:""}`),...bT.issues.map(a=>`提示:${a.message}`).slice(0,8)]},{subtitle:"评标结构校验"})),p={...p,chapters:bD};let bZ=function(a){let b=(0,G.yt)({template:{id:"runtime",name:a.templateName||"",outputTitle:"",description:"",category:"",chapters:a.chapters},chapters:a.chapters,requirement:a.requirement}),c=/施工组织设计|施工组织|施组|技术标/u.test(`${a.templateName||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`)||b.length>0,d=Object.values(a.factsModel?.canonical?.byKey||{}).map(a=>`${a.label}=${a.value}`),e=["正文必须落到本项目资料已确认的事实,不得使用模板化空话或跨小节复制段落",'措施类内容写成"责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项"','工作包级小节按"施工概况/施工流程/施工方法"三段式展开'],f=a.chapters.map(b=>{var c;let d=(c=b.title,L.find(a=>a.pattern.test(c))),e=(a.projectGraph?.works||[]).filter(a=>a.name&&(b.title.includes(a.name.slice(0,2))||/概况|总体|施工内容|方案|施工/u.test(b.title))).slice(0,10),f=(a.projectGraph?.resources||[]).filter(a=>a.quantity&&/概况|资源|总体|施工内容|方案/u.test(b.title)).slice(0,12).map(a=>({itemCode:"",itemName:a.name,quantity:a.quantity,unit:a.unit}));return{chapterId:b.id,chapterTitle:b.title,writingGoal:d?.goal||"结合本章标题与项目资料事实展开专业内容,避免泛化叙述",mustCover:[...d?.mustCover||[],...(b.requiredFacts||[]).slice(0,6)],factDomains:[...b.requiredFacts||[],...e.map(a=>a.name)].slice(0,10),evidenceRefs:b.queries.slice(0,6).map(a=>({filePath:a,kind:"query",priority:"should"})),boqTargets:f,drawingTargets:[],gaps:[]}});return{documentType:c?"施工组织设计":"专业文档",globalWritingFocus:c?[...e,...d.length?[`项目可信基础事实(写作时必须优先落位):${d.slice(0,10).join(";")}`]:[]]:e.slice(0,2),chapters:f}}({chapters:bD,factsModel:bl,projectGraph:bn||void 0,requirement:a.requirement,templateName:p.name}),b$=F({template:p,chapters:bD,factsModel:bl,requirement:a.requirement});bG=[bF,b$].filter(Boolean).join("\n\n"),bh||(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-blueprint",status:"success",message:"已生成全局事实主表与文档蓝图,后续章节和小节将共用同一套专业约束",details:b$.split("\n").slice(0,12)},{subtitle:"全局蓝图"}));let b_=(0,w.tF)({requirement:a.requirement,promptTexts:aH,template:p,chapters:bD,spec:ar}),b0=function(a){let b=Date.now(),c=a.template.chapters.map(a=>{let b=a.sections?.length?a.sections:[a.title];return{chapterId:a.id,title:a.title,purpose:a.purpose||bX(a.title),requiredFacts:[...new Set([...a.requiredFacts||[],a.title])],requiredGraphNodes:[a.title],evidenceQueries:[...new Set([a.title,...a.queries||[],...a.requiredFacts||[]])],qualityRules:["事实必须来自锁定资料范围","不得出现后台话术和兜底措辞","不得混入其他项目名称","章节必须覆盖规划小节"],forbiddenPhrases:bQ,sections:b.map(b=>({title:b,objective:bX(b),requiredFacts:[...new Set([b,...a.requiredFacts||[]])],requiredGraphNodes:[b],evidenceQueries:[...new Set([a.title,b,...bW(a.title),...bW(b),...a.queries||[],...a.requiredFacts||[]].filter(Boolean))],forbiddenPhrases:bQ,minChars:/项目特点.*重点.*难点|重点.*难点.*分析/u.test(b)?1800:/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u.test(b)?2200:/原材料进场复试|见证取样|危大工程专项施工方案审批流程/u.test(b)?800:/施工部署|施工流水|主要施工机械|劳动力|材料进场|资源动态|质量控制点|危大工程|安全隐患|临时用水|临时用电/u.test(b)?760:/概况|说明|依据/u.test(b)?260:420}))}});return{plan:{planId:`plan-${(0,z.c6)({templateId:a.template.id,scope:a.context.materialScope.scopeHash,chapters:c.map(a=>a.title)}).slice(0,10)}`,title:a.title||a.template.name,chapters:c,requiredGlobalFacts:["项目名称","工期","质量标准","招标范围"],forbiddenPhrases:bQ,qualityRules:["资料范围先锁定","基础图谱必跑","章节任务先于正文","Reviewer 通过后才能导出"]},node:{id:"document-planner",type:"document_planner",status:"completed",startedAt:b,completedAt:Date.now(),outputSummary:`${c.length} 章、${c.reduce((a,b)=>a+b.sections.length,0)} 个小节任务`,metrics:{chapters:c.length}}}}({template:p,context:bm,title:p.name});bm.documentPlan=b0.plan,bm.nodes.push(b0.node),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"agent-document-planner",status:"success",message:b0.node.outputSummary||"Agent 文档规划完成",details:b0.plan.chapters.map(a=>`${a.title}:${a.sections.length} 个小节任务`)},{subtitle:"Agent Document Planner",order:I.length})),A=bD.map(a=>a.id);let b4=(0,al.JP)({template:p,targetWords:b_.targetChars||[...b_.chapterTargets.values()].reduce((a,b)=>a+b,0),requirement:a.requirement}),b5=(0,al.Zk)(b4);(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-strategy",status:"success",message:`已自动选择 ${b4.mode} 生成策略:章节审查 ${b4.enableChapterReview?"启用":"跳过"}、全局审查 ${b4.enableGlobalReview?"启用":"跳过"}、最终质量审查 ${b4.enableFinalQualityReview?"启用":"跳过"}、全文扩写 ${b4.enableDocumentBudgetExpansion?"启用":"跳过"};LLM 调用按工作流任务自然并行`},{subtitle:"后台自动策略"}));let b6=ab?"OUTLINE 章节":"模板章节",b7=(0,ak.X5)({type:"validation",roleId:"section-planning",status:"success",message:`小节规划:${bL} 章由 LLM 基于${b6}、项目资料理解和证据规划小节,${bK} 章已由模板显式提供小节并跳过规划`},{subtitle:"小节规划策略"}),b8=ab?`;识别到 OUTLINE 章节 ${aa.length} 个`:";未识别到有效 OUTLINE,将使用模板章节",b9=[...J.prompts.map(a=>`${a.category}|${a.roleId}|${a.id}|${a.name}|${a.bindingSource}|${a.content.length} 字符|hash=${a.contentHash}|${a.contentPreview}`),...J.unresolvedRoles.map(a=>`unresolved|${a}|项目角色配置中的提示词角色不存在`),...J.missingResourceRoles.map(a=>`missingResource|${a}|提示词角色未显式绑定资源`)];(0,ak.fx)(I,(0,ak.X5)({type:"role_binding",roleId:E,status:"success",message:`已绑定项目资料 ${Q.length} 份、${J.prompts.length} 个有效提示词;写作 ${J.writerPrompts.length}、章节 ${J.chapterPrompts.length}、抽取 ${J.extractionPrompts.length};已自动抽取运行时规则 ${aF.executionSummary.length} 条;语义资料覆盖 ${Math.round(100*at.materialCoverageRate)}%${b8}`,details:[...b9,...aF.executionSummary.map(a=>`runtimeRule|${a}`)]},{subtitle:H,roleName:H})),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"runtime-prompt-rules",status:"success",message:`运行时提示词规则已抽取:${aF.executionSummary.length} 条,版本 ${aF.sourceHash}`,details:aF.executionSummary.length?[...aF.executionSummary,`必需表格:${aF.requiredTables.join("、")||"无"}`,`必含关键词:${aF.requiredKeywords?.join("、")||"无"}`,`禁含内容:${aF.forbiddenPatterns?.join("、")||"无"}`]:["未从提示词中识别到额外硬规则,使用系统默认质量规则"]},{subtitle:"提示词规则执行"})),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-readiness",status:at.ready?"success":"failed",message:`生成准备度:绑定资料已就绪,语义覆盖 ${Math.round(100*at.materialCoverageRate)}%,角色匹配 ${Math.round(100*at.roleSatisfactionRate)}%,优化建议 ${Math.round(100*at.specCompletenessRate)}%`,details:at.diagnostics},{subtitle:"生成准备度检查"})),(0,ak.fx)(I,b7),B();let ca=Math.round(([...b_.chapterTargets.values()].reduce((a,b)=>a+b,0)||b_.targetChars||0)/Math.max(1,bD.length)),cb=Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0),cc=bD.some(a=>(a.sections||[]).filter(Boolean).length>=30),cd=bD.length<=1||cc?1:b_.longformStrict||ca>=9e3?2:ca>=6500?Math.min(3,bD.length):Math.min(4,bD.length),ce=Math.max(1,Math.min(bD.length||1,Number.isFinite(cb)&&cb>0?Math.floor(cb):cd));(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"chapter-concurrency",status:"success",message:`章节自适应调度:本轮 ${ce}/${bD.length} 章并发`,details:[`有效章节数:${bD.length}`,`平均章节目标:${ca} 字`,Number.isFinite(cb)&&cb>0?`章节并发来自 DOCUMENT_CHAPTER_CONCURRENCY=${Math.floor(cb)}`:`章节并发自适应=${cd},${cc?"存在超长显式小节章,优先逐章产出 checkpoint":"长章保守、短章提速"}`]},{subtitle:"章节并发策略"})),B();for(let b=0;b<bD.length;b+=ce){let d=bD.slice(b,b+ce);await Promise.all(d.map(async(d,f)=>{let g,h=b+f;(0,z.Te)(a.signal);let i=Date.now(),j=I.length;try{var k,m;let b;I.push((0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在检索证据并准备章节内容`,details:[`章节序号:${h+1}/${bD.length}`,`二级小节:${d.sections?.length||0} 个`,"正在生成检索查询"],progress:{current:h+1,total:bD.length,label:"章节生成"}},{subtitle:(0,t.GQ)(d.title),order:h})),B();let f=a.resumeChapters?.find(a=>a.id===d.id||a.title===d.title),o=f?.content?.trim(),r=f?.evidence?.length?[...f.evidence]:[],A=V.chapterPlans.find(a=>a.chapterId===d.id||a.chapterTitle===d.title),C=A?Object.values(A.evidenceQueries).flat().filter(Boolean):[],E=d.queries.length>0?d.queries:[p.name,p.outputTitle,d.title],F=bC.get(d.id);if(bn&&F&&F.graphFiles.size>0){let a=[...aP],b=b=>a.includes(b)?b:a.find(a=>a.endsWith(b)||a.includes(b));for(let a of[...F.graphFiles].map(a=>b(a)||a).filter(a=>(0,al.Tz)(c,a,aP)).slice(0,12)){let b=ba(a,{maxChunkContentChars:8e3});if(b?.chunks?.length)for(let c of b.chunks)r.push({chapterId:d.id,filePath:b.file?.relativePath||a,score:5+(F.graphWorks.length+F.graphMethods.length)*.5,content:c.content,roleId:aL.get(a),processingType:aM.get(a),sectionTitle:c.sectionTitle,source:"graph-evidence"})}}let G=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?a2:[],H=bq(d,[...E,...C],G),K=br(d,G),L=Date.now();I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在执行质量优先的章节检索${F?.graphFiles.size?`(图谱匹配 ${F.graphFiles.size} 个文件)`:""}`,details:H.slice(0,K).map(a=>`检索:${a.slice(0,42)}`),progress:{current:h+1,total:bD.length,label:"证据检索"}},{subtitle:(0,t.GQ)(d.title),order:h}),B();let M=o?[]:[...aP].filter(Boolean).sort(),O=o?[]:bh?.evidenceByChapterId?.[d.id]||[];O.length>0&&r.push(...O);let P=[],S=H.slice(0,K),T=(d.requiredFacts||[]).filter(a=>!!a&&!S.some(b=>b.includes(a)||a.includes(b))).slice(0,4).map(a=>`${d.title} ${a}`),W=[...S,...T];if(M.length>0&&W.length>0){(0,z.Te)(a.signal);let b=await (0,z.l$)(W,async a=>bb(a,M,Math.min(aR,12),d.title),{kind:"search"});P.push(...b)}for(let a of(b5.evidence.searchQueries+=W.length,b5.evidence.searchMs+=Date.now()-L,P))r.push(...a.filter(a=>(0,al.Tz)(c,a.filePath,aK)).map(a=>({chapterId:d.id,filePath:a.filePath,score:a.score,content:a.content,roleId:aL.get(a.filePath),processingType:aM.get(a.filePath),sectionTitle:a.sectionTitle,source:a.source})));let X=o?[]:await (0,am.$b)({manager:q,projectRoot:c,chapter:d,plan:A,profile:U,scopedFilePaths:M,limitPerQuery:Math.min(aR,10),signal:a.signal}).catch(()=>[]);r.push(...X);let Y=new Set((d.pinnedEvidenceFilePaths||[]).filter(Boolean)),Z=[];/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)&&r.push(...bd.map(a=>({...a,chapterId:d.id,source:"pinned-evidence"})));let $=new Set([...Y]),_=b_.chapterTargets.get(d.id)||1200,aa=(0,s.Pc)(_,6e3,12e3);for(let a of $){if(!(0,al.Tz)(c,a,aK))continue;let b=Y.has(a),e=ba(a,{maxChunkContentChars:aa});e&&r.push(...e.chunks.map(a=>({chapterId:d.id,filePath:e.file.relativePath,score:1,content:a.content,roleId:aL.get(e.file.relativePath),processingType:aM.get(e.file.relativePath),sectionTitle:a.sectionTitle,source:b?"pinned-evidence":"bound-file"})))}let ab=r.filter(a=>(0,al.Tz)(c,a.filePath,aP));if(!o&&aE.enabled&&aE.allowProjectFacts){let b=await aw({config:aE,chapterId:d.id,chapterTitle:d.title,sectionTitles:d.sections||[],runtimeRules:aF,localFacts:[...bl.project,...bl.schedule,...bl.quality,...bl.safety,...bl.resources,...bl.preciseFacts],signal:a.signal});aX.queries.push(...b.queries),aX.filteredCount+=b.filtered+b.evidence.length}let aj=(0,s.Pc)(_,7e3,26e3),ao=o?[]:(0,am.SK)({project:aN,chapter:d,plan:A,profile:U,scopedFilePaths:M,highRisk:aT.highRisk});ao.length>0&&ab.push(...aB(ao,aQ)),ab=aB(ab,aQ);let ap=bp(d,ab,{maxItems:bs(aR,d,aT.highRisk),maxChars:aj+(aT.highRisk?14e3:4e3),preservePinned:!0},b5);aD(ap,aQ,`chapter:${d.id}:initial`);let aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))),at=0,av=function(a){let b=(a.chapter.requiredFacts||[]).filter(b=>!a.evidence.some(a=>b2(`${a.sectionTitle||""}${a.content||""}`).includes(b2(b)))),c=(a.chapter.tablePlans||[]).flatMap(a=>a.fillability?.missingProjectFactFields||[]),d=a.evidence.length<3?["章节证据数量不足"]:[],e=b.length+c.length+d.length,f=e>=5?"high":e>=2?"medium":"low",g="high"===f?"evidence_first":c.length>0?"generate_with_review_notes":b.length>0?"section_first":"normal";return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,canGenerate:!0,riskLevel:f,missingFacts:b,missingEvidence:d,tableFieldGaps:[...new Set(c)],suggestedStrategy:g,reason:0===e?"章节事实、证据和表格可填性满足常规生成条件。":`识别到 ${e} 项生成前缺口,按 ${g} 策略生成。`}}({chapter:d,evidence:ap}),ax=new Set(ap.map(a=>a.filePath)).size,ay=!!F&&(F?.graphFiles.size||0)>=8&&ax>=6&&0===aq.length&&"low"===av.riskLevel,az=M.length<=80&&("evidence_first"===av.suggestedStrategy||aT.highRisk||aq.length>0||ap.length<8&&"low"!==av.riskLevel);if(!ay&&az&&M.length>0){let b=await N({manager:q,projectRoot:c,chapter:d,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,requiredNeeds:aq,highRisk:aT.highRisk,signal:a.signal}).catch(()=>[]);at=b.length,b.length>0&&(ab=bp(d,[...ab,...aB(b,aQ)],{maxItems:bs(aR+12,d,aT.highRisk),maxChars:aj+(aT.highRisk?36e3:16e3),preservePinned:!0},b5),ab=aB(ab,aQ),ap=bp(d,ab,{maxItems:bs(aR+8,d,aT.highRisk),maxChars:aj+(aT.highRisk?28e3:12e3),preservePinned:!0},b5),aD(ap,aQ,`chapter:${d.id}:deep`),aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))))}for(let a of(0===ap.length&&aY.push(`${d.title}:缺少可支撑正文的项目资料证据`),aq))aY.push(`${d.title}:事实需求未满足 ${a}`);let aA=(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-base",status:aU.length>0?"success":"failed",message:`已检索/绑定 ${aU.length} 条证据`});a7<0?a7=(0,ak.fx)(I,aA):I[a7]={...aA,order:I[a7]?.order??aA.order},B(),(0,z.Te)(a.signal);let aC=F?[F.graphWorks.length?`图谱识别本章工程内容:${F.graphWorks.join("、")}`:"",F.graphMethods.length?`图谱识别本章施工方法:${F.graphMethods.join("、")}`:"",F.graphBoqItems.length?`图谱识别本章BOQ清单项(${F.graphBoqItems.length}项):${F.graphBoqItems.slice(0,30).map(a=>`${a.name} ${a.quantity}${a.unit}`).join("、")}`:"",F.gaps.length?`图谱识别本章资料缺口:${F.gaps.join(";")}`:""].filter(Boolean).join("\n"):"",aG=[function(a,b){let c=a.chapters.find(a=>a.chapterId===b);return c?["【本章写作任务书】",`写作目标:${c.writingGoal}`,c.mustCover.length?`必须覆盖:${c.mustCover.join("、")}`:"",c.boqTargets.length?`清单目标项:${c.boqTargets.slice(0,20).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join("、")}`:""].filter(Boolean).join("\n"):""}(bZ,d.id),aC,A?.writingGoal,A?.mustCover?.length?`本章必须覆盖:${A.mustCover.join("、")}`:"",A?.mustUseMaterialKinds?.length?`本章优先使用资料类型:${A.mustUseMaterialKinds.join("、")}`:""].filter(Boolean).join("\n"),aH=bj(J,d);if(J.writerPrompts.length>0&&!aH.primaryWriter)throw Error(`${(0,t.GQ)(d.title)} 写作主控提示词未进入章节生成阶段`);let aI=[aH.promptTexts,au].filter(Boolean).join("\n\n"),aJ=aH.promptDetails.length?aH.promptDetails:["未绑定章节写作提示词"],aO=function(a){let b=a.profile||l,c=[],d=[a.template.name,a.template.outputTitle,a.chapter.title,a.chapter.purpose,...a.chapter.sections||[]].filter(Boolean).join(" "),e=a.spec?.chapterRules.find(b=>b.id===a.chapter.id||b.title===a.chapter.title);for(let d of a.chapter.requiredFacts||[])ae(c,b,{label:d,category:n(b,d)?.category||"required",required:!0,source:"template"});for(let d of a.chapter.sections||[])ae(c,b,{label:d,category:"section",required:!1,source:"section",queries:ad(d,[a.chapter.title])});for(let d of a.plan?.requiredContents||[])ae(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of a.plan?.evidenceNeeds||[])ae(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of e?.requiredFactIds||[]){let e=a.spec?.factFields.find(a=>a.id===d);e&&ae(c,b,{label:e.name,category:n(b,e.name)?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ad(e.name,[e.extractionHint||"",e.validationHint||""])})}for(let e of a.spec?.factFields||[]){if(!e.required)continue;let f=n(b,e.name),g=`${e.name} ${e.extractionHint||""} ${e.validationHint||""}`;(d.includes(e.name)||ad(e.name,f?.aliases||[]).some(a=>d.includes(a))||a.chapter.requiredFacts.some(a=>a.includes(e.name)||e.name.includes(a)))&&ae(c,b,{label:e.name,category:f?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ad(e.name,[g])})}for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&d.includes(a))&&af(c,b,a,"profile","must_use"===a.usagePolicy,[d]);let f=ac(a.requirement||"");if(f)for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&f.includes(a))&&af(c,b,a,"requirement",!0,[f]);let g=ac(a.promptTexts||"");if(g)for(let d of b.factFields)[d.name,...d.aliases].some(a=>a.length>=2&&g.includes(a))&&af(c,b,d,"prompt","must_use"===d.usagePolicy,[a.chapter.title]);return c}({template:p,chapter:d,spec:ar,profile:as,promptTexts:aI,requirement:a.requirement,plan:A?{requiredContents:A.mustCover,evidenceNeeds:Object.values(A.evidenceQueries).flat()}:void 0}),aS=ah({needs:aO,factsModel:bl,evidence:ab,profile:as}),aW=aS.filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label);if(aW.length>0&&M.length>0){let b=await bu({manager:q,projectRoot:c,chapter:d,needs:aW,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}).catch(()=>[]),e=await N({manager:q,projectRoot:c,chapter:d,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,requiredNeeds:aW,highRisk:!0,signal:a.signal}).catch(()=>[]),f=aB([...b,...e],aQ);f.length>0&&(ab=bp(d,[...ab,...f],{maxItems:bs(aR+16,d,!0),maxChars:aj+42e3,preservePinned:!0},b5),ab=aB(ab,aQ),ap=bp(d,ab,{maxItems:bs(aR+12,d,!0),maxChars:aj+32e3,preservePinned:!0},b5),aD(ap,aQ,`chapter:${d.id}:supplemental`),aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))),aW=(aS=ah({needs:aO,factsModel:bl,evidence:ab,profile:as})).filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label))}aD(ap,aQ,`chapter:${d.id}:writer-input`);let aZ=function(a){let b=a.chapter.sections?.length||0,c=(a.chapter.sections||[]).filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b)||`${a.sectionTitle||""} ${a.content}`.includes(b))).length,d=a.chapter.requiredFacts.length,e=a.chapter.requiredFacts.filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b))).length;return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,risk:a.risk,evidenceCount:a.evidence.length,evidenceFiles:new Set(a.evidence.map(a=>a.filePath)).size,sectionCovered:c,sectionTotal:b,requiredFactCovered:e,requiredFactTotal:d}}({chapter:d,evidence:ap,risk:aT});aV.push(aZ);let a$=new Set(ap.map(a=>a.filePath)),a_=ap.reduce((a,b)=>a+b.content.length,0),a0=[...aT.highRisk?[`召回覆盖风险(${aT.riskReason||"切片未完全预加载"}):已加载 ${aT.loadedChunks}/${aT.totalChunks},已启用深召回`]:[],`项目理解缓存证据:${O.length} 条`,`深召回证据:${at} 条`,`事实覆盖:${aZ.requiredFactCovered}/${aZ.requiredFactTotal}`,`小节覆盖:${aZ.sectionCovered}/${aZ.sectionTotal}`];I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 已选取 ${ap.length} 条高相关证据,正在生成正文`,details:[`使用绑定文件:${a$.size} 份`,`上下文字符:${a_}`,`检索查询:${Math.min(H.length,K)} 组`,...a0],progress:{current:h+1,total:bD.length,label:"正文生成"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(),b5.evidence.contextChars+=a_;let a3=(k=aS,ag(k.flatMap(a=>a.facts))),a4=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?bf:[],a8=(0,an.hZ)({chapter:d,plan:void 0,spec:ar,roleFacts:Z,evidence:ap,missingFacts:aq,indexedFacts:[...a4,...a3],resolvedFactNeeds:aS,factNeedsPrompt:function(a){let b=a.map(a=>{let b=a.facts.slice(0,5).map(b=>`${b.key||b.fieldName||a.need.label}=${ai(b.value)}${b.sourceFile?`(${e.basename(b.sourceFile)})`:""}`),c=a.facts.length?[]:(a.evidence||[]).slice(0,2).map(a=>`证据片段:${ai(a.content).slice(0,160)}${a.filePath?`(${e.basename(a.filePath)})`:""}`);return`- ${a.need.required?"必须":"相关"}|${a.need.label}|${a.status}${b.length||c.length?`:${[...b,...c].join(";")}`:":未在已解析资料中确认"}`});return b.length?`事实需求覆盖卡片:
52
+ ${(0,v.CK)(p)}`,ax||az].filter(Boolean).join("\n\n"),aI=[av,aG,(0,al.fC)([...J.extractionPrompts,...J.referencePrompts])].filter(Boolean).join("\n\n"),aJ=[au,aG,(0,al.fC)([...J.writerPrompts,...J.chapterPrompts,...J.formattingPrompts])].filter(Boolean).join("\n\n");(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-preparation",status:"success",message:`模板规范与项目资料理解完成,识别 ${Q.length} 份项目资料`,details:[`提示词绑定:${P.length} 个`,`项目资料包:${U.materialRoots.join("、")||"当前知识库"}`,ab?`识别 OUTLINE 章节:${aa.length} 个`:"未识别显式 OUTLINE,使用模板章节"],progress:{current:3,total:3,label:"准备完成"}},{subtitle:"生成准备",order:I.length})),B();let aK=new Set(Q),aL=new Map([...X.entries()].map(([a,b])=>[a,(0,am._W)(b)])),aM=new Map([...Y.entries()].map(([a,b])=>[a,b]));(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:"running",message:"正在读取项目资料包索引",details:["使用上传阶段已完成的解析、切片和索引结果","不在生成流程中重新解析或入库","准备按资料类型召回章节证据"],progress:{current:1,total:3,label:"读取索引"}},{subtitle:"知识库检索",order:I.length})),B();let aN=await D(()=>q.getProject(c)),aO=function(a,b){let c=new Set(b.filter(Boolean)),d=(a.listFiles?.()||[]).filter(a=>0===c.size||c.has(a.relativePath)),e=new Set(d.map(a=>a.relativePath)),f=[...c].filter(a=>!e.has(a)),g=d.filter(a=>0===Math.max(0,Math.ceil(Number(a.chunkCount)||0))).map(a=>a.relativePath),h=d.filter(a=>"error"===a.status).map(a=>a.relativePath),i="function"==typeof a.countPendingIndexJobs?a.countPendingIndexJobs():0,j="function"==typeof a.getVectorStatus?a.getVectorStatus():void 0,k=d.filter(a=>"error"!==a.status&&Math.max(0,Math.ceil(Number(a.chunkCount)||0))>0),l=k.map(a=>a.relativePath),m=k.reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0),n=[...bv("部分绑定文件未完成索引,已自动跳过",f),...bv("部分绑定文件没有可用切片,已自动跳过",g),...bv("部分绑定文件索引失败,已自动跳过",h)],o=c.size>0&&0===m?["所有绑定文件均无可用切片"]:[],p=[...n,...i>0?[`仍有 ${i} 个待索引任务,建议等待索引完成后生成`]:[],...j&&"ready"!==j.status?[`向量索引状态为 ${j.status},当前召回质量可能下降`]:[]];return{scopedRecords:d,usablePaths:l,missingFiles:f,emptyFiles:g,errorFiles:h,pendingJobs:i,vectorStatus:j,usableChunkCount:m,blockingIssues:o,warnings:p}}(aN,[...aK]);if(aO.blockingIssues.length>0)throw Error(`生成前知识索引不可用:${aO.blockingIssues.join(";")}`);let aP=new Set(aO.usablePaths),aQ=ay(o,[...aP]),aR=bw(aN,[...aP],a.maxEvidencePerChapter),aS=aO.pendingJobs>0||0===aO.usableChunkCount,aT=function(a){let b=Math.max(0,Math.ceil(a.totalChunks||0)),c=Math.max(0,Math.ceil(a.loadedChunks||0)),d=Math.max(0,b-c),e=b>0?c/b:1,f=[...b>=1e3&&e<.35?["切片未完全预加载"]:[],...!1===a.vectorReady?["向量索引未就绪"]:[]];return{totalChunks:b,loadedChunks:c,omittedChunks:d,loadedRatio:e,highRisk:f.length>0,riskReason:f.join("、")||void 0}}({totalChunks:Math.min(aO.usableChunkCount,20*Q.length),loadedChunks:Math.min(aO.usableChunkCount,20*Q.length),vectorReady:aO.vectorStatus?"ready"===aO.vectorStatus.status:void 0});(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:aS?"failed":"success",message:`已读取知识索引:项目资料 ${aO.scopedRecords.length} 份,可用切片 ${aO.usableChunkCount} 条`,details:[`项目资料:${aK.size} 份`,`可用证据文件:${aP.size} 份`,`向量状态:${aO.vectorStatus?.status||"unknown"}`,...aO.warnings,"后续将按招标正文/清单/图纸/补疑等资料类型召回"],progress:{current:3,total:3,label:"索引已就绪"}},{subtitle:"知识库检索",order:I.length})),B(),(0,z.Te)(a.signal);let aU=[],aV=[],aX={enabled:aE.enabled,queries:[],evidenceCount:0,filteredCount:0,chapters:[]},aY=[],a1=[],a3=[],a5=[],a6=[],a7=-1,a8=new Map,a9=new Map,ba=(a,b)=>{let c=`${a}::${b.maxChunkContentChars}`;if(!a9.has(c))try{a9.set(c,aN.getFileDetail?.(a,b))}catch{a9.set(c,void 0)}return a9.get(c)},bb=async(a,b,d,e)=>{let f=bo(e),g=(0,z.c6)({query:a,scopedFilePaths:b,limit:d,weights:f,generationMode:!1}),h=a8.get(g);if(h)return h;let i=await q.search(c,a,{scope:"project",filters:{filePaths:b},limit:d,weights:f,generationMode:!1}).catch(()=>null),j=i?.results||[];return a8.set(g,j),j},bc={stage:(0,ak.X5)({type:"file_understanding",roleId:"project-understanding",status:"success",message:`已完成项目资料理解:${U.files.length} 份资料,${Object.values(U.groups).filter(a=>a.length>0).length} 类资料类型`,details:V.prompt.split("\n").slice(0,16)},{subtitle:"项目资料理解",order:I.length})};(0,ak.fx)(I,bc.stage),B();let bd=aB(await a4({manager:q,project:aN,projectRoot:c,scopedFilePaths:[...aK].filter(Boolean).sort(),fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}),aQ);aD(bd,aQ,"project-basic-evidence"),bd.length>0&&(aU.push(...bd),(0,ak.fx)(I,(0,ak.X5)({type:"knowledge_retrieval",roleId:"project-basic-evidence",status:"success",message:`已锁定项目基础事实证据 ${bd.length} 条`,details:bd.slice(0,8).map(a=>`${e.basename(a.filePath)}|${a.sectionTitle||"正文片段"}|score=${a.score.toFixed(2)}`)},{subtitle:"基础事实召回",order:I.length})),B());let be=aC(T(aU,p,ar),aQ),bf=aC(Z(aU),aQ),bg=[...be,...bf,...aC($(aU,as),aQ)],bh=(0,bP.hp)({projectRoot:c,template:p,requirement:a.requirement}),bk=[...bh?.facts||[],...bg],bl=aj(bk,aC(S(aU),aQ),aY,ar,as),bm=(0,a0.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:bk,projectGraph:bh?.projectGraph,projectGraphSource:bh?"project-intelligence":void 0});for(let a of(0,a0.SU)(bm))(0,ak.fx)(I,a);bh&&(0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-intelligence-cache",status:"success",message:`已复用入库后项目理解资产与绑定 scope 快照:${bh.files.length} 份绑定资料`,details:[`项目级缓存时间:${new Date(bh.cache.createdAt).toLocaleString()}`,`scope 快照:${bh.scopeSnapshot.scopeHash.slice(0,12)}`,`复用预计算事实:${bh.facts.length} 条`,`复用预计算项目图谱:${bh.projectGraph.works.length}工程/${bh.projectGraph.methods.length}工法/${bh.projectGraph.resources.length}资源`,`复用施工组织设计专项图谱:${bh.constructionOrganizationGraph.workPackages.length} 个工作包/${bh.constructionOrganizationGraph.controlMatrix.length} 条控制矩阵`,`图谱来源:${bh.cache.projectGraphMessage}`,`章节意图证据覆盖:${Object.keys(bh.evidenceByChapterId||{}).length}/${p.chapters.length} 章`,`排除正文不适用资料:${bh.files.filter(a=>!a.usableForBody).length} 份`]},{subtitle:"项目理解缓存 / Scope 快照"})),B();let bn=bm.baseProjectGraph;if(!bh){(0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-graph",status:"running",message:`正在临时构建完整项目图谱:${aU.length} 条证据 → LLM 结构化提取`,details:["缓存缺失或版本过期,建议重新构建项目理解缓存;本次生成将临时构建完整项目图谱。","提取:工程内容、施工方法、材料设备、技术标准、重点难点"],progress:{current:2,total:3,label:"项目图谱"}},{subtitle:"项目资料图谱分析",order:I.length})),B();let b=await D(()=>(0,bO.i)({evidence:aU,signal:a.signal,projectRoot:c,requirement:a.requirement,templateId:p.id}),I);if(!b.graph)throw Error(`完整项目图谱构建失败:${b.stage.message||b.stage.status}`);bn=b.graph,(0,ak.fx)(I,b.stage),B()}bn&&(V=(0,am._n)(p,U,bn));let bx=function(a){var b;let c=(0,z.c6)({version:"canonical-facts-v2",requirement:a.requirement||"",templateId:a.templateId||"",requiredKeys:a.requiredKeys||[],facts:a.facts.map(a=>({key:a.key,fieldId:a.fieldId,fieldName:a.fieldName,value:a.value,sourceFile:a.sourceFile,roleId:a.roleId,confidence:a.confidence})).sort((a,b)=>`${a.sourceFile}${a.key}${a.value}`.localeCompare(`${b.sourceFile}${b.key}${b.value}`)),graphHash:a.projectGraph?(0,z.c6)(a.projectGraph):"",markdownHash:a.markdown?(0,z.c6)(a.markdown.slice(0,2e4)):""}),d=function(a,b){let c=a_(a);if(c)try{let a=JSON.parse(O.readFileSync(e.join(c,`canonical-facts-${b}.json`),"utf8"));return a&&a.byKey?a:void 0}catch{return}}(a.projectRoot,c);if(d)return d;let f=aZ({facts:a.facts,markdown:a.markdown}),g={};for(let[a,b]of f.entries())g[a]=function(a){let b=a.source.includes("generated_markdown")?"generated_markdown":a.source.includes("evidence")?"evidence":"structured_fact";return{key:a.fieldKey,label:a.label,value:a.value,normalizedValue:W(a.value),sourceType:b,sourceFile:a.source,confidence:a.confidence,priority:a$(b),locked:a$(b)>=80,selectedReason:a.selectedReason}}(b);let h=a.facts||[],i=[];for(let a of[{key:"project_name",label:"项目名称",pattern:/项目名称|工程名称|招标项目名称|project_name/u,bucket:"projectIdentity"},{key:"project_code",label:"项目编号",pattern:/项目编号|招标项目编号|project_code/u,bucket:"projectIdentity"},{key:"owner",label:"招标人",pattern:/招标人|建设单位|发包人|owner/u,bucket:"projectIdentity"},{key:"project_location",label:"建设地点",pattern:/建设地点|实施地点|project_location/u,bucket:"projectIdentity"},{key:"project_scale",label:"建设规模",pattern:/建设规模|工程规模|project_scale/u,bucket:"projectScope"},{key:"construction_scope",label:"施工范围",pattern:/施工范围|招标范围|工程范围/u,bucket:"projectScope"},{key:"duration",label:"计划工期",pattern:/计划工期|合同工期|总工期|schedule_requirement|duration/u,bucket:"schedule"},{key:"quality_target",label:"质量目标",pattern:/质量标准|质量目标|quality_standard/u,bucket:"quality"}]){let b=function(a,b,c,d){return a.filter(a=>d.test(`${a.fieldId||""}${a.key||""}${a.fieldName||""}`)).map(a=>(function(a,b,c){let d=(0,z.lG)(a.value),e=function(a){let b=`${a.sourceFile||""} ${a.sourceRef?.sectionTitle||""} ${a.roleId||""}`;return/合同/u.test(b)?"contract":/招标|公告|前附表|需求书/u.test(b)?"tender":/清单|工程量|BOQ|报价/u.test(b)?"boq":/图纸|设计|CAD|DWG/u.test(b)?"drawing":/规范|标准/u.test(b)?"standard":"structured_fact"}(a);return{key:b,label:c,value:d,normalizedValue:W(d),sourceType:e,sourceFile:a.sourceFile,sourceRef:a.sourceRef?.sectionTitle,confidence:Math.round(100*(a.confidence||.5)),priority:a$(e),locked:a$(e)>=80,selectedReason:"按资料来源优先级和字段置信度决策"}})(a,b,c)).filter(a=>a.value&&!/资料未明确|系统暂未确认/u.test(a.value)).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence||a.value.length-b.value.length)}(h,a.key,a.label,a.pattern);!g[a.key]&&b.length>0&&(g[a.key]=b[0]);let c=function(a,b,c){let d=[...new Map(c.map(a=>[a.normalizedValue,a])).values()];if(d.length<=1)return;let e=Math.max(...d.map(a=>a.priority)),f=d.filter(a=>a.priority===e);return{key:a,label:b,values:d.map(a=>({value:a.value,sourceFile:a.sourceFile,priority:a.priority,confidence:a.confidence})),decision:1===f.length?"highest_priority_selected":"manual_review_required"}}(a.key,a.label,b);c&&i.push(c)}let j=(b=a.projectGraph)?[...(b.resources||[]).map(a=>({key:`resource_${a.type}_${a.name}`,label:"equipment"===a.type?"机械设备":"labor"===a.type?"劳动力":"材料资源",value:[a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" "),normalizedValue:W([a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:a$("projectGraph"),locked:!1,selectedReason:"来自项目图谱资源节点"})).filter(a=>a.value),...(b.risks||[]).map(a=>({key:`risk_${a.risk}`,label:"风险源",value:[a.risk,a.level,a.mitigation].filter(Boolean).join(" "),normalizedValue:W([a.risk,a.level,a.mitigation].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:a$("projectGraph"),locked:!1,selectedReason:"来自项目图谱风险节点"})).filter(a=>a.value)]:[],k=j.filter(a=>/resource_/u.test(a.key)),l=j.filter(a=>/risk_/u.test(a.key));for(let a of j)g[a.key]||(g[a.key]=a);let m=(a.requiredKeys||[]).filter(a=>!g[a]).map(a=>({key:a,label:aW.find(b=>b.key===a)?.label||a,reason:"未从用户输入、招标资料、清单、图纸或项目图谱中确认该事实"})),n={projectIdentity:{projectName:g.project_name,projectCode:g.project_code,owner:g.owner,location:g.project_location},projectScope:{scale:g.project_scale,constructionScope:g.construction_scope},schedule:{duration:g.duration||g.schedule_requirement},quality:{target:g.quality_target||g.quality_standard},safety:{risks:l},resources:{resources:k},environment:{},constraints:{},byKey:g,conflicts:i,gaps:m},o=a_(a.projectRoot);return o&&O.writeFileSync(e.join(o,`canonical-facts-${c}.json`),JSON.stringify(n,null,2)),n}({facts:bk,projectGraph:bn,requiredKeys:aW.map(a=>a.key),projectRoot:c,requirement:a.requirement,templateId:p.id});bl.canonical=bx;let by=(0,t._9)(p,ar,{preserveExplicitOutline:ab}),bz=(0,G.dK)({template:p,chapters:by,requirement:a.requirement}),bA=K({template:p,chapters:bz,requirement:a.requirement}),bB=(0,M.w)({chapters:bA.enrichedChapters,projectGraph:bn,canonicalFacts:bx});p={...p,chapters:bB};let bC=new Map;if(bn){let a=new Set;for(let b of[...bn.works,...bn.methods,...bn.resources,...bn.schedule,...bn.standards,...bn.risks,...bn.requirements,...bn.siteConditions])(b.sourceFiles||[]).forEach(b=>a.add(b));for(let b of bB){let c=[b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]].join(" "),d=a=>a&&((0,b3.C1)(a,c,.18)||(0,b3.C1)(a,b.title,.12)),e=/概况|总体|部署|施工|进度|工期|质量|安全|资源|人材机|材料|机械|劳动力|风险|危大|绿色|环保/u.test(c),f=bn.works.filter(a=>a.name&&(d(a.name)||e)),g=bn.methods.filter(a=>a.name&&(d(a.name)||(a.applicableWorks||[]).some(d)||e)),h=bn.resources.filter(a=>a.name&&(d(a.name)||/资源|人材机|材料|机械|劳动力/u.test(c)&&/material|equipment|labor/u.test(a.type))),i=bn.gaps.filter(a=>d(a)||e),j=new Set;for(let a of f)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of g)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of h)(a.sourceFiles||[]).forEach(a=>j.add(a));0===j.size&&e&&[...a].slice(0,12).forEach(a=>j.add(a)),bC.set(b.id,{graphFiles:j,graphBoqItems:h.map(a=>({name:a.name,quantity:a.quantity,unit:a.unit,sourceFiles:a.sourceFiles||[]})),graphWorks:f.map(a=>a.name),graphMethods:g.map(a=>a.name),gaps:i})}bh||((0,ak.fx)(I,(0,ak.X5)({type:"file_understanding",roleId:"project-graph-match",status:"success",message:`图谱→章节映射完成:${bn.works.length}工程 ${bn.methods.length}工法 ${bn.resources.length}资源 → ${bB.length}章`,details:bB.map(a=>{let b=bC.get(a.id);return`${(0,t.GQ)(a.title)}:匹配文件${b?.graphFiles.size||0}个,BOQ项${b?.graphBoqItems.length||0}个`})},{subtitle:"图谱章节映射"})),B())}let bD=bB,bE=(0,bP.TD)(bh?.constructionOrganizationGraph)||bh?.constructionOrganizationContext,bF=[V.prompt,bE].filter(Boolean).join("\n\n"),bG=[bF,F({template:{...p,chapters:bD},chapters:bD,factsModel:bl,requirement:a.requirement})].filter(Boolean).join("\n\n"),bH={...p,chapters:bD},bI=(0,ao.My)([aH,a.requirement||""].filter(Boolean).join("\n\n"),bD),bJ=(0,w.tF)({requirement:a.requirement,promptTexts:aH,template:bH,chapters:bD,spec:ar}),bK=0,bL=0,bM=await (0,z.l$)(bD.map((a,b)=>({chapter:a,chapterIndex:b})),async({chapter:b,chapterIndex:c})=>{if(b.sections?.length){bK+=1;let a=bI.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title)),d=(0,ao.k2)([...a,...b.sections],b.title);return{...b,sections:d.length?d:(0,ao.k2)(b.sections,b.title)}}bL+=1;let d=(0,s.QR)(aU.filter(a=>a.chapterId===b.id||(0,u.Lk)(a,b.title)),{maxChars:(0,s.Pc)(bJ.chapterTargets.get(b.id)||1200),preservePinned:!0}),e=V.chapterPlans.find(a=>a.chapterId===b.id)?.writingGoal||"",f=bj(J,b),g=await (0,ao.SP)({template:bH,chapter:b,chapterIndex:c,evidence:d,promptTexts:f.promptTexts,projectContext:bG,requirement:a.requirement,roleContext:e,targetWords:bJ.chapterTargets.get(b.id)||1200,structuralRules:bI,signal:a.signal}),h=bI.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.map(a=>`强制小节:${a.title}`));if((0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"section-planning",promptId:f.primaryPromptId,status:g.length?"success":"failed",message:`${(0,t.GQ)(b.title)} 小节规划${g.length?`生成 ${g.length} 个小节`:"未生成可用小节"}`,details:[...f.promptDetails,...h,...g.length?g.map(a=>`规划小节:${a}`):["规划结果为空或被污染过滤"]]},{subtitle:"小节规划"})),!g.length)throw Error(`${(0,t.GQ)(b.title)} 小节规划未生成可用小节`);return{...b,sections:g}},{kind:"llmRepair",targetWords:bJ.targetChars||4e3,concurrency:2}),bS=(0,G.dK)({template:p,chapters:bM,requirement:a.requirement}),bT=K({template:p,chapters:bS,requirement:a.requirement});bD=(0,M.w)({chapters:bT.enrichedChapters,projectGraph:bn,canonicalFacts:bx}),(bT.issues.length>0||bA.issues.length>0)&&(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"bid-structure-audit",status:bT.issues.some(a=>"blocker"===a.severity)?"failed":"success",message:`评标结构符合性校验:${bT.diagnostics.length} 个结构组,${bT.diagnostics.filter(a=>"satisfied"===a.status).length} 个已满足,${bT.diagnostics.filter(a=>"missing"===a.status&&"required"===a.level).length} 个必查缺失(已自动补挂),${bT.diagnostics.filter(a=>"fragmented"===a.status).length} 个分散`,details:[...bT.diagnostics.map(a=>`${"satisfied"===a.status?"满足":"fragmented"===a.status?"分散":"补挂"}:${a.groupTitle}${"missing"===a.status?`(补挂小节:${a.missingSections.join("、")})`:""}`),...bT.issues.map(a=>`提示:${a.message}`).slice(0,8)]},{subtitle:"评标结构校验"})),p={...p,chapters:bD};let bZ=function(a){let b=(0,G.yt)({template:{id:"runtime",name:a.templateName||"",outputTitle:"",description:"",category:"",chapters:a.chapters},chapters:a.chapters,requirement:a.requirement}),c=/施工组织设计|施工组织|施组|技术标/u.test(`${a.templateName||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`)||b.length>0,d=Object.values(a.factsModel?.canonical?.byKey||{}).map(a=>`${a.label}=${a.value}`),e=["正文必须落到本项目资料已确认的事实,不得使用模板化空话或跨小节复制段落",'措施类内容写成"责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项"','工作包级小节按"施工概况/施工流程/施工方法"三段式展开'],f=a.chapters.map(b=>{var c;let d=(c=b.title,L.find(a=>a.pattern.test(c))),e=(a.projectGraph?.works||[]).filter(a=>a.name&&(b.title.includes(a.name.slice(0,2))||/概况|总体|施工内容|方案|施工/u.test(b.title))).slice(0,10),f=(a.projectGraph?.resources||[]).filter(a=>a.quantity&&/概况|资源|总体|施工内容|方案/u.test(b.title)).slice(0,12).map(a=>({itemCode:"",itemName:a.name,quantity:a.quantity,unit:a.unit}));return{chapterId:b.id,chapterTitle:b.title,writingGoal:d?.goal||"结合本章标题与项目资料事实展开专业内容,避免泛化叙述",mustCover:[...d?.mustCover||[],...(b.requiredFacts||[]).slice(0,6)],factDomains:[...b.requiredFacts||[],...e.map(a=>a.name)].slice(0,10),evidenceRefs:b.queries.slice(0,6).map(a=>({filePath:a,kind:"query",priority:"should"})),boqTargets:f,drawingTargets:[],gaps:[]}});return{documentType:c?"施工组织设计":"专业文档",globalWritingFocus:c?[...e,...d.length?[`项目可信基础事实(写作时必须优先落位):${d.slice(0,10).join(";")}`]:[]]:e.slice(0,2),chapters:f}}({chapters:bD,factsModel:bl,projectGraph:bn||void 0,requirement:a.requirement,templateName:p.name}),b$=F({template:p,chapters:bD,factsModel:bl,requirement:a.requirement});bG=[bF,b$].filter(Boolean).join("\n\n"),bh||(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-blueprint",status:"success",message:"已生成全局事实主表与文档蓝图,后续章节和小节将共用同一套专业约束",details:b$.split("\n").slice(0,12)},{subtitle:"全局蓝图"}));let b_=(0,w.tF)({requirement:a.requirement,promptTexts:aH,template:p,chapters:bD,spec:ar}),b0=function(a){let b=Date.now(),c=a.template.chapters.map(a=>{let b=a.sections?.length?a.sections:[a.title];return{chapterId:a.id,title:a.title,purpose:a.purpose||bX(a.title),requiredFacts:[...new Set([...a.requiredFacts||[],a.title])],requiredGraphNodes:[a.title],evidenceQueries:[...new Set([a.title,...a.queries||[],...a.requiredFacts||[]])],qualityRules:["事实必须来自锁定资料范围","不得出现后台话术和兜底措辞","不得混入其他项目名称","章节必须覆盖规划小节"],forbiddenPhrases:bQ,sections:b.map(b=>({title:b,objective:bX(b),requiredFacts:[...new Set([b,...a.requiredFacts||[]])],requiredGraphNodes:[b],evidenceQueries:[...new Set([a.title,b,...bW(a.title),...bW(b),...a.queries||[],...a.requiredFacts||[]].filter(Boolean))],forbiddenPhrases:bQ,minChars:/项目特点.*重点.*难点|重点.*难点.*分析/u.test(b)?1800:/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u.test(b)?2200:/原材料进场复试|见证取样|危大工程专项施工方案审批流程/u.test(b)?800:/施工部署|施工流水|主要施工机械|劳动力|材料进场|资源动态|质量控制点|危大工程|安全隐患|临时用水|临时用电/u.test(b)?760:/概况|说明|依据/u.test(b)?260:420}))}});return{plan:{planId:`plan-${(0,z.c6)({templateId:a.template.id,scope:a.context.materialScope.scopeHash,chapters:c.map(a=>a.title)}).slice(0,10)}`,title:a.title||a.template.name,chapters:c,requiredGlobalFacts:["项目名称","工期","质量标准","招标范围"],forbiddenPhrases:bQ,qualityRules:["资料范围先锁定","基础图谱必跑","章节任务先于正文","Reviewer 通过后才能导出"]},node:{id:"document-planner",type:"document_planner",status:"completed",startedAt:b,completedAt:Date.now(),outputSummary:`${c.length} 章、${c.reduce((a,b)=>a+b.sections.length,0)} 个小节任务`,metrics:{chapters:c.length}}}}({template:p,context:bm,title:p.name});bm.documentPlan=b0.plan,bm.nodes.push(b0.node),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"agent-document-planner",status:"success",message:b0.node.outputSummary||"Agent 文档规划完成",details:b0.plan.chapters.map(a=>`${a.title}:${a.sections.length} 个小节任务`)},{subtitle:"Agent Document Planner",order:I.length})),A=bD.map(a=>a.id);let b4=(0,al.JP)({template:p,targetWords:b_.targetChars||[...b_.chapterTargets.values()].reduce((a,b)=>a+b,0),requirement:a.requirement}),b5=(0,al.Zk)(b4);(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-strategy",status:"success",message:`已自动选择 ${b4.mode} 生成策略:章节审查 ${b4.enableChapterReview?"启用":"跳过"}、全局审查 ${b4.enableGlobalReview?"启用":"跳过"}、最终质量审查 ${b4.enableFinalQualityReview?"启用":"跳过"}、全文扩写 ${b4.enableDocumentBudgetExpansion?"启用":"跳过"};LLM 调用按工作流任务自然并行`},{subtitle:"后台自动策略"}));let b6=ab?"OUTLINE 章节":"模板章节",b7=(0,ak.X5)({type:"validation",roleId:"section-planning",status:"success",message:`小节规划:${bL} 章由 LLM 基于${b6}、项目资料理解和证据规划小节,${bK} 章已由模板显式提供小节并跳过规划`},{subtitle:"小节规划策略"}),b8=ab?`;识别到 OUTLINE 章节 ${aa.length} 个`:";未识别到有效 OUTLINE,将使用模板章节",b9=[...J.prompts.map(a=>`${a.category}|${a.roleId}|${a.id}|${a.name}|${a.bindingSource}|${a.content.length} 字符|hash=${a.contentHash}|${a.contentPreview}`),...J.unresolvedRoles.map(a=>`unresolved|${a}|项目角色配置中的提示词角色不存在`),...J.missingResourceRoles.map(a=>`missingResource|${a}|提示词角色未显式绑定资源`)];(0,ak.fx)(I,(0,ak.X5)({type:"role_binding",roleId:E,status:"success",message:`已绑定项目资料 ${Q.length} 份、${J.prompts.length} 个有效提示词;写作 ${J.writerPrompts.length}、章节 ${J.chapterPrompts.length}、抽取 ${J.extractionPrompts.length};已自动抽取运行时规则 ${aF.executionSummary.length} 条;语义资料覆盖 ${Math.round(100*at.materialCoverageRate)}%${b8}`,details:[...b9,...aF.executionSummary.map(a=>`runtimeRule|${a}`)]},{subtitle:H,roleName:H})),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"runtime-prompt-rules",status:"success",message:`运行时提示词规则已抽取:${aF.executionSummary.length} 条,版本 ${aF.sourceHash}`,details:aF.executionSummary.length?[...aF.executionSummary,`必需表格:${aF.requiredTables.join("、")||"无"}`,`必含关键词:${aF.requiredKeywords?.join("、")||"无"}`,`禁含内容:${aF.forbiddenPatterns?.join("、")||"无"}`]:["未从提示词中识别到额外硬规则,使用系统默认质量规则"]},{subtitle:"提示词规则执行"})),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"document-readiness",status:at.ready?"success":"failed",message:`生成准备度:绑定资料已就绪,语义覆盖 ${Math.round(100*at.materialCoverageRate)}%,角色匹配 ${Math.round(100*at.roleSatisfactionRate)}%,优化建议 ${Math.round(100*at.specCompletenessRate)}%`,details:at.diagnostics},{subtitle:"生成准备度检查"})),(0,ak.fx)(I,b7),B();let ca=Math.round(([...b_.chapterTargets.values()].reduce((a,b)=>a+b,0)||b_.targetChars||0)/Math.max(1,bD.length)),cb=Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0),cc=bD.some(a=>(a.sections||[]).filter(Boolean).length>=30),cd=bD.length<=1||cc?1:b_.longformStrict||ca>=9e3?2:ca>=6500?Math.min(3,bD.length):Math.min(4,bD.length),ce=Math.max(1,Math.min(bD.length||1,Number.isFinite(cb)&&cb>0?Math.floor(cb):cd));(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:"chapter-concurrency",status:"success",message:`章节自适应调度:本轮 ${ce}/${bD.length} 章并发`,details:[`有效章节数:${bD.length}`,`平均章节目标:${ca} 字`,Number.isFinite(cb)&&cb>0?`章节并发来自 DOCUMENT_CHAPTER_CONCURRENCY=${Math.floor(cb)}`:`章节并发自适应=${cd},${cc?"存在超长显式小节章,优先逐章产出 checkpoint":"长章保守、短章提速"}`]},{subtitle:"章节并发策略"})),B();for(let b=0;b<bD.length;b+=ce){let d=bD.slice(b,b+ce);await Promise.all(d.map(async(d,f)=>{let g,h=b+f;(0,z.Te)(a.signal);let i=Date.now(),j=I.length;try{var k,m;let b;I.push((0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在检索证据并准备章节内容`,details:[`章节序号:${h+1}/${bD.length}`,`二级小节:${d.sections?.length||0} 个`,"正在生成检索查询"],progress:{current:h+1,total:bD.length,label:"章节生成"}},{subtitle:(0,t.GQ)(d.title),order:h})),B();let f=a.resumeChapters?.find(a=>a.id===d.id||a.title===d.title),o=f?.content?.trim(),r=f?.evidence?.length?[...f.evidence]:[],A=V.chapterPlans.find(a=>a.chapterId===d.id||a.chapterTitle===d.title),C=A?Object.values(A.evidenceQueries).flat().filter(Boolean):[],E=d.queries.length>0?d.queries:[p.name,p.outputTitle,d.title],F=bC.get(d.id);if(bn&&F&&F.graphFiles.size>0){let a=[...aP],b=b=>a.includes(b)?b:a.find(a=>a.endsWith(b)||a.includes(b));for(let a of[...F.graphFiles].map(a=>b(a)||a).filter(a=>(0,al.Tz)(c,a,aP)).slice(0,12)){let b=ba(a,{maxChunkContentChars:8e3});if(b?.chunks?.length)for(let c of b.chunks)r.push({chapterId:d.id,filePath:b.file?.relativePath||a,score:5+(F.graphWorks.length+F.graphMethods.length)*.5,content:c.content,roleId:aL.get(a),processingType:aM.get(a),sectionTitle:c.sectionTitle,source:"graph-evidence"})}}let G=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?a2:[],H=bq(d,[...E,...C],G),K=br(d,G),L=Date.now();I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在执行质量优先的章节检索${F?.graphFiles.size?`(图谱匹配 ${F.graphFiles.size} 个文件)`:""}`,details:H.slice(0,K).map(a=>`检索:${a.slice(0,42)}`),progress:{current:h+1,total:bD.length,label:"证据检索"}},{subtitle:(0,t.GQ)(d.title),order:h}),B();let M=o?[]:[...aP].filter(Boolean).sort(),O=o?[]:bh?.evidenceByChapterId?.[d.id]||[];O.length>0&&r.push(...O);let P=[],S=H.slice(0,K),T=(d.requiredFacts||[]).filter(a=>!!a&&!S.some(b=>b.includes(a)||a.includes(b))).slice(0,4).map(a=>`${d.title} ${a}`),W=[...S,...T];if(M.length>0&&W.length>0){(0,z.Te)(a.signal);let b=await (0,z.l$)(W,async a=>bb(a,M,Math.min(aR,12),d.title),{kind:"search"});P.push(...b)}for(let a of(b5.evidence.searchQueries+=W.length,b5.evidence.searchMs+=Date.now()-L,P))r.push(...a.filter(a=>(0,al.Tz)(c,a.filePath,aK)).map(a=>({chapterId:d.id,filePath:a.filePath,score:a.score,content:a.content,roleId:aL.get(a.filePath),processingType:aM.get(a.filePath),sectionTitle:a.sectionTitle,source:a.source})));let X=o?[]:await (0,am.$b)({manager:q,projectRoot:c,chapter:d,plan:A,profile:U,scopedFilePaths:M,limitPerQuery:Math.min(aR,10),signal:a.signal}).catch(()=>[]);r.push(...X);let Y=new Set((d.pinnedEvidenceFilePaths||[]).filter(Boolean)),Z=[];/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)&&r.push(...bd.map(a=>({...a,chapterId:d.id,source:"pinned-evidence"})));let $=new Set([...Y]),_=b_.chapterTargets.get(d.id)||1200,aa=(0,s.Pc)(_,6e3,12e3);for(let a of $){if(!(0,al.Tz)(c,a,aK))continue;let b=Y.has(a),e=ba(a,{maxChunkContentChars:aa});e&&r.push(...e.chunks.map(a=>({chapterId:d.id,filePath:e.file.relativePath,score:1,content:a.content,roleId:aL.get(e.file.relativePath),processingType:aM.get(e.file.relativePath),sectionTitle:a.sectionTitle,source:b?"pinned-evidence":"bound-file"})))}let ab=r.filter(a=>(0,al.Tz)(c,a.filePath,aP));if(!o&&aE.enabled&&aE.allowProjectFacts){let b=await aw({config:aE,chapterId:d.id,chapterTitle:d.title,sectionTitles:d.sections||[],runtimeRules:aF,localFacts:[...bl.project,...bl.schedule,...bl.quality,...bl.safety,...bl.resources,...bl.preciseFacts],signal:a.signal});aX.queries.push(...b.queries),aX.filteredCount+=b.filtered+b.evidence.length}let aj=(0,s.Pc)(_,7e3,26e3),ao=o?[]:(0,am.SK)({project:aN,chapter:d,plan:A,profile:U,scopedFilePaths:M,highRisk:aT.highRisk});ao.length>0&&ab.push(...aB(ao,aQ)),ab=aB(ab,aQ);let ap=bp(d,ab,{maxItems:bs(aR,d,aT.highRisk),maxChars:aj+(aT.highRisk?14e3:4e3),preservePinned:!0},b5);aD(ap,aQ,`chapter:${d.id}:initial`);let aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))),at=0,av=function(a){let b=(a.chapter.requiredFacts||[]).filter(b=>!a.evidence.some(a=>b2(`${a.sectionTitle||""}${a.content||""}`).includes(b2(b)))),c=(a.chapter.tablePlans||[]).flatMap(a=>a.fillability?.missingProjectFactFields||[]),d=a.evidence.length<3?["章节证据数量不足"]:[],e=b.length+c.length+d.length,f=e>=5?"high":e>=2?"medium":"low",g="high"===f?"evidence_first":c.length>0?"generate_with_review_notes":b.length>0?"section_first":"normal";return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,canGenerate:!0,riskLevel:f,missingFacts:b,missingEvidence:d,tableFieldGaps:[...new Set(c)],suggestedStrategy:g,reason:0===e?"章节事实、证据和表格可填性满足常规生成条件。":`识别到 ${e} 项生成前缺口,按 ${g} 策略生成。`}}({chapter:d,evidence:ap}),ax=new Set(ap.map(a=>a.filePath)).size,ay=!!F&&(F?.graphFiles.size||0)>=8&&ax>=6&&0===aq.length&&"low"===av.riskLevel,az=M.length<=80&&("evidence_first"===av.suggestedStrategy||aT.highRisk||aq.length>0||ap.length<8&&"low"!==av.riskLevel);if(!ay&&az&&M.length>0){let b=await N({manager:q,projectRoot:c,chapter:d,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,requiredNeeds:aq,highRisk:aT.highRisk,signal:a.signal}).catch(()=>[]);at=b.length,b.length>0&&(ab=bp(d,[...ab,...aB(b,aQ)],{maxItems:bs(aR+12,d,aT.highRisk),maxChars:aj+(aT.highRisk?36e3:16e3),preservePinned:!0},b5),ab=aB(ab,aQ),ap=bp(d,ab,{maxItems:bs(aR+8,d,aT.highRisk),maxChars:aj+(aT.highRisk?28e3:12e3),preservePinned:!0},b5),aD(ap,aQ,`chapter:${d.id}:deep`),aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))))}for(let a of(0===ap.length&&aY.push(`${d.title}:缺少可支撑正文的项目资料证据`),aq))aY.push(`${d.title}:事实需求未满足 ${a}`);let aA=(0,ak.X5)({type:"knowledge_retrieval",roleId:"knowledge-base",status:aU.length>0?"success":"failed",message:`已检索/绑定 ${aU.length} 条证据`});a7<0?a7=(0,ak.fx)(I,aA):I[a7]={...aA,order:I[a7]?.order??aA.order},B(),(0,z.Te)(a.signal);let aC=F?[F.graphWorks.length?`图谱识别本章工程内容:${F.graphWorks.join("、")}`:"",F.graphMethods.length?`图谱识别本章施工方法:${F.graphMethods.join("、")}`:"",F.graphBoqItems.length?`图谱识别本章BOQ清单项(${F.graphBoqItems.length}项):${F.graphBoqItems.slice(0,30).map(a=>`${a.name} ${a.quantity}${a.unit}`).join("、")}`:"",F.gaps.length?`图谱识别本章资料缺口:${F.gaps.join(";")}`:""].filter(Boolean).join("\n"):"",aG=[function(a,b){let c=a.chapters.find(a=>a.chapterId===b);return c?["【本章写作任务书】",`写作目标:${c.writingGoal}`,c.mustCover.length?`必须覆盖:${c.mustCover.join("、")}`:"",c.boqTargets.length?`清单目标项:${c.boqTargets.slice(0,20).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join("、")}`:""].filter(Boolean).join("\n"):""}(bZ,d.id),aC,A?.writingGoal,A?.mustCover?.length?`本章必须覆盖:${A.mustCover.join("、")}`:"",A?.mustUseMaterialKinds?.length?`本章优先使用资料类型:${A.mustUseMaterialKinds.join("、")}`:""].filter(Boolean).join("\n"),aH=bj(J,d);if(J.writerPrompts.length>0&&!aH.primaryWriter)throw Error(`${(0,t.GQ)(d.title)} 写作主控提示词未进入章节生成阶段`);let aI=[aH.promptTexts,au].filter(Boolean).join("\n\n"),aJ=aH.promptDetails.length?aH.promptDetails:["未绑定章节写作提示词"],aO=function(a){let b=a.profile||l,c=[],d=[a.template.name,a.template.outputTitle,a.chapter.title,a.chapter.purpose,...a.chapter.sections||[]].filter(Boolean).join(" "),e=a.spec?.chapterRules.find(b=>b.id===a.chapter.id||b.title===a.chapter.title);for(let d of a.chapter.requiredFacts||[])ae(c,b,{label:d,category:n(b,d)?.category||"required",required:!0,source:"template"});for(let d of a.chapter.sections||[])ae(c,b,{label:d,category:"section",required:!1,source:"section",queries:ad(d,[a.chapter.title])});for(let d of a.plan?.requiredContents||[])ae(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of a.plan?.evidenceNeeds||[])ae(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of e?.requiredFactIds||[]){let e=a.spec?.factFields.find(a=>a.id===d);e&&ae(c,b,{label:e.name,category:n(b,e.name)?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ad(e.name,[e.extractionHint||"",e.validationHint||""])})}for(let e of a.spec?.factFields||[]){if(!e.required)continue;let f=n(b,e.name),g=`${e.name} ${e.extractionHint||""} ${e.validationHint||""}`;(d.includes(e.name)||ad(e.name,f?.aliases||[]).some(a=>d.includes(a))||a.chapter.requiredFacts.some(a=>a.includes(e.name)||e.name.includes(a)))&&ae(c,b,{label:e.name,category:f?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ad(e.name,[g])})}for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&d.includes(a))&&af(c,b,a,"profile","must_use"===a.usagePolicy,[d]);let f=ac(a.requirement||"");if(f)for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&f.includes(a))&&af(c,b,a,"requirement",!0,[f]);let g=ac(a.promptTexts||"");if(g)for(let d of b.factFields)[d.name,...d.aliases].some(a=>a.length>=2&&g.includes(a))&&af(c,b,d,"prompt","must_use"===d.usagePolicy,[a.chapter.title]);return c}({template:p,chapter:d,spec:ar,profile:as,promptTexts:aI,requirement:a.requirement,plan:A?{requiredContents:A.mustCover,evidenceNeeds:Object.values(A.evidenceQueries).flat()}:void 0}),aS=ah({needs:aO,factsModel:bl,evidence:ab,profile:as}),aW=aS.filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label);if(aW.length>0&&M.length>0){let b=await bu({manager:q,projectRoot:c,chapter:d,needs:aW,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}).catch(()=>[]),e=await N({manager:q,projectRoot:c,chapter:d,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,requiredNeeds:aW,highRisk:!0,signal:a.signal}).catch(()=>[]),f=aB([...b,...e],aQ);f.length>0&&(ab=bp(d,[...ab,...f],{maxItems:bs(aR+16,d,!0),maxChars:aj+42e3,preservePinned:!0},b5),ab=aB(ab,aQ),ap=bp(d,ab,{maxItems:bs(aR+12,d,!0),maxChars:aj+32e3,preservePinned:!0},b5),aD(ap,aQ,`chapter:${d.id}:supplemental`),aq=d.requiredFacts.filter(a=>!ap.some(b=>(0,u.Lk)(b,a))),aW=(aS=ah({needs:aO,factsModel:bl,evidence:ab,profile:as})).filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label))}aD(ap,aQ,`chapter:${d.id}:writer-input`);let aZ=function(a){let b=a.chapter.sections?.length||0,c=(a.chapter.sections||[]).filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b)||`${a.sectionTitle||""} ${a.content}`.includes(b))).length,d=a.chapter.requiredFacts.length,e=a.chapter.requiredFacts.filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b))).length;return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,risk:a.risk,evidenceCount:a.evidence.length,evidenceFiles:new Set(a.evidence.map(a=>a.filePath)).size,sectionCovered:c,sectionTotal:b,requiredFactCovered:e,requiredFactTotal:d}}({chapter:d,evidence:ap,risk:aT});aV.push(aZ);let a$=new Set(ap.map(a=>a.filePath)),a_=ap.reduce((a,b)=>a+b.content.length,0),a0=[...aT.highRisk?[`召回覆盖风险(${aT.riskReason||"切片未完全预加载"}):已加载 ${aT.loadedChunks}/${aT.totalChunks},已启用深召回`]:[],`项目理解缓存证据:${O.length} 条`,`深召回证据:${at} 条`,`事实覆盖:${aZ.requiredFactCovered}/${aZ.requiredFactTotal}`,`小节覆盖:${aZ.sectionCovered}/${aZ.sectionTotal}`];I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:J.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 已选取 ${ap.length} 条高相关证据,正在生成正文`,details:[`使用绑定文件:${a$.size} 份`,`上下文字符:${a_}`,`检索查询:${Math.min(H.length,K)} 组`,...a0],progress:{current:h+1,total:bD.length,label:"正文生成"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(),b5.evidence.contextChars+=a_;let a3=(k=aS,ag(k.flatMap(a=>a.facts))),a4=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?bf:[],a8=(0,an.hZ)({chapter:d,plan:void 0,spec:ar,roleFacts:Z,evidence:ap,missingFacts:aq,indexedFacts:[...a4,...a3],resolvedFactNeeds:aS,factNeedsPrompt:function(a){let b=a.map(a=>{let b=a.facts.slice(0,5).map(b=>`${b.key||b.fieldName||a.need.label}=${ai(b.value)}${b.sourceFile?`(${e.basename(b.sourceFile)})`:""}`),c=a.facts.length?[]:(a.evidence||[]).slice(0,2).map(a=>`证据片段:${ai(a.content).slice(0,160)}${a.filePath?`(${e.basename(a.filePath)})`:""}`);return`- ${a.need.required?"必须":"相关"}|${a.need.label}|${a.status}${b.length||c.length?`:${[...b,...c].join(";")}`:":未在已解析资料中确认"}`});return b.length?`事实需求覆盖卡片:
53
53
  ${b.join("\n")}`:""}(aS)}),a9=function(a){let b=Date.now(),c=a.plan.chapters.find(b=>b.chapterId===a.chapter.id)||a.plan.chapters.find(b=>b.title===a.chapter.title);if(!c)throw Error(`缺少章节计划:${a.chapter.title}`);let d=a.context.facts.filter(a=>c.evidenceQueries.some(b=>bU(a,b))||c.requiredFacts.some(b=>bU(a,b))),e=c.sections.map(b=>{let c=a.context.facts.filter(a=>b.evidenceQueries.some(b=>bU(a,b))||b.requiredFacts.some(b=>bU(a,b))).slice(0,24),d=a.evidence.filter(a=>b.evidenceQueries.some(b=>(function(a,b){let c=bR(`${a.sectionTitle||""} ${a.content||""} ${a.filePath||""}`);return b.split(/[\s、,,;;::()()【】[-]+/u).filter(a=>a.length>=2).some(a=>c.includes(bR(a)))})(a,b))).slice(0,24),e=b.requiredGraphNodes.flatMap(b=>bV(a.context.baseProjectGraph,b)).slice(0,12),f=[];return 0===d.length&&0===c.length&&0===e.length&&f.push({level:"error",severity:"blocker",category:"evidence_coverage",owner:"system",message:`${b.title} 缺少事实、图谱或证据支撑`,suggestion:"应先定向检索和抽取事实,不能生成占位正文。"}),{...b,factIds:c.map(a=>(0,z.c6)({key:a.key,value:(0,z.lG)(a.value),sourceFile:a.sourceFile}).slice(0,12)),evidenceIds:d.map(a=>(0,z.c6)({filePath:a.filePath,content:a.content.slice(0,160),score:a.score}).slice(0,12)),graphNodeIds:e.map(a=>(0,z.c6)(a).slice(0,12)),ready:0===f.length,issues:f}}),f=e.flatMap(a=>a.issues),g={taskId:`chapter-task-${(0,z.c6)({plan:a.plan.planId,chapter:a.chapter.id,evidence:a.evidence.map(a=>(0,z.c6)({filePath:a.filePath,content:a.content.slice(0,120),score:a.score}))}).slice(0,10)}`,chapterId:a.chapter.id,title:a.chapter.title,facts:d.slice(0,48),evidence:a.evidence.slice(0,48),graphContext:bV(a.context.baseProjectGraph,a.chapter.title).slice(0,20).join("\n"),sections:e,ready:0===f.length,issues:f};return{task:g,node:{id:`chapter-task-${a.chapter.id}`,type:"chapter_task_planner",status:g.ready?"completed":"failed",startedAt:b,completedAt:Date.now(),outputSummary:`${g.sections.filter(a=>a.ready).length}/${g.sections.length} 个小节任务就绪`,metrics:{facts:g.facts.length,evidence:g.evidence.length,issues:f.length},issues:f}}}({plan:b0.plan,chapter:d,context:bm,evidence:ap});if(bm.chapterTasks=[...(bm.chapterTasks||[]).filter(a=>a.chapterId!==d.id),a9.task],bm.nodes.push(a9.node),(0,ak.fx)(I,(0,ak.X5)({type:"validation",roleId:`agent-chapter-task-${d.id}`,status:a9.task.ready||o?"success":"failed",message:a9.task.ready?a9.node.outputSummary||`${(0,t.GQ)(d.title)} 章节任务规划完成`:o?`${(0,t.GQ)(d.title)} 章节任务未完全就绪,已复用已有正文并交由 Reviewer/Repairer 处理`:a9.node.outputSummary||`${(0,t.GQ)(d.title)} 章节任务规划完成`,details:a9.task.issues.map(a=>a.message)},{subtitle:"Agent Chapter Task Planner",order:I.length})),B(y),!a9.task.ready&&!o)throw Error(`${(0,t.GQ)(d.title)} 章节任务未就绪:${a9.task.issues.map(a=>a.message).join(";")}`);let bc=[aI,bY(a9.task)].filter(Boolean).join("\n\n"),be={total:aS.length,satisfied:aS.filter(a=>"satisfied"===a.status).length,missing:aS.filter(a=>"missing"===a.status).length,lowConfidence:aS.filter(a=>"low_confidence"===a.status).length};for(let a of aW)aY.push(`${d.title}:事实需求未确认 ${a}`);let bg=ar?.chapterRules.find(a=>a.id===d.id||a.title===d.title),bk=b_.chapterTargets.get(d.id)||1200,bo=d.sections?.filter(Boolean).length||0,bv=/[、,,;;]/u.test(d.title),bw=function(a){let{budgetTarget:b,sectionCount:c,title:d,longformStrict:e}=a,f=/[、,,;;]/u.test(d),g=/工期|进度|质量|安全|危大|资源|人材机|保障|措施|重难点/u.test(d),h=/概况|结语|附录|说明/u.test(d),i=c>0?c*(f?720:g?900:780):g?5200:3600,j=e?h?2600:g?5200:3600:Math.min(1200,b),k=e?Math.min(Math.max(4200,b),c>=30?9800:f?8800:g?9200:7200):b,l=Math.max(j,Math.min(b,i,k));return{budgetTarget:b,roundTarget:l,structureTarget:i,maxWords:Math.ceil(l*(a.longformStrict?1.12:1.18)),label:`章节预算约 ${b} 字,本轮生成约 ${l} 字,结构目标约 ${i} 字`}}({budgetTarget:bk,sectionCount:bo,title:d.title,longformStrict:b_.longformStrict}),bx=Math.ceil(bw.maxWords*(b_.maxChars?1.05:1)),by=b_.targetChars?Math.min(1800,Math.max(600,Math.floor(.45*bw.roundTarget))):1200,bz=bw.roundTarget,bA=Math.max(Math.min(bg?.minWords||0,bz),Math.min(ar?.dynamicChapterRule.minWordsPerChapter||0,bz),Math.floor(.68*bz),by),bB=(0,an.uV)(bA,bz),bE=bo>0?Math.min(bz,Math.max(1800,bw.structureTarget)):bz,bF=Math.max(4,Number(process.env.DOCUMENT_SECTION_FIRST_MAX_SECTIONS||8)),bH=process.env.DOCUMENT_SECTION_FIRST_GENERATION,bI=void 0!==bH&&0===Number(bH),bJ=void 0!==bH&&0!==Number(bH),bK=bz>=6e3&&bo>=4&&bo<=bF&&!bv,bL=!bI&&bo>=2&&(bo>bF||bv||b_.longformStrict&&bo>=6),bM=!bI&&!bL&&bo>=2&&bo<=bF&&(bJ||bK||b_.longformStrict),bN=0,bO=a=>{let b=Date.now();if(b-bN<3e3)return;bN=b;let c=a.filter(Boolean).join("\n\n");c.trim()&&B([...y,{id:d.id,title:d.title,content:`## ${d.title}
54
54
 
55
55
  ${c}`,evidence:ap,missingFacts:aq,sections:d.sections||[],tablePlans:d.tablePlans||[],inProgress:!0}])},bP=a=>{"complete"===a.phase&&a.partialSections&&bO(a.partialSections)};if(o)b=bi(o,d),g=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"success",message:`${(0,t.GQ)(d.title)} 已复用已有章节正文:当前 ${(0,w.V7)(b)} 字,跳过 Writer,直接进入 Reviewer/Repairer/Final Gate`,details:[`有效证据:${ap.length} 条`,`事实需求:${be.satisfied}/${be.total} 已满足,缺失 ${be.missing},低置信 ${be.lowConfidence}`,"来源:resumeChapters/checkpointChapters"],progress:{current:h+1,total:bD.length,label:"复用章节"}},{subtitle:(0,t.GQ)(d.title),order:h}),I[j]=g,B(y);else{I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"running",message:bL?`${(0,t.GQ)(d.title)} 正在按语义小节组并发成稿`:bM?`${(0,t.GQ)(d.title)} 正在按小节并发成稿`:`${(0,t.GQ)(d.title)} 正在整章一次成稿`,details:bL||bM?[...aJ,`有效证据:${ap.length} 条`,`事实需求:${be.satisfied}/${be.total} 已满足,缺失 ${be.missing},低置信 ${be.lowConfidence}`,bw.label,`生成上限约 ${bx} 字`,`规划小节:${d.sections?.length||0} 个`,bL?"小节较多,按工期/质量/安全/资源等语义组并发生成,避免整章长调用低产":"按章节结构拆分小节自然并发生成,章节聚合后再审查修复"]:[...aJ,`有效证据:${ap.length} 条`,`事实需求:${be.satisfied}/${be.total} 已满足,缺失 ${be.missing},低置信 ${be.lowConfidence}`,bw.label,`生成上限约 ${bx} 字`,`规划小节:${bo} 个`,"首次生成必须覆盖章节结构、小节和事实,篇幅目标仅作为规划参考"],progress:{current:h+1,total:bD.length,label:bL?"小节分组":bM?"小节并发":"整章成稿"}},{subtitle:(0,t.GQ)(d.title),order:h}),B();let e=bL?await D(()=>(0,al.X6)(b5,`chapter-section-group-draft:${d.id}`,()=>(0,an.DG)({template:p,chapter:d,evidence:ap,missingFacts:aq,promptTexts:bc,projectContext:bG,requirement:a.requirement,roleContext:aG,targetWords:bE,maxWords:bx,forbidDrawingImages:!1,factCoverageContext:a8,compactProjectContext:!0,sectionEvidenceProvider:b=>bt({manager:q,projectRoot:c,chapter:d,sectionTitle:b,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}),onSectionProgress:bP,diagnostics:b5,signal:a.signal}))):bM?await D(()=>(0,al.X6)(b5,`chapter-section-draft:${d.id}`,()=>(0,an.N1)({template:p,chapter:d,evidence:ap,missingFacts:aq,promptTexts:bc,projectContext:bG,requirement:a.requirement,roleContext:aG,targetWords:bE,maxWords:bx,forbidDrawingImages:!1,factCoverageContext:a8,projectRoot:c,modelName:(0,R.$y)()?.model.name,materialContextHash:(0,z.c6)({materialFilePaths:Q,promptTexts:aI}),allowPartialResult:!1,compactProjectContext:!0,sectionEvidenceProvider:b=>bt({manager:q,projectRoot:c,chapter:d,sectionTitle:b,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}),onSectionProgress:bP,diagnostics:b5,signal:a.signal}))):await D(()=>(0,al.X6)(b5,`chapter-draft:${d.id}`,()=>(0,an.eu)(p,d,ap,aq,bc,bG,a.requirement,aG,{forbidDrawingImages:!1,minWords:bA,targetWords:bz,maxWords:bx,maxTokens:bB,factCoverageContext:a8,signal:a.signal,diagnostics:b5})));if(!e&&bL&&(I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"running",message:`${(0,t.GQ)(d.title)} 小节组未返回有效正文,正在切换为逐小节备用成稿`,details:[`LLM 最近错误:${b5.llm.lastError||"小节组空响应或超时"}`,`有效证据:${ap.length} 条`],progress:{current:h+1,total:bD.length,label:"备用成稿"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(y),e=await D(()=>(0,al.X6)(b5,`chapter-section-fallback:${d.id}`,()=>(0,an.N1)({template:p,chapter:d,evidence:ap,missingFacts:aq,promptTexts:bc,projectContext:bG,requirement:a.requirement,roleContext:aG,targetWords:bE,maxWords:bx,forbidDrawingImages:!1,factCoverageContext:a8,projectRoot:c,modelName:(0,R.$y)()?.model.name,materialContextHash:(0,z.c6)({materialFilePaths:Q,promptTexts:aI,fallback:"section-parallel"}),allowPartialResult:!1,sectionEvidenceProvider:b=>bt({manager:q,projectRoot:c,chapter:d,sectionTitle:b,scopedFilePaths:M,fileRoleByPath:aL,fileProcessingByPath:aM,signal:a.signal}),diagnostics:b5,signal:a.signal}).catch(a=>{b5.llm.lastError=a instanceof Error?a.message:String(a)})))),!e&&(bL||bM)&&(I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"running",message:`${(0,t.GQ)(d.title)} 小节成稿未完成,正在切换为整章紧凑备用成稿`,details:[`LLM 最近错误:${b5.llm.lastError||"小节成稿空响应或超时"}`,`有效证据:${ap.length} 条`],progress:{current:h+1,total:bD.length,label:"整章备用"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(y),e=await D(()=>(0,al.X6)(b5,`chapter-compact-fallback:${d.id}`,()=>(0,an.eu)(p,d,ap,aq,bc,bG,a.requirement,aG,{forbidDrawingImages:!1,minWords:Math.floor(.65*bA),targetWords:Math.floor(.75*bE),maxWords:bx,maxTokens:bB,factCoverageContext:a8,signal:a.signal,diagnostics:b5}).catch(a=>{b5.llm.lastError=a instanceof Error?a.message:String(a)})))),!e&&ap.length>0&&(I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"running",message:`${(0,t.GQ)(d.title)} LLM 多路径未返回有效正文,正在用当前项目证据生成可审查草稿`,details:[`LLM 最近错误:${b5.llm.lastError||"空响应或超时"}`,`证据条数:${ap.length}`],progress:{current:h+1,total:bD.length,label:"证据草稿"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(y),e=(0,an.we)({chapter:d,evidence:ap,targetWords:bE,forbidDrawingImages:!1})),(0,z.Te)(a.signal),!e){let a=`${(0,t.GQ)(d.title)} 大模型未返回有效正文,已阻断生成`;throw I[j]=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:"failed",message:a,details:[`LLM 最近错误:${b5.llm.lastError||"空响应或超时"}`,`证据条数:${ap.length}`],progress:{current:h+1,total:bD.length,label:"章节阻断"}},{subtitle:(0,t.GQ)(d.title),order:h}),B(y),Error(a)}let f=e;if(!f.trim())throw Error(`${(0,t.GQ)(d.title)} 首次生成失败,未获得可用于定稿的正文`);b=bi(f,d)}let bQ=(0,an.mt)({chapter:d,content:b,evidence:ap}),bS=(0,w.V7)(b),bT=(0,v.r4)(b),bW=bT.length>0?bT:d.sections||[],bX=(0,x.qK)(b,[{title:d.title,content:b,sections:bW}]).map(a=>a.message),b$=bQ.slice(0,6).map(a=>`小节事实密度需优化:${a}`),b3=[...bX,...b$],b4=function(a,b,c=[]){return a<=0||c.some(a=>/未返回有效章节正文|生成失败/u.test(a))?"failed":"success"}(bS,0,b3);g=(0,ak.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:aH.primaryPromptId,status:b4,message:(0,ak.AQ)(`${(0,t.GQ)(d.title)} 已由大模型成稿:当前 ${bS} 字;章节预算约 ${bw.budgetTarget} 字,本轮目标约 ${bw.roundTarget} 字${b3.length?`;待优化:${b3.slice(0,8).join("、")}`:""}`,i),details:[`本轮完成率:${Math.round(bS/Math.max(1,bw.roundTarget)*100)}%`,`结构目标约 ${bw.structureTarget} 字`,...aJ,`二级小节:${bW.length} 个`,`扩写轮次:0`],progress:{current:h+1,total:bD.length,label:b3.length?"章节已生成":"章节达标"}},{subtitle:(0,t.GQ)(d.title),order:h}),a6[h]=g;let b6={id:d.id,title:d.title,content:b,evidence:ap,missingFacts:aq,sections:bW,tablePlans:d.tablePlans||[]},b7=b1({task:a9.task,draft:b6,context:bm});bm.reviewResults={...bm.reviewResults||{},[d.id]:b7};let b8=b7.issues.filter(a=>"blocker"===a.severity||"error"===a.level),b9=b8.some(a=>/Writer 未完成/u.test(a.message)),ca=b8.some(a=>/正文不足,未达到任务最小深度/u.test(a.message)),cb=b8.length>0&&(b7.repairable||b9||ca);if(bm.nodes.push({id:`chapter-reviewer-${d.id}`,type:"chapter_reviewer",status:b8.length?cb?"running":"failed":"completed",startedAt:Date.now(),completedAt:Date.now(),outputSummary:b7.issues.length?`${b7.issues.length} 个 Reviewer 提示`:"Reviewer 通过",metrics:{supportedFacts:b7.supportedFacts},issues:b7.issues}),(0,ak.fx)(I,(0,ak.X5)({type:"llm_review",roleId:`agent-reviewer-${d.id}`,status:b8.length?cb?"running":"failed":"success",message:b8.length?`${(0,t.GQ)(d.title)} Reviewer 发现 ${b8.length} 个阻断问题,等待 Repairer 修复`:`${(0,t.GQ)(d.title)} Reviewer 通过${b7.issues.length?`(${b7.issues.length} 个优化提示)`:""}`,details:b7.issues.map(a=>a.message)},{subtitle:"Agent Reviewer",order:I.length})),B(y),b8.length>0&&(b7.repairable||b9||ca)){let b={...b7,issues:b8},e=b7.repairable?(m={task:a9.task,review:b}).review.repairable?["【Agent 定向修复任务】",`章节:${m.task.title}`,"只修复下列问题,不重写无关内容;如果问题是小节正文不足,必须按原小节标题完整补足该小节正式正文,每个小节不得少于任务最小深度:",...m.review.issues.map(a=>`- ${a.message};${a.suggestion||""}`),bY(m.task)].join("\n"):"":["【Agent 定向修复任务】",`章节:${a9.task.title}`,"Reviewer 发现 Writer 未完成小节。必须基于对应小节事实卡和证据生成正式正文,替换并删除 WRITER_MISSING_SECTION 标记;不得跳过这些小节,不得保留占位说明。",...b8.map(a=>`- ${a.message};${a.suggestion||""}`)].join("\n"),f=I.length,g=b8.filter(a=>/Writer 未完成/u.test(a.message)),h=b8.filter(a=>/正文不足,未达到任务最小深度/u.test(a.message)),i=[...g,...h.filter(a=>!g.some(b=>b.message===a.message))],j=[];for(let[b,g]of((0,ak.fx)(I,(0,ak.X5)({type:"llm_review",roleId:`agent-repairer-${d.id}`,status:"running",message:`${(0,t.GQ)(d.title)} Reviewer 发现 ${b8.length} 个阻断问题,正在定向修复`,details:b8.map(a=>a.message)},{subtitle:"Agent Repairer",order:f})),B(y),i.entries())){let h=g.message.replace(/\s*Writer 未完成.*$/u,"").replace(/\s*正文不足,未达到任务最小深度.*$/u,"").trim(),k=/Writer 未完成/u.test(g.message)?"缺失小节":"深度不足小节";(0,ak.fx)(I,(0,ak.X5)({type:"llm_review",roleId:`agent-repairer-${d.id}`,status:"running",message:`${(0,t.GQ)(d.title)} 正在补写${k} ${b+1}/${i.length}:${h}`,details:[...j,`当前:${h}`]},{subtitle:"Agent Repairer",order:f})),B(y);let l=a9.task.sections.find(a=>a.title===h),m=(a,b,c)=>{let d=a=>a.replace(/[\u00a0\u3000]/gu," ").replace(/^\d+(?:\.\d+)*\s+/u,"").trim(),e=a=>d(a).replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/\s/gu,""),f=a=>a.trim().replace(/^#{2,6}\s+(?:\d+(?:\.\d+)*\s+)?[^\n]+\n+/u,"").trim(),g=a.split("\n"),h=0;for(let i=0;i<g.length;i+=1){let j=g[i],k=h;h+=j.length+1;let l=/^(#{3,4})\s+(.+)$/u.exec(j.trim());if(!l)continue;let m=d(l[2]),n=e(m),o=e(b);if(m!==b&&!m.includes(b)&&!b.includes(m)&&n!==o&&!n.includes(o)&&!o.includes(n))continue;let p=g.length;for(let a=i+1;a<g.length;a+=1)if(/^#{2,4}\s+/u.test(g[a].trim())){p=a;break}let q=p<g.length?g.slice(0,p).join("\n").length:a.length,r=f(c);return`${a.slice(0,k)}${j.trim()}
@@ -1,4 +1,4 @@
1
- exports.id=9301,exports.ids=[9301],exports.modules={1628:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizeDataPath",{enumerable:!0,get:function(){return e}});let d=c(79007);function e(a){return(0,d.pathHasPrefix)(a||"/","/_next/data")&&"/index"===(a=a.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":a}},8833:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCacheControlHeader",{enumerable:!0,get:function(){return e}});let d=c(47274);function e({revalidate:a,expire:b}){let c="number"==typeof a&&void 0!==b&&a<b?`, stale-while-revalidate=${b-a}`:"";return 0===a?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof a?`s-maxage=${a}${c}`:`s-maxage=${d.CACHE_ONE_YEAR}${c}`}},12606:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{PageSignatureError:function(){return c},RemovedPageError:function(){return d},RemovedUAError:function(){return e}});class c extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
1
+ exports.id=9301,exports.ids=[9301],exports.modules={1628:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizeDataPath",{enumerable:!0,get:function(){return e}});let d=c(79007);function e(a){return(0,d.pathHasPrefix)(a||"/","/_next/data")&&"/index"===(a=a.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":a}},6651:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},8833:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCacheControlHeader",{enumerable:!0,get:function(){return e}});let d=c(47274);function e({revalidate:a,expire:b}){let c="number"==typeof a&&void 0!==b&&a<b?`, stale-while-revalidate=${b-a}`:"";return 0===a?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof a?`s-maxage=${a}${c}`:`s-maxage=${d.CACHE_ONE_YEAR}${c}`}},12606:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{PageSignatureError:function(){return c},RemovedPageError:function(){return d},RemovedUAError:function(){return e}});class c extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
2
2
 
3
3
  export function middleware(request, event) {
4
4
  return NextResponse.redirect('/new-location')
@@ -9,11 +9,11 @@ exports.id=9301,exports.ids=[9301],exports.modules={1628:(a,b,c)=>{"use strict";
9
9
  Read more: https://nextjs.org/docs/messages/middleware-request-page
10
10
  `)}}class e extends Error{constructor(){super(`The request.ua has been removed in favour of \`userAgent\` function.
11
11
  Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
12
- `)}}},13653:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(75097)},14663:(a,b)=>{"use strict";function c(a){return a.isOnDemandRevalidate?"on-demand":a.isRevalidate?"stale":void 0}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRevalidateReason",{enumerable:!0,get:function(){return c}})},15707:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(47274);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},17954:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_REQUEST_META:function(){return c},addRequestMeta:function(){return f},getRequestMeta:function(){return d},removeRequestMeta:function(){return g},setRequestMeta:function(){return e}});let c=Symbol.for("NextInternalRequestMeta");function d(a,b){let d=a[c]||{};return"string"==typeof b?d[b]:d}function e(a,b){return a[c]=b,b}function f(a,b,c){let f=d(a);return f[b]=c,e(a,f)}function g(a,b){let c=d(a);return delete c[b],e(a,c)}},20614:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},23026:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(34356),e=c(89429),f=c(47392),g=c(34626),h=c(64588);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},25106:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{allowedStatusCodes:function(){return e},getRedirectStatus:function(){return f},modifyRouteRegex:function(){return g}});let d=c(23830),e=new Set([301,302,303,307,308]);function f(a){return a.statusCode||(a.permanent?d.RedirectStatusCode.PermanentRedirect:d.RedirectStatusCode.TemporaryRedirect)}function g(a,b){return b&&(a=a.replace(/\^/,`^(?!${b.map(a=>a.replace(/\//g,"\\/")).join("|")})`)),a=a.replace(/\$$/,"(?:\\/)?$")}},26411:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return d},doesExportedHtmlMatchBuildId:function(){return g},insertBuildIdComment:function(){return f}});let c="<!DOCTYPE html>",d="bytes=0-63";function e(a){return a.slice(0,24).replace(/-/g,"_")}function f(a,b){return b.includes("--\x3e")||!a.startsWith(c)?a:a.replace(c,c+"\x3c!--"+e(b)+"--\x3e")}function g(a,b){return a.startsWith(c+"\x3c!--"+e(b)+"--\x3e")}},27860:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return n}});let d=c(51024),e=c(80649),f=c(90252),g=c(61798),h=c(42811);function i(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}!function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(80551),b);let j=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),k=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),l="__ttl_sentinel__";function m(a,b){return`${a}\0${b??l}`}class n{constructor(a,b=k,c=j){this.batcher=d.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:g.scheduleOnNextTick}),this.revalidateBatcher=d.Batcher.create({schedulerFn:g.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new e.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===l?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=m(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,h.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,h.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,f.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:g=!1,isRoutePPREnabled:i=!1,isPrefetch:j=!1,waitUntil:k,routeKind:l,invocationID:n}=c,o=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,f)=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:g,isRoutePPREnabled:i,isPrefetch:j,routeKind:l,invocationID:n},f);return k&&k(h),h});return(0,h.toResponseCacheEntry)(o)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,h.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=m(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,i){try{let j=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!j)return null;let k=await (0,h.fromResponseCacheEntry)({...j,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=m(a,i);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},29032:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},32151:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},34356:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(17954),e=c(15707),f=c(71927),g=c(76017),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},42811:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromResponseCacheEntry:function(){return h},routeKindToIncrementalCacheKind:function(){return j},toResponseCacheEntry:function(){return i}});let d=c(80551),e=function(a){return a&&a.__esModule?a:{default:a}}(c(62153)),f=c(29032),g=c(47274);async function h(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function i(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function j(a){switch(a){case f.RouteKind.PAGES:return d.IncrementalCacheKind.PAGES;case f.RouteKind.APP_PAGE:return d.IncrementalCacheKind.APP_PAGE;case f.RouteKind.IMAGE:return d.IncrementalCacheKind.IMAGE;case f.RouteKind.APP_ROUTE:return d.IncrementalCacheKind.APP_ROUTE;case f.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},43357:(a,b)=>{"use strict";function c(a){return a.default||a}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interopDefault",{enumerable:!0,get:function(){return c}})},44576:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ENCODED_TAGS",{enumerable:!0,get:function(){return c}});let c={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},47366:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{sendEtagResponse:function(){return i},sendRenderResult:function(){return j}});let d=c(8423),e=c(92486),f=function(a){return a&&a.__esModule?a:{default:a}}(c(60746)),g=c(8833),h=c(47274);function i(a,b,c){return c&&b.setHeader("ETag",c),!!(0,f.default)(a.headers,{etag:c})&&(b.statusCode=304,b.end(),!0)}async function j({req:a,res:b,result:c,generateEtags:f,poweredByHeader:j,cacheControl:k}){if((0,d.isResSent)(b))return;j&&c.contentType===h.HTML_CONTENT_TYPE_HEADER&&b.setHeader("X-Powered-By","Next.js"),k&&!b.getHeader("Cache-Control")&&b.setHeader("Cache-Control",(0,g.getCacheControlHeader)(k));let l=c.isDynamic?null:c.toUnchunkedString();if(!(f&&null!==l&&i(a,b,(0,e.generateETag)(l))))return(!b.getHeader("Content-Type")&&c.contentType&&b.setHeader("Content-Type",c.contentType),l&&b.setHeader("Content-Length",Buffer.byteLength(l)),"HEAD"===a.method)?void b.end(null):null!==l?void b.end(l):void await c.pipeToNodeResponse(b)}},48130:(a,b)=>{"use strict";function c(a,b,c){if(a)for(let f of(c&&(c=c.toLowerCase()),a)){var d,e;if(b===(null==(d=f.domain)?void 0:d.split(":",1)[0].toLowerCase())||c===f.defaultLocale.toLowerCase()||(null==(e=f.locales)?void 0:e.some(a=>a.toLowerCase()===c)))return f}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},49391:(a,b)=>{"use strict";Object.defineProperty(b,"M",{enumerable:!0,get:function(){return function a(b,c){return c in b?b[c]:"then"in b&&"function"==typeof b.then?b.then(b=>a(b,c)):"function"==typeof b&&"default"===c?b:void 0}}})},51024:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(89429);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},54547:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(48130),e=c(26975),f=c(20614),g=c(13712),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},60746:a=>{(()=>{"use strict";var b={695:a=>{var b=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function c(a){var b=a&&Date.parse(a);return"number"==typeof b?b:NaN}a.exports=function(a,d){var e=a["if-modified-since"],f=a["if-none-match"];if(!e&&!f)return!1;var g=a["cache-control"];if(g&&b.test(g))return!1;if(f&&"*"!==f){var h=d.etag;if(!h)return!1;for(var i=!0,j=function(a){for(var b=0,c=[],d=0,e=0,f=a.length;e<f;e++)switch(a.charCodeAt(e)){case 32:d===b&&(d=b=e+1);break;case 44:c.push(a.substring(d,b)),d=b=e+1;break;default:b=e+1}return c.push(a.substring(d,b)),c}(f),k=0;k<j.length;k++){var l=j[k];if(l===h||l==="W/"+h||"W/"+l===h){i=!1;break}}if(i)return!1}if(e){var m=d["last-modified"];if(!m||!(c(m)<=c(e)))return!1}return!0}}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/",a.exports=d(695)})()},62153:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(63754),e=c(23026),f=c(99257);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},63754:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{chainStreams:function(){return n},continueDynamicHTMLResume:function(){return E},continueDynamicPrerender:function(){return C},continueFizzStream:function(){return B},continueStaticPrerender:function(){return D},createBufferedTransformStream:function(){return s},createDocumentClosingStream:function(){return F},createRootLayoutValidatorStream:function(){return A},renderToInitialFizzStream:function(){return u},streamFromBuffer:function(){return p},streamFromString:function(){return o},streamToBuffer:function(){return q},streamToString:function(){return r}});let d=c(47392),e=c(34626),f=c(89429),g=c(61798),h=c(44576),i=c(64887),j=c(32151),k=c(26411);function l(){}let m=new TextEncoder;function n(...a){if(0===a.length)return new ReadableStream({start(a){a.close()}});if(1===a.length)return a[0];let{readable:b,writable:c}=new TransformStream,d=a[0].pipeTo(c,{preventClose:!0}),e=1;for(;e<a.length-1;e++){let b=a[e];d=d.then(()=>b.pipeTo(c,{preventClose:!0}))}let f=a[e];return(d=d.then(()=>f.pipeTo(c))).catch(l),b}function o(a){return new ReadableStream({start(b){b.enqueue(m.encode(a)),b.close()}})}function p(a){return new ReadableStream({start(b){b.enqueue(a),b.close()}})}async function q(a){let b=a.getReader(),c=[];for(;;){let{done:a,value:d}=await b.read();if(a)break;c.push(d)}return Buffer.concat(c)}async function r(a,b){let c=new TextDecoder("utf-8",{fatal:!0}),d="";for await(let e of a){if(null==b?void 0:b.aborted)return d;d+=c.decode(e,{stream:!0})}return d+c.decode()}function s(){let a,b=[],c=0;return new TransformStream({transform(d,e){b.push(d),c+=d.byteLength,(d=>{if(a)return;let e=new f.DetachedPromise;a=e,(0,g.scheduleImmediate)(()=>{try{let a=new Uint8Array(c),e=0;for(let c=0;c<b.length;c++){let d=b[c];a.set(d,e),e+=d.byteLength}b.length=0,c=0,d.enqueue(a)}catch{}finally{a=void 0,e.resolve()}})})(e)},flush(){if(a)return a.promise}})}function t(a,b){let c=!1;return new TransformStream({transform(d,e){if(a&&!c){c=!0;let a=new TextDecoder("utf-8",{fatal:!0}).decode(d,{stream:!0}),f=(0,k.insertBuildIdComment)(a,b);e.enqueue(m.encode(f));return}e.enqueue(d)}})}function u({ReactDOMServer:a,element:b,streamOptions:c}){return(0,d.getTracer)().trace(e.AppRenderSpan.renderToReadableStream,async()=>a.renderToReadableStream(b,c))}function v(a){let b=-1,c=!1;return new TransformStream({async transform(d,e){let f=-1,g=-1;if(b++,c)return void e.enqueue(d);let j=0;if(-1===f){if(-1===(f=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.META.ICON_MARK)))return void e.enqueue(d);47===d[f+(j=h.ENCODED_TAGS.META.ICON_MARK.length)]?j+=2:j++}if(0===b){if(g=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD),-1!==f){if(f<g){let a=new Uint8Array(d.length-j);a.set(d.subarray(0,f)),a.set(d.subarray(f+j),f),d=a}else{let b=await a(),c=m.encode(b),e=c.length,g=new Uint8Array(d.length-j+e);g.set(d.subarray(0,f)),g.set(c,f),g.set(d.subarray(f+j),f+e),d=g}c=!0}}else{let b=await a(),e=m.encode(b),g=e.length,h=new Uint8Array(d.length-j+g);h.set(d.subarray(0,f)),h.set(e,f),h.set(d.subarray(f+j),f+g),d=h,c=!0}e.enqueue(d)}})}function w(a){let b=!1,c=!1;return new TransformStream({async transform(d,e){c=!0;let f=await a();if(b){if(f){let a=m.encode(f);e.enqueue(a)}e.enqueue(d)}else{let a=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD);if(-1!==a){if(f){let b=m.encode(f),c=new Uint8Array(d.length+b.length);c.set(d.slice(0,a)),c.set(b,a),c.set(d.slice(a),a+b.length),e.enqueue(c)}else e.enqueue(d);b=!0}else f&&e.enqueue(m.encode(f)),e.enqueue(d),b=!0}},async flush(b){if(c){let c=await a();c&&b.enqueue(m.encode(c))}}})}function x(a,b){let c=!1,d=null,e=!1;function f(a){return d||(d=h(a)),d}async function h(d){let f=a.getReader();b&&await (0,g.atLeastOneTask)();try{for(;;){let{done:a,value:h}=await f.read();if(a){e=!0;return}b||c||await (0,g.atLeastOneTask)(),d.enqueue(h)}}catch(a){d.error(a)}}return new TransformStream({start(a){b||f(a)},transform(a,c){c.enqueue(a),b&&f(c)},flush(a){if(c=!0,!e)return f(a)}})}let y="</body></html>";function z(){let a=!1;return new TransformStream({transform(b,c){if(a)return c.enqueue(b);let d=(0,i.indexOfUint8Array)(b,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(d>-1){if(a=!0,b.length===h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let e=b.slice(0,d);if(c.enqueue(e),b.length>h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+d){let a=b.slice(d+h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);c.enqueue(a)}}else c.enqueue(b)},flush(a){a.enqueue(h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function A(){let a=!1,b=!1;return new TransformStream({async transform(c,d){!a&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.HTML)>-1&&(a=!0),!b&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.BODY)>-1&&(b=!0),d.enqueue(c)},flush(c){let d=[];a||d.push("html"),b||d.push("body"),d.length&&c.enqueue(m.encode(`<html id="__next_error__">
12
+ `)}}},13653:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(75097)},14663:(a,b)=>{"use strict";function c(a){return a.isOnDemandRevalidate?"on-demand":a.isRevalidate?"stale":void 0}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRevalidateReason",{enumerable:!0,get:function(){return c}})},15707:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(47274);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},17954:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_REQUEST_META:function(){return c},addRequestMeta:function(){return f},getRequestMeta:function(){return d},removeRequestMeta:function(){return g},setRequestMeta:function(){return e}});let c=Symbol.for("NextInternalRequestMeta");function d(a,b){let d=a[c]||{};return"string"==typeof b?d[b]:d}function e(a,b){return a[c]=b,b}function f(a,b,c){let f=d(a);return f[b]=c,e(a,f)}function g(a,b){let c=d(a);return delete c[b],e(a,c)}},20614:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},23026:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(34356),e=c(89429),f=c(47392),g=c(34626),h=c(64588);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},25106:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{allowedStatusCodes:function(){return e},getRedirectStatus:function(){return f},modifyRouteRegex:function(){return g}});let d=c(23830),e=new Set([301,302,303,307,308]);function f(a){return a.statusCode||(a.permanent?d.RedirectStatusCode.PermanentRedirect:d.RedirectStatusCode.TemporaryRedirect)}function g(a,b){return b&&(a=a.replace(/\^/,`^(?!${b.map(a=>a.replace(/\//g,"\\/")).join("|")})`)),a=a.replace(/\$$/,"(?:\\/)?$")}},26411:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return d},doesExportedHtmlMatchBuildId:function(){return g},insertBuildIdComment:function(){return f}});let c="<!DOCTYPE html>",d="bytes=0-63";function e(a){return a.slice(0,24).replace(/-/g,"_")}function f(a,b){return b.includes("--\x3e")||!a.startsWith(c)?a:a.replace(c,c+"\x3c!--"+e(b)+"--\x3e")}function g(a,b){return a.startsWith(c+"\x3c!--"+e(b)+"--\x3e")}},27860:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return n}});let d=c(51024),e=c(80649),f=c(90252),g=c(61798),h=c(42811);function i(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}!function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(80551),b);let j=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),k=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),l="__ttl_sentinel__";function m(a,b){return`${a}\0${b??l}`}class n{constructor(a,b=k,c=j){this.batcher=d.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:g.scheduleOnNextTick}),this.revalidateBatcher=d.Batcher.create({schedulerFn:g.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new e.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===l?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=m(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,h.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,h.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,f.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:g=!1,isRoutePPREnabled:i=!1,isPrefetch:j=!1,waitUntil:k,routeKind:l,invocationID:n}=c,o=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,f)=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:g,isRoutePPREnabled:i,isPrefetch:j,routeKind:l,invocationID:n},f);return k&&k(h),h});return(0,h.toResponseCacheEntry)(o)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,h.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=m(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,i){try{let j=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!j)return null;let k=await (0,h.fromResponseCacheEntry)({...j,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=m(a,i);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},32151:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},34356:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(17954),e=c(15707),f=c(71927),g=c(76017),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},42811:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromResponseCacheEntry:function(){return h},routeKindToIncrementalCacheKind:function(){return j},toResponseCacheEntry:function(){return i}});let d=c(80551),e=function(a){return a&&a.__esModule?a:{default:a}}(c(62153)),f=c(6651),g=c(47274);async function h(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function i(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function j(a){switch(a){case f.RouteKind.PAGES:return d.IncrementalCacheKind.PAGES;case f.RouteKind.APP_PAGE:return d.IncrementalCacheKind.APP_PAGE;case f.RouteKind.IMAGE:return d.IncrementalCacheKind.IMAGE;case f.RouteKind.APP_ROUTE:return d.IncrementalCacheKind.APP_ROUTE;case f.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},43357:(a,b)=>{"use strict";function c(a){return a.default||a}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interopDefault",{enumerable:!0,get:function(){return c}})},44576:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ENCODED_TAGS",{enumerable:!0,get:function(){return c}});let c={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},47366:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{sendEtagResponse:function(){return i},sendRenderResult:function(){return j}});let d=c(8423),e=c(92486),f=function(a){return a&&a.__esModule?a:{default:a}}(c(60746)),g=c(8833),h=c(47274);function i(a,b,c){return c&&b.setHeader("ETag",c),!!(0,f.default)(a.headers,{etag:c})&&(b.statusCode=304,b.end(),!0)}async function j({req:a,res:b,result:c,generateEtags:f,poweredByHeader:j,cacheControl:k}){if((0,d.isResSent)(b))return;j&&c.contentType===h.HTML_CONTENT_TYPE_HEADER&&b.setHeader("X-Powered-By","Next.js"),k&&!b.getHeader("Cache-Control")&&b.setHeader("Cache-Control",(0,g.getCacheControlHeader)(k));let l=c.isDynamic?null:c.toUnchunkedString();if(!(f&&null!==l&&i(a,b,(0,e.generateETag)(l))))return(!b.getHeader("Content-Type")&&c.contentType&&b.setHeader("Content-Type",c.contentType),l&&b.setHeader("Content-Length",Buffer.byteLength(l)),"HEAD"===a.method)?void b.end(null):null!==l?void b.end(l):void await c.pipeToNodeResponse(b)}},48130:(a,b)=>{"use strict";function c(a,b,c){if(a)for(let f of(c&&(c=c.toLowerCase()),a)){var d,e;if(b===(null==(d=f.domain)?void 0:d.split(":",1)[0].toLowerCase())||c===f.defaultLocale.toLowerCase()||(null==(e=f.locales)?void 0:e.some(a=>a.toLowerCase()===c)))return f}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},49391:(a,b)=>{"use strict";Object.defineProperty(b,"M",{enumerable:!0,get:function(){return function a(b,c){return c in b?b[c]:"then"in b&&"function"==typeof b.then?b.then(b=>a(b,c)):"function"==typeof b&&"default"===c?b:void 0}}})},51024:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(89429);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},54547:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(48130),e=c(26975),f=c(20614),g=c(13712),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},60746:a=>{(()=>{"use strict";var b={695:a=>{var b=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function c(a){var b=a&&Date.parse(a);return"number"==typeof b?b:NaN}a.exports=function(a,d){var e=a["if-modified-since"],f=a["if-none-match"];if(!e&&!f)return!1;var g=a["cache-control"];if(g&&b.test(g))return!1;if(f&&"*"!==f){var h=d.etag;if(!h)return!1;for(var i=!0,j=function(a){for(var b=0,c=[],d=0,e=0,f=a.length;e<f;e++)switch(a.charCodeAt(e)){case 32:d===b&&(d=b=e+1);break;case 44:c.push(a.substring(d,b)),d=b=e+1;break;default:b=e+1}return c.push(a.substring(d,b)),c}(f),k=0;k<j.length;k++){var l=j[k];if(l===h||l==="W/"+h||"W/"+l===h){i=!1;break}}if(i)return!1}if(e){var m=d["last-modified"];if(!m||!(c(m)<=c(e)))return!1}return!0}}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/",a.exports=d(695)})()},62153:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(63754),e=c(23026),f=c(99257);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},63754:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{chainStreams:function(){return n},continueDynamicHTMLResume:function(){return E},continueDynamicPrerender:function(){return C},continueFizzStream:function(){return B},continueStaticPrerender:function(){return D},createBufferedTransformStream:function(){return s},createDocumentClosingStream:function(){return F},createRootLayoutValidatorStream:function(){return A},renderToInitialFizzStream:function(){return u},streamFromBuffer:function(){return p},streamFromString:function(){return o},streamToBuffer:function(){return q},streamToString:function(){return r}});let d=c(47392),e=c(34626),f=c(89429),g=c(61798),h=c(44576),i=c(64887),j=c(32151),k=c(26411);function l(){}let m=new TextEncoder;function n(...a){if(0===a.length)return new ReadableStream({start(a){a.close()}});if(1===a.length)return a[0];let{readable:b,writable:c}=new TransformStream,d=a[0].pipeTo(c,{preventClose:!0}),e=1;for(;e<a.length-1;e++){let b=a[e];d=d.then(()=>b.pipeTo(c,{preventClose:!0}))}let f=a[e];return(d=d.then(()=>f.pipeTo(c))).catch(l),b}function o(a){return new ReadableStream({start(b){b.enqueue(m.encode(a)),b.close()}})}function p(a){return new ReadableStream({start(b){b.enqueue(a),b.close()}})}async function q(a){let b=a.getReader(),c=[];for(;;){let{done:a,value:d}=await b.read();if(a)break;c.push(d)}return Buffer.concat(c)}async function r(a,b){let c=new TextDecoder("utf-8",{fatal:!0}),d="";for await(let e of a){if(null==b?void 0:b.aborted)return d;d+=c.decode(e,{stream:!0})}return d+c.decode()}function s(){let a,b=[],c=0;return new TransformStream({transform(d,e){b.push(d),c+=d.byteLength,(d=>{if(a)return;let e=new f.DetachedPromise;a=e,(0,g.scheduleImmediate)(()=>{try{let a=new Uint8Array(c),e=0;for(let c=0;c<b.length;c++){let d=b[c];a.set(d,e),e+=d.byteLength}b.length=0,c=0,d.enqueue(a)}catch{}finally{a=void 0,e.resolve()}})})(e)},flush(){if(a)return a.promise}})}function t(a,b){let c=!1;return new TransformStream({transform(d,e){if(a&&!c){c=!0;let a=new TextDecoder("utf-8",{fatal:!0}).decode(d,{stream:!0}),f=(0,k.insertBuildIdComment)(a,b);e.enqueue(m.encode(f));return}e.enqueue(d)}})}function u({ReactDOMServer:a,element:b,streamOptions:c}){return(0,d.getTracer)().trace(e.AppRenderSpan.renderToReadableStream,async()=>a.renderToReadableStream(b,c))}function v(a){let b=-1,c=!1;return new TransformStream({async transform(d,e){let f=-1,g=-1;if(b++,c)return void e.enqueue(d);let j=0;if(-1===f){if(-1===(f=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.META.ICON_MARK)))return void e.enqueue(d);47===d[f+(j=h.ENCODED_TAGS.META.ICON_MARK.length)]?j+=2:j++}if(0===b){if(g=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD),-1!==f){if(f<g){let a=new Uint8Array(d.length-j);a.set(d.subarray(0,f)),a.set(d.subarray(f+j),f),d=a}else{let b=await a(),c=m.encode(b),e=c.length,g=new Uint8Array(d.length-j+e);g.set(d.subarray(0,f)),g.set(c,f),g.set(d.subarray(f+j),f+e),d=g}c=!0}}else{let b=await a(),e=m.encode(b),g=e.length,h=new Uint8Array(d.length-j+g);h.set(d.subarray(0,f)),h.set(e,f),h.set(d.subarray(f+j),f+g),d=h,c=!0}e.enqueue(d)}})}function w(a){let b=!1,c=!1;return new TransformStream({async transform(d,e){c=!0;let f=await a();if(b){if(f){let a=m.encode(f);e.enqueue(a)}e.enqueue(d)}else{let a=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD);if(-1!==a){if(f){let b=m.encode(f),c=new Uint8Array(d.length+b.length);c.set(d.slice(0,a)),c.set(b,a),c.set(d.slice(a),a+b.length),e.enqueue(c)}else e.enqueue(d);b=!0}else f&&e.enqueue(m.encode(f)),e.enqueue(d),b=!0}},async flush(b){if(c){let c=await a();c&&b.enqueue(m.encode(c))}}})}function x(a,b){let c=!1,d=null,e=!1;function f(a){return d||(d=h(a)),d}async function h(d){let f=a.getReader();b&&await (0,g.atLeastOneTask)();try{for(;;){let{done:a,value:h}=await f.read();if(a){e=!0;return}b||c||await (0,g.atLeastOneTask)(),d.enqueue(h)}}catch(a){d.error(a)}}return new TransformStream({start(a){b||f(a)},transform(a,c){c.enqueue(a),b&&f(c)},flush(a){if(c=!0,!e)return f(a)}})}let y="</body></html>";function z(){let a=!1;return new TransformStream({transform(b,c){if(a)return c.enqueue(b);let d=(0,i.indexOfUint8Array)(b,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(d>-1){if(a=!0,b.length===h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let e=b.slice(0,d);if(c.enqueue(e),b.length>h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+d){let a=b.slice(d+h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);c.enqueue(a)}}else c.enqueue(b)},flush(a){a.enqueue(h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function A(){let a=!1,b=!1;return new TransformStream({async transform(c,d){!a&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.HTML)>-1&&(a=!0),!b&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.BODY)>-1&&(b=!0),d.enqueue(c)},flush(c){let d=[];a||d.push("html"),b||d.push("body"),d.length&&c.enqueue(m.encode(`<html id="__next_error__">
13
13
  <template
14
14
  data-next-error-message="Missing ${d.map(a=>`<${a}>`).join(d.length>1?" and ":"")} tags in the root layout.
15
15
  Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
16
16
  data-next-error-digest="${j.MISSING_ROOT_TAGS_ERROR}"
17
17
  data-next-error-stack=""
18
18
  ></template>
19
- `))}})}async function B(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,isBuildTimePrerendering:e,buildId:h,getServerInsertedHTML:i,getServerInsertedMetadata:j,validateRootLayout:k}){let l,n,o=b?b.split(y,1)[0]:null;d&&await a.allReady;var p=[s(),t(e,h),v(j),null!=o&&o.length>0?(n=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!n){n=!0;let a=new f.DetachedPromise;l=a,(0,g.scheduleImmediate)(()=>{try{b.enqueue(m.encode(o))}catch{}finally{l=void 0,a.resolve()}})}},flush(a){if(l)return l.promise;n||a.enqueue(m.encode(o))}})):null,c?x(c,!0):null,k?A():null,z(),w(i)];let q=a;for(let a of p)a&&(q=q.pipeThrough(a));return q}async function C(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c}){return a.pipeThrough(s()).pipeThrough(new TransformStream({transform(a,b){(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.HTML)||(a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.BODY),a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}})).pipeThrough(w(b)).pipeThrough(v(c))}async function D(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,isBuildTimePrerendering:e,buildId:f}){return a.pipeThrough(s()).pipeThrough(t(e,f)).pipeThrough(w(c)).pipeThrough(v(d)).pipeThrough(x(b,!0)).pipeThrough(z())}async function E(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e}){return a.pipeThrough(s()).pipeThrough(w(d)).pipeThrough(v(e)).pipeThrough(x(c,b)).pipeThrough(z())}function F(){return o(y)}},64588:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getClientComponentLoaderMetrics:function(){return g},wrapClientComponentLoader:function(){return f}});let c=0,d=0,e=0;function f(a){return"performance"in globalThis?{require:(...b)=>{let f=performance.now();0===c&&(c=f);try{return e+=1,a.__next_app__.require(...b)}finally{d+=performance.now()-f}},loadChunk:(...b)=>{let c=performance.now(),e=a.__next_app__.loadChunk(...b);return e.finally(()=>{d+=performance.now()-c}),e}}:a.__next_app__}function g(a={}){let b=0===c?void 0:{clientComponentLoadStart:c,clientComponentLoadTimes:d,clientComponentLoadCount:e};return a.reset&&(c=0,d=0,e=0),b}},64887:(a,b)=>{"use strict";function c(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e<b.length;e++)if(a[c+e]!==b[e]){d=!1;break}if(d)return c}return -1}function d(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function e(a,b){let d=c(a,b);if(0===d)return a.subarray(b.length);if(!(d>-1))return a;{let c=new Uint8Array(a.length-b.length);return c.set(a.slice(0,d)),c.set(a.slice(d+b.length),d),c}}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{indexOfUint8Array:function(){return c},isEquivalentUint8Arrays:function(){return d},removeFromUint8Array:function(){return e}})},67315:(a,b,c)=>{"use strict";Object.defineProperty(b,"U",{enumerable:!0,get:function(){return A}});let d=c(29032),e=c(34626),f=c(47392),g=c(82865),h=c(17954),i=c(43357),j=c(14663),k=c(1628),l=c(27860),m=c(8833),n=c(8423),o=c(25106),p=c(47274),q=z(c(33873)),r=c(47366),s=z(c(62153)),t=c(42811),u=c(46060),v=c(23830),w=c(84580),x=c(34392),y=c(56001);function z(a){return a&&a.__esModule?a:{default:a}}let A=({srcPage:a,config:b,userland:c,routeModule:z,isFallbackError:A,getStaticPaths:B,getStaticProps:C,getServerSideProps:D})=>async function(E,F,G){var H,I;let J=a;"/index"===J&&(J="/");let K=await z.prepare(E,F,{srcPage:J,multiZoneDraftMode:!1});if(!K){F.statusCode=400,F.end("Bad Request"),null==G.waitUntil||G.waitUntil.call(G,Promise.resolve());return}let{buildId:L,query:M,params:N,parsedUrl:O,originalQuery:P,originalPathname:Q,buildManifest:R,fallbackBuildManifest:S,nextFontManifest:T,serverFilesManifest:U,reactLoadableManifest:V,prerenderManifest:W,isDraftMode:X,isOnDemandRevalidate:Y,revalidateOnlyGenerated:Z,locale:$,locales:_,defaultLocale:aa,routerServerContext:ab,nextConfig:ac,resolvedPathname:ad}=K,ae=null==U||null==(I=U.config)||null==(H=I.experimental)?void 0:H.isExperimentalCompile,af=!!D,ag=!!C,ah=!!B,ai=!!(c.default||c).getInitialProps,aj=M.amp&&(null==b?void 0:b.amp),ak=null,al=!1,am=K.isNextDataRequest&&(ag||af),an="/404"===J,ao="/500"===J,ap="/_error"===J;if(z.isDev||X||!ag||(ak=`${$?`/${$}`:""}${("/"===J||"/"===ad)&&$?"":ad}${aj?".amp":""}`,(an||ao||ap)&&(ak=`${$?`/${$}`:""}${J}${aj?".amp":""}`),ak="/index"===ak?"/":ak),ah&&!X){let a=(0,y.removeTrailingSlash)($?(0,x.addPathPrefix)(ad,`/${$}`):ad),b=!!W.routes[a]||W.notFoundRoutes.includes(a),c=W.dynamicRoutes[J];if(c){if(!1===c.fallback&&!b)throw new u.NoFallbackError;"string"!=typeof c.fallback||b||am||(al=!0)}}(al&&(0,w.isBot)(E.headers["user-agent"]||"")||(0,h.getRequestMeta)(E,"minimalMode"))&&(al=!1);let aq=(0,f.getTracer)(),ar=aq.getActiveScopeSpan();try{let a=E.method||"GET",u=(0,g.formatUrl)({pathname:ac.trailingSlash?O.pathname:(0,y.removeTrailingSlash)(O.pathname||"/"),query:ag?{}:P}),w=(null==ab?void 0:ab.publicRuntimeConfig)||ac.publicRuntimeConfig,x=async f=>{var x,y;let H,I=async({previousCacheEntry:m})=>{var n;let o=async()=>{try{var d,n,o;return await z.render(E,F,{query:ag&&!ae?{...N,...aj?{amp:M.amp}:{}}:{...M,...N},params:N,page:J,renderContext:{isDraftMode:X,isFallback:al,developmentNotFoundSourcePage:(0,h.getRequestMeta)(E,"developmentNotFoundSourcePage")},sharedContext:{buildId:L,customServer:!!(null==ab?void 0:ab.isCustomServer)||void 0,deploymentId:!1},renderOpts:{params:N,routeModule:z,page:J,pageConfig:b||{},Component:(0,i.interopDefault)(c),ComponentMod:c,getStaticProps:C,getStaticPaths:B,getServerSideProps:D,supportsDynamicResponse:!ag,buildManifest:A?S:R,nextFontManifest:T,reactLoadableManifest:V,assetPrefix:ac.assetPrefix,previewProps:W.preview,images:ac.images,nextConfigOutput:ac.output,optimizeCss:!!ac.experimental.optimizeCss,nextScriptWorkers:!!ac.experimental.nextScriptWorkers,domainLocales:null==(d=ac.i18n)?void 0:d.domains,crossOrigin:ac.crossOrigin,multiZoneDraftMode:!1,basePath:ac.basePath,canonicalBase:ac.amp.canonicalBase||"",ampOptimizerConfig:null==(n=ac.experimental.amp)?void 0:n.optimizer,disableOptimizedLoading:ac.experimental.disableOptimizedLoading,largePageDataBytes:ac.experimental.largePageDataBytes,runtimeConfig:Object.keys(w).length>0?w:void 0,isExperimentalCompile:ae,experimental:{clientTraceMetadata:ac.experimental.clientTraceMetadata||[]},locale:$,locales:_,defaultLocale:aa,setIsrStatus:null==ab?void 0:ab.setIsrStatus,isNextDataRequest:am&&(af||ag),resolvedUrl:u,resolvedAsPath:af||ai?(0,g.formatUrl)({pathname:am?(0,k.normalizeDataPath)(Q):Q,query:P}):u,isOnDemandRevalidate:Y,ErrorDebug:(0,h.getRequestMeta)(E,"PagesErrorDebug"),err:(0,h.getRequestMeta)(E,"invokeError"),dev:z.isDev,distDir:q.default.join(process.cwd(),z.relativeProjectDir,z.distDir),ampSkipValidation:null==(o=ac.experimental.amp)?void 0:o.skipValidation,ampValidator:(0,h.getRequestMeta)(E,"ampValidator")}}).then(a=>{let{metadata:b}=a,c=b.cacheControl;return"isNotFound"in b&&b.isNotFound?{value:null,cacheControl:c}:b.isRedirect?{value:{kind:l.CachedRouteKind.REDIRECT,props:b.pageData??b.flightData},cacheControl:c}:{value:{kind:l.CachedRouteKind.PAGES,html:a,pageData:a.metadata.pageData,headers:a.metadata.headers,status:a.metadata.statusCode},cacheControl:c}}).finally(()=>{if(!f)return;f.setAttributes({"http.status_code":F.statusCode,"next.rsc":!1});let b=aq.getRootSpanAttributes();if(!b)return;if(b.get("next.span_type")!==e.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${b.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let c=b.get("next.route");if(c){let b=`${a} ${c}`;f.setAttributes({"next.route":c,"http.route":c,"next.span_name":b}),f.updateName(b)}else f.updateName(`${a} ${E.url}`)})}catch(a){throw(null==m?void 0:m.isStale)&&await z.onRequestError(E,a,{routerKind:"Pages Router",routePath:J,routeType:"render",revalidateReason:(0,j.getRevalidateReason)({isRevalidate:ag,isOnDemandRevalidate:Y})},ab),a}};if(m&&(al=!1),al){let a=await z.getResponseCache(E).get(z.isDev?null:$?`/${$}${J}`:J,async({previousCacheEntry:a=null})=>z.isDev?o():(0,t.toResponseCacheEntry)(a),{routeKind:d.RouteKind.PAGES,isFallback:!0,isRoutePPREnabled:!1,isOnDemandRevalidate:!1,incrementalCache:await z.getIncrementalCache(E,ac,W),waitUntil:G.waitUntil});if(a)return delete a.cacheControl,a.isMiss=!0,a}return!(0,h.getRequestMeta)(E,"minimalMode")&&Y&&Z&&!m?(F.statusCode=404,F.setHeader("x-nextjs-cache","REVALIDATED"),F.end("This page could not be found"),null):al&&(null==m||null==(n=m.value)?void 0:n.kind)===l.CachedRouteKind.PAGES?{value:{kind:l.CachedRouteKind.PAGES,html:new s.default(m.value.html,{contentType:p.HTML_CONTENT_TYPE_HEADER,metadata:{statusCode:m.value.status,headers:m.value.headers}}),pageData:{},status:m.value.status,headers:m.value.headers},cacheControl:{revalidate:0,expire:void 0}}:o()},K=await z.handleResponse({cacheKey:ak,req:E,nextConfig:ac,routeKind:d.RouteKind.PAGES,isOnDemandRevalidate:Y,revalidateOnlyGenerated:Z,waitUntil:G.waitUntil,responseGenerator:I,prerenderManifest:W});if(!al||(null==K?void 0:K.isMiss)||(al=!1),K){if(ag&&!(0,h.getRequestMeta)(E,"minimalMode")&&F.setHeader("x-nextjs-cache",Y?"REVALIDATED":K.isMiss?"MISS":K.isStale?"STALE":"HIT"),!ag||al)F.getHeader("Cache-Control")||(H={revalidate:0,expire:void 0});else if(an){let a=(0,h.getRequestMeta)(E,"notFoundRevalidate");H={revalidate:void 0===a?0:a,expire:void 0}}else if(ao)H={revalidate:0,expire:void 0};else if(K.cacheControl)if("number"==typeof K.cacheControl.revalidate){if(K.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${K.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});H={revalidate:K.cacheControl.revalidate,expire:(null==(x=K.cacheControl)?void 0:x.expire)??ac.expireTime}}else H={revalidate:p.CACHE_ONE_YEAR,expire:void 0};if(H&&!F.getHeader("Cache-Control")&&F.setHeader("Cache-Control",(0,m.getCacheControlHeader)(H)),!K.value)return((0,h.addRequestMeta)(E,"notFoundRevalidate",null==(y=K.cacheControl)?void 0:y.revalidate),F.statusCode=404,am)?void F.end('{"notFound":true}'):void((null==ab?void 0:ab.render404)?await ab.render404(E,F,O,!1):F.end("This page could not be found"));if(K.value.kind===l.CachedRouteKind.REDIRECT)if(!am)return await (a=>{let b={destination:a.pageProps.__N_REDIRECT,statusCode:a.pageProps.__N_REDIRECT_STATUS,basePath:a.pageProps.__N_REDIRECT_BASE_PATH},c=(0,o.getRedirectStatus)(b),{basePath:d}=ac;d&&!1!==b.basePath&&b.destination.startsWith("/")&&(b.destination=`${d}${b.destination}`),b.destination.startsWith("/")&&(b.destination=(0,n.normalizeRepeatedSlashes)(b.destination)),F.statusCode=c,F.setHeader("Location",b.destination),c===v.RedirectStatusCode.PermanentRedirect&&F.setHeader("Refresh",`0;url=${b.destination}`),F.end(b.destination)})(K.value.props),null;else{F.setHeader("content-type",p.JSON_CONTENT_TYPE_HEADER),F.end(JSON.stringify(K.value.props));return}if(K.value.kind!==l.CachedRouteKind.PAGES)throw Object.defineProperty(Error("Invariant: received non-pages cache entry in pages handler"),"__NEXT_ERROR_CODE",{value:"E695",enumerable:!1,configurable:!0});if(z.isDev&&F.setHeader("Cache-Control","no-store, must-revalidate"),X&&F.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),(0,h.getRequestMeta)(E,"customErrorRender")||ap&&(0,h.getRequestMeta)(E,"minimalMode")&&500===F.statusCode)return null;await (0,r.sendRenderResult)({req:E,res:F,result:!am||ap||ao?K.value.html:new s.default(JSON.stringify(K.value.pageData),{contentType:p.JSON_CONTENT_TYPE_HEADER,metadata:K.value.html.metadata}),generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,cacheControl:z.isDev?void 0:H})}};ar?await x():await aq.withPropagatedContext(E.headers,()=>aq.trace(e.BaseServerSpan.handleRequest,{spanName:`${a} ${E.url}`,kind:f.SpanKind.SERVER,attributes:{"http.method":a,"http.target":E.url}},x))}catch(a){throw a instanceof u.NoFallbackError||await z.onRequestError(E,a,{routerKind:"Pages Router",routePath:J,routeType:"render",revalidateReason:(0,j.getRevalidateReason)({isRevalidate:ag,isOnDemandRevalidate:Y})},ab),a}}},71927:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(54547),e=c(15707),f=c(12606),g=c(13653),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},75097:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={};function g(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function h(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function i(a){if(!a)return;let[[b,c],...d]=h(a),{domain:e,expires:f,httponly:g,maxage:i,path:l,samesite:m,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...m&&{sameSite:j.includes(q=(q=m).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:k.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}((a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})})(f,{RequestCookies:()=>l,ResponseCookies:()=>m,parseCookie:()=>h,parseSetCookie:()=>i,stringifyCookie:()=>g}),a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let g of d(f))e.call(a,g)||void 0===g||b(a,g,{get:()=>f[g],enumerable:!(h=c(f,g))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var j=["strict","lax","none"],k=["low","medium","high"],l=class{constructor(a){this._parsed=new Map,this._headers=a;let b=a.get("cookie");if(b)for(let[a,c]of h(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>g(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>g(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},m=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;let e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(let a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){let b=i(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=g(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(g).join("; ")}}},76017:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},80551:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{CachedRouteKind:function(){return c},IncrementalCacheKind:function(){return d}});var c=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a}({}),d=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.IMAGE="IMAGE",a}({})},80649:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},89429:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},90252:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bootstrap:function(){return i},error:function(){return k},event:function(){return o},info:function(){return n},prefixes:function(){return f},ready:function(){return m},trace:function(){return p},wait:function(){return j},warn:function(){return l},warnOnce:function(){return r}});let d=c(95884),e=c(80649),f={wait:(0,d.white)((0,d.bold)("○")),error:(0,d.red)((0,d.bold)("⨯")),warn:(0,d.yellow)((0,d.bold)("⚠")),ready:"▲",info:(0,d.white)((0,d.bold)(" ")),event:(0,d.green)((0,d.bold)("✓")),trace:(0,d.magenta)((0,d.bold)("\xbb"))},g={log:"log",warn:"warn",error:"error"};function h(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in g?g[a]:"log",d=f[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](" "+d+" "+b[0]):console[c](" "+d,...b)}function i(...a){console.log(" "+a.join(" "))}function j(...a){h("wait",...a)}function k(...a){h("error",...a)}function l(...a){h("warn",...a)}function m(...a){h("ready",...a)}function n(...a){h("info",...a)}function o(...a){h("event",...a)}function p(...a){h("trace",...a)}let q=new e.LRUCache(1e4,a=>a.length);function r(...a){let b=a.join(" ");q.has(b)||(q.set(b,b),l(...a))}},92486:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fnv1a52:function(){return c},generateETag:function(){return d}});let c=a=>{let b=a.length,c=0,d=0,e=8997,f=0,g=33826,h=0,i=40164,j=0,k=52210;for(;c<b;)e^=a.charCodeAt(c++),d=435*e,f=435*g,h=435*i,j=435*k,h+=e<<8,j+=g<<8,f+=d>>>16,e=65535&d,h+=f>>>16,g=65535&f,k=j+(h>>>16)&65535,i=65535&h;return(15&k)*0x1000000000000+0x100000000*i+65536*g+(e^k>>4)},d=(a,b=!1)=>(b?'W/"':'"')+c(a).toString(36)+a.length.toString(36)+'"'},95884:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")}};
19
+ `))}})}async function B(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,isBuildTimePrerendering:e,buildId:h,getServerInsertedHTML:i,getServerInsertedMetadata:j,validateRootLayout:k}){let l,n,o=b?b.split(y,1)[0]:null;d&&await a.allReady;var p=[s(),t(e,h),v(j),null!=o&&o.length>0?(n=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!n){n=!0;let a=new f.DetachedPromise;l=a,(0,g.scheduleImmediate)(()=>{try{b.enqueue(m.encode(o))}catch{}finally{l=void 0,a.resolve()}})}},flush(a){if(l)return l.promise;n||a.enqueue(m.encode(o))}})):null,c?x(c,!0):null,k?A():null,z(),w(i)];let q=a;for(let a of p)a&&(q=q.pipeThrough(a));return q}async function C(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c}){return a.pipeThrough(s()).pipeThrough(new TransformStream({transform(a,b){(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.HTML)||(a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.BODY),a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}})).pipeThrough(w(b)).pipeThrough(v(c))}async function D(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,isBuildTimePrerendering:e,buildId:f}){return a.pipeThrough(s()).pipeThrough(t(e,f)).pipeThrough(w(c)).pipeThrough(v(d)).pipeThrough(x(b,!0)).pipeThrough(z())}async function E(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e}){return a.pipeThrough(s()).pipeThrough(w(d)).pipeThrough(v(e)).pipeThrough(x(c,b)).pipeThrough(z())}function F(){return o(y)}},64588:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getClientComponentLoaderMetrics:function(){return g},wrapClientComponentLoader:function(){return f}});let c=0,d=0,e=0;function f(a){return"performance"in globalThis?{require:(...b)=>{let f=performance.now();0===c&&(c=f);try{return e+=1,a.__next_app__.require(...b)}finally{d+=performance.now()-f}},loadChunk:(...b)=>{let c=performance.now(),e=a.__next_app__.loadChunk(...b);return e.finally(()=>{d+=performance.now()-c}),e}}:a.__next_app__}function g(a={}){let b=0===c?void 0:{clientComponentLoadStart:c,clientComponentLoadTimes:d,clientComponentLoadCount:e};return a.reset&&(c=0,d=0,e=0),b}},64887:(a,b)=>{"use strict";function c(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e<b.length;e++)if(a[c+e]!==b[e]){d=!1;break}if(d)return c}return -1}function d(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function e(a,b){let d=c(a,b);if(0===d)return a.subarray(b.length);if(!(d>-1))return a;{let c=new Uint8Array(a.length-b.length);return c.set(a.slice(0,d)),c.set(a.slice(d+b.length),d),c}}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{indexOfUint8Array:function(){return c},isEquivalentUint8Arrays:function(){return d},removeFromUint8Array:function(){return e}})},67315:(a,b,c)=>{"use strict";Object.defineProperty(b,"U",{enumerable:!0,get:function(){return A}});let d=c(6651),e=c(34626),f=c(47392),g=c(82865),h=c(17954),i=c(43357),j=c(14663),k=c(1628),l=c(27860),m=c(8833),n=c(8423),o=c(25106),p=c(47274),q=z(c(33873)),r=c(47366),s=z(c(62153)),t=c(42811),u=c(46060),v=c(23830),w=c(84580),x=c(34392),y=c(56001);function z(a){return a&&a.__esModule?a:{default:a}}let A=({srcPage:a,config:b,userland:c,routeModule:z,isFallbackError:A,getStaticPaths:B,getStaticProps:C,getServerSideProps:D})=>async function(E,F,G){var H,I;let J=a;"/index"===J&&(J="/");let K=await z.prepare(E,F,{srcPage:J,multiZoneDraftMode:!1});if(!K){F.statusCode=400,F.end("Bad Request"),null==G.waitUntil||G.waitUntil.call(G,Promise.resolve());return}let{buildId:L,query:M,params:N,parsedUrl:O,originalQuery:P,originalPathname:Q,buildManifest:R,fallbackBuildManifest:S,nextFontManifest:T,serverFilesManifest:U,reactLoadableManifest:V,prerenderManifest:W,isDraftMode:X,isOnDemandRevalidate:Y,revalidateOnlyGenerated:Z,locale:$,locales:_,defaultLocale:aa,routerServerContext:ab,nextConfig:ac,resolvedPathname:ad}=K,ae=null==U||null==(I=U.config)||null==(H=I.experimental)?void 0:H.isExperimentalCompile,af=!!D,ag=!!C,ah=!!B,ai=!!(c.default||c).getInitialProps,aj=M.amp&&(null==b?void 0:b.amp),ak=null,al=!1,am=K.isNextDataRequest&&(ag||af),an="/404"===J,ao="/500"===J,ap="/_error"===J;if(z.isDev||X||!ag||(ak=`${$?`/${$}`:""}${("/"===J||"/"===ad)&&$?"":ad}${aj?".amp":""}`,(an||ao||ap)&&(ak=`${$?`/${$}`:""}${J}${aj?".amp":""}`),ak="/index"===ak?"/":ak),ah&&!X){let a=(0,y.removeTrailingSlash)($?(0,x.addPathPrefix)(ad,`/${$}`):ad),b=!!W.routes[a]||W.notFoundRoutes.includes(a),c=W.dynamicRoutes[J];if(c){if(!1===c.fallback&&!b)throw new u.NoFallbackError;"string"!=typeof c.fallback||b||am||(al=!0)}}(al&&(0,w.isBot)(E.headers["user-agent"]||"")||(0,h.getRequestMeta)(E,"minimalMode"))&&(al=!1);let aq=(0,f.getTracer)(),ar=aq.getActiveScopeSpan();try{let a=E.method||"GET",u=(0,g.formatUrl)({pathname:ac.trailingSlash?O.pathname:(0,y.removeTrailingSlash)(O.pathname||"/"),query:ag?{}:P}),w=(null==ab?void 0:ab.publicRuntimeConfig)||ac.publicRuntimeConfig,x=async f=>{var x,y;let H,I=async({previousCacheEntry:m})=>{var n;let o=async()=>{try{var d,n,o;return await z.render(E,F,{query:ag&&!ae?{...N,...aj?{amp:M.amp}:{}}:{...M,...N},params:N,page:J,renderContext:{isDraftMode:X,isFallback:al,developmentNotFoundSourcePage:(0,h.getRequestMeta)(E,"developmentNotFoundSourcePage")},sharedContext:{buildId:L,customServer:!!(null==ab?void 0:ab.isCustomServer)||void 0,deploymentId:!1},renderOpts:{params:N,routeModule:z,page:J,pageConfig:b||{},Component:(0,i.interopDefault)(c),ComponentMod:c,getStaticProps:C,getStaticPaths:B,getServerSideProps:D,supportsDynamicResponse:!ag,buildManifest:A?S:R,nextFontManifest:T,reactLoadableManifest:V,assetPrefix:ac.assetPrefix,previewProps:W.preview,images:ac.images,nextConfigOutput:ac.output,optimizeCss:!!ac.experimental.optimizeCss,nextScriptWorkers:!!ac.experimental.nextScriptWorkers,domainLocales:null==(d=ac.i18n)?void 0:d.domains,crossOrigin:ac.crossOrigin,multiZoneDraftMode:!1,basePath:ac.basePath,canonicalBase:ac.amp.canonicalBase||"",ampOptimizerConfig:null==(n=ac.experimental.amp)?void 0:n.optimizer,disableOptimizedLoading:ac.experimental.disableOptimizedLoading,largePageDataBytes:ac.experimental.largePageDataBytes,runtimeConfig:Object.keys(w).length>0?w:void 0,isExperimentalCompile:ae,experimental:{clientTraceMetadata:ac.experimental.clientTraceMetadata||[]},locale:$,locales:_,defaultLocale:aa,setIsrStatus:null==ab?void 0:ab.setIsrStatus,isNextDataRequest:am&&(af||ag),resolvedUrl:u,resolvedAsPath:af||ai?(0,g.formatUrl)({pathname:am?(0,k.normalizeDataPath)(Q):Q,query:P}):u,isOnDemandRevalidate:Y,ErrorDebug:(0,h.getRequestMeta)(E,"PagesErrorDebug"),err:(0,h.getRequestMeta)(E,"invokeError"),dev:z.isDev,distDir:q.default.join(process.cwd(),z.relativeProjectDir,z.distDir),ampSkipValidation:null==(o=ac.experimental.amp)?void 0:o.skipValidation,ampValidator:(0,h.getRequestMeta)(E,"ampValidator")}}).then(a=>{let{metadata:b}=a,c=b.cacheControl;return"isNotFound"in b&&b.isNotFound?{value:null,cacheControl:c}:b.isRedirect?{value:{kind:l.CachedRouteKind.REDIRECT,props:b.pageData??b.flightData},cacheControl:c}:{value:{kind:l.CachedRouteKind.PAGES,html:a,pageData:a.metadata.pageData,headers:a.metadata.headers,status:a.metadata.statusCode},cacheControl:c}}).finally(()=>{if(!f)return;f.setAttributes({"http.status_code":F.statusCode,"next.rsc":!1});let b=aq.getRootSpanAttributes();if(!b)return;if(b.get("next.span_type")!==e.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${b.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let c=b.get("next.route");if(c){let b=`${a} ${c}`;f.setAttributes({"next.route":c,"http.route":c,"next.span_name":b}),f.updateName(b)}else f.updateName(`${a} ${E.url}`)})}catch(a){throw(null==m?void 0:m.isStale)&&await z.onRequestError(E,a,{routerKind:"Pages Router",routePath:J,routeType:"render",revalidateReason:(0,j.getRevalidateReason)({isRevalidate:ag,isOnDemandRevalidate:Y})},ab),a}};if(m&&(al=!1),al){let a=await z.getResponseCache(E).get(z.isDev?null:$?`/${$}${J}`:J,async({previousCacheEntry:a=null})=>z.isDev?o():(0,t.toResponseCacheEntry)(a),{routeKind:d.RouteKind.PAGES,isFallback:!0,isRoutePPREnabled:!1,isOnDemandRevalidate:!1,incrementalCache:await z.getIncrementalCache(E,ac,W),waitUntil:G.waitUntil});if(a)return delete a.cacheControl,a.isMiss=!0,a}return!(0,h.getRequestMeta)(E,"minimalMode")&&Y&&Z&&!m?(F.statusCode=404,F.setHeader("x-nextjs-cache","REVALIDATED"),F.end("This page could not be found"),null):al&&(null==m||null==(n=m.value)?void 0:n.kind)===l.CachedRouteKind.PAGES?{value:{kind:l.CachedRouteKind.PAGES,html:new s.default(m.value.html,{contentType:p.HTML_CONTENT_TYPE_HEADER,metadata:{statusCode:m.value.status,headers:m.value.headers}}),pageData:{},status:m.value.status,headers:m.value.headers},cacheControl:{revalidate:0,expire:void 0}}:o()},K=await z.handleResponse({cacheKey:ak,req:E,nextConfig:ac,routeKind:d.RouteKind.PAGES,isOnDemandRevalidate:Y,revalidateOnlyGenerated:Z,waitUntil:G.waitUntil,responseGenerator:I,prerenderManifest:W});if(!al||(null==K?void 0:K.isMiss)||(al=!1),K){if(ag&&!(0,h.getRequestMeta)(E,"minimalMode")&&F.setHeader("x-nextjs-cache",Y?"REVALIDATED":K.isMiss?"MISS":K.isStale?"STALE":"HIT"),!ag||al)F.getHeader("Cache-Control")||(H={revalidate:0,expire:void 0});else if(an){let a=(0,h.getRequestMeta)(E,"notFoundRevalidate");H={revalidate:void 0===a?0:a,expire:void 0}}else if(ao)H={revalidate:0,expire:void 0};else if(K.cacheControl)if("number"==typeof K.cacheControl.revalidate){if(K.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${K.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});H={revalidate:K.cacheControl.revalidate,expire:(null==(x=K.cacheControl)?void 0:x.expire)??ac.expireTime}}else H={revalidate:p.CACHE_ONE_YEAR,expire:void 0};if(H&&!F.getHeader("Cache-Control")&&F.setHeader("Cache-Control",(0,m.getCacheControlHeader)(H)),!K.value)return((0,h.addRequestMeta)(E,"notFoundRevalidate",null==(y=K.cacheControl)?void 0:y.revalidate),F.statusCode=404,am)?void F.end('{"notFound":true}'):void((null==ab?void 0:ab.render404)?await ab.render404(E,F,O,!1):F.end("This page could not be found"));if(K.value.kind===l.CachedRouteKind.REDIRECT)if(!am)return await (a=>{let b={destination:a.pageProps.__N_REDIRECT,statusCode:a.pageProps.__N_REDIRECT_STATUS,basePath:a.pageProps.__N_REDIRECT_BASE_PATH},c=(0,o.getRedirectStatus)(b),{basePath:d}=ac;d&&!1!==b.basePath&&b.destination.startsWith("/")&&(b.destination=`${d}${b.destination}`),b.destination.startsWith("/")&&(b.destination=(0,n.normalizeRepeatedSlashes)(b.destination)),F.statusCode=c,F.setHeader("Location",b.destination),c===v.RedirectStatusCode.PermanentRedirect&&F.setHeader("Refresh",`0;url=${b.destination}`),F.end(b.destination)})(K.value.props),null;else{F.setHeader("content-type",p.JSON_CONTENT_TYPE_HEADER),F.end(JSON.stringify(K.value.props));return}if(K.value.kind!==l.CachedRouteKind.PAGES)throw Object.defineProperty(Error("Invariant: received non-pages cache entry in pages handler"),"__NEXT_ERROR_CODE",{value:"E695",enumerable:!1,configurable:!0});if(z.isDev&&F.setHeader("Cache-Control","no-store, must-revalidate"),X&&F.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),(0,h.getRequestMeta)(E,"customErrorRender")||ap&&(0,h.getRequestMeta)(E,"minimalMode")&&500===F.statusCode)return null;await (0,r.sendRenderResult)({req:E,res:F,result:!am||ap||ao?K.value.html:new s.default(JSON.stringify(K.value.pageData),{contentType:p.JSON_CONTENT_TYPE_HEADER,metadata:K.value.html.metadata}),generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,cacheControl:z.isDev?void 0:H})}};ar?await x():await aq.withPropagatedContext(E.headers,()=>aq.trace(e.BaseServerSpan.handleRequest,{spanName:`${a} ${E.url}`,kind:f.SpanKind.SERVER,attributes:{"http.method":a,"http.target":E.url}},x))}catch(a){throw a instanceof u.NoFallbackError||await z.onRequestError(E,a,{routerKind:"Pages Router",routePath:J,routeType:"render",revalidateReason:(0,j.getRevalidateReason)({isRevalidate:ag,isOnDemandRevalidate:Y})},ab),a}}},71927:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(54547),e=c(15707),f=c(12606),g=c(13653),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},75097:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={};function g(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function h(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function i(a){if(!a)return;let[[b,c],...d]=h(a),{domain:e,expires:f,httponly:g,maxage:i,path:l,samesite:m,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...m&&{sameSite:j.includes(q=(q=m).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:k.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}((a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})})(f,{RequestCookies:()=>l,ResponseCookies:()=>m,parseCookie:()=>h,parseSetCookie:()=>i,stringifyCookie:()=>g}),a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let g of d(f))e.call(a,g)||void 0===g||b(a,g,{get:()=>f[g],enumerable:!(h=c(f,g))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var j=["strict","lax","none"],k=["low","medium","high"],l=class{constructor(a){this._parsed=new Map,this._headers=a;let b=a.get("cookie");if(b)for(let[a,c]of h(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>g(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>g(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},m=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;let e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(let a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){let b=i(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=g(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(g).join("; ")}}},76017:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},80551:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{CachedRouteKind:function(){return c},IncrementalCacheKind:function(){return d}});var c=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a}({}),d=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.IMAGE="IMAGE",a}({})},80649:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},89429:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},90252:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bootstrap:function(){return i},error:function(){return k},event:function(){return o},info:function(){return n},prefixes:function(){return f},ready:function(){return m},trace:function(){return p},wait:function(){return j},warn:function(){return l},warnOnce:function(){return r}});let d=c(95884),e=c(80649),f={wait:(0,d.white)((0,d.bold)("○")),error:(0,d.red)((0,d.bold)("⨯")),warn:(0,d.yellow)((0,d.bold)("⚠")),ready:"▲",info:(0,d.white)((0,d.bold)(" ")),event:(0,d.green)((0,d.bold)("✓")),trace:(0,d.magenta)((0,d.bold)("\xbb"))},g={log:"log",warn:"warn",error:"error"};function h(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in g?g[a]:"log",d=f[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](" "+d+" "+b[0]):console[c](" "+d,...b)}function i(...a){console.log(" "+a.join(" "))}function j(...a){h("wait",...a)}function k(...a){h("error",...a)}function l(...a){h("warn",...a)}function m(...a){h("ready",...a)}function n(...a){h("info",...a)}function o(...a){h("event",...a)}function p(...a){h("trace",...a)}let q=new e.LRUCache(1e4,a=>a.length);function r(...a){let b=a.join(" ");q.has(b)||(q.set(b,b),l(...a))}},92486:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fnv1a52:function(){return c},generateETag:function(){return d}});let c=a=>{let b=a.length,c=0,d=0,e=8997,f=0,g=33826,h=0,i=40164,j=0,k=52210;for(;c<b;)e^=a.charCodeAt(c++),d=435*e,f=435*g,h=435*i,j=435*k,h+=e<<8,j+=g<<8,f+=d>>>16,e=65535&d,h+=f>>>16,g=65535&f,k=j+(h>>>16)&65535,i=65535&h;return(15&k)*0x1000000000000+0x100000000*i+65536*g+(e^k>>4)},d=(a,b=!1)=>(b?'W/"':'"')+c(a).toString(36)+a.length.toString(36)+'"'},95884:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")}};