@customize-agent/server 4.5.4 → 4.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/4680.js +1 -1
  5. package/.next/server/chunks/5284.js +1 -1
  6. package/.next/server/chunks/9319.js +16 -16
  7. package/.next/server/pages/404.html +1 -1
  8. package/.next/server/pages/500.html +1 -1
  9. package/.next/server/pages/api/config/healthCheck.js +2 -2
  10. package/.next/server/pages/api/config/providers.js +2 -2
  11. package/.next/server/pages/api/documents/export.js +2 -2
  12. package/.next/server/pages/api/documents/generate.js +2 -2
  13. package/.next/server/pages/api/documents/generated/[id].js +2 -2
  14. package/.next/server/pages/api/kb/files/search.js +2 -2
  15. package/.next/server/pages/api/kb/files/tree.js +2 -2
  16. package/.next/server/pages/api/kb/files.js +2 -2
  17. package/.next/server/pages/api/system/logs.js +2 -2
  18. package/.next/server/pages/asset-library.html +1 -1
  19. package/.next/server/pages/document-roles.html +1 -1
  20. package/.next/server/pages/documents.html +1 -1
  21. package/.next/server/pages/guide.html +1 -1
  22. package/.next/server/pages/index.html +1 -1
  23. package/.next/server/pages/knowledge/file-detail.html +1 -1
  24. package/.next/server/pages/knowledge/files.html +1 -1
  25. package/.next/server/pages/knowledge/manage.html +1 -1
  26. package/.next/server/pages/knowledge.html +1 -1
  27. package/.next/server/pages/models.html +1 -1
  28. package/.next/server/pages/overview.html +1 -1
  29. package/.next/server/pages/prompt.html +1 -1
  30. package/.next/server/pages/settings.html +1 -1
  31. package/.next/server/pages/system/logs.html +1 -1
  32. package/.next/server/pages/template-references.html +1 -1
  33. package/.next/server/pages-manifest.json +25 -25
  34. package/package.json +1 -1
  35. /package/.next/static/{L7jMYj2OmzOKW0bM-glgI → -vx1F8_fGfyMVxZ7EH1Xu}/_buildManifest.js +0 -0
  36. /package/.next/static/{L7jMYj2OmzOKW0bM-glgI → -vx1F8_fGfyMVxZ7EH1Xu}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- L7jMYj2OmzOKW0bM-glgI
1
+ -vx1F8_fGfyMVxZ7EH1Xu
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/L7jMYj2OmzOKW0bM-glgI/_buildManifest.js",
9
- "static/L7jMYj2OmzOKW0bM-glgI/_ssgManifest.js"
8
+ "static/-vx1F8_fGfyMVxZ7EH1Xu/_buildManifest.js",
9
+ "static/-vx1F8_fGfyMVxZ7EH1Xu/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "004aa2b27954e74d7264239f1dcaa9b8",
7
- "previewModeSigningKey": "6163c3322b3dd79aaa1c9b9508a08c26e3ade1ba49d1057bf5a7892b377f3b09",
8
- "previewModeEncryptionKey": "65ef065d82d885aa99f709f6cadbadc7ce766fe5fb18e4845222df0de1258169"
6
+ "previewModeId": "a9354b1b75160a587a92893557ed454d",
7
+ "previewModeSigningKey": "702d1d59d6fb8451c2b334ae3cd64caf5af221f38685600419a21c49525d1947",
8
+ "previewModeEncryptionKey": "e6bbe3d019d5aa6cfb6d2f24b1a51ccdda0172d7a193845a4a76494b8665c312"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=4680,exports.ids=[4680],exports.modules={1358:(a,b,c)=>{c.d(b,{JV:()=>k,O7:()=>h,QP:()=>l,SR:()=>g,c$:()=>j,e$:()=>i,rj:()=>f});var d=c(22157);function e(a){return a.replace(/[\s,,.。::;;||()()《》<>【】"“”'‘’]/gu,"").toLowerCase()}function f(a){let b=a.replace(/[||]\s*(?:[||]\s*)+$/gu,"").replace(/(?:[。;;]|\d+\s*[..、])\s*(?:未尽事宜|其余(?:未尽)?事宜|其他(?:未尽)?事宜|注\s*[::]).*$/u,"").trim();return b=b.replace(/[、,,;;]+\s*$/u,"").trim(),/[||]/u.test(b)&&(b=b.split(/[||]/u)[0]?.trim()||b),b}function g(a){return!(/^(?:见|详见|按|执行|参见|依据).{0,16}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料)$/u.test(a)||/(?:^|[::]\s*)(?:见|详见|按|执行|参见|依据)[^。;;]{0,18}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料|补疑|答疑)[^。;;]{0,6}$/u.test(a)||/^见.{0,24}(?:招标范围|招标补疑|补疑|前附表|答疑)/u.test(a)||/^(?:合同协议书|通用条款|专用条款|招标文件|招标公告|投标人须知前附表|附件|资料)$/u.test(a.replace(/[()()\d一二三四五六七八九十、..\s]/gu,""))||/^(?:工程名称|项目名称|建设地点|建设规模|计划工期|质量标准|招标范围|合同估算价|工程概况|项目概况|项目内容)$/u.test(a)||/^#+\s*/u.test(a)||/^[一二三四五六七八九十]+[、..]\s*\S{2,}[::]/u.test(a)||/^[((]\s*\d+[))]/u.test(a)&&/具备|证书|考核|资格|人员/u.test(a))&&(!(a.length<4)||!!/\d/u.test(a))}function h(a){let b=String(a.value||"").trim(),c=`${a.label}${b}`;return!(!/项目|工程|编号|地点|规模|范围|工期|质量|安全|资源|材料|设备|验收|\d/u.test(c)||!g(b)||/^(?:技术参数|精确参数)$/u.test(a.label))}function i(a,b){let c=new Set,g=[];for(let h of[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications]){let b=f((0,d.lG)(h.value).replace(/\s+/gu," ").trim()),i=h.fieldName||h.key||h.fieldId||"资料事实",j=`${i}:${b}`;!b||c.has(j)||(c.add(j),g.push({label:i,value:b,sourceFile:h.sourceFile,status:!function(a,b){let c=e(a),d=e(b);if(!d||d.length<2||c.includes(d))return!0;{let a=b.split(/[;;。\n]|、|,|,/u).map(a=>e(a.replace(/^\s*\d+\s*[、..]\s*/u,""))).filter(a=>a.length>=4);if(a.length>=2&&a.some(a=>c.includes(a)))return!0}{let a=b.replace(/[、,,;;||\s]+/gu,"、").split("、").map(a=>e(a.replace(/(?:工程|项目|改造|维修|安装|施工|内容|资料|要求|标准)+$/u,""))).filter(a=>a.length>=2);if(a.length>=1&&(a.length>=2||(a[0]?.length??0)>=3)&&a.every(a=>c.includes(a)))return!0}return(b.match(/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年|万元|元|平方米|㎡|m²|立方米|m³|米|m|mm|cm|台|套|人|项|%|MPa|kPa|个|栋|层|标段|批|处|座|组|道|根|樘|扇)?/giu)||[]).some(a=>e(a).length>=2&&c.includes(e(a)))}(a,b)?"unplaced":"used",confidence:h.confidence}))}return g}function j(a,b={}){let c=a.filter(a=>"unplaced"===a.status&&h(a)),d=b.maxIssues&&b.maxIssues>0?b.maxIssues:c.length;return c.slice(0,d).map(a=>({level:"warning",message:`已确认知识库事实未落位:${a.label}=${a.value}`,suggestion:`请将该事实落位到对应章节,并保持来源 ${a.sourceFile||"结构化事实主表"} 的原始口径。${c.length>d?`(共${c.length}个未落位事实,此处显示前${d}个)`:""}`}))}function k(a,b){let c=b.tables||[],d=[],f=e(a);for(let a of c){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|名称|清单项|分部分项|项目特征|工程内容|材料名称|设备名称/u.test(a)),g=b.findIndex(a=>/编码|编号|序号|项目编码/u.test(a)),h=b.findIndex(a=>/数量|工程量/u.test(a)),i=b.findIndex(a=>/单位/u.test(a));for(let b of a.rows){let j=c>=0&&b[c]||"",k=g>=0&&b[g]||"",l=h>=0&&b[h]||"",m=i>=0&&b[i]||"";if(!j&&!k)continue;let n=e(j),o=e(k),p=n.length>=3&&f.includes(n.slice(0,12))||o.length>=3&&f.includes(o.slice(0,8));d.push({itemCode:k.slice(0,50),itemName:j.slice(0,200),quantity:l.slice(0,50),unit:m.slice(0,20),sourceFile:a.sourceFile||"",placed:p})}}return d.sort((a,b)=>a.placed===b.placed?0:a.placed?1:-1)}function l(a,b={}){let c=a.filter(a=>!a.placed);if(0===c.length)return[];let d=a.length,e=(d-c.length)/d,f=[];return e<.3?f.push({level:"warning",message:`BOQ 清单行级落位严重不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。未落位清单项示例:${c.slice(0,5).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join(";")}`}):e<.6&&f.push({level:"warning",message:`BOQ 清单行级落位不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`建议补充落位:${c.slice(0,5).map(a=>a.itemName).join("、")}`}),f}},11248:(a,b,c)=>{c.d(b,{K3:()=>f,zn:()=>g});let d=/[A-Za-z0-9%+-.,]/gu;function e(a){let b=a.charCodeAt(0);return b>=65281&&b<=65374?String.fromCharCode(b-65248):a}function f(a){return a.replace(d,e).replace(/\s+/gu,"").replace(/[×X**]/gu,"x").replace(/[%]/gu,"%").replace(/‰/gu,"permille").replace(/平方米|平方|平米|m²|㎡/giu,"m2").replace(/公顷|hm²/giu,"hm2").replace(/立方米|立方|m³/giu,"m3").replace(/升/gu,"l").replace(/毫升/gu,"ml").replace(/千米|公里/gu,"km").replace(/毫米/gu,"mm").replace(/厘米/gu,"cm").replace(/米/gu,"m").replace(/千克|公斤/gu,"kg").replace(/克/gu,"g").replace(/吨/gu,"t").replace(/人民币万元|万元人民币/gu,"万元").replace(/人民币元|元人民币|¥/gu,"元").replace(/日历天|自然日/gu,"天").replace(/工作日/gu,"工作天").replace(/个月/gu,"月").replace(/小时/gu,"h").replace(/分钟/gu,"min").replace(/兆帕/gu,"mpa").replace(/千帕/gu,"kpa").replace(/千牛/gu,"kn").replace(/牛/gu,"n").replace(/千瓦/gu,"kw").replace(/兆瓦/gu,"mw").replace(/瓦/gu,"w").replace(/千伏/gu,"kv").replace(/伏/gu,"v").replace(/毫安/gu,"ma").replace(/安培|安/gu,"a").replace(/赫兹/gu,"hz").replace(/摄氏度/gu,"℃").replace(/百分之\s*(\d+(?:\.\d+)?)/gu,"$1%").replace(/千分之\s*(\d+(?:\.\d+)?)/gu,"$1permille").replace(/直径\s*(\d+(?:\.\d+)?)/gu,"φ$1").replace(/[Φφ]\s*(\d+(?:\.\d+)?)(?:mm)?/giu,"φ$1").replace(/DN\s*(\d+)/giu,"dn$1").replace(/D\s*(\d+)(?=\b|[^a-z0-9])/giu,"d$1").replace(/\b(KN|MPA|KPA|KW|MW|KV|HZ|DN)\b/giu,a=>a.toLowerCase()).replace(/[,,、。;;::||()()【】\]《》<>"“”'‘’[]/gu,"").toLowerCase()}function g(a){let b=f(a),c=new Set;for(let a of b.matchAll(/\d+(?:\.\d+)?(?:m2|hm2|亩|m3|l|ml|mm|cm|km|m|kg|g|t|万元|亿元|元|天|工作天|月|年|h|min|%|permille|mpa|kpa|pa|kn|n|kn\/m2|kn\/m|kw|mw|w|kv|v|ma|a|hz|℃|台|套|件|个|根|只|组|项|处|座|栋|层|间|批|次|人|工日|人日)?|dn\d+|φ\d+(?:\.\d+)?|d\d+|c\d{2,}|hrb\d+|q\d{3}[a-z]?|m\d+|\d+(?:\.\d+)?x\d+(?:\.\d+)?(?:x\d+(?:\.\d+)?)?|[+-]?\d+\.\d{3}|\d+[:/]\d+/giu))c.add(a[0]);return[...c]}},23760:(a,b,c)=>{c.d(b,{AC:()=>n,Ai:()=>q,BV:()=>t,Ff:()=>l,Fv:()=>B,K1:()=>z,M$:()=>ah,N1:()=>_,NS:()=>C,S2:()=>aa,ST:()=>U,Ty:()=>u,bM:()=>ac,f8:()=>x,gN:()=>v,hr:()=>S,i0:()=>W,iC:()=>s,ji:()=>X,k0:()=>A,kQ:()=>ag,mR:()=>ae,qK:()=>H,qm:()=>Q,t4:()=>af,vY:()=>V,xX:()=>T,yd:()=>ab,yw:()=>G});var d=c(8753),e=c(74329),f=c(78217),g=c(11248),h=c(70208),i=c(91977),j=c(23500),k=c(22157);function l(a){let b={blocking:0,important:0,minor:0};for(let c of a)b[function(a){let b="string"==typeof a?a:a.message;if("error"===("string"==typeof a?void 0:a.level))return"blocking";for(let a of e.gr)if(a.pattern.test(b))return a.severity;return"minor"}(c)]+=1;return b}function m(a,b){let c=a.replace(/[\][()`*_>#|{},。、“”‘’:;!?,.!?:;-]+/gu," ").replace(e.ug," ").trim();if(c.length<120)return;let d=c.match(/[A-Za-z][A-Za-z-]{2,}|[\p{Script=Han}]{2,}/gu)||[];if(d.length<30)return;let f=1,g=new Map;for(let a=0;a<d.length;a+=1){let c=d[a].toLowerCase();if(g.set(c,(g.get(c)||0)+1),a>0&&c===d[a-1].toLowerCase()?f+=1:f=1,f>=12)return{level:"error",message:`${b} 存在重复 token 退化输出`,suggestion:"请重新生成该小节,禁止保留连续重复的英文单词或无意义片段。"}}let h=[...g.entries()].sort((a,b)=>b[1]-a[1])[0];if(h&&h[1]>=25&&h[1]/d.length>=.42)return{level:"error",message:`${b} 存在重复 token 退化输出`,suggestion:`检测到“${h[0]}”异常高频重复,请重新生成该小节。`}}function n(a,b=[]){let c=[],d=m(a,"全文");for(let a of(d&&c.push(d),b)){let b=m(a.content,`章节“${a.title}”`);for(let d of(b&&c.push(b),a.sections||[])){let b=d.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),e=a.content.match(RegExp(`^#{3,4}\\s+(?:\\d+(?:\\.\\d+)*\\s+)?${b}\\s*\\n([\\s\\S]*?)(?=^#{3,4}\\s+|^##\\s+|$)`,"mu"));if(!e)continue;let f=m(e[1],`小节“${d}”`);f&&c.push(f)}}return c}function o(a){return a.severity&&a.repairability?a:/小节只有标题|空小节|小节内容补写未完成/u.test(a.message)?{...a,severity:"blocker",repairability:"local_deterministic",category:"structure",owner:"system"}:/不得出现|提示词要求|疑似提示词指令标题|项目污染|生成未完成/u.test(a.message)?{...a,severity:"blocker",repairability:"llm_repairable",category:"structure",owner:"system"}:/事实一致性冲突|projectFactOnly|核心事实/u.test(a.message)?{...a,severity:"error"===a.level?"blocker":"warning",repairability:"manual_review",category:"fact_consistency",owner:"user"}:/证据使用覆盖率偏低|BOQ|落位|高分模块|专业链|闭环/u.test(a.message)?{...a,severity:"warning",repairability:"not_repair_needed",category:"evidence_coverage",owner:"system"}:"error"===a.level?{...a,severity:"blocker",repairability:"llm_repairable",category:"structure",owner:"system"}:"warning"===a.level?{...a,severity:"warning",repairability:"not_repair_needed",category:"style",owner:"system"}:{...a,severity:"suggestion",repairability:"not_repair_needed",category:"style",owner:"system"}}function p(a){let b=o(a);return"blocker"===b.severity&&(!!("error"===b.level&&"blocker"===b.severity&&/placeholder|source|style|format|structure/u.test(String(b.category||""))||/提示词要求|疑似提示词指令标题|适用性自相矛盾|不得出现/u.test(a.message))||!/目录与正文/u.test(a.message)&&(/配置要求缺少必要内容/u.test(a.message)?"error"===a.level:!!/小节内容补写未完成|空小节|小节只有标题|生成未完成/u.test(a.message)||!/生成后事实反查失败/u.test(a.message)&&(/工序规格冲突/u.test(a.message)?"error"===a.level:!!/项目特点、重点、难点分析 正文不足|项目主要施工内容 正文不足/u.test(a.message)||!(/规划小节正文过短/u.test(a.message)||/事实一致性冲突:项目名称/u.test(a.message))&&(/跨章一致性|专业评分不足|专业缺口|泛化套话|缺少关键线路|缺少材料验收|缺少风险识别|缺少进场/u.test(a.message)?"error"===a.level&&!/证据使用覆盖率偏低|章节逻辑依赖不足|文档交付评分报告/u.test(a.message):!(!e.hc.test(a.message)||/章节审查|最终质量审查|正文篇幅明显低于目标|正文存在空泛占位表达|结构化事实读取不足|正文可能未显式覆盖|仅包含文件类型和占位符|不在本次招标范围内/u.test(a.message))))))}function q(a,b,c){let d=c.some(a=>(a.content||"").split(e.A5).filter(a=>!/^#{1,6}\s+/u.test(a.trim())).filter(a=>!/^\s*\|/u.test(a)).filter(a=>!/^\s*:?-{3,}:?/u.test(a)).join("\n").replace(/[|*_`<>#\s]/gu,"").length>=30),f=a.map(o).filter(a=>"error"===a.level&&p(a)),g=/缺少规划小节|小节生成未达标|小节内容补写未完成|空小节|小节只有标题|生成未完成|正文不足|主要施工内容小节缺失|部分章节生成失败|Writer 未完成|不得出现|疑似提示词指令标题|项目污染|跨章一致性/u,h=d?f.filter(a=>g.test(a.message)):f,i=[{key:"no_errors",label:"无阻断级校验错误",passed:0===h.length},{key:"basic_facts",label:"基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"structured_precision",label:"结构化精确参数已使用",passed:b.preciseFacts.length<e.mu||a.every(a=>"error"!==a.level||!e.Ab.test(a.message))},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))},{key:"no_project_contamination",label:"无项目污染和事实一致性阻断",passed:!a.some(a=>"error"===a.level&&e.Uv.test(a.message)&&p(a))},{key:"numeric_consistency",label:"跨章数值口径与资料一致",passed:!a.some(a=>"error"===a.level&&/跨章一致性冲突|跨章一致性缺口|跨章一致性复核/u.test(a.message)&&p(a))}];return{passed:0===h.length,blockingIssues:h,checklist:i}}function r(a){let b=[],c=a.split(e.A5);for(let a=0;a<c.length;a+=1){if(!e.w7.test(c[a]))continue;let d=[];for(;a<c.length&&e.w7.test(c[a]);)d.push(c[a]),a+=1;a-=1,d.some(a=>e.N3.test(a))&&b.push(d.join("\n"))}return b}function s(a){let b=[...a.matchAll(e.DB)],c=[];for(let d=1;d<b.length;d+=1){let f=b[d].index||0,g=b[d+1]?.index??a.length,h=a.slice(f,g);e.Ks.test(h)&&c.push({level:"warning",message:`第 ${d+1} 章可能重复出现基础信息`,suggestion:"如该信息与本章主题无关,建议合并到更合适的概况类章节,避免重复铺陈。"})}if(0===b.length)return c;let d=b[0].index||0,f=b[1]?.index??a.length,g=a.slice(d,f),h=g.search(e.jM);if(h<=0)return c;let i=g.slice(0,h).replace(e.Dc,""),j=[];for(let a of e.Y8)RegExp(`${a}\\s*[::]`,"u").test(i)&&j.push(a);return j.length>=3&&c.push({level:"warning",message:`基础信息表前重复叙述字段:${j.join("、")}`,suggestion:"基础信息已表格化时,表格前只保留一句引导语,不要重复逐项叙述名称、编号、范围、周期、质量等字段。"}),c}function t(a){let b=[],c=[];for(let b of e.ZH)a.includes(b)&&c.push(b);c.length>0&&b.push({level:"warning",message:`存在模板化前缀或套话:${c.join("、")}`,suggestion:"请删除“本节/本章将/以下从”等前缀,标题后直接进入对象、动作、措施、检查和闭环。"});let d=a.match(/OCR|提示词|绑定片段|后台|文件路径|识别错误|知识库证据|知识库已确认事实|通用兜底段落|兜底占位|兜底模板/giu);return d?.length&&b.push({level:"warning",message:`正文包含后台或资料处理话术:${[...new Set(d)].join("、")}`,suggestion:"建议改为正式文档语言,例如“资料文字不清”“资料口径不一致”“项目资料”,不得暴露后台处理过程。"}),b}function u(a){let b=[];for(let c of a){let a=(c.sections||[]).filter(Boolean),d=a.filter((b,c)=>a.indexOf(b)!==c);d.length>0&&b.push({level:"warning",message:`${c.title} 存在重复小节:${[...new Set(d)].join("、")}`,suggestion:"请保留用户需求、模板或显式大纲中真实需要的小节,删除重复项。"});let e=new Map;for(let b of a){let a=/劳动力|人员|工种/u.test(b)?"劳动力计划":/机械|设备|机具/u.test(b)?"机械设备计划":/材料|物资/u.test(b)?"材料物资计划":/冬季|雨季|高温|台风|大风/u.test(b)?"特殊气候措施":"";a&&e.set(a,[...e.get(a)||[],b])}for(let[a,d]of e)d.length>1&&b.push({level:"warning",message:`${c.title} 存在重复主题小节:${a}(${d.join("、")})`,suggestion:"请合并同类小节,只保留一个主表或主方案,其他位置采用引用或执行说明。"})}return b}function v(a){let b=e.HX.exec(a);if(!b)return[{level:"error",message:"缺少目录页",suggestion:"请在封面后生成“## 目录”,并按一级章父级、二级小节子级组织。"}];let c=0,d=0;for(let a of b[1].split(e.A5))e.ZT.test(a)&&e.EB.test(a)&&(c+=1,e.sr.test(a)&&(d+=1));return c>0&&0===d?[{level:"error",message:"目录二级小节未作为子级缩进",suggestion:"目录应为父子级导航:一级章单独成行,二级小节至少缩进两个空格列在所属章下方。"}]:[]}function w(a){return a.replace(/^#+\s*/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/[()]/gu,a=>"("===a?"(":")").replace(/[\s::.。;;,,、]+$/gu,"").replace(/的(?=保障体系|管理体系|控制体系|措施|方案|计划|要求)/gu,"").replace(/[\s()()::.。;;,,、-]/gu,"").trim()}function x(a){let b=function(a){let b=e.HX.exec(a);return b?b[1].split(e.A5).map(a=>/^\s*\d+\.\d+\s+(.+)$/u.exec(a.trim())).filter(a=>!!a).map(a=>w(a[1]||"")).filter(Boolean):[]}(a),c=[...a.matchAll(/^#{2,4}\s+(\d+\.\d+\s+.+)$/gmu)].map(a=>w(a[1]||"")).filter(Boolean);if(0===b.length||0===c.length)return[];let d=new Set(c),f=new Set(b),g=b.filter(a=>!d.has(a)),h=c.filter(a=>!f.has(a)),i=[];return g.length>0&&i.push({level:"error",message:`目录与正文不一致,目录小节未在正文中找到:${[...new Set(g)].join("、")}`,suggestion:"建议以最终清洗后的正文二级标题为准重新生成目录。"}),h.length>0&&i.push({level:"error",message:`目录与正文不一致,正文小节未进入目录:${[...new Set(h)].join("、")}`,suggestion:"建议重新生成目录,确保只收录正文二级小节,不收录三级小节。"}),i}function y(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,h.GQ)(b),d=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|注意事项))\s*$/u;return d.test(b)||d.test(c)}function z(a){let b=[...a.matchAll(/^#{2,6}\s+(.+)$/gmu)].map(a=>(0,h.GQ)(a[1]||"")).filter(y);return b.length>0?[{level:"error",message:`正文存在疑似提示词指令标题:${[...new Set(b)].slice(0,8).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题,目录也不得收录该类标题。"}]:[]}function A(a){let b=[],c=a.split(e.A5).map(a=>a.trim()).filter(a=>a&&!/^#{1,6}\s+/u.test(a)&&!/^\s*\|/u.test(a)&&!/^<div\b/iu.test(a)),d=c.find(a=>w(a).length<=1);d&&b.push({level:"warning",message:`正文存在孤立字或残缺段落:${d}`,suggestion:"请删除残缺行或重新生成所在小节。"});let f=c.find(a=>/[,、;:和与在为对将]$/u.test(a)||/(通过|包括|如下|主要包括)$/u.test(a));f&&b.push({level:"warning",message:`正文存在疑似截断句:${f}`,suggestion:"请补完整该段落,避免以连接词、逗号或冒号结尾。"});let g=c.find(a=>a.length>380);g&&b.push({level:"warning",message:`正文存在过长段落:${g}`,suggestion:"请拆分为多段或表格,改善导出版式和可读性。"});let h=c.find(a=>/\S.+(?:\s|[。;;])(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S.+(?:\s|[。;;])(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S/u.test(a)&&!/\b\d+\.\d+\s*(?:mm|cm|m|㎡|m2|kg|t|MPa|kPa|V|KV|kV|A)\b/iu.test(a));h&&b.push({level:"error",message:`正文存在列表项粘连同一行:${h.slice(0,120)}`,suggestion:"有序列表和无序列表必须逐项独占一行,确保 Markdown/PDF/DOCX 正确排版。"});let i=a.match(/(?:PDF\s*)?第\s*\d+\s*(?:[-—至到~~]\s*\d+)?\s*页|(?:图纸|清单|资料|文件|[\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24}(?:工程)?)\s*(?:[((]?\s*|(?:共|多达|约|合计)\s*)\d+\s*页|[\u4e00-\u9fa5A-Za-z0-9、及与和]{2,24}\s*(?:共|多达|约|合计)\s*\d+\s*页|\d+\s*页\s*(?:图纸|资料|文件|装饰|土建|加固|给排水|电气|智能化|消防)|\d+\s*页/iu)?.[0];i&&b.push({level:"error",message:`正文残留资料页码元信息:${i}`,suggestion:"正式投标正文应引用招标文件、施工图设计文件、工程量清单和相关专业图纸,不写 PDF 页码或资料页数。"});let j=c.find(a=>/仅作为内部事实提取依据|正式正文不得引用文件名|后台事实|内部事实/u.test(a));return j&&b.push({level:"error",message:`正文残留内部处理说明:${j.slice(0,120)}`,suggestion:"正式投标正文不得出现内部事实抽取、后台处理或文件名引用限制说明。"}),b}function B(a){let b=[],c=a.search(/^##\s+第[一二三四五六七八九十百千万\d]+章\s+/mu),d=[...(c>=0?a.slice(c):a.replace(/^##\s+目录[\s\S]*?(?=^##\s+第[一二三四五六七八九十百千万\d]+章\s+)/mu,"")).matchAll(/^##\s+(.+)$/gmu)].map(a=>(a[1]||"").trim()).filter(a=>"目录"!==a&&!/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(a)&&!/^附录/u.test(a)).map(a=>(0,h.GQ)(a));d.length>0&&b.push({level:"error",message:`正文存在非正式章二级标题:${[...new Set(d)].slice(0,8).join("、")}`,suggestion:"正文 ## 只允许用于“第X章”正式章标题;章内小节必须使用 ### X.Y。"});let e=[...a.matchAll(/^##\s+(第[一二三四五六七八九十百千万\d]+章\s+.+)$/gmu)];for(let c=0;c<e.length;c+=1){let d=e[c].index||0,f=e[c+1]?.index??a.length,g=[...a.slice(d,f).matchAll(/^###\s+\d+\.\d+\s+(.+)$/gmu)].map(a=>(0,h.GQ)(a[1]||"")),i=(0,h.GQ)((e[c][1]||"").replace(/^第[一二三四五六七八九十百千万\d]+章\s*/u,""));1===g.length&&w(g[0])===w(i)&&b.push({level:"error",message:`章节只有一个且与章名同名的小节:${e[c][1]}`,suggestion:"应拆分为多个业务小节,不能用章标题重复作为唯一二级小节。"})}return b}function C(a){let b=[];/按审批确认执行/u.test(a)&&b.push({level:"error",message:"表格存在自动兜底污染内容:按审批确认执行",suggestion:"正式投标表格不得使用通用兜底短语,应保留真实业务内容或删除该行。"});let c=[];for(let b of a.matchAll(/\|\s*信息项\s*\|\s*内容\s*\|/gu)){let d=a.slice(b.index||0),f=[];for(let a of d.split(e.A5)){if(f.length>0&&!e.w7.test(a))break;f.push(a)}c.push(f.join("\n"))}let d=c.filter(a=>/项目名称|招标人|建设单位|发包人|建设地点|招标范围|计划工期|合同估算价|质量标准/u.test(a)).length;d>1&&b.push({level:"error",message:`项目基础信息类表格重复:${d} 处`,suggestion:"项目名称、招标人、建设地点、工期、质量等基础信息只能集中输出一次。"});let f=a.match(/^\|\s*---\s*\|\s*---\s*\|\s*$/gmu)||[];for(let c of(f.length>20&&b.push({level:"error",message:`表格分隔线异常重复:${f.length} 行`,suggestion:"请修复表格规范化逻辑,禁止把数据行拆成多个碎表。"}),r(a))){let a=c.split(e.A5).filter(a=>e.w7.test(a));if(a.length<2)continue;if(!e.N3.test(a[1]||"")){b.push({level:"error",message:`表格分隔线位置不规范:${a[0]||""}`,suggestion:"Markdown 表格必须紧跟表头输出分隔线,例如 |---|---|,中间不得插入正文或其他管道行。"});continue}let d=a.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim())),f=d[0]||[],g=f.filter(a=>/^(?:列|字段|内容|备注)\d+$/u.test(a));g.length>0&&b.push({level:"error",message:`表格存在泛化表头:${g.join("、")}`,suggestion:"正式投标表格必须使用业务字段表头,不得出现“列5/字段1/内容2”等临时表头。"});let h=f.length;d.find((a,b)=>1!==b&&a.length!==h)&&b.push({level:"error",message:`表格列数不一致:${f.join("、")}`,suggestion:"请统一表头和数据行列数;不应通过自动填充兜底词修补表格。"})}return b}function D(a){return a.split(e.A5).filter(a=>!/^#{1,6}\s+/u.test(a.trim())).filter(a=>!/^\s*\|/u.test(a)).filter(a=>!/^\s*:?-{3,}:?/u.test(a)).filter(a=>!/^<\/?div\b/iu.test(a.trim())).join("\n").replace(/[|*_`<>-]/gu,"").replace(e.ug,"").length}function E(a){let b=[...a.matchAll(/^(#{3,4})\s+(.+)$/gmu)];return b.map((c,d)=>{let e=c[1].length,f=(c.index||0)+c[0].length,g=b.slice(d+1).find(a=>a[1].length<=e),h=g?.index??a.length,i=(c[2]||"").trim();return{rawTitle:i,title:w(i),level:e,body:a.slice(f,h)}}).filter(a=>a.title&&(3===a.level||4===a.level))}function F(a,b,c,d,f){let g=D(d),h=e.w7.test(d)&&d.split(e.A5).some(a=>e.N3.test(a)),i=D(d.split("\n").filter(a=>!e.w7.test(a)&&!e.N3.test(a)).join("\n").replace(/^#{1,6}\s+.+$/gmu,""));if(/\[WRITER_MISSING_SECTION\]|Writer 未完成/u.test(d))return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 小节内容补写未完成:${b}`};if(/【本小节生成未达标,需重新生成】/u.test(d))return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 小节生成未达标:${b}`};if(/项目基本信息|基本信息|工程概况|项目概况|工程概述|项目概述/u.test(b)&&(h||g>=40)||/^附录[一二三四五六七八九十A-Z\d]/u.test(b)&&h)return;let j=/清单|配置|汇总|一览|明细|计划|进度|节点|安排/u.test(b)||/表[^,。;:\s]{0,6}$/u.test(b);if(!(h&&j&&Math.max(0,d.split(e.A5).filter(a=>e.w7.test(a)&&!e.N3.test(a)).length-1)>=2)){if(h&&i<20)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:f?`${a} 只有标题或表格无正文:${b}`:`${a} 小节只有标题或表格无正文:${b}`};if(!(g>=80)||!(i>=20)){if(0===g)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 空小节:${b}`};if(g<180)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"too_short",planned:f,message:`${a} ${f?"规划小节":"正文小节"}正文过短:${b}`}}}}function G(a,b){let c=[],d=new Set;for(let e of b){let b=e.content?.trim()?e.content:a;for(let a of(e.sections||[]).filter(a=>!/^(?:施工概况|施工流程|施工方法)$/u.test(w(a))&&!/^附录/u.test(a.trim()))){let f=w(a),g=function(a,b){let c=E(a).filter(a=>(function(a,b){let c=w(a),d=w(b);if(!c||!d)return!1;if(c===d||c.includes(d)||d.includes(c))return!0;let e=/项目概况|主要施工方案|新技术新材料|工程重点难点|重点难点|危大工程|保障体系|安全保障|工期|质量|安全生产|应急预案|资源|人材机|材料|机械|劳动力|进度|关键线路|交通疏导|成品保护|深化设计|验收/gu,f=new Set(c.match(e)||[]),g=new Set(d.match(e)||[]),h=[...f].filter(a=>g.has(a)).length;return h>=2||1===Math.min(f.size,g.size)&&1===h&&16>=Math.max(c.length,d.length)})(a.rawTitle,b));return c.length<=1?c[0]:c.map(a=>({item:a,gap:F("",b,a.level,a.body,!0),textLength:D(a.body)})).sort((a,b)=>{let c=a.gap&&"empty"===a.gap.reason?1:0,d=b.gap&&"empty"===b.gap.reason?1:0;return c!==d?c-d:b.textLength-a.textLength})[0]?.item}(b,a),h=`${e.title}|${f}|planned`;if(!g){c.push({chapterTitle:e.title,sectionTitle:a,level:3,bodyLength:0,reason:"missing_planned_section",planned:!0,message:`${e.title} 缺少规划小节:${a}`}),d.add(h);continue}let i=F(e.title,a,g.level,g.body,!0);i&&c.push(i),d.add(h)}for(let a of E(b)){let b=`${e.title}|${a.title}|actual`,f=`${e.title}|${a.title}|planned`;if(d.has(b)||d.has(f))continue;let g=F(e.title,a.title,a.level,a.body,!1);g&&"empty"===g.reason&&c.push(g),d.add(b)}}return c}function H(a,b){return G(a,b).filter(a=>"empty"===a.reason||"missing_planned_section"===a.reason).map(a=>({level:"error",message:a.message,suggestion:"missing_planned_section"===a.reason?"必须补充该规划小节正式正文,不得缺节导出。":"必须补充与该小节相关的材料事实和必要内容,达到正文完整度要求。"}))}function I(a){return`${a.fieldName||a.key} ${(0,k.lG)(a.value)}`.replace(/\s+/gu," ").trim()}function J(a){let b=new Set;for(let c of[/\d+\s*日历天(?!内)/gu,/(?:计划工期|合同工期|总工期|工期|施工周期)[^\n。;;]{0,12}\d+\s*天/gu,/(?:计划工期|合同工期|总工期|工期|施工周期)[^\n。;;]{0,12}\d+\s*(?:个月|月)/gu])for(let d of a.matchAll(c)){let a=d[0].match(/\d+\s*(?:日历天|天|个月|月)/u)?.[0]?.replace(/\s+/gu,"");a&&b.add(a)}return[...b]}function K(a,b,c){let d=[],e=new Set,f=RegExp(`(?:${b.source})(?:[^\\n。;;,,]{0,14}?)(\\d{2,}(?:[.,]\\d+)?\\s*万?)\\s*(${c.source})`,"giu");for(let b of a.matchAll(f)){let a=b[1].replace(/[,,]/gu,"").replace(/\s+/gu,""),c=b[2],f=`${a}|${c}`;!a||e.has(f)||(e.add(f),d.push({value:a,unit:c}))}return d}function L(a){let b=a.value.replace(/[,,]/gu,"").trim(),c=/^([\d.]+)万/u.exec(b),d=c?1e4*Number(c[1]):Number(b);return Number.isFinite(d)?/亿元/u.test(a.unit)?1e8*d:/万元/u.test(a.unit)?1e4*d:d:NaN}let M=/(?<![地上地下])总?建筑面积|总?建设规模|总?用地面积|总?占地面积/u,N=/㎡|m²|m2|平方米/u,O=/合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价/u,P=/万元|亿元/u;function Q(a,b,c){let d=[],e=a=>c?.find(b=>b.kind===a&&b.resolution)?.resolution,f=a=>{let b=/(\d+(?:\.\d+)?)\s*(㎡|m²|m2|平方米|万元|亿元)/u.exec(a);return b?{value:b[1],unit:b[2]}:void 0},g=e("duration")??b.schedule.map(I).find(a=>/\d+\s*(?:日历天|天|个月|月)|计划工期|合同工期/u.test(a)),h=b.quality.map(I).find(a=>/质量|合格|优良/u.test(a));if(g){let b=J(g)[0],c=J(a.split("\n").filter(a=>!/^\s*\|/u.test(a.trim())).join("\n")),e=b?c.filter(a=>a!==b&&/日历天/u.test(a)):[];b&&e.length>=2&&d.push({level:"warning",message:`跨章一致性冲突:正文出现与资料工期不一致的表述 ${e.slice(0,6).join("、")}`,suggestion:`请统一使用资料中的工期口径:${g}`})}h&&!/质量标准|质量目标|合格|优良/u.test(a)&&d.push({level:"error",message:"跨章一致性缺口:正文未稳定体现资料中的质量目标",suggestion:`请在工程概况、质量保证和验收相关章节统一体现:${h}`});let i=e("area"),j=i??b.project.map(I).find(a=>/建设规模|建筑面积|占地面积|用地面积/u.test(a));if(j){let b=i?f(i):K(j,M,N)[0],c=K(a,M,N);if(b){let a=c.filter(a=>L(a)!==L(b));a.length>=1&&d.push({level:"error",message:`跨章一致性冲突:正文出现与资料建设规模不一致的表述 ${a.slice(0,6).map(a=>`${a.value}${a.unit}`).join("、")}`,suggestion:`请统一使用资料中的建设规模口径:${j.slice(0,80)}`})}}let k=e("cost"),l=k??b.project.map(I).find(a=>/合同估算|投资估算|最高投标限价|招标控制价|总投资|工程造价/u.test(a));if(l){let b=k?f(k):K(l,O,P)[0],c=K(a,O,P);if(b){let a=c.filter(a=>L(a)!==L(b));a.length>=1&&d.push({level:"error",message:`跨章一致性冲突:正文出现与资料估算价不一致的表述 ${a.slice(0,6).map(a=>`${a.value}${a.unit}`).join("、")}`,suggestion:`请统一使用资料中的估算价口径:${l.slice(0,80)}`})}}return d}function R(a){let b=[],c=new Set;for(let d of a.matchAll(/找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层|隔热层|隔离层/gu)){let e=d[0],f=a.slice(Math.max(0,d.index-60),Math.min(a.length,d.index+90)),g=f.match(/(\d+:\d+(?:\.\d+)?)/u)?.[1],h=f.match(/(\d+(?:\.\d+)?)\s*mm/u),i=h?Number(h[1]):void 0,j=`${e}|${g||""}|${i??""}`;c.has(j)||(c.add(j),b.push({layer:e,ratio:g,thickness:i}))}return b}function S(a,b){let c=[],d=R([...b.specifications,...b.quality,...b.preciseFacts,...b.bills].map(I).join("\n"));if(0===d.length)return c;let e=new Map;for(let a of d){let b=e.get(a.layer)||[];b.push(a),e.set(a.layer,b)}let f=R(a),g=new Set;for(let[a,b]of e){let d=[...new Set(b.map(a=>a.ratio).filter(Boolean))],e=[...new Set(b.map(a=>a.thickness).filter(a=>Number.isFinite(a)))];for(let b of f.filter(b=>b.layer===a)){if(1===d.length&&b.ratio&&b.ratio!==d[0]){let e=`ratio|${a}|${b.ratio}`;g.has(e)||(g.add(e),c.push({level:"error",message:`工序规格冲突:正文${a}配比 ${b.ratio} 与资料口径 ${d[0]} 不一致`,suggestion:`请将${a}配比统一为资料口径 ${d[0]},禁止改写资料规格。`}))}if(1===e.length&&Number.isFinite(b.thickness)&&Math.abs(b.thickness-e[0])>=1){let d=`thickness|${a}|${b.thickness}`;g.has(d)||(g.add(d),c.push({level:"error",message:`工序规格冲突:正文${a}厚度 ${b.thickness}mm 与资料口径 ${e[0]}mm 不一致`,suggestion:`请将${a}厚度统一为资料口径 ${e[0]}mm。`}))}}}return c}function T(a){let b=[],c=/(?:三检制|三级教育|三级管理|5S|24\s*小时|每日|每周|每月|一次|两次)/gu;for(let d of a){let a=[...new Set(d.content.match(c)||[])];a.length>=3&&!/责任人|检查记录|整改|复查|验收|台账|交底|巡查|闭环/u.test(d.content)&&b.push({level:"warning",message:`${d.title} 管理措施数字较多但缺少执行闭环:${a.slice(0,8).join("、")}`,suggestion:"这些管理数字可以保留,但需要补充责任主体、检查频次、记录台账、整改复查和闭环要求。"})}return b}function U(a){let b=/(?:加强组织领导|严格执行规范|落实责任制度|确保工程质量|强化过程管理|提高思想认识|完善管理体系|形成闭环管理)/gu,c=[];for(let d of a)(d.content.match(b)||[]).length>=6&&!/材料|工序|验收|复验|节点|风险|交底|隐蔽|检验批|进场/u.test(d.content)&&c.push({level:"error",message:`${d.title} 存在较多未绑定项目事实和工序控制点的泛化套话`,suggestion:"请替换为结合资料事实、施工对象、工序控制、验收资料和整改闭环的专业内容。"});return c}function V(a,b){let c=[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications].map(I).join("\n");if(80>(0,f.V7)(c))return[];let d=[],e=(0,g.K3)(c),h=[],i=[],j=[];for(let b of(0,g.zn)(a)){if(/^\d+\.\d+$/u.test(b))continue;let c=(0,g.K3)(b),d=a.indexOf(b);if(d<0)continue;let f=a.lastIndexOf("\n",d-1)+1,k=a.slice(f,0>a.indexOf("\n",d)?a.length:a.indexOf("\n",d));if(/^\s*\|/u.test(k.trim()))continue;let l=a.slice(Math.max(0,d-36),Math.min(a.length,d+b.length+36)),m=function(a,b){let c=`${a} ${b}`;return/三检制|三级|5S|24\s*小时|每日|每周|每月|一次|两次|责任制|制度/u.test(c)||/暂列金额|暂估价|报价|单价|合价|综合单价|税率|增值税|预留金/u.test(c)||/^\d+(?:\.\d+)?(?:月|年)$/u.test(a)&&/开工|竣工|日期|计划|年|月/u.test(b)?"soft":/总工期|计划工期|合同工期|日历天/u.test(c)||/最高投标限价|招标控制价|合同估算价|投资估算|报价|金额|万元|元/u.test(c)||/(?:建设规模|总建筑面积|总用地面积|总占地面积).{0,16}(?:m²|㎡|m2|平方米)/u.test(c)?"scope":/(?:工程量|清单|建设规模|建筑面积|长度|材料|设备|规格|型号).{0,24}(?:m²|㎡|m3|m³|米|吨|套|台|个|项|%)/u.test(c)?"spec":/GB\s*\d|JGJ\s*\d|CJJ\s*\d|ISO\s*\d|GB\/T|CECS\s*\d|DL\s*\d|YB\s*\d|SH\s*\d|SJ\/T\s*\d|CJJ\/T\s*\d|DB\s*\d/u.test(c)?"soft":/标准|规范|编号/u.test(c)?"spec":"soft"}(b,l);"scope"!==m||e.includes(c)||h.push(b),"spec"!==m||e.includes(c)||i.push(b),"soft"!==m||e.includes(c)||j.push(b)}let l=[...new Set(h)],m=[...new Set(i)],n=[...new Set(j)];return l.length>=1&&d.push({level:"error",message:`生成后事实反查失败:正文出现资料事实主表中未找到的总量口径数字 ${l.slice(0,8).join("、")}`,suggestion:"总量口径数字(工期/金额/建设规模)必须与资料一致;请删除或改写为资料确认的口径,禁止编造。"}),m.length>=2&&d.push({level:"warning",message:`生成后事实反查提示:正文出现资料事实主表中未找到的规格明细数字 ${m.slice(0,8).join("、")}`,suggestion:"建议复核这些规格是否来自管理制度、规范要求或资料事实;如无依据,改为定性管理要求。"}),n.length>=6&&d.push({level:"warning",message:`生成后事实反查提示:正文出现较多未在资料事实主表中反查到的管理数字 ${n.slice(0,10).join("、")}`,suggestion:"请确认这些管理数字属于通用制度、规范要求或项目资料事实;如无依据,建议改为定性管理要求。"}),/质量目标|质量标准/u.test(a)&&b.quality.length>0&&!b.quality.some(b=>a.includes((0,k.lG)(b.value).slice(0,18)))&&d.push({level:"warning",message:"生成后事实反查提示:正文质量目标表述未明显匹配质量事实主表",suggestion:"请使用资料中的质量目标原文或等价表述。"}),d}function W(a){let b=[];for(let d of a){var c;let a=d.content;if(800>(0,f.V7)(a))continue;let e=/资料|招标|清单|图纸|标准|范围|工期|质量|验收/u.test(a)?2:+!!/项目|工程|要求/u.test(a),g=/首先|其次|同时|最后|一是|二是|流程|步骤|阶段|组织顺序/u.test(a)?2:+!!/并且|同时|然后|因此/u.test(a),h=/控制点|关键线路|复验|隐蔽验收|风险|交底|检验批|整改|闭环/u.test(a)?2:+!!/措施|要求|管理|检查/u.test(a),i=/责任人|检查|记录|验收|整改|复查|进场|调配|应急/u.test(a)?2:+!!/落实|执行|安排|组织/u.test(a),j=/本项目|本工程|招标范围|工程量|建设地点|计划工期|质量目标/u.test(a)?2:+!!/项目|工程/u.test(a),k=/工期|质量|安全|资源|验收/u.test(a)?2:+!!/目标|要求/u.test(a),l={factuality:e,structure:g,depth:h,executable:i,specificity:j,consistency:k},m=e+g+h+i+j+k,n=(c=d.title,/概况|工程|项目/u.test(c)?{min:5,focus:"事实依据、项目特异性"}:/部署|总体|组织/u.test(c)?{min:6,focus:"组织结构、可执行闭环、跨章一致性"}:/进度|工期/u.test(c)?{min:6,focus:"进度结构、工期一致性、纠偏机制"}:/质量/u.test(c)?{min:6,focus:"质量深度、验收复验、资料闭环"}:/安全|文明|危大|风险/u.test(c)?{min:6,focus:"风险覆盖、应急响应、检查整改"}:/资源|材料|设备|劳动力/u.test(c)?{min:5,focus:"资源依据、进场调配、进度支撑"}:{min:4,focus:"事实依据、专业深度、可执行性"});if(m<n.min){let a=Object.entries(l).filter(([,a])=>a<1).map(([a])=>a).join("、")||n.focus;b.push({level:"error",message:`${d.title} 专业评分不足:${m}/12,薄弱维度:${a}`,suggestion:`请按章节任务卡补齐${n.focus},并写出资料依据、实施流程、专业控制点和检查整改闭环。`})}}return b}function X(a){let b=[{re:/进度|工期/u,need:/关键线路|穿插|纠偏|资源保障|节点|动态调整/u,message:"进度工期章节缺少关键线路、穿插施工或纠偏保障内容"},{re:/质量/u,need:/材料.*验收|复验|隐蔽验收|整改.*复验|质量.*资料|检验批/u,message:"质量章节缺少材料验收复验、隐蔽验收或整改复验闭环"},{re:/安全|文明|危大|风险/u,need:/风险|临电|消防|应急|检查.*整改|文明施工|人员|设备/u,message:"安全文明章节缺少风险识别、现场控制或应急检查闭环"},{re:/资源|材料|设备|劳动力/u,need:/进场|验收|调配|保管|供应|投入计划/u,message:"资源章节缺少进场、验收、调配或保管计划"},{re:/施工|工艺|技术|方案/u,need:/准备|流程|工艺|控制点|验收|交底/u,message:"施工技术章节缺少施工准备、工艺流程、控制点或验收要求"}],c=[];for(let d of a){let a=d.content;for(let e of b)e.re.test(d.title)&&(0,f.V7)(a)>=600&&!e.need.test(a)&&c.push({level:"error",message:`${d.title}:${e.message}`,suggestion:"请按专业任务卡定向补写该章节,补齐可实施的控制措施、资料依据和闭环要求。"})}return c}function Y(a,b){return!!(/万元|元|报价|单价|合价|综合单价|预留金|税率|增值税|利润|结算/u.test(`${a} ${b}`)||/OCR|识别错误|乱码|无法确认|疑似|不确定|语义断裂|页码|目录/u.test(b)||/^\d+$/.test(a)&&10>Number(a)||/之日起.{0,8}天内|天内.{0,10}(?:发出|提交|通知|回复|答复|完成|开工|竣工|报送|支付|更换)|天以上|天及以上|‰|暂扣|履约保证金|通过后.{0,6}天|因发包人原因|因承包人原因|未能按时|逾期|违约金/u.test(b))}function Z(a,b){let c=0;for(let d of a)b.includes(d.replace(e.ug,""))&&(c+=1);return c}let $=/日历天|个月|㎡|m²|m3|m³|MPa|kPa|kN|GB\/T|GB|JGJ|ISO|DN|φ|Φ|米\/秒|天$/u;function _(a,b,c=[]){let d=[],f=a.replace(e.ug,""),g=function(a){let b=new Set;for(let c of a)for(let a of c.evidence||[]){if(/bill_of_quantities|boq/u.test(`${a.roleId||""}`))continue;let c="string"==typeof a.content?a.content:"";for(let a of c.matchAll(e.No)){let d=a[0].trim();if(!d||/^\d{4}\s*年$/u.test(d)||/^\d{1,2}\s*月$/u.test(d))continue;let e=a.index||0,f=c.slice(Math.max(0,e-40),e+d.length+40);Y(d,f)||b.add(d)}}return[...b]}(c),h=g.length>=e.mu?g:function(a){let b=new Set;for(let c of a.preciseFacts){if("bill_of_quantities"===c.roleId)continue;let a=`${c.processingType||""} ${c.roleId} ${c.sourceFile}`;if(!e.FM.test(a)&&"precise_fact"!==c.roleId)continue;let d=`${c.key} ${c.fieldName||""} ${c.value}`;for(let a of d.matchAll(e.No)){let c=a[0].trim();Y(c,d)||b.add(c)}}return[...b]}(b),i=Z(h,f);h.length>=e.mu&&i/h.length<e.tg&&d.push({level:"warning",message:`可靠精确参数使用不足:${i}/${h.length}`,suggestion:"请将资料中可靠的规格、参数、数量、时间、比例和标准编号写入对应章节;商务金额、单价、税率、预留金不得写入正文。"});let j=function(a){let b=[...a].sort((a,b)=>a.localeCompare(b,"zh")),c=b.filter(a=>$.test(a)),d=b.filter(a=>!$.test(a));return[...c.slice(0,8),...d.slice(0,2)].slice(0,10)}(h);if(j.length>=6){let a=Z(j,f);if(a/j.length<.5){let b=j.filter(a=>!f.includes(a.replace(e.ug,""))).slice(0,3);d.push({level:"error",message:`可靠精确参数使用不足:关键参数抽查 ${a}/${j.length}${b.length?`(缺失如 ${b.join("、")})`:""}`,suggestion:"请将资料中的关键工程参数(工期、面积、强度等级、材料规格、规范编号等)写入正文对应章节,不得因参数总量达标而遗漏核心参数。"})}}return b.bills.length>0&&!e.pP.test(a)&&d.push({level:"error",message:"正文未体现结构化数据资料",suggestion:"请从表格、列表或明细中提取对象、单位、数量、规格和关键参数补入对应章节。"}),b.drawings.length>0&&!e._U.test(a)&&d.push({level:"error",message:"正文未体现设计/方案/说明类资料",suggestion:"请从设计、方案或说明资料中提取对象、流程、节点、做法、配置、规则和标准要求。"}),d}function aa(a,b,c){let d=[],e=c.tables||[];if(0===e.length)return d;let f=a.replace(/\s+/gu,"").toLowerCase(),g=0,h=0,i=[];for(let a of e){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|^名称$|清单项|分部分项|项目特征/u.test(a)),d=b.findIndex(a=>/项目编码|编码|编号/u.test(a)),e=b.findIndex(a=>/^工程量$|^数量$/u.test(a));for(let b of a.rows){g+=1;let a=c>=0?(b[c]||"").replace(/\s+/gu,""):"",j=d>=0?(b[d]||"").replace(/\s+/gu,""):"",k=e>=0?(b[e]||"").replace(/\s+/gu,""):"",l=a.length>=3?a.slice(0,Math.min(a.length,16)):"",m=j.length>=3?j.slice(0,Math.min(j.length,12)):"",n=l&&f.includes(l),o=m&&f.includes(m);n||o?h+=1:a.length>=3&&i.push(`${a.slice(0,40)}${k?` ${k}`:""}(未落位)`)}}if(g>0){let a=h/g,b=i.length>0?`未落位项(共${i.length}项):${i.slice(0,12).join(";")}${i.length>12?` 及其他${i.length-12}项`:""}`:"";a<.3?d.push({level:"warning",message:`清单项落位严重不足:${h}/${g} 项(${Math.round(100*a)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。${b}`}):a<.6&&d.push({level:"warning",message:`清单项落位不足:${h}/${g} 项(${Math.round(100*a)}%)`,suggestion:`建议补充落位以下清单项:${b}`})}return d}function ab(a,b){let c=[],d=b.drawings||[];if(0===d.length)return c;let e=a.replace(/\s+/gu,"").toLowerCase(),f=[...new Set(d.map(a=>a.sourceFile||"").filter(Boolean))],g=0,h=[];for(let a of f){let b=a.replace(/\.[^.]+$/u,"").replace(/[/\\]/gu,"").toLowerCase(),c=a.split("/").pop()||a;(b.length>=3?e.includes(b.slice(0,Math.min(b.length,12))):/图纸|设计|说明|节点|做法|构造/u.test(e))?g+=1:h.push(c)}if(f.length>0){let a=g/f.length;a<.25?c.push({level:"warning",message:`图纸引用严重不足:${g}/${f.length} 份图纸被正文引用(${Math.round(100*a)}%)`,suggestion:`建议将图纸中的设计说明、构造做法、材料规格和设备参数写入对应章节。未引用图纸:${h.slice(0,5).join("、")}`}):a<.5&&c.push({level:"warning",message:`图纸引用不足:${g}/${f.length} 份(${Math.round(100*a)}%)`,suggestion:`建议补充引用:${h.slice(0,5).join("、")}`})}return c}function ac(a){let b=[];for(let c of(/【本小节生成未达标,需重新生成】/u.test(a)&&b.push({level:"error",message:"生成未完成:存在未达标小节,需要重新生成或补写后才能导出",suggestion:"请重新生成未达标小节,禁止将占位内容作为正式正文。"}),e.IA))c.test(a)&&b.push({level:"warning",message:`存在占位式表达:${c.source}`,suggestion:"请改写为来自资料的准确事实;资料确实未提供时,改写为正式管理措施,不留空值或“见资料/按文件”。"});return b}function ad(a,b){for(let c of b)try{if(RegExp(c,"iu").test(a))return!0}catch{if(a.includes(c))return!0}return!1}function ae(a,b){let c=`${b.name} ${b.category} ${b.outputTitle} ${b.description}`,f=[];for(let a of(0,d.V)().autoSpecGates)ad(c,a.templateMatchers)&&f.push(a);if(0===f.length)return[];let g=[],h=r(a).length,i=0;for(let b of f){for(let c of(i=Math.max(i,b.minTables||0),b.requiredTexts))a.includes(c)||g.push({level:"warning",message:`配置要求缺少必要内容:${c}`,suggestion:"请按当前模板匹配的专业规则补齐必要内容。"});for(let c of b.forbiddenTexts)(function(a,b){let c="见图纸"===b||"按图纸"===b?["目录","清单","索引","汇总"]:[],d=0;for(;;){let e=a.indexOf(b,d);if(e<0)return!1;let f=a.slice(e+b.length);if(c.some(a=>f.startsWith(a))){d=e+b.length;continue}return!0}})(a,c)&&g.push({level:"error",message:`配置要求不得出现:${c}`,suggestion:"请根据当前模板匹配的专业规则清理正文污染内容。"})}return e.bu.test(a)&&g.push({level:"error",message:"正式正文存在 Markdown 标题符号 #",suggestion:"导出正文应去除 Markdown 标题符号,保留正式标题文字。"}),i&&h<i&&g.push({level:"warning",message:`配置要求正式表格不足:${h}/${i}`,suggestion:"如用户提示词或章节内容要求表格,应按项目资料补充对应表格本体。"}),g}function af(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`,c=new Set;for(let a of(0,d.V)().autoSpecGates)if(ad(b,a.templateMatchers))for(let b of a.requiredTexts)b&&c.add(b);return[...c]}function ag(a,b,c,d,g,h,j){var k;if(!a)return b;let l=[...b],m=function(a){let b=[...a.project,...a.schedule,...a.quality,...a.safety,...a.resources];for(let c of Object.values(a.schemaFacts))b.push(...c);return b}(c),n=function(a,b){let c=new Set;for(let a of b)c.add(a.key),a.fieldName&&c.add(a.fieldName);for(let b of a.tables){for(let a of b.headers)c.add(a);for(let a of b.rows)for(let b of a)c.add(b)}return c}(c,m),o=new Set(d.map(a=>a.title));for(let b of a.factFields){if(!b.required||(k=b.name,/国家法律法规|地方法规|规章|规范标准|标准规范|行业标准|现行规范|法律法规|合规|施工方法|工艺流程|质量控制|安全文明|应急|劳动力|材料投入|机械设备|检测仪器|关键节点/u.test(k)))continue;let a=c.schemaFacts[b.id]||[],e=!1,f=!b.sourceRoleIds?.length||a.some(a=>b.sourceRoleIds?.includes(a.roleId));for(let a of d){if(e&&f)break;for(let c of a.evidence)!e&&!a.missingFacts.includes(b.name)&&(0,i.I2)(c,b)&&(e=!0),!f&&(0,i.I2)(c,b)&&(f=!0)}0!==a.length||n.has(b.name)||e||l.push({level:"warning",message:`系统暂未从知识库确认必需事实:${b.name}`,suggestion:b.extractionHint||"请扩大本地知识库检索、执行事实补抽,或调整事实字段配置。"}),f||l.push({level:"warning",message:`必需事实来源角色不匹配:${b.name}`,suggestion:`请确认该事实来自角色:${b.sourceRoleIds?.join("、")}`})}for(let b of a.chapterRules){let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&l.push({level:"warning",message:`章节内容深度建议:${b.title}`,suggestion:`可扩展到约 ${b.minWords} 字,但不要改变模板章节结构。`})}let p=r(g),q=function(a){let b=[];for(let c of a.matchAll(e.gW))b.push({alt:c[1]||"",url:c[2]||"",index:c.index??0});return b}(g),s=(0,f.Cv)(g);for(let b of a.gateRules){let a=b.evaluator?b.evaluator:e.cA[b.type]?.(b)??{subject:"document",operator:"contains",value:b.value||b.target},f=a.target||b.target||"",i=a.value||b.value||f,k=d.find(a=>a.title===f),r=function(a){for(let c of e.Lp){let d=c(a);if(d){var b;return{level:a.rule.level,message:(b=a.rule,`${b.name}:${d}`)}}}}({rule:b,evaluator:a,target:f,value:i,min:a.min||Number(b.value)||1,markdown:g,textScope:"chapter"===a.subject&&k?k.content:g,regex:i?function(a){try{return RegExp(a,"iu")}catch{return}}(i):void 0,chapter:k,factNames:n,chapterTitles:o,tableBlocks:p,imageRefs:q,estimatedPages:s,allFacts:m,factsModel:c,projectBindings:h,promptBindings:j});r&&l.push(r)}return l}function ah(a,b){let c=function(a){let b="";for(let c of(0,j.dU)(a))c.content&&(b+=`${c.content}
1
+ "use strict";exports.id=4680,exports.ids=[4680],exports.modules={1358:(a,b,c)=>{c.d(b,{JV:()=>k,O7:()=>h,QP:()=>l,SR:()=>g,c$:()=>j,e$:()=>i,rj:()=>f});var d=c(22157);function e(a){return a.replace(/[\s,,.。::;;||()()《》<>【】"“”'‘’]/gu,"").toLowerCase()}function f(a){let b=a.replace(/[||]\s*(?:[||]\s*)+$/gu,"").replace(/(?:[。;;]|\d+\s*[..、])\s*(?:未尽事宜|其余(?:未尽)?事宜|其他(?:未尽)?事宜|注\s*[::]).*$/u,"").trim();return b=b.replace(/[、,,;;]+\s*$/u,"").trim(),/[||]/u.test(b)&&(b=b.split(/[||]/u)[0]?.trim()||b),b}function g(a){return!(/^(?:见|详见|按|执行|参见|依据).{0,16}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料)$/u.test(a)||/(?:^|[::]\s*)(?:见|详见|按|执行|参见|依据)[^。;;]{0,18}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料|补疑|答疑)[^。;;]{0,6}$/u.test(a)||/^见.{0,24}(?:招标范围|招标补疑|补疑|前附表|答疑)/u.test(a)||/^(?:合同协议书|通用条款|专用条款|招标文件|招标公告|投标人须知前附表|附件|资料)$/u.test(a.replace(/[()()\d一二三四五六七八九十、..\s]/gu,""))||/^(?:工程名称|项目名称|建设地点|建设规模|计划工期|质量标准|招标范围|合同估算价|工程概况|项目概况|项目内容)$/u.test(a)||/^#+\s*/u.test(a)||/^[一二三四五六七八九十]+[、..]\s*\S{2,}[::]/u.test(a)||/^[((]\s*\d+[))]/u.test(a)&&/具备|证书|考核|资格|人员/u.test(a))&&(!(a.length<4)||!!/\d/u.test(a))}function h(a){let b=String(a.value||"").trim(),c=`${a.label}${b}`;return!(!/项目|工程|编号|地点|规模|范围|工期|质量|安全|资源|材料|设备|验收|\d/u.test(c)||!g(b)||/^(?:技术参数|精确参数)$/u.test(a.label))}function i(a,b){let c=new Set,g=[];for(let h of[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications]){let b=f((0,d.lG)(h.value).replace(/\s+/gu," ").trim()),i=h.fieldName||h.key||h.fieldId||"资料事实",j=`${i}:${b}`;!b||c.has(j)||(c.add(j),g.push({label:i,value:b,sourceFile:h.sourceFile,status:!function(a,b){let c=e(a),d=e(b);if(!d||d.length<2||c.includes(d))return!0;{let a=b.split(/[;;。\n]|、|,|,/u).map(a=>e(a.replace(/^\s*\d+\s*[、..]\s*/u,""))).filter(a=>a.length>=4);if(a.length>=2&&a.some(a=>c.includes(a)))return!0}{let a=b.replace(/[、,,;;||\s]+/gu,"、").split("、").map(a=>e(a.replace(/(?:工程|项目|改造|维修|安装|施工|内容|资料|要求|标准)+$/u,""))).filter(a=>a.length>=2);if(a.length>=1&&(a.length>=2||(a[0]?.length??0)>=3)&&a.every(a=>c.includes(a)))return!0}return(b.match(/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年|万元|元|平方米|㎡|m²|立方米|m³|米|m|mm|cm|台|套|人|项|%|MPa|kPa|个|栋|层|标段|批|处|座|组|道|根|樘|扇)?/giu)||[]).some(a=>e(a).length>=2&&c.includes(e(a)))}(a,b)?"unplaced":"used",confidence:h.confidence}))}return g}function j(a,b={}){let c=a.filter(a=>"unplaced"===a.status&&h(a)),d=b.maxIssues&&b.maxIssues>0?b.maxIssues:c.length;return c.slice(0,d).map(a=>({level:"warning",message:`已确认知识库事实未落位:${a.label}=${a.value}`,suggestion:`请将该事实落位到对应章节,并保持来源 ${a.sourceFile||"结构化事实主表"} 的原始口径。${c.length>d?`(共${c.length}个未落位事实,此处显示前${d}个)`:""}`}))}function k(a,b){let c=b.tables||[],d=[],f=e(a);for(let a of c){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|名称|清单项|分部分项|项目特征|工程内容|材料名称|设备名称/u.test(a)),g=b.findIndex(a=>/编码|编号|序号|项目编码/u.test(a)),h=b.findIndex(a=>/数量|工程量/u.test(a)),i=b.findIndex(a=>/单位/u.test(a));for(let b of a.rows){let j=c>=0&&b[c]||"",k=g>=0&&b[g]||"",l=h>=0&&b[h]||"",m=i>=0&&b[i]||"";if(!j&&!k)continue;let n=e(j),o=e(k),p=n.length>=3&&f.includes(n.slice(0,12))||o.length>=3&&f.includes(o.slice(0,8));d.push({itemCode:k.slice(0,50),itemName:j.slice(0,200),quantity:l.slice(0,50),unit:m.slice(0,20),sourceFile:a.sourceFile||"",placed:p})}}return d.sort((a,b)=>a.placed===b.placed?0:a.placed?1:-1)}function l(a,b={}){let c=a.filter(a=>!a.placed);if(0===c.length)return[];let d=a.length,e=(d-c.length)/d,f=[];return e<.3?f.push({level:"warning",message:`BOQ 清单行级落位严重不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。未落位清单项示例:${c.slice(0,5).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join(";")}`}):e<.6&&f.push({level:"warning",message:`BOQ 清单行级落位不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`建议补充落位:${c.slice(0,5).map(a=>a.itemName).join("、")}`}),f}},11248:(a,b,c)=>{c.d(b,{K3:()=>f,zn:()=>g});let d=/[A-Za-z0-9%+-.,]/gu;function e(a){let b=a.charCodeAt(0);return b>=65281&&b<=65374?String.fromCharCode(b-65248):a}function f(a){return a.replace(d,e).replace(/\s+/gu,"").replace(/[×X**]/gu,"x").replace(/[%]/gu,"%").replace(/‰/gu,"permille").replace(/平方米|平方|平米|m²|㎡/giu,"m2").replace(/公顷|hm²/giu,"hm2").replace(/立方米|立方|m³/giu,"m3").replace(/升/gu,"l").replace(/毫升/gu,"ml").replace(/千米|公里/gu,"km").replace(/毫米/gu,"mm").replace(/厘米/gu,"cm").replace(/米/gu,"m").replace(/千克|公斤/gu,"kg").replace(/克/gu,"g").replace(/吨/gu,"t").replace(/人民币万元|万元人民币/gu,"万元").replace(/人民币元|元人民币|¥/gu,"元").replace(/日历天|自然日/gu,"天").replace(/工作日/gu,"工作天").replace(/个月/gu,"月").replace(/小时/gu,"h").replace(/分钟/gu,"min").replace(/兆帕/gu,"mpa").replace(/千帕/gu,"kpa").replace(/千牛/gu,"kn").replace(/牛/gu,"n").replace(/千瓦/gu,"kw").replace(/兆瓦/gu,"mw").replace(/瓦/gu,"w").replace(/千伏/gu,"kv").replace(/伏/gu,"v").replace(/毫安/gu,"ma").replace(/安培|安/gu,"a").replace(/赫兹/gu,"hz").replace(/摄氏度/gu,"℃").replace(/百分之\s*(\d+(?:\.\d+)?)/gu,"$1%").replace(/千分之\s*(\d+(?:\.\d+)?)/gu,"$1permille").replace(/直径\s*(\d+(?:\.\d+)?)/gu,"φ$1").replace(/[Φφ]\s*(\d+(?:\.\d+)?)(?:mm)?/giu,"φ$1").replace(/DN\s*(\d+)/giu,"dn$1").replace(/D\s*(\d+)(?=\b|[^a-z0-9])/giu,"d$1").replace(/\b(KN|MPA|KPA|KW|MW|KV|HZ|DN)\b/giu,a=>a.toLowerCase()).replace(/[,,、。;;::||()()【】\]《》<>"“”'‘’[]/gu,"").toLowerCase()}function g(a){let b=f(a),c=new Set;for(let a of b.matchAll(/\d+(?:\.\d+)?(?:m2|hm2|亩|m3|l|ml|mm|cm|km|m|kg|g|t|万元|亿元|元|天|工作天|月|年|h|min|%|permille|mpa|kpa|pa|kn|n|kn\/m2|kn\/m|kw|mw|w|kv|v|ma|a|hz|℃|台|套|件|个|根|只|组|项|处|座|栋|层|间|批|次|人|工日|人日)?|dn\d+|φ\d+(?:\.\d+)?|d\d+|c\d{2,}|hrb\d+|q\d{3}[a-z]?|m\d+|\d+(?:\.\d+)?x\d+(?:\.\d+)?(?:x\d+(?:\.\d+)?)?|[+-]?\d+\.\d{3}|\d+[:/]\d+/giu))c.add(a[0]);return[...c]}},23760:(a,b,c)=>{c.d(b,{AC:()=>n,Ai:()=>q,BV:()=>t,Ff:()=>l,Fv:()=>B,K1:()=>z,KI:()=>W,M$:()=>al,N1:()=>ad,NS:()=>C,S2:()=>ae,ST:()=>Y,Ty:()=>u,bM:()=>ag,f8:()=>x,gN:()=>v,hr:()=>V,i0:()=>$,iC:()=>s,ji:()=>_,k0:()=>A,kQ:()=>ak,mR:()=>ai,qK:()=>H,qm:()=>Q,t4:()=>aj,vY:()=>Z,xX:()=>X,yd:()=>af,yw:()=>G});var d=c(8753),e=c(74329),f=c(78217),g=c(11248),h=c(70208),i=c(91977),j=c(23500),k=c(22157);function l(a){let b={blocking:0,important:0,minor:0};for(let c of a)b[function(a){let b="string"==typeof a?a:a.message;if("error"===("string"==typeof a?void 0:a.level))return"blocking";for(let a of e.gr)if(a.pattern.test(b))return a.severity;return"minor"}(c)]+=1;return b}function m(a,b){let c=a.replace(/[\][()`*_>#|{},。、“”‘’:;!?,.!?:;-]+/gu," ").replace(e.ug," ").trim();if(c.length<120)return;let d=c.match(/[A-Za-z][A-Za-z-]{2,}|[\p{Script=Han}]{2,}/gu)||[];if(d.length<30)return;let f=1,g=new Map;for(let a=0;a<d.length;a+=1){let c=d[a].toLowerCase();if(g.set(c,(g.get(c)||0)+1),a>0&&c===d[a-1].toLowerCase()?f+=1:f=1,f>=12)return{level:"error",message:`${b} 存在重复 token 退化输出`,suggestion:"请重新生成该小节,禁止保留连续重复的英文单词或无意义片段。"}}let h=[...g.entries()].sort((a,b)=>b[1]-a[1])[0];if(h&&h[1]>=25&&h[1]/d.length>=.42)return{level:"error",message:`${b} 存在重复 token 退化输出`,suggestion:`检测到“${h[0]}”异常高频重复,请重新生成该小节。`}}function n(a,b=[]){let c=[],d=m(a,"全文");for(let a of(d&&c.push(d),b)){let b=m(a.content,`章节“${a.title}”`);for(let d of(b&&c.push(b),a.sections||[])){let b=d.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),e=a.content.match(RegExp(`^#{3,4}\\s+(?:\\d+(?:\\.\\d+)*\\s+)?${b}\\s*\\n([\\s\\S]*?)(?=^#{3,4}\\s+|^##\\s+|$)`,"mu"));if(!e)continue;let f=m(e[1],`小节“${d}”`);f&&c.push(f)}}return c}function o(a){return a.severity&&a.repairability?a:/小节只有标题|空小节|小节内容补写未完成/u.test(a.message)?{...a,severity:"blocker",repairability:"local_deterministic",category:"structure",owner:"system"}:/不得出现|提示词要求|疑似提示词指令标题|项目污染|生成未完成/u.test(a.message)?{...a,severity:"blocker",repairability:"llm_repairable",category:"structure",owner:"system"}:/事实一致性冲突|projectFactOnly|核心事实/u.test(a.message)?{...a,severity:"error"===a.level?"blocker":"warning",repairability:"manual_review",category:"fact_consistency",owner:"user"}:/证据使用覆盖率偏低|BOQ|落位|高分模块|专业链|闭环/u.test(a.message)?{...a,severity:"warning",repairability:"not_repair_needed",category:"evidence_coverage",owner:"system"}:"error"===a.level?{...a,severity:"blocker",repairability:"llm_repairable",category:"structure",owner:"system"}:"warning"===a.level?{...a,severity:"warning",repairability:"not_repair_needed",category:"style",owner:"system"}:{...a,severity:"suggestion",repairability:"not_repair_needed",category:"style",owner:"system"}}function p(a){let b=o(a);return"blocker"===b.severity&&(!!("error"===b.level&&"blocker"===b.severity&&/placeholder|source|style|format|structure/u.test(String(b.category||""))||/提示词要求|疑似提示词指令标题|适用性自相矛盾|不得出现/u.test(a.message))||!/目录与正文/u.test(a.message)&&(/配置要求缺少必要内容/u.test(a.message)?"error"===a.level:!!/小节内容补写未完成|空小节|小节只有标题|生成未完成/u.test(a.message)||!/生成后事实反查失败/u.test(a.message)&&(/工序规格冲突/u.test(a.message)?"error"===a.level:!!/项目特点、重点、难点分析 正文不足|项目主要施工内容 正文不足/u.test(a.message)||!(/规划小节正文过短/u.test(a.message)||/事实一致性冲突:项目名称/u.test(a.message))&&(/跨章一致性|专业评分不足|专业缺口|泛化套话|缺少关键线路|缺少材料验收|缺少风险识别|缺少进场/u.test(a.message)?"error"===a.level&&!/证据使用覆盖率偏低|章节逻辑依赖不足|文档交付评分报告/u.test(a.message):!(!e.hc.test(a.message)||/章节审查|最终质量审查|正文篇幅明显低于目标|正文存在空泛占位表达|结构化事实读取不足|正文可能未显式覆盖|仅包含文件类型和占位符|不在本次招标范围内/u.test(a.message))))))}function q(a,b,c){let d=c.some(a=>(a.content||"").split(e.A5).filter(a=>!/^#{1,6}\s+/u.test(a.trim())).filter(a=>!/^\s*\|/u.test(a)).filter(a=>!/^\s*:?-{3,}:?/u.test(a)).join("\n").replace(/[|*_`<>#\s]/gu,"").length>=30),f=a.map(o).filter(a=>"error"===a.level&&p(a)),g=/缺少规划小节|小节生成未达标|小节内容补写未完成|空小节|小节只有标题|生成未完成|正文不足|主要施工内容小节缺失|部分章节生成失败|Writer 未完成|不得出现|疑似提示词指令标题|项目污染|跨章一致性/u,h=d?f.filter(a=>g.test(a.message)):f,i=[{key:"no_errors",label:"无阻断级校验错误",passed:0===h.length},{key:"basic_facts",label:"基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"structured_precision",label:"结构化精确参数已使用",passed:b.preciseFacts.length<e.mu||a.every(a=>"error"!==a.level||!e.Ab.test(a.message))},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))},{key:"no_project_contamination",label:"无项目污染和事实一致性阻断",passed:!a.some(a=>"error"===a.level&&e.Uv.test(a.message)&&p(a))},{key:"numeric_consistency",label:"跨章数值口径与资料一致",passed:!a.some(a=>"error"===a.level&&/跨章一致性冲突|跨章一致性缺口|跨章一致性复核/u.test(a.message)&&p(a))}];return{passed:0===h.length,blockingIssues:h,checklist:i}}function r(a){let b=[],c=a.split(e.A5);for(let a=0;a<c.length;a+=1){if(!e.w7.test(c[a]))continue;let d=[];for(;a<c.length&&e.w7.test(c[a]);)d.push(c[a]),a+=1;a-=1,d.some(a=>e.N3.test(a))&&b.push(d.join("\n"))}return b}function s(a){let b=[...a.matchAll(e.DB)],c=[];for(let d=1;d<b.length;d+=1){let f=b[d].index||0,g=b[d+1]?.index??a.length,h=a.slice(f,g);e.Ks.test(h)&&c.push({level:"warning",message:`第 ${d+1} 章可能重复出现基础信息`,suggestion:"如该信息与本章主题无关,建议合并到更合适的概况类章节,避免重复铺陈。"})}if(0===b.length)return c;let d=b[0].index||0,f=b[1]?.index??a.length,g=a.slice(d,f),h=g.search(e.jM);if(h<=0)return c;let i=g.slice(0,h).replace(e.Dc,""),j=[];for(let a of e.Y8)RegExp(`${a}\\s*[::]`,"u").test(i)&&j.push(a);return j.length>=3&&c.push({level:"warning",message:`基础信息表前重复叙述字段:${j.join("、")}`,suggestion:"基础信息已表格化时,表格前只保留一句引导语,不要重复逐项叙述名称、编号、范围、周期、质量等字段。"}),c}function t(a){let b=[],c=[];for(let b of e.ZH)a.includes(b)&&c.push(b);c.length>0&&b.push({level:"warning",message:`存在模板化前缀或套话:${c.join("、")}`,suggestion:"请删除“本节/本章将/以下从”等前缀,标题后直接进入对象、动作、措施、检查和闭环。"});let d=a.match(/OCR|提示词|绑定片段|后台|文件路径|识别错误|知识库证据|知识库已确认事实|通用兜底段落|兜底占位|兜底模板/giu);return d?.length&&b.push({level:"warning",message:`正文包含后台或资料处理话术:${[...new Set(d)].join("、")}`,suggestion:"建议改为正式文档语言,例如“资料文字不清”“资料口径不一致”“项目资料”,不得暴露后台处理过程。"}),b}function u(a){let b=[];for(let c of a){let a=(c.sections||[]).filter(Boolean),d=a.filter((b,c)=>a.indexOf(b)!==c);d.length>0&&b.push({level:"warning",message:`${c.title} 存在重复小节:${[...new Set(d)].join("、")}`,suggestion:"请保留用户需求、模板或显式大纲中真实需要的小节,删除重复项。"});let e=new Map;for(let b of a){let a=/劳动力|人员|工种/u.test(b)?"劳动力计划":/机械|设备|机具/u.test(b)?"机械设备计划":/材料|物资/u.test(b)?"材料物资计划":/冬季|雨季|高温|台风|大风/u.test(b)?"特殊气候措施":"";a&&e.set(a,[...e.get(a)||[],b])}for(let[a,d]of e)d.length>1&&b.push({level:"warning",message:`${c.title} 存在重复主题小节:${a}(${d.join("、")})`,suggestion:"请合并同类小节,只保留一个主表或主方案,其他位置采用引用或执行说明。"})}return b}function v(a){let b=e.HX.exec(a);if(!b)return[{level:"error",message:"缺少目录页",suggestion:"请在封面后生成“## 目录”,并按一级章父级、二级小节子级组织。"}];let c=0,d=0;for(let a of b[1].split(e.A5))e.ZT.test(a)&&e.EB.test(a)&&(c+=1,e.sr.test(a)&&(d+=1));return c>0&&0===d?[{level:"error",message:"目录二级小节未作为子级缩进",suggestion:"目录应为父子级导航:一级章单独成行,二级小节至少缩进两个空格列在所属章下方。"}]:[]}function w(a){return a.replace(/^#+\s*/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/[()]/gu,a=>"("===a?"(":")").replace(/[\s::.。;;,,、]+$/gu,"").replace(/的(?=保障体系|管理体系|控制体系|措施|方案|计划|要求)/gu,"").replace(/[\s()()::.。;;,,、-]/gu,"").trim()}function x(a){let b=function(a){let b=e.HX.exec(a);return b?b[1].split(e.A5).map(a=>/^\s*\d+\.\d+\s+(.+)$/u.exec(a.trim())).filter(a=>!!a).map(a=>w(a[1]||"")).filter(Boolean):[]}(a),c=[...a.matchAll(/^#{2,4}\s+(\d+\.\d+\s+.+)$/gmu)].map(a=>w(a[1]||"")).filter(Boolean);if(0===b.length||0===c.length)return[];let d=new Set(c),f=new Set(b),g=b.filter(a=>!d.has(a)),h=c.filter(a=>!f.has(a)),i=[];return g.length>0&&i.push({level:"error",message:`目录与正文不一致,目录小节未在正文中找到:${[...new Set(g)].join("、")}`,suggestion:"建议以最终清洗后的正文二级标题为准重新生成目录。"}),h.length>0&&i.push({level:"error",message:`目录与正文不一致,正文小节未进入目录:${[...new Set(h)].join("、")}`,suggestion:"建议重新生成目录,确保只收录正文二级小节,不收录三级小节。"}),i}function y(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,h.GQ)(b),d=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|注意事项))\s*$/u;return d.test(b)||d.test(c)}function z(a){let b=[...a.matchAll(/^#{2,6}\s+(.+)$/gmu)].map(a=>(0,h.GQ)(a[1]||"")).filter(y);return b.length>0?[{level:"error",message:`正文存在疑似提示词指令标题:${[...new Set(b)].slice(0,8).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题,目录也不得收录该类标题。"}]:[]}function A(a){let b=[],c=a.split(e.A5).map(a=>a.trim()).filter(a=>a&&!/^#{1,6}\s+/u.test(a)&&!/^\s*\|/u.test(a)&&!/^<div\b/iu.test(a)),d=c.find(a=>w(a).length<=1);d&&b.push({level:"warning",message:`正文存在孤立字或残缺段落:${d}`,suggestion:"请删除残缺行或重新生成所在小节。"});let f=c.find(a=>/[,、;:和与在为对将]$/u.test(a)||/(通过|包括|如下|主要包括)$/u.test(a));f&&b.push({level:"warning",message:`正文存在疑似截断句:${f}`,suggestion:"请补完整该段落,避免以连接词、逗号或冒号结尾。"});let g=c.find(a=>a.length>380);g&&b.push({level:"warning",message:`正文存在过长段落:${g}`,suggestion:"请拆分为多段或表格,改善导出版式和可读性。"});let h=c.find(a=>/\S.+(?:\s|[。;;])(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S.+(?:\s|[。;;])(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S/u.test(a)&&!/\b\d+\.\d+\s*(?:mm|cm|m|㎡|m2|kg|t|MPa|kPa|V|KV|kV|A)\b/iu.test(a));h&&b.push({level:"error",message:`正文存在列表项粘连同一行:${h.slice(0,120)}`,suggestion:"有序列表和无序列表必须逐项独占一行,确保 Markdown/PDF/DOCX 正确排版。"});let i=a.match(/(?:PDF\s*)?第\s*\d+\s*(?:[-—至到~~]\s*\d+)?\s*页|(?:图纸|清单|资料|文件|[\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24}(?:工程)?)\s*(?:[((]?\s*|(?:共|多达|约|合计)\s*)\d+\s*页|[\u4e00-\u9fa5A-Za-z0-9、及与和]{2,24}\s*(?:共|多达|约|合计)\s*\d+\s*页|\d+\s*页\s*(?:图纸|资料|文件|装饰|土建|加固|给排水|电气|智能化|消防)|\d+\s*页/iu)?.[0];i&&b.push({level:"error",message:`正文残留资料页码元信息:${i}`,suggestion:"正式投标正文应引用招标文件、施工图设计文件、工程量清单和相关专业图纸,不写 PDF 页码或资料页数。"});let j=c.find(a=>/仅作为内部事实提取依据|正式正文不得引用文件名|后台事实|内部事实/u.test(a));return j&&b.push({level:"error",message:`正文残留内部处理说明:${j.slice(0,120)}`,suggestion:"正式投标正文不得出现内部事实抽取、后台处理或文件名引用限制说明。"}),b}function B(a){let b=[],c=a.search(/^##\s+第[一二三四五六七八九十百千万\d]+章\s+/mu),d=[...(c>=0?a.slice(c):a.replace(/^##\s+目录[\s\S]*?(?=^##\s+第[一二三四五六七八九十百千万\d]+章\s+)/mu,"")).matchAll(/^##\s+(.+)$/gmu)].map(a=>(a[1]||"").trim()).filter(a=>"目录"!==a&&!/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(a)&&!/^附录/u.test(a)).map(a=>(0,h.GQ)(a));d.length>0&&b.push({level:"error",message:`正文存在非正式章二级标题:${[...new Set(d)].slice(0,8).join("、")}`,suggestion:"正文 ## 只允许用于“第X章”正式章标题;章内小节必须使用 ### X.Y。"});let e=[...a.matchAll(/^##\s+(第[一二三四五六七八九十百千万\d]+章\s+.+)$/gmu)];for(let c=0;c<e.length;c+=1){let d=e[c].index||0,f=e[c+1]?.index??a.length,g=[...a.slice(d,f).matchAll(/^###\s+\d+\.\d+\s+(.+)$/gmu)].map(a=>(0,h.GQ)(a[1]||"")),i=(0,h.GQ)((e[c][1]||"").replace(/^第[一二三四五六七八九十百千万\d]+章\s*/u,""));1===g.length&&w(g[0])===w(i)&&b.push({level:"error",message:`章节只有一个且与章名同名的小节:${e[c][1]}`,suggestion:"应拆分为多个业务小节,不能用章标题重复作为唯一二级小节。"})}return b}function C(a){let b=[];/按审批确认执行/u.test(a)&&b.push({level:"error",message:"表格存在自动兜底污染内容:按审批确认执行",suggestion:"正式投标表格不得使用通用兜底短语,应保留真实业务内容或删除该行。"});let c=[];for(let b of a.matchAll(/\|\s*信息项\s*\|\s*内容\s*\|/gu)){let d=a.slice(b.index||0),f=[];for(let a of d.split(e.A5)){if(f.length>0&&!e.w7.test(a))break;f.push(a)}c.push(f.join("\n"))}let d=c.filter(a=>/项目名称|招标人|建设单位|发包人|建设地点|招标范围|计划工期|合同估算价|质量标准/u.test(a)).length;d>1&&b.push({level:"error",message:`项目基础信息类表格重复:${d} 处`,suggestion:"项目名称、招标人、建设地点、工期、质量等基础信息只能集中输出一次。"});let f=a.match(/^\|\s*---\s*\|\s*---\s*\|\s*$/gmu)||[];for(let c of(f.length>20&&b.push({level:"error",message:`表格分隔线异常重复:${f.length} 行`,suggestion:"请修复表格规范化逻辑,禁止把数据行拆成多个碎表。"}),r(a))){let a=c.split(e.A5).filter(a=>e.w7.test(a));if(a.length<2)continue;if(!e.N3.test(a[1]||"")){b.push({level:"error",message:`表格分隔线位置不规范:${a[0]||""}`,suggestion:"Markdown 表格必须紧跟表头输出分隔线,例如 |---|---|,中间不得插入正文或其他管道行。"});continue}let d=a.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim())),f=d[0]||[],g=f.filter(a=>/^(?:列|字段|内容|备注)\d+$/u.test(a));g.length>0&&b.push({level:"error",message:`表格存在泛化表头:${g.join("、")}`,suggestion:"正式投标表格必须使用业务字段表头,不得出现“列5/字段1/内容2”等临时表头。"});let h=f.length;d.find((a,b)=>1!==b&&a.length!==h)&&b.push({level:"error",message:`表格列数不一致:${f.join("、")}`,suggestion:"请统一表头和数据行列数;不应通过自动填充兜底词修补表格。"})}return b}function D(a){return a.split(e.A5).filter(a=>!/^#{1,6}\s+/u.test(a.trim())).filter(a=>!/^\s*\|/u.test(a)).filter(a=>!/^\s*:?-{3,}:?/u.test(a)).filter(a=>!/^<\/?div\b/iu.test(a.trim())).join("\n").replace(/[|*_`<>-]/gu,"").replace(e.ug,"").length}function E(a){let b=[...a.matchAll(/^(#{3,4})\s+(.+)$/gmu)];return b.map((c,d)=>{let e=c[1].length,f=(c.index||0)+c[0].length,g=b.slice(d+1).find(a=>a[1].length<=e),h=g?.index??a.length,i=(c[2]||"").trim();return{rawTitle:i,title:w(i),level:e,body:a.slice(f,h)}}).filter(a=>a.title&&(3===a.level||4===a.level))}function F(a,b,c,d,f){let g=D(d),h=e.w7.test(d)&&d.split(e.A5).some(a=>e.N3.test(a)),i=D(d.split("\n").filter(a=>!e.w7.test(a)&&!e.N3.test(a)).join("\n").replace(/^#{1,6}\s+.+$/gmu,""));if(/\[WRITER_MISSING_SECTION\]|Writer 未完成/u.test(d))return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 小节内容补写未完成:${b}`};if(/【本小节生成未达标,需重新生成】/u.test(d))return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 小节生成未达标:${b}`};if(/项目基本信息|基本信息|工程概况|项目概况|工程概述|项目概述/u.test(b)&&(h||g>=40)||/^附录[一二三四五六七八九十A-Z\d]/u.test(b)&&h)return;let j=/清单|配置|汇总|一览|明细|计划|进度|节点|安排/u.test(b)||/表[^,。;:\s]{0,6}$/u.test(b);if(!(h&&j&&Math.max(0,d.split(e.A5).filter(a=>e.w7.test(a)&&!e.N3.test(a)).length-1)>=2)){if(h&&i<20)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:f?`${a} 只有标题或表格无正文:${b}`:`${a} 小节只有标题或表格无正文:${b}`};if(!(g>=80)||!(i>=20)){if(0===g)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"empty",planned:f,message:`${a} 空小节:${b}`};if(g<180)return{chapterTitle:a,sectionTitle:b,level:c,bodyLength:g,reason:"too_short",planned:f,message:`${a} ${f?"规划小节":"正文小节"}正文过短:${b}`}}}}function G(a,b){let c=[],d=new Set;for(let e of b){let b=e.content?.trim()?e.content:a;for(let a of(e.sections||[]).filter(a=>!/^(?:施工概况|施工流程|施工方法)$/u.test(w(a))&&!/^附录/u.test(a.trim()))){let f=w(a),g=function(a,b){let c=E(a).filter(a=>(function(a,b){let c=w(a),d=w(b);if(!c||!d)return!1;if(c===d||c.includes(d)||d.includes(c))return!0;let e=/项目概况|主要施工方案|新技术新材料|工程重点难点|重点难点|危大工程|保障体系|安全保障|工期|质量|安全生产|应急预案|资源|人材机|材料|机械|劳动力|进度|关键线路|交通疏导|成品保护|深化设计|验收/gu,f=new Set(c.match(e)||[]),g=new Set(d.match(e)||[]),h=[...f].filter(a=>g.has(a)).length;return h>=2||1===Math.min(f.size,g.size)&&1===h&&16>=Math.max(c.length,d.length)})(a.rawTitle,b));return c.length<=1?c[0]:c.map(a=>({item:a,gap:F("",b,a.level,a.body,!0),textLength:D(a.body)})).sort((a,b)=>{let c=a.gap&&"empty"===a.gap.reason?1:0,d=b.gap&&"empty"===b.gap.reason?1:0;return c!==d?c-d:b.textLength-a.textLength})[0]?.item}(b,a),h=`${e.title}|${f}|planned`;if(!g){c.push({chapterTitle:e.title,sectionTitle:a,level:3,bodyLength:0,reason:"missing_planned_section",planned:!0,message:`${e.title} 缺少规划小节:${a}`}),d.add(h);continue}let i=F(e.title,a,g.level,g.body,!0);i&&c.push(i),d.add(h)}for(let a of E(b)){let b=`${e.title}|${a.title}|actual`,f=`${e.title}|${a.title}|planned`;if(d.has(b)||d.has(f))continue;let g=F(e.title,a.title,a.level,a.body,!1);g&&"empty"===g.reason&&c.push(g),d.add(b)}}return c}function H(a,b){return G(a,b).filter(a=>"empty"===a.reason||"missing_planned_section"===a.reason).map(a=>({level:"error",message:a.message,suggestion:"missing_planned_section"===a.reason?"必须补充该规划小节正式正文,不得缺节导出。":"必须补充与该小节相关的材料事实和必要内容,达到正文完整度要求。"}))}function I(a){return`${a.fieldName||a.key} ${(0,k.lG)(a.value)}`.replace(/\s+/gu," ").trim()}function J(a){let b=new Set;for(let c of[/\d+\s*日历天(?!内)/gu,/(?:计划工期|合同工期|总工期|工期|施工周期)[^\n。;;]{0,12}\d+\s*天/gu,/(?:计划工期|合同工期|总工期|工期|施工周期)[^\n。;;]{0,12}\d+\s*(?:个月|月)/gu])for(let d of a.matchAll(c)){let a=d[0].match(/\d+\s*(?:日历天|天|个月|月)/u)?.[0]?.replace(/\s+/gu,"");a&&b.add(a)}return[...b]}function K(a,b,c){let d=[],e=new Set,f=RegExp(`(?:${b.source})(?:[^\\n。;;,,]{0,14}?)(\\d{2,}(?:[.,]\\d+)?\\s*万?)\\s*(${c.source})`,"giu");for(let b of a.matchAll(f)){let a=b[1].replace(/[,,]/gu,"").replace(/\s+/gu,""),c=b[2],f=`${a}|${c}`;!a||e.has(f)||(e.add(f),d.push({value:a,unit:c}))}return d}function L(a){let b=a.value.replace(/[,,]/gu,"").trim(),c=/^([\d.]+)万/u.exec(b),d=c?1e4*Number(c[1]):Number(b);return Number.isFinite(d)?/亿元/u.test(a.unit)?1e8*d:/万元/u.test(a.unit)?1e4*d:d:NaN}let M=/(?<![地上地下门卫室值班室配电室配电房泵房水泵房锅炉房公厕车库车棚岗亭传达室警卫室样板房售楼处门房])总?建筑面积|总?建设规模/u,N=/㎡|m²|m2|平方米/u,O=/合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价/u,P=/万元|亿元/u;function Q(a,b,c){let d=[],e=a=>c?.find(b=>b.kind===a&&b.resolution)?.resolution,f=a=>{let b=/(\d+(?:\.\d+)?)\s*(㎡|m²|m2|平方米|万元|亿元)/u.exec(a);return b?{value:b[1],unit:b[2]}:void 0},g=e("duration")??b.schedule.map(I).find(a=>/\d+\s*(?:日历天|天|个月|月)|计划工期|合同工期/u.test(a)),h=b.quality.map(I).find(a=>/质量|合格|优良/u.test(a));if(g){let b=J(g)[0],c=J(a.split("\n").filter(a=>!/^\s*\|/u.test(a.trim())).join("\n")),e=b?c.filter(a=>a!==b&&/日历天/u.test(a)):[];b&&e.length>=2&&d.push({level:"warning",message:`跨章一致性冲突:正文出现与资料工期不一致的表述 ${e.slice(0,6).join("、")}`,suggestion:`请统一使用资料中的工期口径:${g}`})}h&&!/质量标准|质量目标|合格|优良/u.test(a)&&d.push({level:"error",message:"跨章一致性缺口:正文未稳定体现资料中的质量目标",suggestion:`请在工程概况、质量保证和验收相关章节统一体现:${h}`});let i=e("area"),j=i??b.project.map(I).find(a=>/建设规模|建筑面积/u.test(a));if(j){let b=i?f(i):K(j,M,N)[0],c=K(a,M,N);if(b){let a=c.filter(a=>L(a)!==L(b));a.length>=1&&d.push({level:"error",message:`跨章一致性冲突:正文出现与资料建设规模不一致的表述 ${a.slice(0,6).map(a=>`${a.value}${a.unit}`).join("、")}`,suggestion:`请统一使用资料中的建设规模口径:${j.slice(0,80)}`})}}let k=e("cost"),l=k??b.project.map(I).find(a=>/合同估算|投资估算|最高投标限价|招标控制价|总投资|工程造价/u.test(a));if(l){let b=k?f(k):K(l,O,P)[0],c=K(a,O,P);if(b){let a=c.filter(a=>L(a)!==L(b));a.length>=1&&d.push({level:"error",message:`跨章一致性冲突:正文出现与资料估算价不一致的表述 ${a.slice(0,6).map(a=>`${a.value}${a.unit}`).join("、")}`,suggestion:`请统一使用资料中的估算价口径:${l.slice(0,80)}`})}}return d}let R=/找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层|隔热层|隔离层/gu,S=/铺设|施工|浇筑|粘贴|铺贴|涂抹|完成|进行|待|设置|铺装|挂网|喷涂|灌注/u;function T(a){let b=[],c=[...a.matchAll(R)],d=[],e=(a,b)=>d.some(([c,d])=>a<d&&b>c),f=(a,c,f,g,h,i)=>{let j=[...a.matchAll(f)];for(let f of"first"===g?j:[...j].reverse()){let j=c+(f.index??0),k=j+f[0].length;if(e(j,k))continue;let l="first"===g?a.slice(0,f.index??0):a.slice((f.index??0)+f[0].length);if(!S.test(l)){d.push([j,k]),b.push({layer:h,span:[j,k],raw:f[0],kind:i});return}}};for(let b=0;b<c.length;b+=1){let d=c[b],e=d[0],g=d.index??0,h=g+e.length,i=c[b+1]?.index,j=void 0===i?Math.min(a.length,h+90):i,k=a.slice(h,j),l=b>0?(c[b-1].index??0)+c[b-1][0].length:Math.max(0,g-40),m=a.slice(l,g);f(k,h,/(\d+:\d+(?:\.\d+)?)/gu,"first",e,"ratio"),f(m,l,/(\d+:\d+(?:\.\d+)?)/gu,"last",e,"ratio"),f(k,h,/(\d+(?:\.\d+)?)\s*mm/gu,"first",e,"thickness"),f(m,l,/(\d+(?:\.\d+)?)\s*mm/gu,"last",e,"thickness")}return b}function U(a){let b=[],c=new Set;for(let d of T(a)){let a="ratio"===d.kind?d.raw.match(/(\d+:\d+(?:\.\d+)?)/u)?.[1]:void 0,e="thickness"===d.kind?d.raw.match(/(\d+(?:\.\d+)?)/u)?.[1]:void 0,f=e?Number(e):void 0,g=`${d.layer}|${a||""}|${f??""}`;c.has(g)||(c.add(g),b.push({layer:d.layer,ratio:a,thickness:f}))}return b}function V(a,b){let c=[],d=U([...b.specifications,...b.quality,...b.preciseFacts,...b.bills].map(I).join("\n"));if(0===d.length)return c;let e=new Map;for(let a of d){let b=e.get(a.layer)||[];b.push(a),e.set(a.layer,b)}let f=U(a),g=new Set;for(let[a,b]of e){let d=[...new Set(b.map(a=>a.ratio).filter(Boolean))],e=[...new Set(b.map(a=>a.thickness).filter(a=>Number.isFinite(a)))];for(let b of f.filter(b=>b.layer===a)){if(1===d.length&&b.ratio&&b.ratio!==d[0]){let e=`ratio|${a}|${b.ratio}`;g.has(e)||(g.add(e),c.push({level:"error",message:`工序规格冲突:正文${a}配比 ${b.ratio} 与资料口径 ${d[0]} 不一致`,suggestion:`请将${a}配比统一为资料口径 ${d[0]},禁止改写资料规格。`}))}if(1===e.length&&Number.isFinite(b.thickness)&&Math.abs(b.thickness-e[0])>=1){let d=`thickness|${a}|${b.thickness}`;g.has(d)||(g.add(d),c.push({level:"error",message:`工序规格冲突:正文${a}厚度 ${b.thickness}mm 与资料口径 ${e[0]}mm 不一致`,suggestion:`请将${a}厚度统一为资料口径 ${e[0]}mm。`}))}}}return c}function W(a,b,c){let d=function(a,b){let c=[...a.specifications,...a.quality,...a.preciseFacts,...a.bills].map(I).join("\n"),d=new Map;for(let a of U(c)){let b=d.get(a.layer)||{ratios:[],thicknesses:[]};a.ratio&&!b.ratios.includes(a.ratio)&&b.ratios.push(a.ratio),Number.isFinite(a.thickness)&&!b.thicknesses.includes(a.thickness)&&b.thicknesses.push(a.thickness),d.set(a.layer,b)}let e=new Map;for(let[a,b]of d)(1===b.ratios.length||1===b.thicknesses.length)&&e.set(a,{ratio:1===b.ratios.length?b.ratios[0]:void 0,thickness:1===b.thicknesses.length?b.thicknesses[0]:void 0});let f=a=>b?.find(b=>b.kind===a&&b.resolution)?.resolution,g=a=>{let b=/(\d+(?:\.\d+)?)\s*(㎡|m²|m2|平方米|万元|亿元)/u.exec(a);return b?{value:b[1],unit:b[2]}:void 0},h=f("area"),i=h??a.project.map(I).find(a=>/建设规模|建筑面积/u.test(a)),j=f("cost"),k=j??a.project.map(I).find(a=>/合同估算|投资估算|最高投标限价|招标控制价|总投资|工程造价/u.test(a));return{specTargets:e,scaleTarget:i?h?g(h):K(i,M,N)[0]:void 0,costTarget:k?j?g(j):K(k,O,P)[0]:void 0}}(b,c);if(0===d.specTargets.size&&!d.scaleTarget&&!d.costTarget)return{fixedCount:0,details:[]};let e=0,f=[];for(let b of a){let a=function(a,b){let c=[];for(let d of T(a)){let a=b.specTargets.get(d.layer);if(a){if("ratio"===d.kind&&a.ratio){let b=d.raw.match(/(\d+:\d+(?:\.\d+)?)/u)?.[1];b&&b!==a.ratio&&c.push({start:d.span[0],end:d.span[1],replacement:d.raw.replace(/(\d+:\d+(?:\.\d+)?)/u,a.ratio),detail:`${d.layer}配比 ${b}→${a.ratio}`})}if("thickness"===d.kind&&Number.isFinite(a.thickness)){let b=Number(d.raw.match(/(\d+(?:\.\d+)?)/u)?.[1]);Number.isFinite(b)&&Math.abs(b-a.thickness)>=1&&c.push({start:d.span[0],end:d.span[1],replacement:d.raw.replace(/(\d+(?:\.\d+)?)/u,String(a.thickness)),detail:`${d.layer}厚度 ${b}mm→${a.thickness}mm`})}}}let d=(b,d,e,f)=>{if(!b)return;let g=RegExp(`(?:${d.source})(?:[^\\n。;;,,]{0,14}?)(\\d{2,}(?:[.,]\\d+)?\\s*万?)\\s*(${e.source})`,"giu");for(let d of a.matchAll(g)){let a={value:d[1].replace(/[,,]/gu,"").replace(/\s+/gu,""),unit:d[2]};if(L(a)===L(b))continue;let e=(d.index??0)+d[0].indexOf(d[1]),g=e+d[1].length;c.some(a=>a.start<g&&a.end>e)||c.push({start:e,end:g,replacement:b.value,detail:`${f} ${a.value}${a.unit}→${b.value}${a.unit}`})}};if(d(b.scaleTarget,M,N,"建设规模"),d(b.costTarget,O,P,"估算价"),0===c.length)return{content:a,fixedCount:0,details:[]};c.sort((a,b)=>b.start-a.start);let e=a;for(let a of c)e=e.slice(0,a.start)+a.replacement+e.slice(a.end);return{content:e,fixedCount:c.length,details:c.map(a=>a.detail)}}(b.content,d);a.fixedCount>0&&(b.content=a.content,e+=a.fixedCount,f.push(...a.details))}return{fixedCount:e,details:f}}function X(a){let b=[],c=/(?:三检制|三级教育|三级管理|5S|24\s*小时|每日|每周|每月|一次|两次)/gu;for(let d of a){let a=[...new Set(d.content.match(c)||[])];a.length>=3&&!/责任人|检查记录|整改|复查|验收|台账|交底|巡查|闭环/u.test(d.content)&&b.push({level:"warning",message:`${d.title} 管理措施数字较多但缺少执行闭环:${a.slice(0,8).join("、")}`,suggestion:"这些管理数字可以保留,但需要补充责任主体、检查频次、记录台账、整改复查和闭环要求。"})}return b}function Y(a){let b=/(?:加强组织领导|严格执行规范|落实责任制度|确保工程质量|强化过程管理|提高思想认识|完善管理体系|形成闭环管理)/gu,c=[];for(let d of a)(d.content.match(b)||[]).length>=6&&!/材料|工序|验收|复验|节点|风险|交底|隐蔽|检验批|进场/u.test(d.content)&&c.push({level:"error",message:`${d.title} 存在较多未绑定项目事实和工序控制点的泛化套话`,suggestion:"请替换为结合资料事实、施工对象、工序控制、验收资料和整改闭环的专业内容。"});return c}function Z(a,b){let c=[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications].map(I).join("\n");if(80>(0,f.V7)(c))return[];let d=[],e=(0,g.K3)(c),h=[],i=[],j=[];for(let b of(0,g.zn)(a)){if(/^\d+\.\d+$/u.test(b))continue;let c=(0,g.K3)(b),d=a.indexOf(b);if(d<0)continue;let f=a.lastIndexOf("\n",d-1)+1,k=a.slice(f,0>a.indexOf("\n",d)?a.length:a.indexOf("\n",d));if(/^\s*\|/u.test(k.trim()))continue;let l=a.slice(Math.max(0,d-36),Math.min(a.length,d+b.length+36)),m=function(a,b){let c=`${a} ${b}`;return/三检制|三级|5S|24\s*小时|每日|每周|每月|一次|两次|责任制|制度/u.test(c)||/暂列金额|暂估价|报价|单价|合价|综合单价|税率|增值税|预留金/u.test(c)||/^\d+(?:\.\d+)?(?:月|年)$/u.test(a)&&/开工|竣工|日期|计划|年|月/u.test(b)?"soft":/总工期|计划工期|合同工期|日历天/u.test(c)||/最高投标限价|招标控制价|合同估算价|投资估算|报价|金额|万元|元/u.test(c)||/(?:建设规模|总建筑面积|总用地面积|总占地面积).{0,16}(?:m²|㎡|m2|平方米)/u.test(c)?"scope":/(?:工程量|清单|建设规模|建筑面积|长度|材料|设备|规格|型号).{0,24}(?:m²|㎡|m3|m³|米|吨|套|台|个|项|%)/u.test(c)?"spec":/GB\s*\d|JGJ\s*\d|CJJ\s*\d|ISO\s*\d|GB\/T|CECS\s*\d|DL\s*\d|YB\s*\d|SH\s*\d|SJ\/T\s*\d|CJJ\/T\s*\d|DB\s*\d/u.test(c)?"soft":/标准|规范|编号/u.test(c)?"spec":"soft"}(b,l);"scope"!==m||e.includes(c)||h.push(b),"spec"!==m||e.includes(c)||i.push(b),"soft"!==m||e.includes(c)||j.push(b)}let l=[...new Set(h)],m=[...new Set(i)],n=[...new Set(j)];return l.length>=1&&d.push({level:"error",message:`生成后事实反查失败:正文出现资料事实主表中未找到的总量口径数字 ${l.slice(0,8).join("、")}`,suggestion:"总量口径数字(工期/金额/建设规模)必须与资料一致;请删除或改写为资料确认的口径,禁止编造。"}),m.length>=2&&d.push({level:"warning",message:`生成后事实反查提示:正文出现资料事实主表中未找到的规格明细数字 ${m.slice(0,8).join("、")}`,suggestion:"建议复核这些规格是否来自管理制度、规范要求或资料事实;如无依据,改为定性管理要求。"}),n.length>=6&&d.push({level:"warning",message:`生成后事实反查提示:正文出现较多未在资料事实主表中反查到的管理数字 ${n.slice(0,10).join("、")}`,suggestion:"请确认这些管理数字属于通用制度、规范要求或项目资料事实;如无依据,建议改为定性管理要求。"}),/质量目标|质量标准/u.test(a)&&b.quality.length>0&&!b.quality.some(b=>a.includes((0,k.lG)(b.value).slice(0,18)))&&d.push({level:"warning",message:"生成后事实反查提示:正文质量目标表述未明显匹配质量事实主表",suggestion:"请使用资料中的质量目标原文或等价表述。"}),d}function $(a){let b=[];for(let d of a){var c;let a=d.content;if(800>(0,f.V7)(a))continue;let e=/资料|招标|清单|图纸|标准|范围|工期|质量|验收/u.test(a)?2:+!!/项目|工程|要求/u.test(a),g=/首先|其次|同时|最后|一是|二是|流程|步骤|阶段|组织顺序/u.test(a)?2:+!!/并且|同时|然后|因此/u.test(a),h=/控制点|关键线路|复验|隐蔽验收|风险|交底|检验批|整改|闭环/u.test(a)?2:+!!/措施|要求|管理|检查/u.test(a),i=/责任人|检查|记录|验收|整改|复查|进场|调配|应急/u.test(a)?2:+!!/落实|执行|安排|组织/u.test(a),j=/本项目|本工程|招标范围|工程量|建设地点|计划工期|质量目标/u.test(a)?2:+!!/项目|工程/u.test(a),k=/工期|质量|安全|资源|验收/u.test(a)?2:+!!/目标|要求/u.test(a),l={factuality:e,structure:g,depth:h,executable:i,specificity:j,consistency:k},m=e+g+h+i+j+k,n=(c=d.title,/概况|工程|项目/u.test(c)?{min:5,focus:"事实依据、项目特异性"}:/部署|总体|组织/u.test(c)?{min:6,focus:"组织结构、可执行闭环、跨章一致性"}:/进度|工期/u.test(c)?{min:6,focus:"进度结构、工期一致性、纠偏机制"}:/质量/u.test(c)?{min:6,focus:"质量深度、验收复验、资料闭环"}:/安全|文明|危大|风险/u.test(c)?{min:6,focus:"风险覆盖、应急响应、检查整改"}:/资源|材料|设备|劳动力/u.test(c)?{min:5,focus:"资源依据、进场调配、进度支撑"}:{min:4,focus:"事实依据、专业深度、可执行性"});if(m<n.min){let a=Object.entries(l).filter(([,a])=>a<1).map(([a])=>a).join("、")||n.focus;b.push({level:"error",message:`${d.title} 专业评分不足:${m}/12,薄弱维度:${a}`,suggestion:`请按章节任务卡补齐${n.focus},并写出资料依据、实施流程、专业控制点和检查整改闭环。`})}}return b}function _(a){let b=[{re:/进度|工期/u,need:/关键线路|穿插|纠偏|资源保障|节点|动态调整/u,message:"进度工期章节缺少关键线路、穿插施工或纠偏保障内容"},{re:/质量/u,need:/材料.*验收|复验|隐蔽验收|整改.*复验|质量.*资料|检验批/u,message:"质量章节缺少材料验收复验、隐蔽验收或整改复验闭环"},{re:/安全|文明|危大|风险/u,need:/风险|临电|消防|应急|检查.*整改|文明施工|人员|设备/u,message:"安全文明章节缺少风险识别、现场控制或应急检查闭环"},{re:/资源|材料|设备|劳动力/u,need:/进场|验收|调配|保管|供应|投入计划/u,message:"资源章节缺少进场、验收、调配或保管计划"},{re:/施工|工艺|技术|方案/u,need:/准备|流程|工艺|控制点|验收|交底/u,message:"施工技术章节缺少施工准备、工艺流程、控制点或验收要求"}],c=[];for(let d of a){let a=d.content;for(let e of b)e.re.test(d.title)&&(0,f.V7)(a)>=600&&!e.need.test(a)&&c.push({level:"error",message:`${d.title}:${e.message}`,suggestion:"请按专业任务卡定向补写该章节,补齐可实施的控制措施、资料依据和闭环要求。"})}return c}function aa(a,b){return!!(/万元|元|报价|单价|合价|综合单价|预留金|税率|增值税|利润|结算/u.test(`${a} ${b}`)||/OCR|识别错误|乱码|无法确认|疑似|不确定|语义断裂|页码|目录/u.test(b)||/^\d+$/.test(a)&&10>Number(a)||/之日起.{0,8}天内|天内.{0,10}(?:发出|提交|通知|回复|答复|完成|开工|竣工|报送|支付|更换)|天以上|天及以上|‰|暂扣|履约保证金|通过后.{0,6}天|因发包人原因|因承包人原因|未能按时|逾期|违约金/u.test(b))}function ab(a,b){let c=0;for(let d of a)b.includes(d.replace(e.ug,""))&&(c+=1);return c}let ac=/日历天|个月|㎡|m²|m3|m³|MPa|kPa|kN|GB\/T|GB|JGJ|ISO|DN|φ|Φ|米\/秒|天$/u;function ad(a,b,c=[]){let d=[],f=a.replace(e.ug,""),g=function(a){let b=new Set;for(let c of a)for(let a of c.evidence||[]){if(/bill_of_quantities|boq/u.test(`${a.roleId||""}`))continue;let c="string"==typeof a.content?a.content:"";for(let a of c.matchAll(e.No)){let d=a[0].trim();if(!d||/^\d{4}\s*年$/u.test(d)||/^\d{1,2}\s*月$/u.test(d))continue;let e=a.index||0,f=c.slice(Math.max(0,e-40),e+d.length+40);aa(d,f)||b.add(d)}}return[...b]}(c),h=g.length>=e.mu?g:function(a){let b=new Set;for(let c of a.preciseFacts){if("bill_of_quantities"===c.roleId)continue;let a=`${c.processingType||""} ${c.roleId} ${c.sourceFile}`;if(!e.FM.test(a)&&"precise_fact"!==c.roleId)continue;let d=`${c.key} ${c.fieldName||""} ${c.value}`;for(let a of d.matchAll(e.No)){let c=a[0].trim();aa(c,d)||b.add(c)}}return[...b]}(b),i=ab(h,f);h.length>=e.mu&&i/h.length<e.tg&&d.push({level:"warning",message:`可靠精确参数使用不足:${i}/${h.length}`,suggestion:"请将资料中可靠的规格、参数、数量、时间、比例和标准编号写入对应章节;商务金额、单价、税率、预留金不得写入正文。"});let j=function(a){let b=[...a].sort((a,b)=>a.localeCompare(b,"zh")),c=b.filter(a=>ac.test(a)),d=b.filter(a=>!ac.test(a));return[...c.slice(0,8),...d.slice(0,2)].slice(0,10)}(h);if(j.length>=6){let a=ab(j,f);if(a/j.length<.5){let b=j.filter(a=>!f.includes(a.replace(e.ug,""))).slice(0,3);d.push({level:"error",message:`可靠精确参数使用不足:关键参数抽查 ${a}/${j.length}${b.length?`(缺失如 ${b.join("、")})`:""}`,suggestion:"请将资料中的关键工程参数(工期、面积、强度等级、材料规格、规范编号等)写入正文对应章节,不得因参数总量达标而遗漏核心参数。"})}}return b.bills.length>0&&!e.pP.test(a)&&d.push({level:"error",message:"正文未体现结构化数据资料",suggestion:"请从表格、列表或明细中提取对象、单位、数量、规格和关键参数补入对应章节。"}),b.drawings.length>0&&!e._U.test(a)&&d.push({level:"error",message:"正文未体现设计/方案/说明类资料",suggestion:"请从设计、方案或说明资料中提取对象、流程、节点、做法、配置、规则和标准要求。"}),d}function ae(a,b,c){let d=[],e=c.tables||[];if(0===e.length)return d;let f=a.replace(/\s+/gu,"").toLowerCase(),g=0,h=0,i=[];for(let a of e){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|^名称$|清单项|分部分项|项目特征/u.test(a)),d=b.findIndex(a=>/项目编码|编码|编号/u.test(a)),e=b.findIndex(a=>/^工程量$|^数量$/u.test(a));for(let b of a.rows){g+=1;let a=c>=0?(b[c]||"").replace(/\s+/gu,""):"",j=d>=0?(b[d]||"").replace(/\s+/gu,""):"",k=e>=0?(b[e]||"").replace(/\s+/gu,""):"",l=a.length>=3?a.slice(0,Math.min(a.length,16)):"",m=j.length>=3?j.slice(0,Math.min(j.length,12)):"",n=l&&f.includes(l),o=m&&f.includes(m);n||o?h+=1:a.length>=3&&i.push(`${a.slice(0,40)}${k?` ${k}`:""}(未落位)`)}}if(g>0){let a=h/g,b=i.length>0?`未落位项(共${i.length}项):${i.slice(0,12).join(";")}${i.length>12?` 及其他${i.length-12}项`:""}`:"";a<.3?d.push({level:"warning",message:`清单项落位严重不足:${h}/${g} 项(${Math.round(100*a)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。${b}`}):a<.6&&d.push({level:"warning",message:`清单项落位不足:${h}/${g} 项(${Math.round(100*a)}%)`,suggestion:`建议补充落位以下清单项:${b}`})}return d}function af(a,b){let c=[],d=b.drawings||[];if(0===d.length)return c;let e=a.replace(/\s+/gu,"").toLowerCase(),f=[...new Set(d.map(a=>a.sourceFile||"").filter(Boolean))],g=0,h=[];for(let a of f){let b=a.replace(/\.[^.]+$/u,"").replace(/[/\\]/gu,"").toLowerCase(),c=a.split("/").pop()||a;(b.length>=3?e.includes(b.slice(0,Math.min(b.length,12))):/图纸|设计|说明|节点|做法|构造/u.test(e))?g+=1:h.push(c)}if(f.length>0){let a=g/f.length;a<.25?c.push({level:"warning",message:`图纸引用严重不足:${g}/${f.length} 份图纸被正文引用(${Math.round(100*a)}%)`,suggestion:`建议将图纸中的设计说明、构造做法、材料规格和设备参数写入对应章节。未引用图纸:${h.slice(0,5).join("、")}`}):a<.5&&c.push({level:"warning",message:`图纸引用不足:${g}/${f.length} 份(${Math.round(100*a)}%)`,suggestion:`建议补充引用:${h.slice(0,5).join("、")}`})}return c}function ag(a){let b=[];for(let c of(/【本小节生成未达标,需重新生成】/u.test(a)&&b.push({level:"error",message:"生成未完成:存在未达标小节,需要重新生成或补写后才能导出",suggestion:"请重新生成未达标小节,禁止将占位内容作为正式正文。"}),e.IA))c.test(a)&&b.push({level:"warning",message:`存在占位式表达:${c.source}`,suggestion:"请改写为来自资料的准确事实;资料确实未提供时,改写为正式管理措施,不留空值或“见资料/按文件”。"});return b}function ah(a,b){for(let c of b)try{if(RegExp(c,"iu").test(a))return!0}catch{if(a.includes(c))return!0}return!1}function ai(a,b){let c=`${b.name} ${b.category} ${b.outputTitle} ${b.description}`,f=[];for(let a of(0,d.V)().autoSpecGates)ah(c,a.templateMatchers)&&f.push(a);if(0===f.length)return[];let g=[],h=r(a).length,i=0;for(let b of f){for(let c of(i=Math.max(i,b.minTables||0),b.requiredTexts))a.includes(c)||g.push({level:"warning",message:`配置要求缺少必要内容:${c}`,suggestion:"请按当前模板匹配的专业规则补齐必要内容。"});for(let c of b.forbiddenTexts)(function(a,b){let c="见图纸"===b||"按图纸"===b?["目录","清单","索引","汇总"]:[],d=0;for(;;){let e=a.indexOf(b,d);if(e<0)return!1;let f=a.slice(e+b.length);if(c.some(a=>f.startsWith(a))){d=e+b.length;continue}return!0}})(a,c)&&g.push({level:"error",message:`配置要求不得出现:${c}`,suggestion:"请根据当前模板匹配的专业规则清理正文污染内容。"})}return e.bu.test(a)&&g.push({level:"error",message:"正式正文存在 Markdown 标题符号 #",suggestion:"导出正文应去除 Markdown 标题符号,保留正式标题文字。"}),i&&h<i&&g.push({level:"warning",message:`配置要求正式表格不足:${h}/${i}`,suggestion:"如用户提示词或章节内容要求表格,应按项目资料补充对应表格本体。"}),g}function aj(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`,c=new Set;for(let a of(0,d.V)().autoSpecGates)if(ah(b,a.templateMatchers))for(let b of a.requiredTexts)b&&c.add(b);return[...c]}function ak(a,b,c,d,g,h,j){var k;if(!a)return b;let l=[...b],m=function(a){let b=[...a.project,...a.schedule,...a.quality,...a.safety,...a.resources];for(let c of Object.values(a.schemaFacts))b.push(...c);return b}(c),n=function(a,b){let c=new Set;for(let a of b)c.add(a.key),a.fieldName&&c.add(a.fieldName);for(let b of a.tables){for(let a of b.headers)c.add(a);for(let a of b.rows)for(let b of a)c.add(b)}return c}(c,m),o=new Set(d.map(a=>a.title));for(let b of a.factFields){if(!b.required||(k=b.name,/国家法律法规|地方法规|规章|规范标准|标准规范|行业标准|现行规范|法律法规|合规|施工方法|工艺流程|质量控制|安全文明|应急|劳动力|材料投入|机械设备|检测仪器|关键节点/u.test(k)))continue;let a=c.schemaFacts[b.id]||[],e=!1,f=!b.sourceRoleIds?.length||a.some(a=>b.sourceRoleIds?.includes(a.roleId));for(let a of d){if(e&&f)break;for(let c of a.evidence)!e&&!a.missingFacts.includes(b.name)&&(0,i.I2)(c,b)&&(e=!0),!f&&(0,i.I2)(c,b)&&(f=!0)}0!==a.length||n.has(b.name)||e||l.push({level:"warning",message:`系统暂未从知识库确认必需事实:${b.name}`,suggestion:b.extractionHint||"请扩大本地知识库检索、执行事实补抽,或调整事实字段配置。"}),f||l.push({level:"warning",message:`必需事实来源角色不匹配:${b.name}`,suggestion:`请确认该事实来自角色:${b.sourceRoleIds?.join("、")}`})}for(let b of a.chapterRules){let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&l.push({level:"warning",message:`章节内容深度建议:${b.title}`,suggestion:`可扩展到约 ${b.minWords} 字,但不要改变模板章节结构。`})}let p=r(g),q=function(a){let b=[];for(let c of a.matchAll(e.gW))b.push({alt:c[1]||"",url:c[2]||"",index:c.index??0});return b}(g),s=(0,f.Cv)(g);for(let b of a.gateRules){let a=b.evaluator?b.evaluator:e.cA[b.type]?.(b)??{subject:"document",operator:"contains",value:b.value||b.target},f=a.target||b.target||"",i=a.value||b.value||f,k=d.find(a=>a.title===f),r=function(a){for(let c of e.Lp){let d=c(a);if(d){var b;return{level:a.rule.level,message:(b=a.rule,`${b.name}:${d}`)}}}}({rule:b,evaluator:a,target:f,value:i,min:a.min||Number(b.value)||1,markdown:g,textScope:"chapter"===a.subject&&k?k.content:g,regex:i?function(a){try{return RegExp(a,"iu")}catch{return}}(i):void 0,chapter:k,factNames:n,chapterTitles:o,tableBlocks:p,imageRefs:q,estimatedPages:s,allFacts:m,factsModel:c,projectBindings:h,promptBindings:j});r&&l.push(r)}return l}function al(a,b){let c=function(a){let b="";for(let c of(0,j.dU)(a))c.content&&(b+=`${c.content}
2
2
 
3
3
  `);return b}(b);if(!c.trim())return[];let d=a.replace(e.ug," ");for(let a of c.matchAll(e.QX)){let b=(a[1]||"").replace(e.ug," ").trim();if(b&&d.includes(b))return[{level:"error",message:"正文疑似包含提示词示例内容",suggestion:"请删除提示词样例数据,仅保留基于当前绑定材料生成的正文。"}]}return[]}},34680:(a,b,c)=>{c.d(b,{JP:()=>m,Tz:()=>q,X6:()=>o,Zk:()=>n,fC:()=>r,l8:()=>p});var d=c(73024),e=c(76760),f=c(74329);c(25840),c(23500);var g=c(70933),h=c(70208),i=c(61373),j=c(78217);c(23760);var k=c(95734),l=c(22157);function m(a){let b=a.template.chapters.length,c=b>0?a.targetWords/b:a.targetWords,d=`${a.template.name}
4
4
  ${a.template.category||""}
@@ -14,7 +14,7 @@ ${i||""}
14
14
  ${m.join("\n")}`,o=a.methods.filter(a=>(a.applicableWorks||[]).some(a=>a.includes(b)||b.includes(a))||a.name.includes(b)).slice(0,4),p=a.resources.filter(a=>!f(a.name)&&(n.includes(a.name)||(a.sourceFiles||[]).some(a=>h.includes(a)))).slice(0,8),q=g([...o.flatMap(a=>a.steps||[])],10),r=p.map(a=>a.name).filter(Boolean),s=g([...o.map(a=>a.name),...m.filter(a=>!r.some(b=>b.length>=4&&a.includes(b)))],10),t=(i||"").trim()||m.slice(0,2).join(";")||b;(0!==m.length||t||0!==q.length||0!==s.length)&&(k.add(b),j.push({name:b,scope:t,quantities:g([...p.map(a=>`${a.name}${a.quantity?`:${a.quantity}${a.unit||""}`:""}`),...m.filter(a=>/\d|㎡|m2|m²|米|m³|立方|吨|台|套|项/u.test(a)&&!r.some(b=>b.length>=4&&a.includes(b)))],8),materials:g(p.map(a=>[a.name,a.spec].filter(Boolean).join("|")),8),process:q,methods:s,acceptance:g([...a.standards.filter(a=>(a.sourceFiles||[]).some(a=>h.includes(a))).map(a=>a.description||a.code),...m.filter(a=>/验收|复试|检测|见证|检验|质量/u.test(a))],8).filter(a=>/验收|检测|试验|复试|实测|试块|测试|检查|记录|报告|见证|取样|拉拔|探伤|闭水|通电|绝缘|接地|电阻|偏差|压实度|密实度|强度|合格|规范/u.test(a)),sourceFiles:h}))},m=[...h.keys()],n=a=>{if(m.includes(a))return a;for(let b of m)if(a.startsWith(`${b}-`)||a.startsWith(`${b}-`))return b},o=new Map;for(let b of a.works){let a=(b.name||"").trim();if(!a)continue;let c=n(a);if(!c)continue;let d=o.get(c)||{scope:"",files:[],items:[]};a===c&&b.scope?d.scope=b.scope:d.scope||(d.scope=b.scope||""),d.files.push(...b.sourceFiles||[]),d.items.push(...b.relatedItems||[]),o.set(c,d)}for(let[a,b]of h){let c=o.get(a),d=c?.scope||b.map(a=>i.get(a)).find(Boolean)||"";l(a,[...new Set([...b,...c?.files||[]])],d,c?.items||[])}for(let b of a.works){let a=(b.name||"").trim();!a||n(a)||l(a,b.sourceFiles||[],b.scope,b.relatedItems||[])}let p=j.map(a=>a.name);return{workPackages:j,controlMatrix:a.risks.slice(0,10).map(b=>({feature:b.risk,difficulty:b.mitigation||b.risk,relatedWorkPackages:p.filter(a=>b.mitigation.includes(a)||b.risk.includes(a)).slice(0,4),methods:a.methods.filter(a=>b.mitigation.includes(a.name)||b.risk.includes(a.name)).map(a=>a.name).slice(0,4),qualityControls:x(a.standards.map(a=>a.description||a.code).filter(Boolean),4),safetyControls:x([b.mitigation,...a.requirements.filter(a=>/安全|风险|危大|消防|应急/u.test(a.category+a.detail)).map(a=>a.detail)],4)})),qualityControls:x([...a.standards.map(a=>a.description||a.code),...a.requirements.filter(a=>/质量|验收|复试|检测/u.test(a.category+a.detail)).map(a=>a.detail)],18),safetyControls:x([...a.risks.map(a=>`${a.risk}:${a.mitigation}`),...a.requirements.filter(a=>/安全|危大|消防|应急|文明/u.test(a.category+a.detail)).map(a=>a.detail)],18),resourcePlans:x(a.resources.map(a=>`${a.name}${a.spec?`|${a.spec}`:""}${a.quantity?`|${a.quantity}${a.unit||""}`:""}`),24),acceptanceRecords:x([...a.standards.map(a=>a.description||a.code),...a.requirements.filter(a=>/资料|验收|记录|检验批|隐蔽/u.test(a.category+a.detail)).map(a=>a.detail)],18),evidenceRankingHints:["优先使用工程量清单、图纸设计说明、技术规范、发包人要求、补疑澄清中的施工范围、工程量、材料规格、工艺流程、验收标准;降低投标须知、保证金、付款、违约金、电子交易系统等商务合同条款权重。"]}}function z(a){if(!a||0===a.workPackages.length)return"";let b=a.workPackages.slice(0,12).map(a=>{let b=(0,k.eL)([...a.quantities,...a.materials,...a.methods].map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=4&&a.length<=120)),c=(0,k.xu)(a.process.map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=2&&a.length<=40),b);return{name:a.name,scope:a.scope,quantities:b,process:c,acceptance:a.acceptance}}),c=b.map(a=>({name:a.name,scope:a.scope,quantities:a.quantities,materials:[],process:a.process,methods:[],acceptance:a.acceptance}));return["## 施工组织设计专项图谱","主要施工工作包:",...b.map((a,b)=>`${b+1}. ${a.name}|范围:${a.scope}|工程量/材料:${a.quantities.slice(0,5).join(";")||"按证据展开"}|流程:${a.process.slice(0,8).join("→")||"按施工准备→实施→检查→验收组织"}|验收:${a.acceptance.slice(0,4).join(";")||"按规范和资料闭环"}`),"施工工作包结构化数据:",JSON.stringify(c),a.controlMatrix.length?"重点难点—施工内容—措施矩阵:":"",...a.controlMatrix.slice(0,8).map(a=>`- ${a.feature} → ${a.relatedWorkPackages.join("、")||"相关工作包"} → ${[...a.methods,...a.qualityControls,...a.safetyControls].slice(0,6).join(";")}`),a.evidenceRankingHints.join("\n")].filter(Boolean).join("\n")}async function A(a){let b=await (0,g.Qh)().getProject(a),c=(0,g.Yy)(a).filter(a=>"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0).map(a=>{var c;let d=a.relativePath.split(/[\\/]/u).filter(Boolean)[0],f=function(a){let b=new Set(["project_overview"]);return/招标|发包人要求|答疑|补疑|澄清/u.test(a)&&b.add("tender_requirement"),/图纸|设计说明|施工图|道路|桥梁|园林|交通|结构/u.test(a)&&b.add("drawing"),/清单|工程量|xls|xlsx/u.test(a)&&b.add("boq"),/质量|验收|规范|标准/u.test(a)&&b.add("quality_standard"),/安全|危大|风险|文明|环保/u.test(a)&&b.add("safety_requirement"),/施工|方案|组织|进度|工期|材料|机械|劳动力/u.test(a)&&b.add("construction_method"),[...b]}(a.relativePath),g=b.listChunks({relativePath:a.relativePath,limit:16}),h=g.map(a=>r(String(a.content||""))).filter(Boolean).slice(0,12),i=(c=a.relativePath,/投标函|我方已仔细研究/u.test(c)?"投标函/承诺格式,不进入施工正文":/保证金|账户|协议书|资金托管/u.test(c)?"资金账户/保证金资料,不进入施工正文":/开标|评标|交易系统|示范文本/u.test(c)?"招投标流程/示范文本,不进入施工正文":/报价|税率|利润|最高投标限价|招标控制价|计价依据|计价定额/u.test(c)?"商务报价资料,不进入施工正文":/招标文件正文|清单编制说明|招标总说明|招标需求/u.test(c)?"招标说明/清单编制说明,不进入施工正文":void 0),j=/\.(?:xlsx?|csv|tsv)$/iu.test(a.relativePath),k=i?[]:j?function(a){let b=new Set,c=/工程名称|序号|项目编码|项目名称|项目特征|计量\s*单位|工程量|金额|综合单价|合价|人工费|机械费|暂估价|分部小计|本页|续表|合计|汇总/u;for(let d of a)for(let a of String(d.content||"").split(/\r?\n/u)){let d=a.trim();if(!d.startsWith("|"))continue;let e=d.split("|").map(a=>a.trim());if(e.length<7)continue;let f=e.slice(1,-1),g=f[0]||"",h=f[2]||"",i=f[3]||"",j=f[4]||"",k=f[5]||"";if(!/^\d+$/.test(g)||!h||!i||c.test(`${h}${i}`))continue;let l=i.replace(/\s+/gu," ").replace(/[,,;;]?\s*(?:\d+[、..]\s*)?(?:未尽事宜|具体详见|详见)[^,,;;]*?,?满足验收要求/gu,"").replace(/[,,;;]?\s*(?:\d+[、..]\s*)?含拆除、垃圾打堆、外弃[^,,;;]*/gu,"").replace(/[,,;;]?\s*投标人(?:结合设计图纸、地勘报告)?(?:自行)?踏勘现场后综合考虑/gu,"").replace(/[||]+/gu," ").replace(/\s*\d+[..]\s*$/gu,"").replace(/[。.]\s*$/gu,"").replace(/\s+/gu," ").trim();if(l.length<2)continue;let m=k&&j?`${k}${j}`:k||j,n=`${h}:${l.slice(0,80)}${m?`|${m}`:""}`;if(!(n.replace(/[^0-9a-zA-Z\u4e00-\u9fa5]/gu,"").length<4)&&(b.add(n),b.size>=40))return[...b]}return[...b]}(g):function(a){let b=new Set;for(let c of a){for(let a of c.split(/[。;;\n]/u)){let c=r(a);if(!(c.length<12)&&!(c.length>180)&&!s(c)&&(/(项目|工程|道路|桥梁|园林|交通|结构|排水|照明|绿化|工期|质量|安全|危大|材料|机械|劳动力|验收|规范|清单|工程量|施工)/u.test(c)&&b.add(c),b.size>=18))break}if(b.size>=18)break}return[...b]}(h),l=function(a,b){let c=`${a}
15
15
  ${b.join("\n")}`,d=new Set,e=(a,b)=>{b.test(c)&&d.add(a)};return e("工期进度",/工期|进度|节点|计划|流水|穿插/u),e("质量验收",/质量|验收|检验|试验|复试|见证取样|规范|标准/u),e("安全危大",/安全|危大|风险|脚手架|深基坑|吊装|临电|消防/u),e("施工部署",/部署|总平面|临设|场地|组织|施工顺序/u),e("施工方法",/施工方法|施工工艺|道路|桥梁|排水|照明|园林|绿化|交通|结构/u),e("人材机",/劳动力|材料|机械|设备|周转|进场|资源/u),e("环境文明",/环保|扬尘|文明|噪声|水土保持|绿色施工/u),e("工程概况",/项目|工程|建设地点|建设规模|招标范围|发包人要求/u),[...d]}(a.relativePath,k),m=function(a,b){let c=`${a}
16
16
  ${b.join("\n")}`,d=new Set;return/工期|进度|节点|计划/u.test(c)&&d.add("确保工期的保障体系与措施"),/质量|验收|复试|见证取样|规范|标准/u.test(c)&&d.add("确保质量的保障体系与措施"),/安全|危大|风险|应急|临电|消防/u.test(c)&&d.add("确保安全生产的管理体系与措施"),/劳动力|材料|机械|设备|周转|资源/u.test(c)&&d.add("确保人、材、机的保障体系与措施"),/施工方法|施工工艺|道路|桥梁|排水|照明|园林|绿化/u.test(c)&&d.add("主要分部分项工程施工方案"),/环保|扬尘|文明|绿色/u.test(c)&&d.add("环境保护与文明施工措施"),/项目|工程|建设地点|建设规模|招标范围/u.test(c)&&d.add("工程概况与施工部署"),[...d]}(a.relativePath,k);return{relativePath:a.relativePath,root:d,fileName:e.basename(a.relativePath),category:a.category,format:a.format,chunkCount:a.chunkCount,indexedAt:a.indexedAt,contentHash:a.contentHash,status:a.status,roles:f,usableForBody:!i,excludeReason:i,summarySignals:h,contentFacts:k,intentTags:l,chapterHints:m}}),h=c.flatMap(t),k=c.flatMap(a=>a.intentTags.flatMap(b=>a.contentFacts.slice(0,10).map((c,d)=>({intent:b,filePath:a.relativePath,title:a.fileName,content:c,score:.82-.025*d,roleId:a.roles[0]})))),l={selectedRoots:[...new Set(c.map(a=>a.root).filter(Boolean))],selectedFiles:c.map(a=>a.relativePath),totalAvailableFiles:c.length,ambiguous:!1,locked:!0,reason:"项目入库完成后预计算的项目级资料范围",rejectedRoots:[],scopeHash:u(c)},n=(0,i.hw)(a,l),o=(0,i.rj)({facts:h,materialSnapshot:n}),q=await (0,j.i)({evidence:c.flatMap(a=>a.contentFacts.slice(0,10).map((b,c)=>({chapterId:"project-intelligence",filePath:a.relativePath,content:b,score:.82-.02*c,roleId:a.roles[0],processingType:"project_intelligence",source:"project-intelligence"}))),projectRoot:a,requirement:"项目入库后预计算项目图谱",templateId:"project-intelligence"});if(!q.graph)throw Error(`项目图谱预计算失败:${q.stage.message||q.stage.status}`);let v=function(a,b){let c=(a,b)=>{let c=new Map;for(let d of[...a,...b]){let a=JSON.stringify(d);c.has(a)||c.set(a,d)}return[...c.values()]};return{works:c(a.works,b.works),methods:c(a.methods,b.methods),resources:c(a.resources,b.resources),schedule:c(a.schedule,b.schedule),standards:c(a.standards,b.standards),risks:c(a.risks,b.risks),requirements:c(a.requirements,b.requirements),siteConditions:c(a.siteConditions,b.siteConditions),addendumChanges:c(a.addendumChanges,b.addendumChanges),gaps:[...new Set([...a.gaps||[],...b.gaps||[]])],generatedAt:b.generatedAt||Date.now()}}(o,q.graph),w=q.stage.message||"项目图谱已预计算",x=y(v,c),z={version:m,projectRoot:a,projectId:(0,f.computeProjectId)(a),createdAt:Date.now(),sourceHash:u(c),fileCount:c.length,files:c,facts:h,chapterIntentIndex:k,projectGraph:v,projectGraphMessage:w,constructionOrganizationGraph:x,blueprint:{projectNames:[...new Set(h.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(p(a),JSON.stringify(z,null,2)),z}function B(a){let b=w(a.projectRoot);if(!b)return;let c=(0,i.ZR)(a.projectRoot,a.template,a.requirement||"");if(c.ambiguous||!c.locked||0===c.selectedFiles.length)return;let e=(0,l.c6)({version:n,selectedFiles:c.selectedFiles.slice().sort(),templateId:a.template.id,chapters:a.template.chapters.map(a=>({id:a.id,title:a.title,sections:a.sections||[]}))}),f=function(a,b){let c=q(a,b);if(d.existsSync(c))try{let b=JSON.parse(d.readFileSync(c,"utf8"));if(b.version!==n||!v(a,b.files))return;return b}catch{return}}(a.projectRoot,e)||function(a){let b=new Set(a.selectedFiles),c=a.cache.files.filter(a=>b.has(a.relativePath));if(0===c.length||!v(a.projectRoot,c))return;let e=a.cache.facts.filter(a=>b.has(a.sourceFile)),f=function(a,b){let c=a=>!a?.length||a.some(a=>b.has(a));return{...a,works:a.works.filter(a=>c(a.sourceFiles)),methods:a.methods.filter(a=>c(a.sourceFiles)),resources:a.resources.filter(a=>c(a.sourceFiles)),schedule:a.schedule.filter(a=>c(a.sourceFiles)),standards:a.standards.filter(a=>c(a.sourceFiles)),risks:a.risks.filter(a=>c(a.sourceFiles)),requirements:a.requirements.filter(a=>c(a.sourceFiles)),siteConditions:a.siteConditions.filter(a=>c(a.sourceFiles)),addendumChanges:a.addendumChanges.filter(a=>b.has(a.sourceFile))}}(a.cache.projectGraph,b),g=function(a,b){let c=a.workPackages.filter(a=>{let c;return!(c=a.sourceFiles).length||c.some(a=>b.has(a))}),d=new Set(c.map(a=>a.name));return{...a,workPackages:c,controlMatrix:a.controlMatrix.filter(a=>0===a.relatedWorkPackages.length||a.relatedWorkPackages.some(a=>d.has(a)))}}(a.cache.constructionOrganizationGraph,b),h=function(a){let b={};for(let c of a.template.chapters){let d=function(a,b=[]){let c=`${a}
17
- ${b.join("\n")}`,d=new Set,e=(a,b)=>{b.test(c)&&d.add(a)};return e("工期进度",/工期|进度|计划|节点/u),e("质量验收",/质量|验收|复试|见证|控制点/u),e("安全危大",/安全|危大|风险|应急/u),e("施工部署",/部署|总平面|施工组织|现场/u),e("施工方法",/施工方案|施工方法|分部分项|工艺/u),e("人材机",/人材机|劳动力|材料|机械|周转/u),e("环境文明",/环保|文明|扬尘|绿色/u),e("工程概况",/概况|工程特点|重点|难点/u),[...d]}(c.title,c.sections||[]);if(0===d.length)continue;let e=new Set(d),f=a.entries.filter(b=>a.selected.has(b.filePath)&&e.has(b.intent)).sort((a,b)=>b.score-a.score).slice(0,24).map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,roleId:a.roleId,processingType:"project_intelligence",sectionTitle:a.intent,source:"project-intelligence"}));f.length&&(b[c.id]=f)}return b}({template:a.template,entries:a.cache.chapterIntentIndex||[],selected:b}),i={version:n,projectRoot:a.projectRoot,createdAt:Date.now(),scopeHash:a.scopeHash,selectedRoots:a.selectedRoots,selectedFiles:a.selectedFiles,sourceHash:(0,l.c6)(c.map(a=>({path:a.relativePath,hash:a.contentHash,chunkCount:a.chunkCount})).sort((a,b)=>a.path.localeCompare(b.path))),files:c,facts:e,projectGraph:f,constructionOrganizationGraph:g,evidenceByChapterId:h,blueprint:{projectNames:[...new Set(e.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(q(a.projectRoot,a.scopeHash),JSON.stringify(i,null,2)),i}({projectRoot:a.projectRoot,template:a.template,cache:b,selectedFiles:c.selectedFiles,selectedRoots:c.selectedRoots,scopeHash:e});if(f)return{cache:b,scope:c,scopeSnapshot:f,files:f.files,facts:f.facts,evidenceByChapterId:f.evidenceByChapterId,projectGraph:f.projectGraph,constructionOrganizationGraph:f.constructionOrganizationGraph,constructionOrganizationContext:z(f.constructionOrganizationGraph),blueprint:f.blueprint}}function C(a){let b=`project-intelligence-${Date.now()}`;(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"generating",status:"processing",percent:5,message:"正在构建项目级蓝图、图谱、事实索引和章节意图索引"}),A(a).then(c=>{(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"done",status:"success",percent:100,message:`项目理解缓存完成:${c.fileCount} 份资料,${c.facts.length} 条事实,${c.chapterIntentIndex.length} 条章节意图证据`})}).catch(c=>{let d=c instanceof Error?c.message:String(c);(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"error",status:"error",percent:100,message:d,error:d}),console.warn("[project-intelligence] build failed",d)})}},32434:(a,b,c)=>{c.d(b,{IA:()=>w,Qu:()=>t,SU:()=>v,ZR:()=>n,cN:()=>u,hw:()=>o,rj:()=>s});var d=c(76760),e=c(44533),f=c(61373),g=c(80439),h=c(22157);let i=/知识库|系统暂未|项目资料暂未|资料未明确|暂未明确|待确认|待资料复核|待系统|通用兜底(?:段落|模板)?|兜底(?:占位|模板|内容)|未检索到|资料不足|无法确认|建议补充|不适用|COL\d+|可核验信息|以本项目招标文件明确内容为准/u;function j(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function k(a){let b=j(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function l(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function m(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function n(a,b,c=""){let d=(0,e.Yy)(a).filter(m),f=(b.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:j(a.materialRootPath)})).map(a=>a.materialRootPath).filter(Boolean),g=f.length?d.filter(a=>f.some(b=>j(a.relativePath)===b||j(a.relativePath).startsWith(`${b}/`))):d,i=function(a){let b=new Map;for(let c of a){let a=k(c.relativePath);b.set(a,[...b.get(a)||[],c])}return b}(g),o=c.trim(),p=[...i.keys()];if(o){let a=[...i.entries()].map(([a,b])=>({root:a,files:b,score:function(a,b){let c=l(a),d=l(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,o)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);if(1===a.length||a.length>1&&a[0].score>a[1].score){let b=[a[0].root],c=a[0].files.map(a=>a.relativePath);return{selectedRoots:b,selectedFiles:c,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`用户需求唯一匹配资料组:${a[0].root}`,rejectedRoots:p.filter(a=>!b.includes(a)),scopeHash:(0,h.c6)({selectedRoots:b,selectedFiles:c})}}if(a.length>1){let b=a.filter(b=>b.score===a[0].score).map(a=>a.root);return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`用户需求同时匹配多个资料组:${b.join("、")}`,rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,selectedRoots:b})}}}if(1===f.length){let a=g.map(a=>a.relativePath);return{selectedRoots:f,selectedFiles:a,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`模板绑定唯一资料组:${f[0]}`,rejectedRoots:p.filter(a=>!f.includes(a)),scopeHash:(0,h.c6)({selectedRoots:f,selectedFiles:a})}}return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:f.length>1?`模板绑定多个资料组但需求未唯一指定:${f.join("、")}`:"未绑定资料组且需求未唯一指定资料范围,禁止回退全量资料",rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,boundRoots:f,requirement:c})}}function o(a,b){let c=new Map((0,e.Yy)(a).map(a=>[a.relativePath,a])),f=b.selectedFiles.map(a=>{let b=c.get(a),e=Number(b?.chunkCount||0);return{path:a,root:k(a),fileName:d.basename(a),chunkCount:e,indexedAt:b?.indexedAt,status:b?.status,hash:(0,h.c6)({filePath:a,chunkCount:e,indexedAt:b?.indexedAt,status:b?.status})}});return{files:f,totalFiles:f.length,totalChunks:f.reduce((a,b)=>a+b.chunkCount,0),roots:[...new Set(f.map(a=>a.root))],createdAt:Date.now(),snapshotHash:(0,h.c6)(f.map(a=>({path:a.path,hash:a.hash})))}}function p(a,b){return a.filter(a=>b.test(`${a.fieldId||""} ${a.fieldName||""} ${a.key} ${(0,h.lG)(a.value)}`))}function q(a){return(0,h.lG)(a.value).replace(/\s+/gu," ").trim()}let r=new Set(["资料文件","资料组","资料角色","资料内容事实","章节意图候选","项目名称候选"]);function s(a){let b=a.facts.filter(a=>!r.has(a.key)&&q(a)),c=p(b,/项目名称|工程名称|招标项目名称|建设地点|建设规模|招标范围|施工范围|建设内容/u),d=p(b,/工期|日历天|进度|开工|竣工/u),e=p(b,/质量|验收|合格|标准|规范/u),f=p(b,/清单|工程量|材料|设备|机械|劳动力|资源/u),g=p(b,/安全|文明|环保|危大|风险/u),h=c.slice(0,8).map(a=>`${a.key}:${q(a)}`).join(";");return{works:h?[{name:a.materialSnapshot.roots[0]||"当前项目",scope:h,sourceFiles:[...new Set(c.map(a=>a.sourceFile).filter(Boolean))],relatedItems:f.slice(0,8).map(a=>q(a))}]:[],methods:[],resources:f.slice(0,30).map(a=>({name:a.key,type:"material",spec:q(a),quantity:"",unit:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),schedule:d.slice(0,10).map(a=>({milestone:a.key,duration:q(a),startDate:"",endDate:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),standards:e.slice(0,16).map(a=>({code:a.key,description:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),risks:g.slice(0,16).map(a=>({risk:q(a),level:"medium",mitigation:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),requirements:p(b,/招标|投标|合同|承包|响应|要求|补疑|澄清|答疑/u).slice(0,20).map(a=>({category:a.key,detail:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),siteConditions:p(b,/现场|周边|交通|既有|保护|场地/u).slice(0,12).map(a=>({condition:q(a),impact:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),addendumChanges:[],gaps:[],generatedAt:Date.now()}}function t(a){let b=n(a.projectRoot,a.template,a.requirement||"");if(b.ambiguous||!b.locked||0===b.selectedFiles.length)throw Error(`资料范围未锁定:${b.reason}`);let c=o(a.projectRoot,b),d=a.projectGraph||s({facts:a.facts,materialSnapshot:c,requirement:a.requirement}),e=a.projectGraph?"project-graph":"project-graph-runtime",f=a.projectGraph?"预处理完整项目图谱":"运行期项目图谱草案",g=Date.now();return{runId:`run-${g}-${(0,h.c6)({templateId:a.template.id,requirement:a.requirement||"",scopeHash:b.scopeHash}).slice(0,8)}`,templateId:a.template.id,requirement:a.requirement||"",projectRoot:a.projectRoot,materialScope:b,materialSnapshot:c,nodes:[{id:"material-scope",type:"material_scope",status:"completed",startedAt:g,completedAt:g,outputSummary:b.reason,metrics:{selectedFiles:b.selectedFiles.length,rejectedRoots:b.rejectedRoots.length}},{id:"material-snapshot",type:"material_snapshot",status:"completed",startedAt:g,completedAt:g,outputSummary:`${c.totalFiles} 份资料,${c.totalChunks} 个切片`,metrics:{totalFiles:c.totalFiles,totalChunks:c.totalChunks}},{id:e,type:"project_graph",status:"completed",startedAt:g,completedAt:g,outputSummary:`${f}:${d.works.length}工程 ${d.resources.length}资源 ${d.schedule.length}工期 ${d.standards.length}标准`,metrics:{facts:a.facts.length,precomputed:!!a.projectGraph,source:a.projectGraphSource||"runtime"}}],facts:a.facts,baseProjectGraph:d,issues:[],createdAt:g}}function u(a,b=200,c=50){if(a.nodes.length<=b)return;let d=a.nodes.slice(-c),e=a.nodes.slice(0,a.nodes.length-c),f=e.filter(a=>"project_graph"!==a.type&&("completed"===a.status||"failed"===a.status||"skipped"===a.status)),g=e.filter(a=>!f.includes(a));if(0===f.length)return;let h={id:`nodes-archive-${Date.now()}`,type:"summary",status:"completed",startedAt:f[0].startedAt,completedAt:f[f.length-1].completedAt||Date.now(),outputSummary:`已归档 ${f.length} 个历史节点(${[...new Set(f.map(a=>a.type))].join("、")})`,metrics:{archivedNodes:f.length}};a.nodes.splice(0,a.nodes.length,...g,h,...d)}function v(a){let b=a.nodes.find(a=>"project_graph"===a.type),c=!!b?.metrics?.precomputed;return[(0,g.X5)({type:"validation",roleId:"agent-material-scope",status:"success",message:`资料范围已锁定:${a.materialScope.selectedRoots.join("、")}`,details:[`${a.materialScope.reason}`,`入选资料:${a.materialScope.selectedFiles.length}/${a.materialScope.totalAvailableFiles}`,`已排除资料组:${a.materialScope.rejectedRoots.slice(0,8).join("、")||"无"}`]},{subtitle:"Agent 资料范围锁定"}),(0,g.X5)({type:"knowledge_retrieval",roleId:"agent-material-snapshot",status:"success",message:`资料快照已固定:${a.materialSnapshot.totalFiles} 份资料、${a.materialSnapshot.totalChunks} 个切片`,details:a.materialSnapshot.files.slice(0,10).map(a=>`${a.root}|${a.fileName}|${a.chunkCount}切片`)},{subtitle:"Agent 资料快照"}),(0,g.X5)({type:"file_understanding",roleId:c?"agent-project-graph-cache":"agent-project-graph-runtime",status:"success",message:c?`已复用预处理完整项目图谱:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`:`运行期项目图谱草案已建立:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`,details:c?[`完整图谱来自入库后 project-intelligence 预处理`,`事实数:${a.facts.length}`]:[`缓存缺失时用于资料范围和 Planner 预备分析;正式完整项目图谱会随后由 LLM 构建`,`事实数:${a.facts.length}`]},{subtitle:c?"Agent 完整项目图谱缓存":"Agent 项目图谱预备分析"})]}function w(a){let b=a.split(/\r?\n/u),c=[];return b.forEach((a,b)=>{i.test(a)&&c.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现后台或兜底话术:第 ${b+1} 行`,suggestion:"必须改为有事实依据的正式表达;非必填缺失字段应删除,必填事实缺失应阻断生成。"})}),[...c,...(0,f.bx)(a)].slice(0,20)}},35882:(a,b,c)=>{c.d(b,{dK:()=>n,yt:()=>j});var d=c(70208);let e=[{id:"basis-overview",title:"编制说明与工程概况",aliases:["编制说明","工程概况","项目概况","项目基本情况","工程基本信息"],category:"setup",level:"core",sectionItems:["编制依据","项目主要施工内容","项目特点、重点、难点分析"],queries:["工程概况","编制依据","招标范围","建设地点","建设规模","工期质量目标"],facts:["工程名称","建设地点","建设规模","招标范围","计划工期","质量目标"],tableSections:["项目重难点识别表"],attachHints:["概况","项目","工程","说明","总纲","部署"]},{id:"organization",title:"项目管理组织机构与职责",aliases:["组织机构","项目管理","岗位职责","管理机构","管理人员"],category:"setup",level:"core",sectionItems:["项目管理组织架构","管理人员岗位职责","内外部协调机制","劳务实名制与人员管理"],queries:["项目管理组织机构","岗位职责","项目经理","技术负责人","劳资员"],facts:["项目管理人员","岗位职责","持证人员","管理组织"],tableSections:["项目管理人员岗位职责配置表","内外协调沟通计划表"],attachHints:["组织","管理","部署","概况","保障"]},{id:"deployment",title:"施工部署与施工流水组织",aliases:["施工部署","总体部署","流水组织","施工组织","流水段"],category:"setup",level:"core",sectionItems:["施工总体部署","施工区段与流水段划分","各阶段施工顺序","多工序穿插与交叉作业管理","资源动态调配机制"],queries:["施工部署","流水段划分","施工顺序","工序穿插","资源调配"],facts:["施工范围","施工阶段","流水段","工期节点","资源配置"],tableSections:["施工流水段划分一览表","交叉作业安全管控清单"],attachHints:["部署","组织","总体","概况","方案"]},{id:"site-layout",title:"施工现场平面布置与临设管理",aliases:["总平面布置","现场平面","平面布置","临设","临水临电","人车分流"],category:"setup",level:"core",sectionItems:["施工现场总平面布置","办公区生活区加工区材料堆放区布置","现场交通组织与人车分流","临时用水布置","临时用电三级配电两级保护","材料场内转运路线"],queries:["施工总平面","临时用电","临时用水","材料堆放","场内交通"],facts:["施工现场条件","临设布置","临水临电","材料堆场","交通组织"],tableSections:["现场总平面分区布置表","场内交通导改组织计划表","临时用电负荷统计表","临时用水布置统计表","材料场内转运路线规划表"],attachHints:["部署","平面","现场","临设","组织"]},{id:"progress",title:"进度计划与工期保障",aliases:["进度计划","工期保障","工期计划","节点控制","进度控制"],category:"setup",level:"core",sectionItems:["总进度计划","关键节点控制计划","周计划日计划分解机制","进度偏差分析与纠偏措施","工期风险预警机制"],queries:["总工期","进度计划","关键节点","工期保障","进度纠偏"],facts:["计划工期","开竣工时间","关键节点","资源保障"],tableSections:["关键施工节点控制计划表"],attachHints:["进度","工期","部署","资源","保障"]},{id:"resources",title:"资源配置计划",aliases:["资源配置","机械设备","劳动力","材料计划","人材机"],category:"setup",level:"core",sectionItems:["主要施工机械设备投入计划","分阶段劳动力投入计划","主要材料进场计划","周转材料配置计划","资源动态调配机制"],queries:["机械设备投入","劳动力计划","材料进场计划","周转材料","资源配置"],facts:["机械设备","劳动力","材料","工程量","施工阶段"],tableSections:["主要施工机械设备投入计划表","分阶段劳动力动态投入计划表","主要材料进场验收管控表"],attachHints:["资源","部署","进度","保障","组织"]},{id:"main-methods",title:"主要分部分项工程施工方案",aliases:["主要施工方案","施工方案","施工方法","分部分项","工艺方案","技术措施"],category:"technical",level:"core",sectionItems:["主要分部分项工程施工流程","关键工序施工工艺","质量控制点与验收要求","施工重难点专项措施"],queries:["分部分项工程","施工工艺","施工方法","验收要求","技术措施"],facts:["施工内容","工程量","图纸做法","技术标准","验收规范"],tableSections:["分项工程施工控制要点表","主要工程量一览表"],attachHints:["方案","施工","技术","工艺","措施"]},{id:"quality",title:"质量管理体系与质量保证措施",aliases:["质量管理","质量保证","质量控制","质量措施","验收管理"],category:"assurance",level:"core",sectionItems:["质量管理目标","三检制度","样板引路制度","隐蔽工程验收","原材料进场复试与见证取样","实测实量与质量通病治理","成品保护专项措施","质量问题闭环整改机制"],queries:["质量保证措施","三检制度","样板引路","隐蔽验收","质量通病","成品保护"],facts:["质量目标","验收标准","材料复试","质量控制点"],tableSections:["隐蔽工程验收清单表","分项工程质量控制要点表","质量通病防治清单表","样板引路实施计划表","成品保护管控清单表"],attachHints:["质量","保障","保证","措施","管理","验收"]},{id:"safety-risk",title:"安全管理、风险分级与危大工程管控",aliases:["安全管理","安全措施","风险分级","危大工程","安全生产","隐患排查"],category:"assurance",level:"core",sectionItems:["安全管理目标","危险源辨识与风险分级管控","危大工程辨识清单","危大工程专项施工方案审批流程","安全技术逐级交底","临边洞口高处作业起重吊装消防临电管理","安全隐患排查与闭环整改","应急救援组织与应急演练"],queries:["安全管理","风险分级管控","危大工程","安全技术交底","临时用电","消防安全"],facts:["安全目标","危大工程","风险源","安全标准","应急要求"],tableSections:["危险源辨识与风险分级管控清单","危大工程全流程闭环管控表","安全防护设施验收计划表","交叉作业安全管控清单","消防设施布置表"],attachHints:["安全","风险","危大","保障","措施","管理"]},{id:"environment-green",title:"文明施工、扬尘、噪声与绿色施工",aliases:["文明施工","扬尘治理","噪声管控","绿色施工","环保措施","四节一环保","建筑垃圾"],category:"environment",level:"core",sectionItems:["文明施工目标","扬尘污染专项管控","噪声分时段管控","施工废水沉淀处理","建筑垃圾分类回收","四节一环保措施","智慧工地与在线监测"],queries:["文明施工","扬尘治理","噪声管控","绿色施工","建筑垃圾分类","四节一环保"],facts:["文明施工目标","扬尘要求","噪声要求","环保标准","垃圾处置"],tableSections:["环境污染物管控指标一览表","建筑垃圾分类管理表","噪声分级管控表"],attachHints:["文明","环保","绿色","扬尘","噪声","保障","措施"]},{id:"labor-wage",title:"农民工工资保障与劳务管理",aliases:["农民工工资","工资保障","劳务管理","实名制","银行代发","工资专户"],category:"labor",level:"mandatory",sectionItems:["劳务实名制管理","农民工工资专用账户","银行代发制度","工资按月足额发放","考勤台账与工资支付台账","工资保证金与劳资纠纷处置"],queries:["农民工工资保障","劳务实名制","工资专用账户","银行代发","工资支付台账"],facts:["劳务管理要求","工资支付要求","实名制要求"],tableSections:["农民工工资管控台账表","劳务实名制管理台账表"],attachHints:["工资","劳务","实名","保障","措施","管理"]},{id:"external-protection",title:"周边环境、管线与既有建构筑物保护",aliases:["周边环境","管线保护","地下管线","既有建筑","交通导行","居民沟通"],category:"external",level:"conditional",sectionItems:["周边道路居民区学校医院商业区识别","既有地下管线探测与保护","临近建构筑物沉降监测","交通导行与公众安全保障","居民沟通与投诉响应机制"],queries:["地下管线保护","周边环境保护","交通导行","居民沟通","临近建筑沉降监测"],facts:["周边环境","地下管线","交通条件","居民区","既有建筑"],tableSections:["临近建筑地下管线保护清单表","交通导改组织计划表"],attachHints:["周边","管线","交通","居民","市政","改造","保护","环境","方案"]},{id:"seasonal",title:"季节性施工保障",aliases:["季节性施工","雨季施工","夏季高温","冬季施工","防汛","大风天气"],category:"seasonal",level:"core",sectionItems:["雨季施工措施","夏季高温施工措施","冬季施工措施","防汛防雷大风天气应急措施"],queries:["季节性施工","雨季施工","高温施工","冬季施工","防汛措施"],facts:["施工季节","当地气候","工期节点","防汛要求"],tableSections:["季节性施工资源配置表"],attachHints:["季节","雨季","高温","冬季","防汛","保障","措施"]},{id:"emergency",title:"应急管理体系",aliases:["应急管理","应急预案","应急救援","事故处置","演练计划"],category:"emergency",level:"core",sectionItems:["应急组织架构","应急物资储备","高处坠落物体打击坍塌触电火灾暴雨大风高温中暑专项预案","应急响应流程","应急演练计划","事故上报与复盘整改"],queries:["应急预案","应急组织","应急物资","应急演练","事故上报"],facts:["应急要求","安全风险","应急物资","演练计划"],tableSections:["应急物资储备清单表","应急演练计划表"],attachHints:["应急","预案","救援","安全","保障","措施"]},{id:"innovation-tech",title:"新技术、新工艺、新材料、新设备的应用",aliases:["新技术","新工艺","新材料","新设备","四新技术","科技创新","四新"],category:"digital",level:"conditional",sectionItems:["新技术新工艺应用计划","新材料应用与性能保障","新设备投入与功效提升","创新技术应用效果与实施保障"],queries:["新技术应用","新工艺","新材料","新设备","四新"],facts:["新技术要求","新工艺要求","新材料要求","新设备要求"],tableSections:["新技术新工艺应用计划表"],attachHints:["技术","创新","保障","措施","质量","工期"]},{id:"digital-bim",title:"BIM、智慧工地与创新加分模块",aliases:["BIM","智慧工地","数字化","智能监测","创新加分","AI视频识别"],category:"digital",level:"optional",sectionItems:["BIM场地布置优化","BIM管线综合深化","4D进度模拟","智慧工地视频监控","扬尘噪声实名制塔机黑匣子监测","AI视频识别与风险预警"],queries:["BIM应用","智慧工地","数字化管控","扬尘在线监测","实名制管理"],facts:["智慧工地要求","BIM要求","监测设备","信息化管理"],tableSections:["BIM智慧工地应用点表","智慧工地监测点位清单"],attachHints:["BIM","智慧","数字","创新","加分","保障","措施"]},{id:"delivery",title:"竣工清理、验收移交与保修",aliases:["竣工验收","竣工清理","验收移交","资料归档","保修","分户验收"],category:"delivery",level:"conditional",sectionItems:["竣工清理与垃圾外运","缺陷修补与复查销项","竣工资料归档","验收移交与保修响应"],queries:["竣工验收","资料归档","验收移交","保修响应","竣工清理"],facts:["竣工要求","验收标准","移交要求","保修要求"],tableSections:["竣工清理与移交计划表"],attachHints:["竣工","验收","移交","保修","收尾"]}],f={building:[{id:"building-methods",title:"房建工程专项施工工艺",aliases:["房建","基础主体","主体结构","二次结构","屋面防水","多塔吊"],category:"technical",level:"conditional",projectTypes:["building"],sectionItems:["基坑开挖及支护","基坑降水及沉降监测","钢筋模板混凝土施工","砌体及二次结构施工","屋面与厨卫防水闭水试验","机电预留预埋","多塔吊作业防碰撞"],queries:["房建工程施工","主体结构","二次结构","屋面防水","多塔防碰撞"],facts:["建筑结构","层数高度","基础形式","主体结构","防水做法"],tableSections:["多塔防碰撞管控表","隐蔽工程验收清单表"],attachHints:["方案","施工","技术","工艺","房建","主体"]}],municipal:[{id:"municipal-methods",title:"市政工程专项施工工艺",aliases:["市政","道路","管网","沟槽","交通导改","雨污水"],category:"technical",level:"conditional",projectTypes:["municipal"],sectionItems:["全线现场踏勘与地下管线探测","交通导改与占道施工","沟槽开挖支护与降排水","雨污水管道铺设与闭水试验","路基分层碾压与压实度检测","水稳基层与沥青面层施工","新旧管网道路接驳与竣工移交"],queries:["市政工程","交通导改","地下管线","沟槽开挖","管道闭水","沥青摊铺"],facts:["道路长度","管线类型","交通条件","沟槽深度","路面结构"],tableSections:["既有管线保护管控表","交通导改组织计划表"],attachHints:["方案","施工","技术","工艺","市政","道路","管网"]}],renovation:[{id:"renovation-methods",title:"老旧小区改造专项施工组织",aliases:["老旧小区","小区改造","改造工程","飞线整治","雨污分流"],category:"technical",level:"conditional",projectTypes:["renovation"],sectionItems:["居民沟通协调机制","楼栋单元分区分段施工","原有建构筑物与既有设施保护","外墙空鼓铲除加固与屋面翻新防水","雨污管网分流与飞线整治","降噪防尘与不中断通行保障"],queries:["老旧小区改造","居民沟通","分区施工","既有保护","飞线整治","雨污分流"],facts:["小区现状","居民通行","改造范围","既有设施","外墙屋面"],tableSections:["居民沟通协调计划表","既有成品保护清单表"],attachHints:["方案","施工","技术","工艺","改造","小区","居民"]}],decoration:[{id:"decoration-methods",title:"装饰装修工程专项施工工艺",aliases:["装饰装修","装修","精装修","吊顶","墙地面","成品保护"],category:"technical",level:"conditional",projectTypes:["decoration"],sectionItems:["墙地面基层处理与挂网防开裂","厨卫阳台分层防水与48小时闭水试验","吊顶龙骨加固与木构件防火防腐","墙地面铺装空鼓防控与阴阳角收口","交叉施工工序优化","室内空气质量管控与成品保护"],queries:["装饰装修","基层处理","闭水试验","吊顶龙骨","成品保护","室内空气质量"],facts:["装修范围","材料做法","防水部位","吊顶做法","环保要求"],tableSections:["成品保护管控清单表","交叉施工工序优化表"],attachHints:["方案","施工","技术","工艺","装饰","装修"]}]},g=[...e,...f.building,...f.municipal,...f.renovation,...f.decoration];function h(a){return(0,d.GQ)(a).replace(/\s+/gu,"").toLowerCase()}function i(a,b,c){let d=new Set,e=[...a||[],...b].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0));return"number"==typeof c?e.slice(0,c):e}function j(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`),c=[];return/市政|道路|管网|雨污|污水|给水|沟槽|交通导|沥青|水稳|检查井/u.test(b)&&c.push("municipal"),/老旧小区|小区改造|改造|修缮|飞线|居民|雨污分流/u.test(b)&&c.push("renovation"),/装饰|装修|精装|吊顶|墙地面|乳胶漆|瓷砖|石材|室内/u.test(b)&&c.push("decoration"),/房建|住宅|办公楼|厂房|主体结构|基础|屋面|二次结构|塔吊|建筑/u.test(b)&&c.push("building"),c.length?[...new Set(c)]:["general"]}function k(a,b,c){return!!(!a.projectTypes?.length||a.projectTypes.some(a=>b.includes(a)))||a.aliases.some(a=>c.includes(h(a)))||a.sectionItems.some(a=>c.includes(h(a)))}function l(a,b){let c=h(a),d=0;for(let a of b.attachHints)c.includes(h(a))&&(d+=5);for(let a of b.aliases){let b=h(a);(c.includes(b)||b.includes(c))&&(d+=12)}return/概况|部署|组织|平面|资源|进度/u.test(c)&&"setup"===b.category&&(d+=6),/方案|施工|技术|工艺|分部分项|方法/u.test(c)&&"technical"===b.category&&(d+=8),/保障|保证|措施|管理/u.test(c)&&["assurance","environment","labor","seasonal","emergency","digital"].includes(b.category)&&(d+=6),/质量/u.test(c)&&"quality"===b.id&&(d+=15),/安全|危大|风险/u.test(c)&&"safety-risk"===b.id&&(d+=15),/文明|环保|扬尘|噪声|绿色/u.test(c)&&"environment-green"===b.id&&(d+=15),/工资|劳务|实名/u.test(c)&&"labor-wage"===b.id&&(d+=15),/应急|预案/u.test(c)&&"emergency"===b.id&&(d+=15),/季节|雨季|冬季|高温|防汛/u.test(c)&&"seasonal"===b.id&&(d+=15),/周边|管线|交通|居民|保护/u.test(c)&&"external-protection"===b.id&&(d+=12),/BIM|智慧|数字|创新/iu.test(a)&&"digital-bim"===b.id&&(d+=15),/竣工|验收|移交|保修/u.test(c)&&"delivery"===b.id&&(d+=15),d}function m(a,b){let c={index:0,score:-1};if(b.forEach((b,d)=>{let e=l(b.title,a);e>c.score&&(c={index:d,score:e})}),c.score>0)return c.index;let d={setup:/概况|部署|组织|资源|进度|总体/u,technical:/方案|施工|技术|工艺|措施/u,assurance:/保障|保证|措施|管理|质量|安全/u,environment:/保障|措施|文明|环保|绿色/u,labor:/保障|措施|劳务|工资/u,external:/方案|施工|周边|保护|交通/u,seasonal:/保障|措施|季节|雨季/u,emergency:/保障|措施|应急|安全/u,digital:/保障|措施|智慧|BIM|创新/u,delivery:/竣工|验收|移交|收尾/u},e=b.findIndex(b=>d[a.category].test(b.title));return e>=0?e:Math.max(0,b.length-1)}function n(a){if(!function(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`);return!!/施工组织设计|施工组织|施组|技术标|投标技术|施工方案/u.test(b)||["施工","工程","质量","安全","进度","文明","部署","方案"].filter(a=>b.includes(a)).length>=3&&!/监理|可研|运维|维护|保养/u.test(b)}(a))return a.chapters;let b=j(a),c=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" ")}`),d=a.chapters.some(a=>/概况|部署|总体|组织|主要施工方案|保障|保证|综合措施|管理体系/u.test(a.title)&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|应急|BIM|智慧|管线|交通导改/u.test(a.title)),f=g.filter(a=>k(a,b,c)),n=new Set,o=a.chapters.map(a=>({...a,sections:[...a.sections||[]],queries:[...a.queries||[]],requiredFacts:[...a.requiredFacts||[]],tableSections:[...a.tableSections||[]]}));for(let a of f){let e=o.map((b,c)=>({index:c,score:l(b.title,a),chapter:b})).filter(d=>(function(a,b,c,d){var e;if(!k(a,c,d))return!1;let f=h(b.title);if(a.aliases.some(a=>f.includes(h(a)))||a.sectionItems.some(a=>f.includes(h(a))))return!0;if(e=b.title,/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线|交通导改|垃圾分类|多塔|成品保护/u.test(e))return!1;let g=l(b.title,a);return g>=10||("optional"===a.level?g>=12||/BIM|智慧|数字|创新/iu.test(d):"conditional"===a.level?g>=8||a.projectTypes?.some(a=>c.includes(a))===!0||a.aliases.some(a=>d.includes(h(a))):g>=6)})(a,d.chapter,b,c)).sort((a,b)=>b.score-a.score),f=e[0]?.index??(d&&("core"===a.level||"mandatory"===a.level)?m(a,o):-1);if(f<0)continue;let g=o[f],j=function(a,b){let c=h(b.title);return a.aliases.some(a=>c.includes(h(a)))||c.includes(h(a.title)),a.title}(a,g);g.sections=i(g.sections,[j,...a.sectionItems],50),g.queries=i(g.queries,[a.title,...a.queries],30),g.requiredFacts=i(g.requiredFacts,a.facts,30),g.tableSections=i(g.tableSections,a.tableSections||[],20),g.purpose=`${g.purpose};系统已按施工组织设计标准模块库自动挂靠“${a.title}”,仅在本章范围内展开与章节语义、项目类型和资料事实合理相关的内容,禁止机械塞入无关内容。`,n.add(a.id)}for(let a of d?f.filter(a=>("mandatory"===a.level||"core"===a.level)&&!n.has(a.id)):[]){let b=m(a,o),c=o[b];c.sections=i(c.sections,[a.title,...a.sectionItems],50),c.queries=i(c.queries,[a.title,...a.queries],30),c.requiredFacts=i(c.requiredFacts,a.facts,30),c.tableSections=i(c.tableSections,a.tableSections||[],20),c.purpose=`${c.purpose};系统已补足施工组织设计必备模块“${a.title}”,需以合理挂靠方式呈现,不改变用户一级章节。`}if(!o.some(a=>/项目主要施工内容|主要施工内容/u.test(`${a.title} ${(a.sections||[]).join(" ")}`))){let a=e.find(a=>"basis-overview"===a.id),b=o.findIndex(a=>/概况|重点|难点|部署|总体|施工|保障/u.test(a.title)),c=o[b>=0?b:0];c.sections=function(a,b,c){let d=new Set;return[...b,...a||[]].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0)).slice(0,50)}(c.sections,["项目主要施工内容"],50),c.queries=i(c.queries,["项目主要施工内容",...a?.queries||[]],30),c.requiredFacts=i(c.requiredFacts,a?.facts||["施工内容","工程量","施工范围"],30),c.purpose=`${c.purpose};系统已补足施工组织设计必备小节“项目主要施工内容”,必须按工作包展开施工概况、施工流程、施工方法。`}return o}},37095:(a,b,c)=>{c.d(b,{CU:()=>s,H7:()=>r,JB:()=>o,Qf:()=>m,kW:()=>p,oy:()=>n,sn:()=>q});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a,b){let c=h(a);d.mkdirSync(f.dirname(c),{recursive:!0});let e=`${c}.${process.pid}.${Date.now()}.tmp`;d.writeFileSync(e,`${b.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
17
+ ${b.join("\n")}`,d=new Set,e=(a,b)=>{b.test(c)&&d.add(a)};return e("工期进度",/工期|进度|计划|节点/u),e("质量验收",/质量|验收|复试|见证|控制点/u),e("安全危大",/安全|危大|风险|应急/u),e("施工部署",/部署|总平面|施工组织|现场/u),e("施工方法",/施工方案|施工方法|分部分项|工艺/u),e("人材机",/人材机|劳动力|材料|机械|周转/u),e("环境文明",/环保|文明|扬尘|绿色/u),e("工程概况",/概况|工程特点|重点|难点/u),[...d]}(c.title,c.sections||[]);if(0===d.length)continue;let e=new Set(d),f=a.entries.filter(b=>a.selected.has(b.filePath)&&e.has(b.intent)).sort((a,b)=>b.score-a.score).slice(0,24).map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,roleId:a.roleId,processingType:"project_intelligence",sectionTitle:a.intent,source:"project-intelligence"}));f.length&&(b[c.id]=f)}return b}({template:a.template,entries:a.cache.chapterIntentIndex||[],selected:b}),i={version:n,projectRoot:a.projectRoot,createdAt:Date.now(),scopeHash:a.scopeHash,selectedRoots:a.selectedRoots,selectedFiles:a.selectedFiles,sourceHash:(0,l.c6)(c.map(a=>({path:a.relativePath,hash:a.contentHash,chunkCount:a.chunkCount})).sort((a,b)=>a.path.localeCompare(b.path))),files:c,facts:e,projectGraph:f,constructionOrganizationGraph:g,evidenceByChapterId:h,blueprint:{projectNames:[...new Set(e.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(q(a.projectRoot,a.scopeHash),JSON.stringify(i,null,2)),i}({projectRoot:a.projectRoot,template:a.template,cache:b,selectedFiles:c.selectedFiles,selectedRoots:c.selectedRoots,scopeHash:e});if(f)return{cache:b,scope:c,scopeSnapshot:f,files:f.files,facts:f.facts,evidenceByChapterId:f.evidenceByChapterId,projectGraph:f.projectGraph,constructionOrganizationGraph:f.constructionOrganizationGraph,constructionOrganizationContext:z(f.constructionOrganizationGraph),blueprint:f.blueprint}}function C(a){let b=`project-intelligence-${Date.now()}`;(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"generating",status:"processing",percent:5,message:"正在构建项目级蓝图、图谱、事实索引和章节意图索引"}),A(a).then(c=>{(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"done",status:"success",percent:100,message:`项目理解缓存完成:${c.fileCount} 份资料,${c.facts.length} 条事实,${c.chapterIntentIndex.length} 条章节意图证据`})}).catch(c=>{let d=c instanceof Error?c.message:String(c);(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"error",status:"error",percent:100,message:d,error:d}),console.warn("[project-intelligence] build failed",d)})}},32434:(a,b,c)=>{c.d(b,{IA:()=>w,Qu:()=>t,SU:()=>v,ZR:()=>n,cN:()=>u,hw:()=>o,rj:()=>s});var d=c(76760),e=c(44533),f=c(61373),g=c(80439),h=c(22157);let i=/知识库|系统暂未|项目资料暂未|资料未明确|暂未明确|待确认|待资料复核|待系统|通用兜底(?:段落|模板)?|兜底(?:占位|模板|内容)|未检索到|资料不足|无法确认|建议补充|不适用|COL\d+|可核验信息|以本项目招标文件明确内容为准/u;function j(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function k(a){let b=j(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function l(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function m(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function n(a,b,c=""){let d=(0,e.Yy)(a).filter(m),f=(b.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:j(a.materialRootPath)})).map(a=>a.materialRootPath).filter(Boolean),g=f.length?d.filter(a=>f.some(b=>j(a.relativePath)===b||j(a.relativePath).startsWith(`${b}/`))):d,i=function(a){let b=new Map;for(let c of a){let a=k(c.relativePath);b.set(a,[...b.get(a)||[],c])}return b}(g),o=c.trim(),p=[...i.keys()];if(o){let a=[...i.entries()].map(([a,b])=>({root:a,files:b,score:function(a,b){let c=l(a),d=l(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,o)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);if(1===a.length||a.length>1&&a[0].score>a[1].score){let b=[a[0].root],c=a[0].files.map(a=>a.relativePath);return{selectedRoots:b,selectedFiles:c,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`用户需求唯一匹配资料组:${a[0].root}`,rejectedRoots:p.filter(a=>!b.includes(a)),scopeHash:(0,h.c6)({selectedRoots:b,selectedFiles:c})}}if(a.length>1){let b=a.filter(b=>b.score===a[0].score).map(a=>a.root);return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`用户需求同时匹配多个资料组:${b.join("、")}`,rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,selectedRoots:b})}}}if(1===f.length){let a=g.map(a=>a.relativePath);return{selectedRoots:f,selectedFiles:a,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`模板绑定唯一资料组:${f[0]}`,rejectedRoots:p.filter(a=>!f.includes(a)),scopeHash:(0,h.c6)({selectedRoots:f,selectedFiles:a})}}return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:f.length>1?`模板绑定多个资料组但需求未唯一指定:${f.join("、")}`:"未绑定资料组且需求未唯一指定资料范围,禁止回退全量资料",rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,boundRoots:f,requirement:c})}}function o(a,b){let c=new Map((0,e.Yy)(a).map(a=>[a.relativePath,a])),f=b.selectedFiles.map(a=>{let b=c.get(a),e=Number(b?.chunkCount||0);return{path:a,root:k(a),fileName:d.basename(a),chunkCount:e,indexedAt:b?.indexedAt,status:b?.status,hash:(0,h.c6)({filePath:a,chunkCount:e,indexedAt:b?.indexedAt,status:b?.status})}});return{files:f,totalFiles:f.length,totalChunks:f.reduce((a,b)=>a+b.chunkCount,0),roots:[...new Set(f.map(a=>a.root))],createdAt:Date.now(),snapshotHash:(0,h.c6)(f.map(a=>({path:a.path,hash:a.hash})))}}function p(a,b){return a.filter(a=>b.test(`${a.fieldId||""} ${a.fieldName||""} ${a.key} ${(0,h.lG)(a.value)}`))}function q(a){return(0,h.lG)(a.value).replace(/\s+/gu," ").trim()}let r=new Set(["资料文件","资料组","资料角色","资料内容事实","章节意图候选","项目名称候选"]);function s(a){let b=a.facts.filter(a=>!r.has(a.key)&&q(a)),c=p(b,/项目名称|工程名称|招标项目名称|建设地点|建设规模|招标范围|施工范围|建设内容/u),d=p(b,/工期|日历天|进度|开工|竣工/u),e=p(b,/质量|验收|合格|标准|规范/u),f=p(b,/清单|工程量|材料|设备|机械|劳动力|资源/u),g=p(b,/安全|文明|环保|危大|风险/u),h=c.slice(0,8).map(a=>`${a.key}:${q(a)}`).join(";");return{works:h?[{name:a.materialSnapshot.roots[0]||"当前项目",scope:h,sourceFiles:[...new Set(c.map(a=>a.sourceFile).filter(Boolean))],relatedItems:f.slice(0,8).map(a=>q(a))}]:[],methods:[],resources:f.slice(0,30).map(a=>({name:a.key,type:"material",spec:q(a),quantity:"",unit:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),schedule:d.slice(0,10).map(a=>({milestone:a.key,duration:q(a),startDate:"",endDate:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),standards:e.slice(0,16).map(a=>({code:a.key,description:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),risks:g.slice(0,16).map(a=>({risk:q(a),level:"medium",mitigation:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),requirements:p(b,/招标|投标|合同|承包|响应|要求|补疑|澄清|答疑/u).slice(0,20).map(a=>({category:a.key,detail:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),siteConditions:p(b,/现场|周边|交通|既有|保护|场地/u).slice(0,12).map(a=>({condition:q(a),impact:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),addendumChanges:[],gaps:[],generatedAt:Date.now()}}function t(a){let b=n(a.projectRoot,a.template,a.requirement||"");if(b.ambiguous||!b.locked||0===b.selectedFiles.length)throw Error(`资料范围未锁定:${b.reason}`);let c=o(a.projectRoot,b),d=a.projectGraph||s({facts:a.facts,materialSnapshot:c,requirement:a.requirement}),e=a.projectGraph?"project-graph":"project-graph-runtime",f=a.projectGraph?"预处理完整项目图谱":"运行期项目图谱草案",g=Date.now();return{runId:`run-${g}-${(0,h.c6)({templateId:a.template.id,requirement:a.requirement||"",scopeHash:b.scopeHash}).slice(0,8)}`,templateId:a.template.id,requirement:a.requirement||"",projectRoot:a.projectRoot,materialScope:b,materialSnapshot:c,nodes:[{id:"material-scope",type:"material_scope",status:"completed",startedAt:g,completedAt:g,outputSummary:b.reason,metrics:{selectedFiles:b.selectedFiles.length,rejectedRoots:b.rejectedRoots.length}},{id:"material-snapshot",type:"material_snapshot",status:"completed",startedAt:g,completedAt:g,outputSummary:`${c.totalFiles} 份资料,${c.totalChunks} 个切片`,metrics:{totalFiles:c.totalFiles,totalChunks:c.totalChunks}},{id:e,type:"project_graph",status:"completed",startedAt:g,completedAt:g,outputSummary:`${f}:${d.works.length}工程 ${d.resources.length}资源 ${d.schedule.length}工期 ${d.standards.length}标准`,metrics:{facts:a.facts.length,precomputed:!!a.projectGraph,source:a.projectGraphSource||"runtime"}}],facts:a.facts,baseProjectGraph:d,issues:[],createdAt:g}}function u(a,b=200,c=50){if(a.nodes.length<=b)return;let d=a.nodes.slice(-c),e=a.nodes.slice(0,a.nodes.length-c),f=e.filter(a=>"project_graph"!==a.type&&("completed"===a.status||"failed"===a.status||"skipped"===a.status)),g=e.filter(a=>!f.includes(a));if(0===f.length)return;let h={id:`nodes-archive-${Date.now()}`,type:"summary",status:"completed",startedAt:f[0].startedAt,completedAt:f[f.length-1].completedAt||Date.now(),outputSummary:`已归档 ${f.length} 个历史节点(${[...new Set(f.map(a=>a.type))].join("、")})`,metrics:{archivedNodes:f.length}};a.nodes.splice(0,a.nodes.length,...g,h,...d)}function v(a){let b=a.nodes.find(a=>"project_graph"===a.type),c=!!b?.metrics?.precomputed;return[(0,g.X5)({type:"validation",roleId:"agent-material-scope",status:"success",message:`资料范围已锁定:${a.materialScope.selectedRoots.join("、")}`,details:[`${a.materialScope.reason}`,`入选资料:${a.materialScope.selectedFiles.length}/${a.materialScope.totalAvailableFiles}`,`已排除资料组:${a.materialScope.rejectedRoots.slice(0,8).join("、")||"无"}`]},{subtitle:"Agent 资料范围锁定"}),(0,g.X5)({type:"knowledge_retrieval",roleId:"agent-material-snapshot",status:"success",message:`资料快照已固定:${a.materialSnapshot.totalFiles} 份资料、${a.materialSnapshot.totalChunks} 个切片`,details:a.materialSnapshot.files.slice(0,10).map(a=>`${a.root}|${a.fileName}|${a.chunkCount}切片`)},{subtitle:"Agent 资料快照"}),(0,g.X5)({type:"file_understanding",roleId:c?"agent-project-graph-cache":"agent-project-graph-runtime",status:"success",message:c?`已复用预处理完整项目图谱:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`:`运行期项目图谱草案已建立:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`,details:c?[`完整图谱来自入库后 project-intelligence 预处理`,`事实数:${a.facts.length}`]:[`缓存缺失时用于资料范围和 Planner 预备分析;正式完整项目图谱会随后由 LLM 构建`,`事实数:${a.facts.length}`]},{subtitle:c?"Agent 完整项目图谱缓存":"Agent 项目图谱预备分析"})]}function w(a){let b=a.split(/\r?\n/u),c=[];return b.forEach((a,b)=>{i.test(a)&&c.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现后台或兜底话术:第 ${b+1} 行`,suggestion:"必须改为有事实依据的正式表达;非必填缺失字段应删除,必填事实缺失应阻断生成。"})}),[...c,...(0,f.bx)(a)].slice(0,20)}},35882:(a,b,c)=>{c.d(b,{dK:()=>p,yt:()=>j});var d=c(70208);let e=[{id:"basis-overview",title:"编制说明与工程概况",aliases:["编制说明","工程概况","项目概况","项目基本情况","工程基本信息"],category:"setup",level:"core",sectionItems:["编制依据","项目主要施工内容","项目特点、重点、难点分析"],queries:["工程概况","编制依据","招标范围","建设地点","建设规模","工期质量目标"],facts:["工程名称","建设地点","建设规模","招标范围","计划工期","质量目标"],tableSections:["项目重难点识别表"],attachHints:["概况","项目","工程","说明","总纲","部署"]},{id:"organization",title:"项目管理组织机构与职责",aliases:["组织机构","项目管理","岗位职责","管理机构","管理人员"],category:"setup",level:"core",sectionItems:["项目管理组织架构","管理人员岗位职责","内外部协调机制","劳务实名制与人员管理"],queries:["项目管理组织机构","岗位职责","项目经理","技术负责人","劳资员"],facts:["项目管理人员","岗位职责","持证人员","管理组织"],tableSections:["项目管理人员岗位职责配置表","内外协调沟通计划表"],attachHints:["组织","管理","部署","概况","保障"]},{id:"deployment",title:"施工部署与施工流水组织",aliases:["施工部署","总体部署","流水组织","施工组织","流水段"],category:"setup",level:"core",sectionItems:["施工总体部署","施工区段与流水段划分","各阶段施工顺序","多工序穿插与交叉作业管理","资源动态调配机制"],queries:["施工部署","流水段划分","施工顺序","工序穿插","资源调配"],facts:["施工范围","施工阶段","流水段","工期节点","资源配置"],tableSections:["施工流水段划分一览表","交叉作业安全管控清单"],attachHints:["部署","组织","总体","概况","方案"]},{id:"site-layout",title:"施工现场平面布置与临设管理",aliases:["总平面布置","现场平面","平面布置","临设","临水临电","人车分流"],category:"setup",level:"core",sectionItems:["施工现场总平面布置","办公区生活区加工区材料堆放区布置","现场交通组织与人车分流","临时用水布置","临时用电三级配电两级保护","材料场内转运路线"],queries:["施工总平面","临时用电","临时用水","材料堆放","场内交通"],facts:["施工现场条件","临设布置","临水临电","材料堆场","交通组织"],tableSections:["现场总平面分区布置表","场内交通导改组织计划表","临时用电负荷统计表","临时用水布置统计表","材料场内转运路线规划表"],attachHints:["部署","平面","现场","临设","组织"]},{id:"progress",title:"进度计划与工期保障",aliases:["进度计划","工期保障","工期计划","节点控制","进度控制"],category:"setup",level:"core",sectionItems:["总进度计划","关键节点控制计划","周计划日计划分解机制","进度偏差分析与纠偏措施","工期风险预警机制"],queries:["总工期","进度计划","关键节点","工期保障","进度纠偏"],facts:["计划工期","开竣工时间","关键节点","资源保障"],tableSections:["关键施工节点控制计划表"],attachHints:["进度","工期","部署","资源","保障"]},{id:"resources",title:"资源配置计划",aliases:["资源配置","机械设备","劳动力","材料计划","人材机"],category:"setup",level:"core",sectionItems:["主要施工机械设备投入计划","分阶段劳动力投入计划","主要材料进场计划","周转材料配置计划","资源动态调配机制"],queries:["机械设备投入","劳动力计划","材料进场计划","周转材料","资源配置"],facts:["机械设备","劳动力","材料","工程量","施工阶段"],tableSections:["主要施工机械设备投入计划表","分阶段劳动力动态投入计划表","主要材料进场验收管控表"],attachHints:["资源","部署","进度","保障","组织"]},{id:"main-methods",title:"主要分部分项工程施工方案",aliases:["主要施工方案","施工方案","施工方法","分部分项","工艺方案","技术措施"],category:"technical",level:"core",sectionItems:["主要分部分项工程施工流程","关键工序施工工艺","质量控制点与验收要求","施工重难点专项措施"],queries:["分部分项工程","施工工艺","施工方法","验收要求","技术措施"],facts:["施工内容","工程量","图纸做法","技术标准","验收规范"],tableSections:["分项工程施工控制要点表","主要工程量一览表"],attachHints:["方案","施工","技术","工艺","措施"]},{id:"quality",title:"质量管理体系与质量保证措施",aliases:["质量管理","质量保证","质量控制","质量措施","验收管理"],category:"assurance",level:"core",sectionItems:["质量管理目标","三检制度","样板引路制度","隐蔽工程验收","原材料进场复试与见证取样","实测实量与质量通病治理","成品保护专项措施","质量问题闭环整改机制"],queries:["质量保证措施","三检制度","样板引路","隐蔽验收","质量通病","成品保护"],facts:["质量目标","验收标准","材料复试","质量控制点"],tableSections:["隐蔽工程验收清单表","分项工程质量控制要点表","质量通病防治清单表","样板引路实施计划表","成品保护管控清单表"],attachHints:["质量","保障","保证","措施","管理","验收"]},{id:"safety-risk",title:"安全管理、风险分级与危大工程管控",aliases:["安全管理","安全措施","风险分级","危大工程","安全生产","隐患排查"],category:"assurance",level:"core",sectionItems:["安全管理目标","危险源辨识与风险分级管控","危大工程辨识清单","危大工程专项施工方案审批流程","安全技术逐级交底","临边洞口高处作业起重吊装消防临电管理","安全隐患排查与闭环整改","应急救援组织与应急演练"],queries:["安全管理","风险分级管控","危大工程","安全技术交底","临时用电","消防安全"],facts:["安全目标","危大工程","风险源","安全标准","应急要求"],tableSections:["危险源辨识与风险分级管控清单","危大工程全流程闭环管控表","安全防护设施验收计划表","交叉作业安全管控清单","消防设施布置表"],attachHints:["安全","风险","危大","保障","措施","管理"]},{id:"environment-green",title:"文明施工、扬尘、噪声与绿色施工",aliases:["文明施工","扬尘治理","噪声管控","绿色施工","环保措施","四节一环保","建筑垃圾"],category:"environment",level:"core",sectionItems:["文明施工目标","扬尘污染专项管控","噪声分时段管控","施工废水沉淀处理","建筑垃圾分类回收","四节一环保措施","智慧工地与在线监测"],queries:["文明施工","扬尘治理","噪声管控","绿色施工","建筑垃圾分类","四节一环保"],facts:["文明施工目标","扬尘要求","噪声要求","环保标准","垃圾处置"],tableSections:["环境污染物管控指标一览表","建筑垃圾分类管理表","噪声分级管控表"],attachHints:["文明","环保","绿色","扬尘","噪声","保障","措施"]},{id:"labor-wage",title:"农民工工资保障与劳务管理",aliases:["农民工工资","工资保障","劳务管理","实名制","银行代发","工资专户"],category:"labor",level:"mandatory",sectionItems:["劳务实名制管理","农民工工资专用账户","银行代发制度","工资按月足额发放","考勤台账与工资支付台账","工资保证金与劳资纠纷处置"],queries:["农民工工资保障","劳务实名制","工资专用账户","银行代发","工资支付台账"],facts:["劳务管理要求","工资支付要求","实名制要求"],tableSections:["农民工工资管控台账表","劳务实名制管理台账表"],attachHints:["工资","劳务","实名","保障","措施","管理"]},{id:"external-protection",title:"周边环境、管线与既有建构筑物保护",aliases:["周边环境","管线保护","地下管线","既有建筑","交通导行","居民沟通"],category:"external",level:"conditional",sectionItems:["周边道路居民区学校医院商业区识别","既有地下管线探测与保护","临近建构筑物沉降监测","交通导行与公众安全保障","居民沟通与投诉响应机制"],queries:["地下管线保护","周边环境保护","交通导行","居民沟通","临近建筑沉降监测"],facts:["周边环境","地下管线","交通条件","居民区","既有建筑"],tableSections:["临近建筑地下管线保护清单表","交通导改组织计划表"],attachHints:["周边","管线","交通","居民","市政","改造","保护","环境","方案"]},{id:"seasonal",title:"季节性施工保障",aliases:["季节性施工","雨季施工","夏季高温","冬季施工","防汛","大风天气"],category:"seasonal",level:"core",sectionItems:["雨季施工措施","夏季高温施工措施","冬季施工措施","防汛防雷大风天气应急措施"],queries:["季节性施工","雨季施工","高温施工","冬季施工","防汛措施"],facts:["施工季节","当地气候","工期节点","防汛要求"],tableSections:["季节性施工资源配置表"],attachHints:["季节","雨季","高温","冬季","防汛","保障","措施"]},{id:"emergency",title:"应急管理体系",aliases:["应急管理","应急预案","应急救援","事故处置","演练计划"],category:"emergency",level:"core",sectionItems:["应急组织架构","应急物资储备","高处坠落物体打击坍塌触电火灾暴雨大风高温中暑专项预案","应急响应流程","应急演练计划","事故上报与复盘整改"],queries:["应急预案","应急组织","应急物资","应急演练","事故上报"],facts:["应急要求","安全风险","应急物资","演练计划"],tableSections:["应急物资储备清单表","应急演练计划表"],attachHints:["应急","预案","救援","安全","保障","措施"]},{id:"innovation-tech",title:"新技术、新工艺、新材料、新设备的应用",aliases:["新技术","新工艺","新材料","新设备","四新技术","科技创新","四新"],category:"digital",level:"conditional",sectionItems:["新技术新工艺应用计划","新材料应用与性能保障","新设备投入与功效提升","创新技术应用效果与实施保障"],queries:["新技术应用","新工艺","新材料","新设备","四新"],facts:["新技术要求","新工艺要求","新材料要求","新设备要求"],tableSections:["新技术新工艺应用计划表"],attachHints:["技术","创新","保障","措施","质量","工期"]},{id:"digital-bim",title:"BIM、智慧工地与创新加分模块",aliases:["BIM","智慧工地","数字化","智能监测","创新加分","AI视频识别"],category:"digital",level:"optional",sectionItems:["BIM场地布置优化","BIM管线综合深化","4D进度模拟","智慧工地视频监控","扬尘噪声实名制塔机黑匣子监测","AI视频识别与风险预警"],queries:["BIM应用","智慧工地","数字化管控","扬尘在线监测","实名制管理"],facts:["智慧工地要求","BIM要求","监测设备","信息化管理"],tableSections:["BIM智慧工地应用点表","智慧工地监测点位清单"],attachHints:["BIM","智慧","数字","创新","加分","保障","措施"]},{id:"delivery",title:"竣工清理、验收移交与保修",aliases:["竣工验收","竣工清理","验收移交","资料归档","保修","分户验收"],category:"delivery",level:"conditional",sectionItems:["竣工清理与垃圾外运","缺陷修补与复查销项","竣工资料归档","验收移交与保修响应"],queries:["竣工验收","资料归档","验收移交","保修响应","竣工清理"],facts:["竣工要求","验收标准","移交要求","保修要求"],tableSections:["竣工清理与移交计划表"],attachHints:["竣工","验收","移交","保修","收尾"]}],f={building:[{id:"building-methods",title:"房建工程专项施工工艺",aliases:["房建","基础主体","主体结构","二次结构","屋面防水","多塔吊"],category:"technical",level:"conditional",projectTypes:["building"],sectionItems:["基坑开挖及支护","基坑降水及沉降监测","钢筋模板混凝土施工","砌体及二次结构施工","屋面与厨卫防水闭水试验","机电预留预埋","多塔吊作业防碰撞"],queries:["房建工程施工","主体结构","二次结构","屋面防水","多塔防碰撞"],facts:["建筑结构","层数高度","基础形式","主体结构","防水做法"],tableSections:["多塔防碰撞管控表","隐蔽工程验收清单表"],attachHints:["方案","施工","技术","工艺","房建","主体"]}],municipal:[{id:"municipal-methods",title:"市政工程专项施工工艺",aliases:["市政","道路","管网","沟槽","交通导改","雨污水"],category:"technical",level:"conditional",projectTypes:["municipal"],sectionItems:["全线现场踏勘与地下管线探测","交通导改与占道施工","沟槽开挖支护与降排水","雨污水管道铺设与闭水试验","路基分层碾压与压实度检测","水稳基层与沥青面层施工","新旧管网道路接驳与竣工移交"],queries:["市政工程","交通导改","地下管线","沟槽开挖","管道闭水","沥青摊铺"],facts:["道路长度","管线类型","交通条件","沟槽深度","路面结构"],tableSections:["既有管线保护管控表","交通导改组织计划表"],attachHints:["方案","施工","技术","工艺","市政","道路","管网"]}],renovation:[{id:"renovation-methods",title:"老旧小区改造专项施工组织",aliases:["老旧小区","小区改造","改造工程","飞线整治","雨污分流"],category:"technical",level:"conditional",projectTypes:["renovation"],sectionItems:["居民沟通协调机制","楼栋单元分区分段施工","原有建构筑物与既有设施保护","外墙空鼓铲除加固与屋面翻新防水","雨污管网分流与飞线整治","降噪防尘与不中断通行保障"],queries:["老旧小区改造","居民沟通","分区施工","既有保护","飞线整治","雨污分流"],facts:["小区现状","居民通行","改造范围","既有设施","外墙屋面"],tableSections:["居民沟通协调计划表","既有成品保护清单表"],attachHints:["方案","施工","技术","工艺","改造","小区","居民"]}],decoration:[{id:"decoration-methods",title:"装饰装修工程专项施工工艺",aliases:["装饰装修","装修","精装修","吊顶","墙地面","成品保护"],category:"technical",level:"conditional",projectTypes:["decoration"],sectionItems:["墙地面基层处理与挂网防开裂","厨卫阳台分层防水与48小时闭水试验","吊顶龙骨加固与木构件防火防腐","墙地面铺装空鼓防控与阴阳角收口","交叉施工工序优化","室内空气质量管控与成品保护"],queries:["装饰装修","基层处理","闭水试验","吊顶龙骨","成品保护","室内空气质量"],facts:["装修范围","材料做法","防水部位","吊顶做法","环保要求"],tableSections:["成品保护管控清单表","交叉施工工序优化表"],attachHints:["方案","施工","技术","工艺","装饰","装修"]}]},g=[...e,...f.building,...f.municipal,...f.renovation,...f.decoration];function h(a){return(0,d.GQ)(a).replace(/\s+/gu,"").toLowerCase()}function i(a,b,c){let d=new Set,e=[...a||[],...b].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0));return"number"==typeof c?e.slice(0,c):e}function j(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`),c=[];return/市政|道路|管网|雨污|污水|给水|沟槽|交通导|沥青|水稳|检查井/u.test(b)&&c.push("municipal"),/老旧小区|小区改造|改造|修缮|飞线|居民|雨污分流/u.test(b)&&c.push("renovation"),/装饰|装修|精装|吊顶|墙地面|乳胶漆|瓷砖|石材|室内/u.test(b)&&c.push("decoration"),/房建|住宅|办公楼|厂房|主体结构|基础|屋面|二次结构|塔吊|建筑/u.test(b)&&c.push("building"),c.length?[...new Set(c)]:["general"]}function k(a,b,c){return!!(!a.projectTypes?.length||a.projectTypes.some(a=>b.includes(a)))||a.aliases.some(a=>c.includes(h(a)))||a.sectionItems.some(a=>c.includes(h(a)))}function l(a,b,c=!1){let d=h(a),e=0;if(!c){for(let a of b.attachHints)d.includes(h(a))&&(e+=5);/概况|部署|组织|平面|资源|进度/u.test(d)&&"setup"===b.category&&(e+=6),/方案|施工|技术|工艺|分部分项|方法/u.test(d)&&"technical"===b.category&&(e+=8),/保障|保证|措施|管理/u.test(d)&&["assurance","environment","labor","seasonal","emergency","digital"].includes(b.category)&&(e+=6)}for(let a of b.aliases){let b=h(a);(d.includes(b)||b.includes(d))&&(e+=12)}return/质量/u.test(d)&&"quality"===b.id&&(e+=15),/安全|危大|风险/u.test(d)&&"safety-risk"===b.id&&(e+=15),/工期|进度/u.test(d)&&"progress"===b.id&&(e+=15),/文明|环保|扬尘|噪声|绿色/u.test(d)&&"environment-green"===b.id&&(e+=15),/工资|劳务|实名/u.test(d)&&"labor-wage"===b.id&&(e+=15),/应急|预案/u.test(d)&&"emergency"===b.id&&(e+=15),/季节|雨季|冬季|高温|防汛/u.test(d)&&"seasonal"===b.id&&(e+=15),/周边|管线|交通|居民|保护/u.test(d)&&"external-protection"===b.id&&(e+=12),/BIM|智慧|数字|创新/iu.test(a)&&"digital-bim"===b.id&&(e+=15),/竣工|验收|移交|保修/u.test(d)&&"delivery"===b.id&&(e+=15),e}function m(a,b){let c={index:0,score:-1};if(b.forEach((b,d)=>{let e=l(b.title,a);e>c.score&&(c={index:d,score:e})}),c.score>0)return c.index;let d={setup:/概况|部署|组织|资源|进度|总体/u,technical:/方案|施工|技术|工艺|措施/u,assurance:/保障|保证|措施|管理|质量|安全/u,environment:/保障|措施|文明|环保|绿色/u,labor:/保障|措施|劳务|工资/u,external:/方案|施工|周边|保护|交通/u,seasonal:/保障|措施|季节|雨季/u,emergency:/保障|措施|应急|安全/u,digital:/保障|措施|智慧|BIM|创新/u,delivery:/竣工|验收|移交|收尾/u},e=b.findIndex(b=>d[a.category].test(b.title));return e>=0?e:Math.max(0,b.length-1)}function n(a){return/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线|交通导改|垃圾分类|多塔|成品保护/u.test(a)}function o(a){return/保障|保证|措施|管理/u.test(a)&&!n(a)}function p(a){if(!function(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`);return!!/施工组织设计|施工组织|施组|技术标|投标技术|施工方案/u.test(b)||["施工","工程","质量","安全","进度","文明","部署","方案"].filter(a=>b.includes(a)).length>=3&&!/监理|可研|运维|维护|保养/u.test(b)}(a))return{chapters:a.chapters,report:{attached:[],unattached:[],totals:{attachedModules:0,sectionCount:0}}};let b=j(a),c=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" ")}`),d=a.chapters.some(a=>/概况|部署|总体|组织|主要施工方案|保障|保证|综合措施|管理体系/u.test(a.title)&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|应急|BIM|智慧|管线|交通导改/u.test(a.title)),f=g.filter(a=>k(a,b,c)),p=new Set,q={attached:[],unattached:[],totals:{attachedModules:0,sectionCount:0}},r=a.chapters.map(a=>({...a,sections:[...a.sections||[]],queries:[...a.queries||[]],requiredFacts:[...a.requiredFacts||[]],tableSections:[...a.tableSections||[]]}));for(let a of f){let e=r.map((b,c)=>({index:c,score:l(b.title,a,o(b.title)),chapter:b})).filter(d=>(function(a,b,c,d){if(!k(a,c,d))return!1;let e=h(b.title);if(a.aliases.some(a=>e.includes(h(a)))||a.sectionItems.some(a=>e.includes(h(a))))return!0;if(n(b.title))return!1;if(o(b.title))return"conditional"!==a.level&&"optional"!==a.level&&l(b.title,a,!0)>=10;let f=l(b.title,a);return f>=10||("optional"===a.level?f>=12||/BIM|智慧|数字|创新/iu.test(d):"conditional"===a.level?f>=8||a.projectTypes?.some(a=>c.includes(a))===!0||a.aliases.some(a=>d.includes(h(a))):f>=6)})(a,d.chapter,b,c)).sort((a,b)=>b.score-a.score),f=e[0]?.index,g=f??(d&&("core"===a.level||"mandatory"===a.level)?m(a,r):-1);if(g<0)continue;let j=r[g],s=function(a,b){let c=h(b.title);return a.aliases.some(a=>c.includes(h(a)))||c.includes(h(a.title)),a.title}(a,j);j.sections=i(j.sections,[s,...a.sectionItems]),j.queries=i(j.queries,[a.title,...a.queries]),j.requiredFacts=i(j.requiredFacts,a.facts),j.tableSections=i(j.tableSections,a.tableSections||[]),j.purpose=`${j.purpose};系统已按施工组织设计标准模块库自动挂靠“${a.title}”,仅在本章范围内展开与章节语义、项目类型和资料事实合理相关的内容,禁止机械塞入无关内容。`,p.add(a.id),q.attached.push({chapterId:j.id,chapterTitle:j.title,moduleId:a.id,moduleTitle:a.title,kind:void 0!==f?"matched":"fallback"})}for(let a of d?f.filter(a=>("mandatory"===a.level||"core"===a.level)&&!p.has(a.id)):[]){let b=m(a,r),c=r[b];c.sections=i(c.sections,[a.title,...a.sectionItems]),c.queries=i(c.queries,[a.title,...a.queries]),c.requiredFacts=i(c.requiredFacts,a.facts),c.tableSections=i(c.tableSections,a.tableSections||[]),c.purpose=`${c.purpose};系统已补足施工组织设计必备模块“${a.title}”,需以合理挂靠方式呈现,不改变用户一级章节。`,p.add(a.id),q.attached.push({chapterId:c.id,chapterTitle:c.title,moduleId:a.id,moduleTitle:a.title,kind:"fallback"})}if(!r.some(a=>/项目主要施工内容|主要施工内容/u.test(`${a.title} ${(a.sections||[]).join(" ")}`))){let a=e.find(a=>"basis-overview"===a.id),b=r.findIndex(a=>/概况|重点|难点|部署|总体|施工|保障/u.test(a.title)),c=r[b>=0?b:0];c.sections=function(a,b,c){let d=new Set;return[...b,...a||[]].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0))}(c.sections,["项目主要施工内容"]),c.queries=i(c.queries,["项目主要施工内容",...a?.queries||[]]),c.requiredFacts=i(c.requiredFacts,a?.facts||["施工内容","工程量","施工范围"]),c.purpose=`${c.purpose};系统已补足施工组织设计必备小节“项目主要施工内容”,必须按工作包展开施工概况、施工流程、施工方法。`}for(let a of f)p.has(a.id)||q.unattached.push({moduleId:a.id,moduleTitle:a.title,level:a.level,sections:a.sectionItems,reason:"no-semantic-chapter"});return q.totals.attachedModules=p.size,q.totals.sectionCount=r.reduce((a,b)=>a+(b.sections||[]).length,0),{chapters:r,report:q}}},37095:(a,b,c)=>{c.d(b,{CU:()=>s,H7:()=>r,JB:()=>o,Qf:()=>m,kW:()=>p,oy:()=>n,sn:()=>q});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a,b){let c=h(a);d.mkdirSync(f.dirname(c),{recursive:!0});let e=`${c}.${process.pid}.${Date.now()}.tmp`;d.writeFileSync(e,`${b.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
18
18
  `,"utf8"),d.renameSync(e,c)}let j=new Set,k=new Map;function l(a){let b=k.get(a);return b||(b=function(a){let b=function(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}(a);if(j.has(a))return b;let c=b.filter(a=>"processing"===a.status);if(c.length>0){let d=Date.now();for(let a of c)a.status="error",a.stage="error",a.error="服务重启导致任务中断,未完成",a.message=a.error,a.updatedAt=d;i(a,b)}return j.add(a),b}(a),k.set(a,b)),b}function m(a,b){let c=Date.now(),d=l(a),e=d.findIndex(a=>a.id===b.id),f=e>=0?d[e]:void 0,g={id:b.id,type:b.type,title:b.title,stage:b.stage??f?.stage??"uploading",status:b.status??f?.status??"processing",message:b.message??f?.message??"",percent:b.percent??f?.percent??0,fileName:b.fileName??f?.fileName,filePath:b.filePath??f?.filePath,chunkCount:b.chunkCount??f?.chunkCount,textLength:b.textLength??f?.textLength,extractionMode:b.extractionMode??f?.extractionMode,error:b.error??f?.error,details:b.details??f?.details,createdAt:f?.createdAt??c,updatedAt:c};return e>=0?d[e]=g:d.push(g),i(a,d),g}function n(a,b=50){return l(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function o(a,b){return l(a).find(a=>a.id===b)}function p(a,b){return l(a).filter(a=>!b||a.type===b).sort((a,b)=>b.updatedAt-a.updatedAt)[0]}function q(a){return l(a).filter(a=>"processing"===a.status).sort((a,b)=>b.updatedAt-a.updatedAt)}function r(a){let b=l(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),k.delete(a),b.length}function s(a,b){let c=l(a),d=c.findIndex(a=>a.id===b);return!(d<0)&&(c.splice(d,1),i(a,c),!0)}},40693:(a,b,c)=>{c.d(b,{Av:()=>r,FI:()=>l,Fw:()=>m,Hl:()=>n,Ls:()=>j,b7:()=>s,c8:()=>k,db:()=>p,iX:()=>o});var d=c(35882);let e=["精心组织","科学管理","精益求精","全力保障","高效推进","力争一流","最大限度","显著提升","大力落实","充分确保","严格把控"],f=[{pattern:/质量|验收|隐蔽|样板|通病/u,label:"质量闭环",required:["自检","互检","交接检","整改","复查","归档"],prompt:"质量类内容必须形成“自检—互检—交接检—整改—复查—资料归档”闭环。"},{pattern:/安全|风险|危大|临电|消防|吊装|高处/u,label:"安全闭环",required:["辨识","交底","检查","整改","复查","销项"],prompt:"安全类内容必须形成“风险辨识—专项交底—现场检查—隐患整改—复查销项”闭环。"},{pattern:/进度|工期|节点|计划/u,label:"进度闭环",required:["计划","检查","偏差","纠偏","复核"],prompt:"进度类内容必须形成“计划分解—日/周检查—偏差识别—资源纠偏—节点复核”闭环。"},{pattern:/文明|扬尘|噪声|绿色|环保|垃圾/u,label:"环保闭环",required:["监测","预警","处置","台账"],prompt:"文明环保类内容必须形成“监测—预警—联动处置—台账记录”闭环。"},{pattern:/工资|劳务|实名/u,label:"工资闭环",required:["实名","考勤","核算","公示","代发","归档"],prompt:"工资保障类内容必须形成“实名登记—考勤—核算—公示—银行代发—归档”闭环。"},{pattern:/应急|预案|救援|事故/u,label:"应急闭环",required:["发现","警戒","疏散","处置","上报","复盘"],prompt:"应急类内容必须形成“发现险情—警戒疏散—初期处置—救援上报—复盘整改”闭环。"}],g={building:{label:"房建工程",chain:["施工准备","土方/基础","主体结构","二次结构","防水","机电安装","装饰装修","室外工程","竣工验收"],forbidden:["管道闭水试验","沥青摊铺","水稳层","交通导改"],prompt:"房建类章节应按“施工准备—基础—主体—二次结构—防水—机电—装饰—室外—验收”组织,不得混入市政道路工序。"},municipal:{label:"市政工程",chain:["测量放线","管线探测","围挡导行","沟槽/路基","管道/结构","回填","水稳/沥青/铺装","标线设施","验收移交"],forbidden:["主体结构","二次结构","塔吊","外脚手架","屋面防水"],prompt:"市政类章节应按“测量放线—管线探测—围挡导行—沟槽/路基—管道/结构—回填—路面恢复—验收移交”组织,不得写成房建主体结构逻辑。"},renovation:{label:"老旧小区改造",chain:["居民沟通","分区施工","既有保护","外墙/屋面/管网改造","扰民控制","竣工恢复"],forbidden:["大面积深基坑","高支模","大体量主体结构","长距离交通导改"],prompt:"老旧小区改造类章节必须体现“居民沟通—分区施工—既有保护—改造作业—扰民控制—竣工恢复”,不得忽略居民通行和既有设施保护。"},decoration:{label:"装饰装修工程",chain:["基层处理","防水闭水","吊顶龙骨","墙地面铺装","细部收口","成品保护","空气质量验收"],forbidden:["深基坑","路基压实","水稳层","沥青摊铺","大体量土方"],prompt:"装饰装修类章节应按“基层处理—防水闭水—吊顶墙面—地面铺装—细部收口—成品保护—空气质量验收”组织,不得混入基坑、路基等无关内容。"}},h=[{title:"招标评分项响应索引",pattern:/技术标|施工组织设计|评分|响应/u,prompt:"设置招标评分项响应索引,逐项对应章节、响应内容和位置。"},{title:"主要工程量一览表",pattern:/工程量|清单|土方|钢筋|混凝土|管道|路面/u,prompt:"将主要工程量表格化,关联资源配置和进度节点。"},{title:"影像资料留存",pattern:/隐蔽|危大|整改|验收|样板/u,prompt:"隐蔽、危大、材料验收、样板和整改前后对比必须留存影像资料。"},{title:"变更签证管理",pattern:/改造|市政|工期紧|变更|签证/u,prompt:"改造、市政或工期紧项目应补充变更识别、技术核定、签证资料和影响跟踪。"},{title:"危险品专项管理",pattern:/装修|装饰|动火|油漆|稀释剂|氧气|乙炔/u,prompt:"涉及动火、油漆、稀释剂、氧气乙炔时应补充危险品分区存放与动火审批。"},{title:"材料损耗与周转控制",pattern:/钢筋|模板|周转|材料|大体量/u,prompt:"体量大或材料占比高时应补充钢筋翻样、模板周转、余料回收和限额领料。"},{title:"分户验收",pattern:/住宅|住户|交付|分户/u,prompt:"住宅项目应补充分户实测、问题清单、整改销项和交付资料。"}];function i(a){return a.replace(/\s+/gu,"").toLowerCase()}function j(a){let b=`${a.title} ${(a.sections||[]).join(" ")}`;return/施工组织设计|施工组织|施组|技术标|施工方案|质量|安全|文明施工/u.test(b)?["【施工组织设计专项写作规则】","- 禁止空话套话:不要只写“加强管理、严格控制、确保质量、精心组织、科学管理”,必须写成“责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项”。","- 每项措施至少包含责任主体、执行标准、检查频次、整改闭环;项目特有数据必须来自资料或图谱。",...f.filter(a=>a.pattern.test(b)).map(a=>`- ${a.prompt}`),...h.filter(a=>a.pattern.test(b)).map(a=>`- 高分补充:${a.prompt}`)].join("\n"):""}function k(a){let b=j(a);return b?b.split("\n").map(a=>` - ${a}`):[]}function l(a){let b=(0,d.yt)({template:{id:"runtime",name:a.templateName,outputTitle:a.outputTitle||"",description:"",category:"",chapters:a.chapters},chapters:a.chapters,requirement:a.requirement}).filter(a=>"general"!==a).map(a=>g[a].prompt);return b.length?`【专业工序链约束】
19
19
  ${b.map(a=>`- ${a}`).join("\n")}`:""}function m(a){let b=[];for(let c of a){let a=e.filter(a=>c.content.includes(a));a.length>0&&b.push({level:"warning",message:`${c.title} 存在施工组织设计空泛套话:${[...new Set(a)].slice(0,8).join("、")}`,suggestion:"请按“责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项”重写相关措施。"})}return b}function n(a){let b=[];for(let c of a){let a=`${c.title} ${(c.sections||[]).join(" ")}`;for(let d of f){if(!d.pattern.test(a))continue;let e=d.required.filter(a=>!c.content.includes(a));e.length>=Math.ceil(d.required.length/2)&&b.push({level:"warning",message:`${c.title} 缺少${d.label}关键链条:${e.join("、")}`,suggestion:d.prompt})}}return b}function o(a){let b=i(`${a.markdown} ${a.factsModel.project.map(a=>a.value).join(" ")} ${a.factsModel.preciseFacts.map(a=>a.value).join(" ")}`),c=[];for(let d of Object.values(g)){let e=d.chain.filter(a=>b.includes(i(a)));if(!(RegExp(d.label,"u").test(a.markdown)||e.length>=3))continue;let f=d.forbidden.filter(a=>b.includes(i(a)));f.length>=2&&c.push({level:"warning",message:`疑似${d.label}内容混入不匹配工序:${f.join("、")}`,suggestion:d.prompt}),e.length<Math.min(3,d.chain.length)&&c.push({level:"warning",message:`${d.label}工序链覆盖不足:仅识别到 ${e.join("、")||"未识别到关键工序"}`,suggestion:d.prompt})}return c}function p(a){let b=`${a.title} ${(a.sections||[]).join(" ")} ${(a.queries||[]).join(" ")}`,c=h.filter(a=>a.pattern.test(b));return 0===c.length?"":["【隐藏高分模块触发】",...c.map(a=>`- ${a.title}:${a.prompt}`)].join("\n")}function q(a){let b=a.split("\n"),c=b.findIndex(a=>/^###\s+(?:\d+(?:\.\d+)*\s+)?(?:项目主要施工内容|主要施工内容)\s*$/u.test(a.trim()));if(c<0)return"";let d=b.length;for(let a=c+1;a<b.length;a+=1)if(/^#{2,3}\s+/u.test(b[a].trim())){d=a;break}return b.slice(c,d).join("\n").replace(/^\*\*([^*\n]{2,50})\*\*\s*$/gmu,"#### $1").replace(/承包人法(?=[::])/gu,"施工方法")}function r(a,b=""){let c=[],d=b||a.map(a=>`${a.title}
20
20
  ${(a.sections||[]).join("\n")}