@customize-agent/server 4.23.6 → 4.23.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- RTtapsmJfcSrITAPBtZln
1
+ BepudSW4c8roP0wr3rmvW
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/RTtapsmJfcSrITAPBtZln/_buildManifest.js",
9
- "static/RTtapsmJfcSrITAPBtZln/_ssgManifest.js"
8
+ "static/BepudSW4c8roP0wr3rmvW/_buildManifest.js",
9
+ "static/BepudSW4c8roP0wr3rmvW/_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": "ea7a8bf84e448f872b8e55d933debcb6",
7
- "previewModeSigningKey": "5d9c47fb0e741f6c2b763f8b8abe81bbfab53c5e69f3e7874ef810e2f7e25f61",
8
- "previewModeEncryptionKey": "952b0ece8e234b9ad0a49401fcba9f10d06bb40dc7ae6a2f3e4665441a13dbbc"
6
+ "previewModeId": "9aa49a42d3c4972e18e0ea2bf73ab7d8",
7
+ "previewModeSigningKey": "d6bfc4b841e7dffabff8424c0b14a23aeb2fdfa5b7f0a6d0ae012e4bca4889fd",
8
+ "previewModeEncryptionKey": "61dbccc0b0f5ca3aef14933ff656bc13c4799686ae4a76cd700b60ff8ce943b7"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -20,7 +20,8 @@ ${c}`,{maxTokens:1200,temperature:0,disableThinkingBoost:!0});if(!d)return;retur
20
20
  ${i}`.trim()}let s=new Set(["施工准备","施工要点","质量控制","质量要求","质量保证措施","质量控制措施","质量通病防治","安全措施","安全要求","安全管理措施","安全技术交底","技术交底","注意事项","验收要求","验收标准","成品保护","环境保护","文明施工","进度控制","工期保障","材料管理","机械管理","人员管理","组织管理","应急预案","应急措施","劳动力配置","机械设备配置","施工概况","施工流程","施工方法"]),t=/^(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)[、..\s::-]/u,u=/主要分部分项工程施工方案|项目主要施工内容/u;function v(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1)/^##\s+/u.test(b[a].trim())&&c.push(a);if(0===c.length)return a;let d=new Set;for(let a=0;a<c.length;a+=1){let e=c[a],f=c[a+1]??b.length,g=new Set,h=[],i="";for(let a=e;a<f;a+=1){let c=/^(#{3,4})\s+(.+)$/u.exec(b[a].trim());if(!c)continue;let d=c[2].trim(),e=l(d);e&&(3===c[1].length?(g.add(e),i=e):h.push({line:a,name:e,rawTitle:d,parentH3:i}))}let j=new Map;for(let a of h){let c=j.get(a.name);j.set(a.name,a.line);let e=t.test(a.rawTitle),h=u.test(a.parentH3),i=g.has(a.name)&&!e&&!h,k=s.has(a.name);if(!(i||!k&&void 0!==c))continue;let l=f;for(let c=a.line+1;c<f;c+=1)if(/^#{2,4}\s+/u.test(b[c].trim())){l=c;break}for(let b=a.line;b<l;b+=1)d.add(b)}}return 0===d.size?a:b.filter((a,b)=>!d.has(b)).join("\n")}function w(a,b,c={}){if(!c.fuzzy){let c=x(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||x(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=y(b).replace(/\s+/gu,"").toLowerCase(),g=[],h=-1,i=0,j=!1,k=a=>{if(h<0)return;let b=c.slice(h,a).join("\n").trim();b&&g.push(b),h=-1,i=0,j=!1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,4}\s+/u.test(c[a]))continue;let e=/^\s*(#{2,4})\s+/u.exec(c[a])?.[1].length||3;if(h>=0&&(j||3===i)&&4===e)continue;k(a);let g=y(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||A(c[a],b))&&(h=a+1,i=e,j=e<=4&&f.test(c[a]))}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function x(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let g=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,h=4===g&&f.test(b),i=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=g&&!(h&&b[1].length===g)){i=a;break}}return d.slice(e,i).join("\n")}function y(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function z(a){return y(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function A(a,b){let c=z(a),d=z(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function B(a,b,c){let d=[...new Set(b.filter(Boolean))];if(0===d.length)return a;let e=3===c?/^\s*###\s+/u:4===c?/^\s*####\s+/u:/^\s*#{3,4}\s+/u,f=new Set;return a.split("\n").map(a=>{if(!e.test(a))return a;let b=y(a);if(!b)return a;let c=d.find(a=>!f.has(a)&&A(b,a));if(!c||c===b)return a;let g=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return g?(f.add(c),`${g}${c}`):a}).join("\n")}function C(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function D(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function E(a){if(a?.aborted)throw Error("用户中止")}function F(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let G=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标","异常低价","评标基准价"];function H(a){return!!(G.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}function I(a){return a.filter(a=>!H(`${a.key||""} ${String(a.value)}`))}async function J(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||Math.max(1,{total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}.total))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class K{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},23500:(a,b,c)=>{c.d(b,{bj:()=>C,N6:()=>O,h0:()=>K,bV:()=>L,QJ:()=>E,jG:()=>D,dU:()=>B,Bh:()=>F,zY:()=>R,xm:()=>G,J5:()=>J,C1:()=>N});var d=c(73024),e=c(76760),f=c(48161),g=c(77598),h=c(44533),i=c(25840),j=c(8753),k=c(6444),l=c(85441),m=c(92808),n=c(56942),o=c(2773),p=c(78217),q=c(80572),r=c(5726);function s(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function t(){return e.join(s(),"document-templates.json")}function u(a){let{version:b,updatedAt:c,changeLog:d,...e}=a;return(0,g.createHash)("sha256").update(function a(b){return Array.isArray(b)?`[${b.map(a).join(",")}]`:b&&"object"==typeof b?`{${Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`:JSON.stringify(b)}(e)).digest("hex")}function v(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"文档",version:Number.isFinite(a.version)&&a.version>0?Math.floor(a.version):1,updatedAt:Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),changeLog:Array.isArray(a.changeLog)?a.changeLog.filter(a=>a&&"object"==typeof a&&Number.isFinite(a.version)&&"string"==typeof a.summary).slice(0,50):[],projectRoleConfigId:a.projectRoleConfigId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[],sections:Array.isArray(a.sections)?a.sections.filter(Boolean):[],tableSections:Array.isArray(a.tableSections)?a.tableSections.filter(Boolean):[],tableRequirements:Array.isArray(a.tableRequirements)?a.tableRequirements.filter(Boolean):[],tablePlans:Array.isArray(a.tablePlans)?a.tablePlans:[],pinnedEvidenceFilePaths:Array.isArray(a.pinnedEvidenceFilePaths)?a.pinnedEvidenceFilePaths.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"文档",purpose:a.description||"",queries:[],requiredFacts:[]}],exportSettings:a.exportSettings,generationSettings:a.generationSettings,promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],projectBindings:Array.isArray(a.projectBindings)?a.projectBindings.filter(a=>a.materialRootPath).map(a=>({materialRootPath:a.materialRootPath.replace(/^\/+|\/+$/gu,"")})):(0,o.qp)(a),promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],builtIn:!1}}function w(){try{let a=t();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));if(!Array.isArray(b))return d.renameSync(a,`${a}.corrupt-${Date.now()}`),[];return b.map(v)}catch{try{let a=t();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function x(a){d.writeFileSync(t(),JSON.stringify(a.map(v),null,2),"utf-8")}function y(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function z(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function A(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(s(),"prompts.json"),"utf-8"));return Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{return[]}}();if(a.startsWith("custom:")){let c=b.find(b=>b.id===a);return c?{id:a,name:c.name,content:c.content,source:"custom"}:void 0}if(a.startsWith("file:")){let b=a.slice(5);if(d.existsSync(b))return{id:a,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8"),source:"file"}}}function B(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=A(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:y(a.content),contentPreview:z(a.content)})}return b}function C(a){let b=P(a),c=(0,i.XB)("prompt"),d=R(a),e=[],f=[];if(b)for(let a of b.promptRoles){let b=c.find(b=>b.id===a.roleId);if(!b){e.push(a.roleId);continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&f.push(a.roleId)}let g=Q(d),h=[];for(let a of g){let d=A(a.promptId);if(!d)continue;let e=c.find(b=>b.id===a.roleId),f=b?.promptRoles.find(b=>b.roleId===a.roleId),g=e?.executionType||function(a){var b;return b=a,/extract|extraction|抽取|清单|图纸|品牌/u.test(b)?"fact_extraction":/validation|校验|审查|审核/u.test(b)?"validation":/format|排版/u.test(b)?"formatting":/writer|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(b)?"chapter_generation":"reference"}(a.roleId),i=function(a,b,c=""){let d=`${a} ${b} ${c}`;return/extract|extraction|抽取|清单|图纸|品牌|识别/u.test(d)?"extraction":/format|排版/u.test(d)?"formatting":/总控|writer|施工组织设计总控|写作主控/u.test(d)?"writer":/chapter_generation|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(d)?"chapter":"reference"}(a.roleId,g,d.name),j=`projectRole:${b?.id||"unknown"}:${a.roleId}:order=${f?.order??0}`;h.push({...d,roleId:a.roleId,contentHash:y(d.content),contentPreview:z(d.content),executionType:g,category:i,bindingSource:j,roleConfigId:b?.id,roleName:e?.name,order:f?.order})}return{bindings:g,prompts:h,writerPrompts:h.filter(a=>"writer"===a.category),chapterPrompts:h.filter(a=>"chapter"===a.category),extractionPrompts:h.filter(a=>"extraction"===a.category),formattingPrompts:h.filter(a=>"formatting"===a.category),referencePrompts:h.filter(a=>"reference"===a.category),unresolvedRoles:[...new Set(e)],missingResourceRoles:[...new Set(f)]}}function D(){let a=(0,j.V)().templates,b=w().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function E(a){return D().find(b=>b.id===a)}function F(a){let b,c,d=v(a),e=w().find(a=>a.id===d.id),f=Date.now();if(e&&u(e)!==u(d)){b=(e.version||0)+1;let a=d.chapters.map(a=>a.title).join("、");c=[{version:b,timestamp:f,summary:a?`章节结构调整:${a.slice(0,80)}${a.length>80?"…":""}`:"模版内容已更新"},...e.changeLog||[]].slice(0,50)}else e?(b=e.version||1,c=e.changeLog||[]):(b=1,c=[{version:1,timestamp:f,summary:"创建模版"}]);let g={...d,version:b,updatedAt:f,changeLog:c},h=w().filter(a=>a.id!==d.id);return h.push(g),x(h),g}async function G(a,b=(0,h.aY)(),d={}){let f,g,j,s,t=E(a),u=[];if(!t)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let v=(0,i.XB)("prompt"),w=O(t),x=P(t);w||u.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),w&&!x&&u.push({level:"error",message:`项目角色配置不存在或已删除:${w}`}),t.promptIds?.length&&u.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),t.promptBindings?.length&&u.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let y=R(t),z=(0,o.qp)(t);x&&0===x.promptRoles.length&&u.push({level:"error",message:"项目角色配置未配置提示词角色。"}),x&&x.promptRoles.length>0&&0===y.length&&u.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let A=e.resolve(b),C=(0,h.Yy)(A),D=function(a,b){if(0===a.length)return[];let c=new Set(b.map(a=>a.relativePath)),d=[],e=new Set;for(let f of a){let a=f.materialRootPath.replace(/^\/+|\/+$/gu,"");for(let f of c.has(a)?[a]:b.filter(b=>{var c;return b.relativePath.startsWith(`${a}/`)&&"disk"!==(c=b).status&&"error"!==c.status&&Number(c.indexedAt||0)>0&&Number(c.chunkCount||0)>0}).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(z,C);if(0===z.length?u.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===D.length&&u.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),t&&(f=(0,l.P)(A,{requirement:d.requirement,boundFilePaths:D}),0===z.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=u.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&u.splice(a,1)}let F=new Map(C.map(a=>[a.relativePath,a])),H=[],I=D.map(a=>{let b=F.get(a);return b||u.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&H.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&u.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&u.push({level:"warning",message:`知识库文件暂无可检索内容切片:${a}`}),{filePath:a,roleId:"project_material",roleName:"项目资料包",exists:!!b,indexed:!!(b&&b.indexedAt>0&&"disk"!==b.status),chunkCount:b?.chunkCount??0,vectorReady:!!(b&&b.chunkCount>0)}}),J=I.filter(a=>a.exists).length,K=I.filter(a=>a.exists&&!a.indexed).length;J>0&&K===J?u.push({level:"error",message:`模板绑定的项目资料包(${J} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):u.push(...H);let L=B(y),M=new Set(x?.promptRoles.map(a=>a.roleId)||[]);for(let a of x?.promptRoles||[]){let b=v.find(b=>b.id===a.roleId);if(!b){u.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&u.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let N=y.map(a=>{let b=v.find(b=>b.id===a.roleId),c=L.find(b=>b.id===a.promptId);return b||u.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),M.has(a.roleId)||u.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||u.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&u.push({level:"warning",message:`提示词为空:${c.name}`}),{...a,roleName:b?.name,promptTitle:c?.name,promptSource:c?.source,contentLength:c?.content.length??0,contentHash:c?.contentHash,contentPreview:c?.contentPreview,exists:!!c}}),Q=(x?.promptRoles||[]).map(a=>{let b=v.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=y.filter(b=>b.roleId===a.roleId).map(a=>a.promptId),e=b?0===c.length?"missing_resource":0===d.length?"missing_prompt":"ok":"role_missing";return{roleId:a.roleId,roleName:b?.name,order:a.order,resourceIds:c,boundPromptIds:d,status:e}});if(L.length>1)try{let{detectPromptRuleConflicts:a}=await c.e(1001).then(c.bind(c,71001));for(let b of a(L.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))u.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(t){let a=f||(0,l.P)(A,{requirement:d.requirement,boundFilePaths:D}),b=function(a,b){let c=function(a,b){let c=[a.name,a.category,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose])].join("\n"),d=new Set(["project_overview","scope_description"]);return/需求|规则|响应|方案|实施|专项|安全|质量|进度|合规|施工组织|技术标/iu.test(c)&&["requirement_document","structured_data"].forEach(a=>d.add(a)),(/安全|质量|进度|工期|文明|环保|验收/iu.test(c)||b.materialInventory.schedule_quality_safety.length>0)&&d.add("schedule_quality_safety"),(/设计|图纸|平面|立面|剖面|做法/iu.test(c)||b.materialInventory.design_specification.length>0)&&d.add("design_specification"),(/风险|重点|难点|约束|现场|危大/iu.test(c)||b.materialInventory.risk_constraints.length>0)&&d.add("risk_constraints"),d}(a,b);return[...new Set([...function(a){let b=[a.name,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose,...a.requiredFacts||[],...a.queries||[]])].join("\n"),c=new Set((0,m.t0)(b,m.hW));return c.add("project_overview"),c.add("scope_description"),[...c]}(a),...c])].map(a=>{let d=b.materialInventory[a]||[],e=c.has(a),f=d.length>0,g=f&&d.length<(e?2:1);return{role:a,required:e,satisfied:f,weak:g,evidenceCount:d.length,filePaths:d.map(a=>a.filePath),reason:f?`已匹配 ${d.length} 个资料文件`:e?"必需资料角色缺失":"可选资料角色缺失"}})}(t,a);for(let c of(g=(0,n.$)({template:t,spec:(0,k.x)(t).spec,summary:a,resolvedRoles:b})).blockingIssues)u.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)u.push({level:"warning",message:a})}try{let a=(0,k.x)(t).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(t,a),f=t.generationSettings||t.exportSettings,g=(0,p.q6)(t.exportSettings||t.generationSettings),h=(0,p.py)(d.requirement||""),i=f?.targetPages?.target||f?.targetPages?.min,l=h.targetChars||(h.targetPages?h.targetPages*g:void 0)||(i?i*g:void 0),m=e.reduce((b,c)=>b+Math.max(a.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.dynamicChapterRule.minWordsPerChapter||0),0),n=Math.round(l||m||1200*e.length),o=D.reduce((a,b)=>a+(F.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:r}=await Promise.all([c.e(1001),c.e(8163),c.e(9227)]).then(c.bind(c,79227));j=r({template:t,chapters:e,requirement:d.requirement,materialFileCount:D.length,evidenceCount:o,targetWords:n,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:(0,q.z)().chapterConcurrency||0})}catch{}try{s=(0,r.ze)({templateName:t.name,chapterTitles:t.chapters.map(a=>a.title)})}catch{}return{templateId:a,projectRoleConfigId:w,configName:x?.name,fileDiagnostics:I,promptDiagnostics:N,roleDiagnostics:Q,readiness:g,issues:u,strategyPreview:j,referenceStructureSuggestion:s}}let H=new Map,I=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function J(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=E(a),g=(0,h.Yy)(d),i=JSON.stringify({templateId:a,templateVersion:f?.version??0,templateUpdatedAt:f?.updatedAt??0,projectRoot:d,requirement:c.requirement??"",fileCount:g.length,lastFileMtime:g.reduce((a,b)=>Math.max(a,b.mtime),0)}),j=H.get(i);if(j&&Date.now()-j.at<I)return j.result;let k=await G(a,d,c);return H.set(i,{at:Date.now(),result:k}),k}function K(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");x(w().filter(b=>b.id!==a))}function L(a){let b=E(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=v({...b,id:`${b.id}-copy-${c}`,name:`${b.name} Copy`,builtIn:!1,version:1,updatedAt:c,changeLog:[{version:1,timestamp:c,summary:`从 ${b.id} v${b.version||1} 复制`}]}),e=w();return e.push(d),x(e),d}function M(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function N(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,j.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>M(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>M(a,b)))}function O(a){return a.projectRoleConfigId||void 0}function P(a){let b=O(a);return b?(0,i.Mu)(b):void 0}function Q(a){let b=new Set,c=[];for(let d of a){let a=`${d.roleId}:${d.promptId}`;!d.promptId||!d.roleId||b.has(a)||(b.add(a),c.push(d))}return c}function R(a){let b=P(a);if(!b)return[];let c=(0,i.XB)("prompt"),d=[];for(let a of[...b.promptRoles].sort((a,b)=>a.order-b.order)){let b=c.find(b=>b.id===a.roleId),e=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[];b&&0!==e.length&&d.push(...e.map(a=>({promptId:a,roleId:b.id})))}return Q(d)}},28103:(a,b,c)=>{c.d(b,{WT:()=>x,aF:()=>w,cG:()=>e});var d=c(52922);let e=["房建","市政","公路","桥梁与隧道","水利水电","电力","机电安装","装饰装修","园林绿化","铁路","港口与航道","矿山冶金","其他"],f=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d)|(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径))/gu,g=/→|->|=>|按.{0,12}顺序|依次|先后|先.{0,10}后|顺序施工|流水顺序|[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u,h=/^(?:[一二三四五六七八九十\d]+[、..]?\s*)?[\u4e00-\u9fa5()()、,A-Za-z0-9+\-·\s]{2,28}(?:表|清单)(?:[::]|\s*$)/mu,i=/^第([一二三四五六七八九十百千\d]+)[章篇][、..]?\s*(.{2,60})$/mu,j=/^\d+[、..](?!\d)\s*(.{2,20})$/mu,k=/^[一二三四五六七八九十]+[、..]\s*(.{2,20})$/mu,l=/^第[一二三四五六七八九十\d]+[节条][、..]?\s*(.{2,30})$/mu,m=/^(?:[一二三四五六七八九十]+、\s*(.{2,20})|[((][一二三四五六七八九十\d]+[))]\s*(.{2,20})|\d+\.\d+(?:\.\d+)*[、..\s]\s*(.{2,20}))$/mu,n=/\.{4,}|\.{2,}\s*\d{1,3}\s*$|—\d+—|第\s*\d+\s*页|^\d{1,3}$/u,o=/[,、;:]/u,p=/[,。;:?!]/u;function q(a){return a.trim().replace(/^(?:#+\s*)+/u,"").trim()}function r(a){return a.replace(/[\s..·]+\d{1,3}$/u,"").replace(/\s+/gu,"").trim()}function s(a){return a.length>=2&&!o.test(a)&&!/[。,;]$/u.test(a)}function t(a){if(/^\d+$/u.test(a))return Number.parseInt(a,10);let b={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},c=0,d=0,e=!1;for(let f of a){if("十"===f){c+=10*(d||1),d=0,e=!0;continue}if("百"===f){c+=100*(d||1),d=0,e=!0;continue}if("千"===f){c+=1e3*(d||1),d=0,e=!0;continue}let a=b[f];if(void 0===a)return Number.MAX_SAFE_INTEGER;d=a,e=!0}return e?c+d:Number.MAX_SAFE_INTEGER}let u=/(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径)/gu,v=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d))/gu;function w(a){let b,c=[["市政",/市政|管网|排水|给水|雨污|污水|燃气/gu],["公路",/公路|路基|路面|沥青/gu],["桥梁与隧道",/桥梁|隧道/gu],["水利水电",/水利|河道|灌溉|防洪/gu],["电力",/电力|供配电|电压|电缆/gu],["机电安装",/机电|暖通|通风|空调|消防|给排水|智能化|电梯/gu],["装饰装修",/装饰|装修|幕墙/gu],["园林绿化",/园林|绿化|景观|苗木/gu],["铁路",/铁路|轨道/gu],["港口与航道",/港口|航道/gu],["矿山冶金",/矿山|冶金/gu],["房建",/房建|建筑|住宅|楼|结构|砌体|基坑|地下室|主体|层高|户型|公共建筑|产业园|厂房/gu]].map(([b,c])=>(c.lastIndex=0,{type:b,count:(a.match(c)||[]).length})).sort((a,b)=>b.count-a.count),d=c[0],e=0,f=0;for(let[c,d]of[["房建",/产业园|标准厂房|安置房|住宅小区|保障房|卫生院|门诊楼|办公楼/gu],["市政",/老旧小区|海绵城市|雨污分流|管网改造|管廊/gu],["桥梁与隧道",/桥梁|隧道|盾构|箱梁|斜拉|悬索|涵洞/gu],["公路",/公路|路基|路面|沥青|桩号|互通|匝道/gu],["水利水电",/堤防|水库|泵站|水闸|疏浚|节制闸|水电站|大坝|围堰/gu],["电力",/变电站|输电线路|配电|GIS设备|电缆|架空线路|铁塔|箱变/gu],["铁路",/铁路|轨道|道床|站台|信号机|接触网/gu],["港口与航道",/港口|码头|航道|护岸|堆场|泊位/gu],["矿山冶金",/矿山|矿井|选矿|冶炼|尾矿|轧钢/gu]]){d.lastIndex=0;let g=(a.match(d)||[]).length;g>=3&&g>e?(f=e,b=c,e=g):g>f&&(f=g)}if(b){if(f>0&&e<2*f&&d&&d.count>e)return d.type;let a=c.find(a=>a.type===b)?.count||0;return d&&d.type!==b&&d.count>2*a&&d.count>=2*e?d.type:b}return d&&d.count>0?d.type:"其他"}async function x(a){let b=a.replace(/\s/gu,"").length,c=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=c.reduce((a,b)=>a+b.replace(/\s/gu,"").length,0),o=(a.match(f)||[]).length,w=c.filter(a=>g.test(a)).length,x=function(a){let b=0,c=a.split(/\n+/u);for(let a=0;a<c.length;a+=1){let d=q(c[a]||"");if(d){if(h.test(d)||/^┌─/u.test(d)){b+=1;continue}if(/^\|.*\|.*\|$/u.test(d)){let d="";for(let b=a-1;b>=0&&b>=a-3;b-=1){let a=q(c[b]||"");if(a){d=a;break}}/^\|.*\|.*\|$/u.test(d)||h.test(d)||(b+=1)}}}return b}(a),{headings:y,useCnAsChapter:z}=function(a){let b,c=new Map,d=[],e=[],f=a.split(/\n+/u);for(let a=0;a<f.length;a+=1){let b=q(f[a]);if(!b||n.test(b))continue;let d=i.exec(b);if(d){let b=r(d[2]||"");b.length>=2&&!p.test(b)&&c.set(d[1],function(a,b,c){if(a.length<20)return a;let d=q(b[c+1]||"");if(d.length<2||d.length>15||!/[\u4e00-\u9fa5]/u.test(d)||n.test(d)||i.test(d)||l.test(d)||m.test(d)||j.test(d)||k.test(d))return a;let e=a+d;return e.length<=60?e:a}(b,f,a));continue}let g=k.exec(b);if(g){let a=r(g[1]||"");s(a)&&e.push(a)}}if(0===c.size)for(let a of f){let b=q(a);if(!b||n.test(b))continue;let c=j.exec(b);if(c){let a=r(c[1]||"");s(a)&&d.push(a)}}let g=!1;return c.size>0?b=[...c.entries()].sort((a,b)=>t(a[0])-t(b[0])).map(([,a])=>a):d.length>=2?b=d:(b=e,g=!0),{headings:[...new Set(b)],useCnAsChapter:g}}(a),A=y.length,{subsectionCount:B,subitemCount:C}=function(a,b){let c=0,d=0;for(let e of a.split(/\n+/u)){let a=q(e);if(!a||n.test(a))continue;let f=l.exec(a);if(f){s(r(f[1]||""))&&(c+=1);continue}let g=m.exec(a);if(g){if(!s(r(g[1]||g[2]||g[3]||""))||b&&void 0!==g[1])continue;d+=1}}return{subsectionCount:c,subitemCount:d}}(a,z),D=new Map;for(let a of c){let b=a.replace(/[\d\s,。、;:""''()()%…—\-·]/gu,"");b.length<8||D.set(b,(D.get(b)||0)+1)}let E=0;for(let a of D.values())a>1&&(E+=a);let F=await (0,d.Pm)(a);return{wordCount:b,effectiveWordCount:e,paramDensity:e>0?1e3*o/e:0,paramCount:o,arrowChainCoverage:c.length>0?w/c.length:0,duplicationRate:c.length>0?E/c.length:0,tableCount:x,sectionCount:A,subsectionCount:B,subitemCount:C,avgSectionWords:A>0?Math.round(e/A):0,headingStructure:y,tableTitles:function(a){let b=[];for(let c of a.split(/\n+/u)){let a=q(c);a&&!(a.length>40)&&!(a.length<3)&&h.test(a)&&b.push(a)}return[...new Set(b)]}(a),paramTokens:function(a){let b=new Map;for(let c of a.match(u)||[])b.set(c,(b.get(c)||0)+1);let c=(a.match(v)||[]).length;return c>0&&b.set("数值参数(数字+单位)",(b.get("数值参数(数字+单位)")||0)+c),[...b.entries()].map(([a,b])=>({token:a,count:b})).sort((a,b)=>b.count-a.count)}(a),segmentCount:c.length,arrowChainSegmentCount:w,duplicatedSegmentCount:E,fiveElementCompleteBlocks:F.completeBlocks}}},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},37047:(a,b,c)=>{c.d(b,{Bd:()=>k,Eh:()=>g,Mv:()=>n,VN:()=>f});var d=c(19898);let e=null;function f(){return e||(e=new d.LocalTransformersEmbeddingProvider({})),e}let g=.6,h=new Map,i=0,j=0;function k(){return{embedCacheHits:i,embedCacheMisses:j}}async function l(a,b){let c=b?await b(a):await f().embedDocuments(a);if(c.length!==a.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${a.length} 条,实际 ${c.length} 条`);return c}async function m(a,b){if("0"===process.env.DOCUMENT_EMBED_CACHE)return l(a,b);let c=Array(a.length),d=[],e=new Map;for(let b=0;b<a.length;b+=1){let f=a[b];if(f.length<=2e3){let a=h.get(f);if(a){c[b]=a,i+=1,h.delete(f),h.set(f,a);continue}}let g=e.get(f);g?g.push(b):(e.set(f,[b]),d.push(f))}if(0===d.length)return c;let f=await l(d,b),g=function(){let a=Number(process.env.DOCUMENT_EMBED_CACHE_SIZE||4e4);return Number.isFinite(a)&&a>0?a:4e4}();for(let a=0;a<d.length;a+=1){let b=d[a],i=f[a],k=e.get(b);for(let a of k)c[a]=i;if(b.length<=2e3&&(j+=k.length,h.set(b,i),h.size>g)){let a=h.keys().next().value;void 0!==a&&h.delete(a)}}return c}async function n(a,b,c){if(0===a.length||0===b.length)return()=>0;let d=[...a,...b],e=await m(d,c),f=new Map;for(let a=0;a<d.length;a++)f.has(d[a])||f.set(d[a],e[a]);return(a,b)=>{let c=f.get(a),d=f.get(b);if(!c||!d)return 0;let e=Math.min(c.length,d.length),g=0;for(let a=0;a<e;a++)g+=c[a]*d[a];return g}}},41991:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(37047);function e(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e++)d+=a[e]*b[e];return d}async function f(a){if(0===a.prototypes.length)return async a=>a.map(()=>!1);let b=a.threshold??d.Eh,c=a.negativePrototypes??[],f=[...a.prototypes,...c],g=a.prototypes.length,h=a.embedDocuments?null:(0,d.VN)(),i=a.embedDocuments?await a.embedDocuments(f):await h.embedDocuments(f);if(i.length!==f.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${f.length} 条,实际 ${i.length} 条`);return async d=>{if(0===d.length)return[];let f=d.map(()=>!1),j=d.map((b,c)=>a.lexicalHints&&!a.lexicalHints.test(b)?-1:c).filter(a=>a>=0);if(0===j.length)return f;let k=j.map(a=>d[a]),l=a.embedDocuments?await a.embedDocuments(k):await h.embedDocuments(k);return j.forEach((a,d)=>{let h=l[d];if(!h)return;let j=Math.max(...i.slice(0,g).map(a=>e(h,a))),k=c.length?Math.max(...i.slice(g).map(a=>e(h,a))):0;j>=b&&(0===c.length||j>k)&&(f[a]=!0)}),f}}},44533:(a,b,c)=>{c.d(b,{NW:()=>j,Qh:()=>k,VS:()=>o,Yy:()=>n,a2:()=>i,aY:()=>m});var d=c(19898),e=c(33873),f=c(21820),g=c(29021);let h=null;function i(){return e.join(f.homedir(),".customize-agent")}function j(a){return(0,d.getProjectKbPath)(e.resolve(a))}function k(){return h||(h=new d.MultiProjectManager(i())),h}function l(a){let b=e.resolve(a),c=e.resolve(e.join(f.homedir(),".customize-agent"));return!(g.existsSync(e.join(b,"pnpm-workspace.yaml"))&&g.existsSync(e.join(b,"apps","server")))&&(b===c||b.includes(`${e.sep}.customize-agent${e.sep}`)||b.endsWith(`${e.sep}apps${e.sep}server`)||b.endsWith(`${e.sep}apps${e.sep}cli`))}function m(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&g.existsSync(a)&&!l(a))return e.resolve(a);let b=function(){let a=e.join(i(),"projects","registry.db");if(!g.existsSync(a))return[];let b=new((0,d.loadBetterSqlite3)())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>e.resolve(a.project_root)).filter(a=>!l(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!l(process.env.INIT_CWD)?process.env.INIT_CWD:e.resolve(process.cwd(),"../..")}function n(a,b={}){let c=new Map;for(let b of function(a){let b=e.join(f.homedir(),".customize-agent","projects",(0,d.computeProjectId)(e.resolve(a)),"kb.db");if(!g.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=j(a);if(!g.existsSync(b))return[];let c=[],d=a=>{for(let f of g.readdirSync(a,{withFileTypes:!0})){let h=e.join(a,f.name);if(f.isDirectory()){d(h);continue}if(f.name.endsWith(".source.txt"))continue;let i=g.statSync(h),j=e.relative(b,h).split(e.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:e.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:i.size,mtime:i.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function o(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=n(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
21
21
  ${a.category}
22
22
  ${a.format}
23
- ${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await k().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}c.d(b,{Cr:()=>d,Ox:()=>e})},52922:(a,b,c)=>{c.d(b,{Bt:()=>m,JD:()=>A,J_:()=>j,Pm:()=>o,T4:()=>w,Ye:()=>k,bH:()=>D,gE:()=>r,nY:()=>F,vm:()=>l});var d=c(37047),e=c(41991);let f=["基本满足","大致符合","力争","原则上","大概","左右","尽可能","尽量满足"],g=/基本|大致|力争|原则上|大概|左右|尽可能|尽量/u,h=["基本满足招标文件要求","大致符合相关规范标准","力争达到优良质量标准","原则上按照规范执行","尽可能保证工程质量","尽量满足工期要求"],i=["结构构件左右对称布置","平面布置左右对称合理","力争上游的企业精神"];async function j(a){return(0,e.A)({prototypes:[...h],negativePrototypes:[...i],lexicalHints:g,embedDocuments:a})}function k(a){return f.filter(b=>a.includes(b)).map(b=>({phrase:b,count:a.split(b).length-1}))}let l=["精心组织、科学管理,确保工程质量","严格执行相关规范和设计要求","根据实际情况适当调整施工安排","建立健全管理体系,加强过程管理","全力保障项目顺利推进"];async function m(a,b){let c=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.trim()).filter(a=>a.length>=12),e=await (0,d.Mv)(c,[...l],b),f=await j(b),h=await f(c),i=c.filter(a=>g.test(a)).length,k=h.filter(Boolean).length,m=c.map((a,b)=>l.some(b=>e(a,b)>=d.Eh)||h[b]),n=m.filter(Boolean).length,o=[...new Set(c.filter((a,b)=>m[b]))].slice(0,40),p=c.length?n/c.length:0;return{totalSentences:c.length,fillerSentences:n,ratio:p,level:p>=.4?"heavy":p>=.2?"medium":"light",vagueCandidateSentences:i,vagueSemanticSentences:k,fillerSentenceDetails:o}}let n={plan:"制定专项施工方案与管理制度,明确技术措施",process:"施工工序流程与工艺步骤顺序",role:"由项目经理、技术负责人等岗位人员分工负责",frequency:"每日、每周等检查频次与时间节点安排",acceptance:"经检查验收合格后整改销项闭环"};async function o(a,b){let c=a.split(/\n{2,}/u).filter(a=>a.trim().length>=30),e=Object.values(n),f=await (0,d.Mv)(c,e,b),g=/项目经理|技术负责人|施工员|质检员|安全员|材料员|资料员|测量员|劳资员|班组长|监理工程师|试验员/u,h=/每日|每天|每周|每月|每季度|每批|不少于\s*\d+\s*次|至少\s*\d+\s*次|每周\s*\d+\s*次|每日\s*\d+\s*次|每\s*\d+\s*日/u,i=/整改|复查|销项|复验|闭环|返工/u,j=/专项施工方案|专项方案|施工方案|施工组织设计|技术措施|管理制度|技术交底|作业指导书|操作规程/u,k=/施工工序|工艺流程|施工流程|作业流程|施工顺序|施工步骤|工艺步骤|流水段|流水作业|依次施工|工序/u,l=(a,b)=>{let c=(b!==n.plan||!!j.test(a))&&(!!(b===n.plan&&j.test(a))||(b!==n.process||!!k.test(a))&&(!!(b===n.process&&k.test(a))||(b!==n.role||!!g.test(a))&&(!!(b===n.role&&g.test(a))||(b!==n.frequency||!!h.test(a))&&(!!(b===n.frequency&&h.test(a))||(b!==n.acceptance||!!i.test(a))&&(!!(b===n.acceptance&&i.test(a))||void 0)))));return void 0!==c?c:f(a,b)>=d.Eh},m=0,o=0,p=0;for(let a of c)e.filter(b=>l(a,b)).length>=4?m+=1:l(a,n.role)&&l(a,n.frequency)||(o+=1),l(a,n.role)&&l(a,n.frequency)&&l(a,n.acceptance)&&(p+=1);return{blocks:c.length,completeBlocks:m,incompleteBlocks:o,closedLoopBlocks:p}}let p="分析该工程难点的成因与风险来源",q=/\d+(?:\.\d+)?\s*(?:mm|cm|m|米|℃|%|kN|MPa|次|天|日历天|小时|h|Hz|m³|㎡|m²|t|吨|座|套|个)/u;async function r(a,b){let c=function(a){let b=a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n/u);if(b&&void 0!==b.index){let c=b.index+b[0].length,d=a.slice(c),e=d.search(/^#{2,3}\s+/mu);return e>=0?d.slice(0,e):d}let c=a.match(/^\|?\s*[^\n]*重难点[^\n]*\|\s*$/mu);if(!c||void 0===c.index)return"";let d=a.slice(c.index).split(/\n/u),e=[];for(let a of d){let b=a.trim();if(!b||!b.startsWith("|")){if(e.length>0)break;continue}e.push(a)}return e.join("\n")}(a),e=c.trim().startsWith("|")?c.split(/\n/u).filter(a=>{let b=a.trim();return b.startsWith("|")&&!/^\|\s*-+\s*\|/u.test(b)&&!/重难点/u.test(b.split("|")[1]||"")}).filter(a=>a.trim().length>=20):c.split(/\n{2,}/u).filter(a=>a.trim().length>=20),f=await (0,d.Mv)(e,[p],b),g=0,h=0,i=0,j=[];for(let a of e){let b=f(a,p)>=d.Eh,c=q.test(a);b&&(g+=1),c&&(h+=1),b&&c&&(i+=1),j.push({text:a,attributed:b,quantified:c})}let k=e.length?i/e.length:0;return{countermeasures:e.length,attributed:g,quantified:h,bothCount:i,ratio:k,heavyTemplated:e.length>0&&k<.5,entries:j.slice(0,24)}}let s=/建筑业10项新技术|10项新技术|安徽省住房城乡建设领域新技术推广目录|新技术推广目录|建设领域推广/u,t=/替代|取代|淘汰.{0,10}(?:工艺|技术|做法)|(?:较|比).{0,10}(?:传统|常规|普通)/u,u=/(?:提升|提高|节省|节约|降低|缩短|减少).{0,10}(?:效率|工期|成本|损耗|能耗|人工|周期)|升级价值|效益显著/u,v=["BIM","铝模","附着式升降脚手架","跳仓法","直螺纹","装配式","灌浆套筒","自动化监测","智慧工地","再生利用","非开挖","CCTV","碳纤维","薄贴法","干法施工","液压提升","预制","光伏一体化","BIPV","模块化"];function w(a){let b=v.filter(b=>a.includes(b)),c=s.test(a),d=t.test(a),e=u.test(a),f=[c,d,e].filter(Boolean).length;return{found:[...b],catalogCited:c,replaceClaimed:d,upgradeClaimed:e,effective:b.length>0&&f>=2}}let x=[/基坑|沟槽/u,/模板支撑|高支模/u,/脚手架|悬挑|附着式/u,/起重吊装|吊装/u,/幕墙/u,/人工挖孔桩/u,/装配式|钢结构安装/u,/拆除工程/u,/顶管|盾构|暗挖/u,/有限空间|水下作业/u,/吊篮/u,/塔吊|施工电梯|升降机/u,/沉井/u],y=/超危大|超规模|专家论证|一般危大/u,z=/(?:深度|高度|跨度|开挖).{0,8}\d+(?:\.\d+)?\s*(?:m|米)|(?:重量|吊装).{0,8}\d+(?:\.\d+)?\s*(?:kN|千牛)/u;function A(a){let b=x.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u\w*|\\|\(|\||\)/gu,"")),c=y.test(a),d=z.test(a);return{categories:b,graded:c,paramMatched:d,twoStepComplete:b.length>0&&c&&d}}let B=[{name:"总则",pattern:/总则/u},{name:"组织机构及职责",pattern:/应急(?:组织|领导)|组织机构|应急指挥部|应急小组/u},{name:"风险分析与危险源辨识",pattern:/风险分析|危险源辨识|风险辨识/u},{name:"应急物资设备通讯保障",pattern:/应急物资|物资.{0,8}(?:保障|储备)|通讯保障|通信保障/u},{name:"专项应急预案",pattern:/专项应急预案|专项预案/u},{name:"应急响应流程",pattern:/应急响应|响应流程|响应程序/u},{name:"后期处置",pattern:/后期处置|善后|事故调查/u},{name:"培训演练",pattern:/(?:应急)?演练|培训.{0,6}演练/u}],C=["高处坠落","物体打击","坍塌","触电","火灾","起重","防汛","防台风","中暑","中毒窒息","管线破坏"];function D(a){let b=B.filter(b=>b.pattern.test(a)).map(a=>a.name),c=B.filter(b=>!b.pattern.test(a)).map(a=>a.name),d=C.filter(b=>a.includes(b));return{coveredParts:[...b],missingParts:[...c],coverage:b.length/B.length,planHits:[...d]}}let E=[/其他项目/u,/其他标段/u,/其他城市/u,/本公司(?:其他|承建)/u,/某(?:市|县|区|项目)(?:的)?/u,/他项目/u,/兄弟项目/u];function F(a){let b=a.replace(/及其他项目/gu,"及〔清单列举项〕");return E.filter(a=>a.test(b)).map(a=>a.source.replace(/\\u/gu,""))}},54185:(a,b,c)=>{c.d(b,{C4:()=>u,D9:()=>j,P_:()=>z,Q9:()=>t,V0:()=>m,ch:()=>i,cq:()=>g,gn:()=>p,o0:()=>y,p_:()=>k,sO:()=>A,uj:()=>E,uw:()=>D,v_:()=>q,yF:()=>w});var d=c(22157);let e=/^(?:主要施工|施工)?(?:工艺流程|概况|概述|流程|工序|工艺|方法|方案|步骤|顺序|做法|安排|要点|内容)(?:要点|概述|简介|说明)?$/u,f=new Set(["主要施工方法","主要施工内容","项目主要施工内容"]);function g(a){let b=(0,d.Sw)(a);return!(!b||f.has(b))&&e.test(b)}let h=/^(\s*(?:[-*•]\s+)?)\*{0,2}(?:施工概况|施工概述|施工流程|工艺流程|施工工艺|施工工序|施工方法|施工步骤|施工顺序|施工做法|施工安排|施工要点)\*{0,2}[::]\s*/u,i="正文禁止以“施工概况/施工流程/施工方法/工艺流程/施工步骤”等结构标签充当小节标题或段落开头引导(不得出现“施工概况:本项目……”式标签行),要素内容直接融入连贯段落叙述。";function j(a){let b=[],c=[],d=0,e=[],f=0;for(let b of a.split(/\r?\n/u)){let a=b.trim();if(!a)continue;let i=/^(#{3,6})\s+(.+?)\s*$/u.exec(a);if(i){g(i[2])&&(d+=1,c.length<5&&c.push(`${i[1]} ${i[2]}`));continue}h.test(b)&&(f+=1,e.length<5&&e.push(a.slice(0,24)))}return d>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文存在结构标签充当小节标题 ${d} 处:“${c.join("”、“")}”`,suggestion:"结构标签(施工概况/施工流程/施工方法/工艺流程等)不得独立成题;确定性修复器已接入删除标签标题行(正文保留),要素内容融入上级小节连贯叙述。"}),f>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文段首结构标签前缀 ${f} 处:“${e.join("”、“")}…”`,suggestion:"禁止“施工概况:……”“施工流程:……”式段首标签引导;确定性修复器已接入剥离标签前缀(正文保留),要素直接以连贯段落表述。"}),b}function k(a){let b=a.split(/\r?\n/u),c=[],d=0,e=0;for(let a=0;a<b.length;a+=1){let f=b[a],i=f.trim();if(!i){c.push(f);continue}let j=/^(#{4,6})\s+(.+?)\s*$/u.exec(i);if(j){if(g(j[2])){d+=1,a+1<b.length&&""===b[a+1].trim()&&(a+=1);continue}c.push(f);continue}if(/^#{1,6}\s/u.test(i)){c.push(f);continue}let k=h.exec(f);if(k){let a=f.slice(k[0].length);e+=1,a.trim()&&c.push(a);continue}c.push(f)}let f=d+e;if(0===f)return{markdown:a,fixedCount:0,details:[]};let i=[];return d>0&&i.push(`结构标签标题删除 ${d} 行(正文保留)`),e>0&&i.push(`段首标签前缀剥离 ${e} 处`),{markdown:c.join("\n"),fixedCount:f,details:i}}let l=["顺序词叙述","编号步骤","有序列表","箭头链"];function m(a){let b=l.length;return l[(a%b+b)%b]}function n(a){let b=l.indexOf(a);return l[(b+1)%l.length]}let o={顺序词叙述:"用顺序词连贯叙述工序先后(“先……,再……,随后……,然后……,最后……”)",编号步骤:"用编号步骤分行列出工序(“1. 测量放线;2. 基槽开挖;3. 基础施工;……”)",有序列表:"用无序要点列表分行列出工序(“- 基层清理;- 放线定位;- 分层摊铺;……”)",箭头链:"用箭头链表达工序先后(“基层清理→放线定位→分层摊铺→碾压→验收”)"};function p(a){let b=m(a);return`【工序顺序表达形式指定】本块的工序顺序表达使用「${b}」形式:${o[b]};本章相邻小节已分别指定其他形式,禁止通篇使用同一形式,不得用“施工流程:”等结构标签引导。`}function q(a){let b;if(!(0,d.Z1)(a))return;let c=function(a){let b=(a.match(/→|->|=>/gu)||[]).length,c=(a.match(/(?:^|\n)\s*(?:\d+[.、))]|[((]\d+[))]|[一二三四五六七八九十]{1,3}[、.]|第[一二三四五六七八九十]{1,3}步)/gu)||[]).length,d=(a.match(/(?:^|\n)\s*[-*•]\s+\S/gu)||[]).length;return{箭头链:b,编号步骤:c>=2?c:0,有序列表:d>=2?d:0,顺序词叙述:(a.match(/先[^。;!?\n]{0,24}(?:再|然后|随后|接着|最后|后)|依次|先后|按[^。;!?\n]{0,12}顺序|顺序施工|流水施工/gu)||[]).length}}(a),e=0;for(let a of l)c[a]>e&&(b=a,e=c[a]);return b}function r(a){return a.split(/^##\s+/gmu).slice(1).map(a=>{let b=a.indexOf("\n");return b<0?{title:a.trim(),body:""}:{title:a.slice(0,b).trim(),body:a.slice(b+1)}})}function s(a){let b,c=[];for(let d of a.split(/\r?\n/u)){let a=/^###\s+(.+?)\s*$/u.exec(d.trim());a?(b&&c.push({title:b.title,text:b.lines.join("\n")}),b={title:a[1],lines:[]}):b&&b.lines.push(d)}return b&&c.push({title:b.title,text:b.lines.join("\n")}),c}function t(a){let b=[];for(let c of r(a)){if(!d.V.test(c.title))continue;let a=s(c.body);if(a.length<2)continue;let e=a.map(a=>q(a.text));for(let d=1;d<a.length;d+=1){let f=e[d-1],g=e[d];if(f&&g&&f===g&&(b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`工序顺序表达形式模板化:「${c.title}」章相邻小节「${a[d-1].title}」与「${a[d].title}」同为【${g}】形式`,suggestion:`将「${a[d].title}」的工序顺序表达改写为其他形式(建议【${n(g)}】),内容与数值保持不变;分项块之间必须轮换形式,禁止通篇同一形式。`}),b.length>=6))return b}}return b}function u(a){let b=new Map;for(let c of r(a)){if(!d.V.test(c.title))continue;let a=s(c.body);if(a.length<2)continue;let e=a.map(a=>q(a.text));for(let d=1;d<a.length;d+=1){let f=e[d];if(!f||f!==e[d-1])continue;let g=`${c.title}\u0000${a[d].title}`;b.has(g)||b.set(g,{chapterTitle:c.title,blockTitle:a[d].title,currentForm:f,targetForm:n(f)})}}return[...b.values()].slice(0,12)}let v=[{id:"by-tech-lead-org",text:"由技术负责人组织",pattern:/由\s*技术负责人\s*组织/gu,variants:["技术负责人牵头组织","项目部安排技术负责人主持","技术负责人负责组织实施","由项目技术负责人统筹安排"]},{id:"post-qualified",text:"合格后方可",pattern:/合格\s*后方可/gu,variants:["合格后再行","合格后方能","合格后才可","检验合格方可","合格以后方可"]},{id:"after-acceptance",text:"验收合格后",pattern:/验收\s*合格\s*后/gu,variants:["验收通过后","验收签认后","验收确认后","检验合格后"]}],w="句式禁止复读:全篇「由技术负责人组织」「合格后方可」「验收合格后」三类骨架表述各自不得超过 2 次,同义表达轮换使用(如“技术负责人牵头组织”“检验合格后再行”“验收通过后”),保持句式多样、事实不变。";function x(a,b){return[...a.matchAll(b.pattern)].length}function y(a){let b=[];for(let c of v){let d=x(a,c);d<=2||b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`句式骨架复读:「${c.text}」全篇出现 ${d} 处(上限 2 处)——模板化复用句式`,suggestion:`保留全文前 2 处「${c.text}」,其余处按句子语境轮换同义表达(如:${c.variants.slice(0,3).join("、")});改写保留原句全部事实信息(岗位、数值、频次不得丢失),不得用结构标签或固定套语替代。`})}return b}function z(a){let b=[],c=r(a);for(let d of v){let e=x(a,d);if(e<=2)continue;let f=new Map;for(let a of c)if(a.body)for(let b of a.body.matchAll(d.pattern)){let c=b.index??0,d=function(a,b,c){let d=b;for(;d>0&&!/[。!?\n]/u.test(a[d-1]);)d-=1;let e=c;for(;e<a.length&&!/[。!?\n]/u.test(a[e]);)e+=1;return e<a.length&&/[。!?]/u.test(a[e])&&(e+=1),a.slice(d,e).trim()}(a.body,c,c+b[0].length);if(d.length<6)continue;let e=f.get(a.title)??[];e.includes(d)||e.push(d),f.set(a.title,e)}let g=2;for(let[a,c]of f){let f=c.slice(g).slice(0,4);g=Math.max(0,g-c.length),f.length>0&&b.push({chapterTitle:a,fingerprintLabel:d.text,totalCount:e,sentences:f})}}return b.slice(0,12)}function A(a){let b=a,c=0,d=[];for(let a of v){let e=0;for(;;){let c=[...b.matchAll(a.pattern)];if(c.length<=2)break;let d=c[2],f=d.index??0,g=a.variants[e%a.variants.length],h=b.slice(0,f)+g+b.slice(f+d[0].length);if(x(h,a)>=c.length)break;b=h,e+=1}e>0&&(d.push({id:a.id,replaced:e}),c+=e)}return{markdown:b,fixedCount:c,details:d}}let B=new Set(["目录","前言","摘要","附录","索引","封面","总则"]);function C(a){let b=[],c=new Set,d="",e="";for(let f of a.split(/\r?\n/u)){let a=/^(#{2,4})\s+(.+?)\s*$/u.exec(f.trim());if(!a)continue;let g=a[1].length,h=a[2];if(2===g){d=h,e="";continue}let i=h.replace(/^第[一二三四五六七八九十百零〇\d]+[章节篇部分][\s、..::]*/u,"").replace(/^\d+(?:\.\d+)*[..、::]?\s*/u,"").trim();if(i&&!c.has(i)){let a=function(a){if(!a||B.has(a))return;let b=(a.match(/[\u4e00-\u9fa5]/gu)||[]).length;if(0!==b){if(b<4&&!/[A-Za-z]/u.test(a)&&a.length<=4)return"标题核心名不足 4 字(残缺标题)";if(/[,,]/u.test(a))return"标题含逗号(句式化标题)";if(/[等及和与]$/u.test(a))return"标题以悬挂连接词结尾(残缺标题)"}}(i);a&&(c.add(i),b.push({chapterTitle:d,parentTitle:e,rawTitle:h,reason:a}))}3===g&&(e=h)}return b}function D(a){let b=[];for(let c of C(a)){let a=c.parentTitle?`「${c.parentTitle}」内`:c.chapterTitle?`「${c.chapterTitle}」章内`:"";if(b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`小节标题残缺或句式化:${a}“${c.rawTitle}”(${c.reason})`,suggestion:"将标题重命名为完整表达小节内容的正式名称(如“危大”应为“危大工程辨识与管控”、残缺名补全语义),正文内容不变;禁止使用“施工概况/施工流程/施工方法”等结构标签词充当标题。"}),b.length>=6)break}return b}function E(a){return C(a).slice(0,6).map(a=>({chapterTitle:a.chapterTitle,title:a.rawTitle,reason:a.reason}))}},56942:(a,b,c)=>{c.d(b,{$:()=>g,R:()=>h});var d=c(92808);function e(a){return[...new Set(a.filter(Boolean))]}function f(a){let b=(0,d.t0)(a,d.hW);return b.length>0?b:["project_overview"]}function g(a){var b,c,d;let g=a.resolvedRoles.filter(a=>a.required&&!a.satisfied).map(a=>a.role),h=a.resolvedRoles.filter(a=>a.weak).map(a=>a.role),i=(b=a.template,c=a.spec,d=a.summary,b.chapters.map(a=>{let b=function(a,b){let c=b.chapterRules.find(b=>b.id===a.id||b.title===a.title),d=(c?.requiredFactIds||[]).map(a=>b.factFields.find(b=>b.id===a)?.name).filter(Boolean);return e([...a.requiredFacts||[],...d])}(a,c),g=e([...f([a.title,a.purpose,...a.queries||[],...a.sections||[]].join("\n")),...b.flatMap(a=>f(a))]),h=g.filter(a=>(d.materialInventory[a]||[]).length>0),i=h.reduce((a,b)=>a+(d.materialInventory[b]||[]).length,0),j=b.filter(a=>f(a).some(a=>h.includes(a))),k=b.filter(a=>!j.includes(a));return{chapterId:a.id,title:a.title,requiredFacts:b,coveredFacts:j,missingFacts:k,requiredRoles:g,satisfiedRoles:h,evidenceCount:i}})),j=[],k=[];0===a.template.chapters.length&&k.push("模板未配置章节,建议通过模板章节或显式 OUTLINE 提供文档结构"),a.template.chapters.some(a=>!a.purpose&&(!a.queries||0===a.queries.length)&&(!a.requiredFacts||0===a.requiredFacts.length))&&k.push("部分模板章节缺少 purpose、queries 或 requiredFacts,生成质量可能不稳定"),a.summary.source.ambiguous&&j.push(a.summary.source.selectionReason),a.summary.fingerprint.confidence<.34&&k.push("材料指纹置信度较低,建议绑定明确的材料文件"),0===a.summary.source.selectedFiles&&j.push("未绑定可用项目资料文件,无法支撑文档生成"),g.length>0&&0===a.summary.source.selectedFiles&&k.push("模板未绑定可用项目资料文件,请先绑定参与生成的资料"),h.length>0&&0===a.summary.source.selectedFiles&&k.push("绑定资料证据较弱,请确认资料已完成索引");let l=i.filter(a=>0===a.evidenceCount);l.length>0&&k.push(`章节级证据覆盖较弱:${l.slice(0,5).map(a=>a.title).join("、")}`);let m=a.summary.coverage.satisfiedRoles,n=a.resolvedRoles.filter(a=>!a.required&&!a.satisfied).map(a=>a.role),o=[`资料范围:${a.summary.source.selectionReason},可用文件 ${a.summary.source.selectedFiles}/${a.summary.source.totalFiles} 份`,`已识别资料类型:${m.join("、")||"无"}`,a.summary.coverage.missingRoles.length?`待补充必需资料类型:${a.summary.coverage.missingRoles.join("、")}`:"必需资料类型已满足",g.length?`模板强相关资料角色缺失:${g.join("、")}`:"模板强相关资料角色已满足",n.length?`可选资料角色未识别:${n.join("、")}`:"",h.length?`证据较弱资料角色:${h.join("、")}`:""].filter(Boolean);return{ready:0===j.length,missingRoles:g,weakRoles:h,diagnostics:o,chapterDiagnostics:i,blockingIssues:j,warnings:k}}function h(a,b={}){let c=a.chapterDiagnostics.filter(a=>0===a.evidenceCount||a.missingFacts.length>0).slice(0,8).map(a=>`${a.title}:证据 ${a.evidenceCount} 条${a.missingFacts.length?`,缺失 ${a.missingFacts.slice(0,6).join("、")}`:""}`);return b.publicSafe?["## 生成事实使用边界",c.length?`章节证据风险:
23
+ ${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await k().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}c.d(b,{Cr:()=>d,Ox:()=>e})},52922:(a,b,c)=>{c.d(b,{Bt:()=>m,JD:()=>A,J_:()=>j,Pm:()=>o,T4:()=>w,Ye:()=>k,bH:()=>D,gE:()=>r,nY:()=>F,vm:()=>l});var d=c(37047),e=c(41991);let f=["基本满足","大致符合","力争","原则上","大概","左右","尽可能","尽量满足"],g=/基本|大致|力争|原则上|大概|左右|尽可能|尽量/u,h=["基本满足招标文件要求","大致符合相关规范标准","力争达到优良质量标准","原则上按照规范执行","尽可能保证工程质量","尽量满足工期要求"],i=["结构构件左右对称布置","平面布置左右对称合理","力争上游的企业精神"];async function j(a){return(0,e.A)({prototypes:[...h],negativePrototypes:[...i],lexicalHints:g,embedDocuments:a})}function k(a){return f.filter(b=>a.includes(b)).map(b=>({phrase:b,count:a.split(b).length-1}))}let l=["精心组织、科学管理,确保工程质量","严格执行相关规范和设计要求","根据实际情况适当调整施工安排","建立健全管理体系,加强过程管理","全力保障项目顺利推进"];async function m(a,b){let c=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.trim()).filter(a=>a.length>=12),e=await (0,d.Mv)(c,[...l],b),f=await j(b),h=await f(c),i=c.filter(a=>g.test(a)).length,k=h.filter(Boolean).length,m=c.map((a,b)=>l.some(b=>e(a,b)>=d.Eh)||h[b]),n=m.filter(Boolean).length,o=[...new Set(c.filter((a,b)=>m[b]))].slice(0,40),p=c.length?n/c.length:0;return{totalSentences:c.length,fillerSentences:n,ratio:p,level:p>=.4?"heavy":p>=.2?"medium":"light",vagueCandidateSentences:i,vagueSemanticSentences:k,fillerSentenceDetails:o}}let n={plan:"制定专项施工方案与管理制度,明确技术措施",process:"施工工序流程与工艺步骤顺序",role:"由项目经理、技术负责人等岗位人员分工负责",frequency:"每日、每周等检查频次与时间节点安排",acceptance:"经检查验收合格后整改销项闭环"};async function o(a,b){let c=a.split(/\n{2,}/u).filter(a=>a.trim().length>=30),e=Object.values(n),f=await (0,d.Mv)(c,e,b),g=/项目经理|技术负责人|施工员|质检员|安全员|材料员|资料员|测量员|劳资员|班组长|监理工程师|试验员/u,h=/每日|每天|每周|每月|每季度|每批|不少于\s*\d+\s*次|至少\s*\d+\s*次|每周\s*\d+\s*次|每日\s*\d+\s*次|每\s*\d+\s*日/u,i=/整改|复查|销项|复验|闭环|返工/u,j=/专项施工方案|专项方案|施工方案|施工组织设计|技术措施|管理制度|技术交底|作业指导书|操作规程/u,k=/施工工序|工艺流程|施工流程|作业流程|施工顺序|施工步骤|工艺步骤|流水段|流水作业|依次施工|工序/u,l=(a,b)=>{let c=(b!==n.plan||!!j.test(a))&&(!!(b===n.plan&&j.test(a))||(b!==n.process||!!k.test(a))&&(!!(b===n.process&&k.test(a))||(b!==n.role||!!g.test(a))&&(!!(b===n.role&&g.test(a))||(b!==n.frequency||!!h.test(a))&&(!!(b===n.frequency&&h.test(a))||(b!==n.acceptance||!!i.test(a))&&(!!(b===n.acceptance&&i.test(a))||void 0)))));return void 0!==c?c:f(a,b)>=d.Eh},m=0,o=0,p=0;for(let a of c)e.filter(b=>l(a,b)).length>=4?m+=1:l(a,n.role)&&l(a,n.frequency)||(o+=1),l(a,n.role)&&l(a,n.frequency)&&l(a,n.acceptance)&&(p+=1);return{blocks:c.length,completeBlocks:m,incompleteBlocks:o,closedLoopBlocks:p}}let p="分析该工程难点的成因与风险来源",q=/\d+(?:\.\d+)?\s*(?:mm|cm|m|米|℃|%|kN|MPa|次|天|日历天|小时|h|Hz|m³|㎡|m²|t|吨|座|套|个)/u;async function r(a,b){let c=function(a){let b=a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n/u);if(b&&void 0!==b.index){let c=b.index+b[0].length,d=a.slice(c),e=d.search(/^#{2,3}\s+/mu);return e>=0?d.slice(0,e):d}let c=a.match(/^\|?\s*[^\n]*重难点[^\n]*\|\s*$/mu);if(!c||void 0===c.index)return"";let d=a.slice(c.index).split(/\n/u),e=[];for(let a of d){let b=a.trim();if(!b||!b.startsWith("|")){if(e.length>0)break;continue}e.push(a)}return e.join("\n")}(a),e=c.trim().startsWith("|")?c.split(/\n/u).filter(a=>{let b=a.trim();return b.startsWith("|")&&!/^\|\s*-+\s*\|/u.test(b)&&!/重难点/u.test(b.split("|")[1]||"")}).filter(a=>a.trim().length>=20):c.split(/\n{2,}/u).filter(a=>a.trim().length>=20),f=await (0,d.Mv)(e,[p],b),g=0,h=0,i=0,j=[];for(let a of e){let b=f(a,p)>=d.Eh,c=q.test(a);b&&(g+=1),c&&(h+=1),b&&c&&(i+=1),j.push({text:a,attributed:b,quantified:c})}let k=e.length?i/e.length:0;return{countermeasures:e.length,attributed:g,quantified:h,bothCount:i,ratio:k,heavyTemplated:e.length>0&&k<.5,entries:j.slice(0,24)}}let s=/建筑业10项新技术|10项新技术|安徽省住房城乡建设领域新技术推广目录|新技术推广目录|建设领域推广/u,t=/替代|取代|淘汰.{0,10}(?:工艺|技术|做法)|(?:较|比).{0,10}(?:传统|常规|普通)/u,u=/(?:提升|提高|节省|节约|降低|缩短|减少).{0,10}(?:效率|工期|成本|损耗|能耗|人工|周期)|升级价值|效益显著/u,v=["BIM","铝模","附着式升降脚手架","跳仓法","直螺纹","装配式","灌浆套筒","自动化监测","智慧工地","再生利用","非开挖","CCTV","碳纤维","薄贴法","干法施工","液压提升","预制","光伏一体化","BIPV","模块化"];function w(a){let b=v.filter(b=>a.includes(b)),c=s.test(a),d=t.test(a),e=u.test(a),f=[c,d,e].filter(Boolean).length;return{found:[...b],catalogCited:c,replaceClaimed:d,upgradeClaimed:e,effective:b.length>0&&f>=2}}let x=[/基坑|沟槽/u,/模板支撑|高支模/u,/脚手架|悬挑|附着式/u,/起重吊装|吊装/u,/幕墙/u,/人工挖孔桩/u,/装配式|钢结构安装/u,/拆除工程/u,/顶管|盾构|暗挖/u,/有限空间|水下作业/u,/吊篮/u,/塔吊|施工电梯|升降机/u,/沉井/u],y=/超危大|超规模|专家论证|一般危大/u,z=/(?:深度|高度|跨度|开挖).{0,8}\d+(?:\.\d+)?\s*(?:m|米)|(?:重量|吊装).{0,8}\d+(?:\.\d+)?\s*(?:kN|千牛)/u;function A(a){let b=x.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u\w*|\\|\(|\||\)/gu,"")),c=y.test(a),d=z.test(a);return{categories:b,graded:c,paramMatched:d,twoStepComplete:b.length>0&&c&&d}}let B=[{name:"总则",pattern:/总则/u},{name:"组织机构及职责",pattern:/应急(?:组织|领导)|组织机构|应急指挥部|应急小组/u},{name:"风险分析与危险源辨识",pattern:/风险分析|危险源辨识|风险辨识/u},{name:"应急物资设备通讯保障",pattern:/应急物资|物资.{0,8}(?:保障|储备)|通讯保障|通信保障/u},{name:"专项应急预案",pattern:/专项应急预案|专项预案/u},{name:"应急响应流程",pattern:/应急响应|响应流程|响应程序/u},{name:"后期处置",pattern:/后期处置|善后|事故调查/u},{name:"培训演练",pattern:/(?:应急)?演练|培训.{0,6}演练/u}],C=["高处坠落","物体打击","坍塌","触电","火灾","起重","防汛","防台风","中暑","中毒窒息","管线破坏"];function D(a){let b=B.filter(b=>b.pattern.test(a)).map(a=>a.name),c=B.filter(b=>!b.pattern.test(a)).map(a=>a.name),d=C.filter(b=>a.includes(b));return{coveredParts:[...b],missingParts:[...c],coverage:b.length/B.length,planHits:[...d]}}let E=[/其他项目/u,/其他标段/u,/其他城市/u,/本公司(?:其他|承建)/u,/某(?:市|县|区|项目)(?:的)?/u,/他项目/u,/兄弟项目/u];function F(a){let b=a.replace(/及其他项目/gu,"及〔清单列举项〕");return E.filter(a=>a.test(b)).map(a=>a.source.replace(/\\u/gu,""))}},54185:(a,b,c)=>{c.d(b,{C4:()=>u,D9:()=>j,G9:()=>O,P_:()=>F,Q9:()=>t,V0:()=>m,ch:()=>i,cq:()=>g,gn:()=>p,o0:()=>E,p_:()=>k,sO:()=>G,uj:()=>M,uw:()=>L,v_:()=>q,yF:()=>C,z9:()=>A});var d=c(22157);let e=/^(?:主要施工|施工)?(?:工艺流程|概况|概述|流程|工序|工艺|方法|方案|步骤|顺序|做法|安排|要点|内容)(?:要点|概述|简介|说明)?$/u,f=new Set(["主要施工方法","主要施工内容","项目主要施工内容"]);function g(a){let b=(0,d.Sw)(a);return!(!b||f.has(b))&&e.test(b)}let h=/^(\s*(?:[-*•]\s+)?)\*{0,2}(?:施工概况|施工概述|施工流程|工艺流程|施工工艺|施工工序|施工方法|施工步骤|施工顺序|施工做法|施工安排|施工要点)\*{0,2}[::]\s*/u,i="正文禁止以“施工概况/施工流程/施工方法/工艺流程/施工步骤”等结构标签充当小节标题或段落开头引导(不得出现“施工概况:本项目……”式标签行),要素内容直接融入连贯段落叙述。";function j(a){let b=[],c=[],d=0,e=[],f=0;for(let b of a.split(/\r?\n/u)){let a=b.trim();if(!a)continue;let i=/^(#{3,6})\s+(.+?)\s*$/u.exec(a);if(i){g(i[2])&&(d+=1,c.length<5&&c.push(`${i[1]} ${i[2]}`));continue}h.test(b)&&(f+=1,e.length<5&&e.push(a.slice(0,24)))}return d>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文存在结构标签充当小节标题 ${d} 处:“${c.join("”、“")}”`,suggestion:"结构标签(施工概况/施工流程/施工方法/工艺流程等)不得独立成题;确定性修复器已接入删除标签标题行(正文保留),要素内容融入上级小节连贯叙述。"}),f>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文段首结构标签前缀 ${f} 处:“${e.join("”、“")}…”`,suggestion:"禁止“施工概况:……”“施工流程:……”式段首标签引导;确定性修复器已接入剥离标签前缀(正文保留),要素直接以连贯段落表述。"}),b}function k(a){let b=a.split(/\r?\n/u),c=[],d=0,e=0;for(let a=0;a<b.length;a+=1){let f=b[a],i=f.trim();if(!i){c.push(f);continue}let j=/^(#{4,6})\s+(.+?)\s*$/u.exec(i);if(j){if(g(j[2])){d+=1,a+1<b.length&&""===b[a+1].trim()&&(a+=1);continue}c.push(f);continue}if(/^#{1,6}\s/u.test(i)){c.push(f);continue}let k=h.exec(f);if(k){let a=f.slice(k[0].length);e+=1,a.trim()&&c.push(a);continue}c.push(f)}let f=d+e;if(0===f)return{markdown:a,fixedCount:0,details:[]};let i=[];return d>0&&i.push(`结构标签标题删除 ${d} 行(正文保留)`),e>0&&i.push(`段首标签前缀剥离 ${e} 处`),{markdown:c.join("\n"),fixedCount:f,details:i}}let l=["顺序词叙述","编号步骤","有序列表","箭头链"];function m(a){let b=l.length;return l[(a%b+b)%b]}function n(a){let b=l.indexOf(a);return l[(b+1)%l.length]}let o={顺序词叙述:"用顺序词连贯叙述工序先后(“先……,再……,随后……,然后……,最后……”)",编号步骤:"用编号步骤分行列出工序(“1. 测量放线;2. 基槽开挖;3. 基础施工;……”)",有序列表:"用无序要点列表分行列出工序(“- 基层清理;- 放线定位;- 分层摊铺;……”)",箭头链:"用箭头链表达工序先后(“基层清理→放线定位→分层摊铺→碾压→验收”)"};function p(a){let b=m(a);return`【工序顺序表达形式指定】本块的工序顺序表达使用「${b}」形式:${o[b]};本章相邻小节已分别指定其他形式,禁止通篇使用同一形式,不得用“施工流程:”等结构标签引导。`}function q(a){let b;if(!(0,d.Z1)(a))return;let c=function(a){let b=(a.match(/→|->|=>/gu)||[]).length,c=(a.match(/(?:^|\n)\s*(?:\d+[.、))]|[((]\d+[))]|[一二三四五六七八九十]{1,3}[、.]|第[一二三四五六七八九十]{1,3}步)/gu)||[]).length,d=(a.match(/(?:^|\n)\s*[-*•]\s+\S/gu)||[]).length;return{箭头链:b,编号步骤:c>=2?c:0,有序列表:d>=2?d:0,顺序词叙述:(a.match(/先[^。;!?\n]{0,24}(?:再|然后|随后|接着|最后|后)|依次|先后|按[^。;!?\n]{0,12}顺序|顺序施工|流水施工/gu)||[]).length}}(a),e=0;for(let a of l)c[a]>e&&(b=a,e=c[a]);return b}function r(a){return a.split(/^##\s+/gmu).slice(1).map(a=>{let b=a.indexOf("\n");return b<0?{title:a.trim(),body:""}:{title:a.slice(0,b).trim(),body:a.slice(b+1)}})}function s(a){let b,c=[];for(let d of a.split(/\r?\n/u)){let a=/^###\s+(.+?)\s*$/u.exec(d.trim());a?(b&&c.push({title:b.title,text:b.lines.join("\n")}),b={title:a[1],lines:[]}):b&&b.lines.push(d)}return b&&c.push({title:b.title,text:b.lines.join("\n")}),c}function t(a){let b=[];for(let c of r(a)){if(!d.V.test(c.title))continue;let a=s(c.body);if(a.length<2)continue;let e=a.map(a=>q(a.text));for(let d=1;d<a.length;d+=1){let f=e[d-1],g=e[d];if(f&&g&&f===g&&(b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`工序顺序表达形式模板化:「${c.title}」章相邻小节「${a[d-1].title}」与「${a[d].title}」同为【${g}】形式`,suggestion:`将「${a[d].title}」的工序顺序表达改写为其他形式(建议【${n(g)}】),内容与数值保持不变;分项块之间必须轮换形式,禁止通篇同一形式。`}),b.length>=6))return b}}return b}function u(a){let b=new Map;for(let c of r(a)){if(!d.V.test(c.title))continue;let a=s(c.body);if(a.length<2)continue;let e=a.map(a=>q(a.text));for(let d=1;d<a.length;d+=1){let f=e[d];if(!f||f!==e[d-1])continue;let g=`${c.title}\u0000${a[d].title}`;b.has(g)||b.set(g,{chapterTitle:c.title,blockTitle:a[d].title,currentForm:f,targetForm:n(f)})}}return[...b.values()].slice(0,12)}let v=/先([^。;\n]{2,200}?)[,,、]\s*最后([^。;\n,,]{2,60}?)([。;])/gu,w=/[,,、]\s*(?:再|接着|随后|然后|继而)\s*/u,x=/[^\s→,。;:、!?“”‘’《》〈〉()\n]+(?:(?:→|->|=>)[^\s→,。;:、!?“”‘’《》〈〉()\n]+){1,7}/gu,y=["再","随后","然后","接着"];function z(a,b,c){let d;if("顺序词叙述"===b&&"编号步骤"===c?d=function(a){let b=!1,c=a.replace(v,(a,c,d,e)=>{let f=c.split(w).concat(d.split(w)).map(a=>a.trim()).filter(Boolean);if(f.length<3)return a;b=!0;let g=f.map((a,b)=>`${b+1}. ${a}${b===f.length-1?e:";"}`);return`
24
+ ${g.join("\n")}`});return b?c:void 0}(a):"箭头链"===b&&"顺序词叙述"===c?d=function(a){let b=!1,c=a.replace(x,a=>{let c=a.split(/→|->|=>/u).map(a=>a.trim()).filter(Boolean);if(c.length<2)return a;if(b=!0,2===c.length)return`先${c[0]},再${c[1]}`;let d=c.slice(1,-1).map((a,b)=>`${y[b%y.length]}${a}`);return`先${c[0]},${d.join(",")},最后${c[c.length-1]}`});return b?c:void 0}(a):"编号步骤"===b&&"有序列表"===c?d=function(a){let b=0,c=a.replace(/^(\s*)\d+[.、))]\s+/gmu,(a,c)=>(b+=1,`${c}- `));return b>=2?c:void 0}(a):"有序列表"===b&&"箭头链"===c&&(d=function(a){let b=a.split(/\r?\n/u),c=[],d=[],e=!1,f=()=>{if(d.length>=2){let a=d.map(a=>a.replace(/^[ \t]*[-*•]\s+/u,"").replace(/[;;,,。]$/u,"").trim()).filter(Boolean);if(a.length>=2){e=!0,c.push(a.join("→")),d=[];return}}c.push(...d),d=[]};for(let a of b)/^[ \t]*[-*•]\s+\S/u.test(a)?d.push(a):(f(),c.push(a));return f(),e?c.join("\n"):void 0}(a)),d&&d!==a)return q(d)===c?d:void 0}function A(a){let b=function(a){let b,c=a.split(/\r?\n/u),e=[],f="",g=!1,h=a=>{b&&g&&(e.push({chapterTitle:f,title:b.title,text:c.slice(b.startLine+1,a).join("\n"),startLine:b.startLine,endLine:a}),b=void 0)};for(let a=0;a<c.length;a+=1){let e=/^##\s+(.+?)\s*$/u.exec(c[a]);if(e){h(a),f=e[1],g=d.V.test(f);continue}let i=/^###\s+(.+?)\s*$/u.exec(c[a]);i&&(h(a),g&&(b={title:i[1],startLine:a}))}return h(c.length),e}(a);if(b.length<2)return{markdown:a,fixedCount:0,details:[]};let c=[];for(let a of b){let b=c[c.length-1];b&&b[0].chapterTitle===a.chapterTitle?b.push(a):c.push([a])}let e=new Map;for(let a of c){let b=a.map(a=>q(a.text));for(let c=1;c<a.length;c+=1){let d=b[c],f=b[c-1];if(!d||d!==f)continue;let g=n(d),h=z(a[c].text,d,g);h&&(e.set(a[c],{text:h,fromForm:d,toForm:g}),b[c]=g)}for(let c=1;c<a.length;c+=1){let d=b[c],f=b[c-1];if(!d||!f||d!==f)continue;let g=a[c-1];if(e.has(g))continue;let h=n(f);if(c>=2&&b[c-2]===h)continue;let i=z(g.text,f,h);i&&(e.set(g,{text:i,fromForm:f,toForm:h}),b[c-1]=h)}}if(0===e.size)return{markdown:a,fixedCount:0,details:[]};let f=a.split(/\r?\n/u),g=[];for(let[a,b]of[...e.entries()].sort((a,b)=>b[0].startLine-a[0].startLine))f.splice(a.startLine+1,a.endLine-a.startLine-1,...b.text.split("\n")),g.push({chapterTitle:a.chapterTitle,blockTitle:a.title,fromForm:b.fromForm,toForm:b.toForm});return{markdown:f.join("\n"),fixedCount:g.length,details:g}}let B=[{id:"by-tech-lead-org",text:"由技术负责人组织",pattern:/由\s*技术负责人\s*组织/gu,variants:["技术负责人牵头组织","项目部安排技术负责人主持","技术负责人负责组织实施","由项目技术负责人统筹安排"]},{id:"post-qualified",text:"合格后方可",pattern:/合格\s*后方可/gu,variants:["合格后再行","合格后方能","合格后才可","检验合格方可","合格以后方可"]},{id:"after-acceptance",text:"验收合格后",pattern:/验收\s*合格\s*后/gu,variants:["验收通过后","验收签认后","验收确认后","检验合格后"]}],C="句式禁止复读:全篇「由技术负责人组织」「合格后方可」「验收合格后」三类骨架表述各自不得超过 2 次,同义表达轮换使用(如“技术负责人牵头组织”“检验合格后再行”“验收通过后”),保持句式多样、事实不变。";function D(a,b){return[...a.matchAll(b.pattern)].length}function E(a){let b=[];for(let c of B){let d=D(a,c);d<=2||b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`句式骨架复读:「${c.text}」全篇出现 ${d} 处(上限 2 处)——模板化复用句式`,suggestion:`保留全文前 2 处「${c.text}」,其余处按句子语境轮换同义表达(如:${c.variants.slice(0,3).join("、")});改写保留原句全部事实信息(岗位、数值、频次不得丢失),不得用结构标签或固定套语替代。`})}return b}function F(a){let b=[],c=r(a);for(let d of B){let e=D(a,d);if(e<=2)continue;let f=new Map;for(let a of c)if(a.body)for(let b of a.body.matchAll(d.pattern)){let c=b.index??0,d=function(a,b,c){let d=b;for(;d>0&&!/[。!?\n]/u.test(a[d-1]);)d-=1;let e=c;for(;e<a.length&&!/[。!?\n]/u.test(a[e]);)e+=1;return e<a.length&&/[。!?]/u.test(a[e])&&(e+=1),a.slice(d,e).trim()}(a.body,c,c+b[0].length);if(d.length<6)continue;let e=f.get(a.title)??[];e.includes(d)||e.push(d),f.set(a.title,e)}let g=2;for(let[a,c]of f){let f=c.slice(g).slice(0,4);g=Math.max(0,g-c.length),f.length>0&&b.push({chapterTitle:a,fingerprintLabel:d.text,totalCount:e,sentences:f})}}return b.slice(0,12)}function G(a){let b=a,c=0,d=[];for(let a of B){let e=0;for(;;){let c=[...b.matchAll(a.pattern)];if(c.length<=2)break;let d=c[2],f=d.index??0,g=a.variants[e%a.variants.length],h=b.slice(0,f)+g+b.slice(f+d[0].length);if(D(h,a)>=c.length)break;b=h,e+=1}e>0&&(d.push({id:a.id,replaced:e}),c+=e)}return{markdown:b,fixedCount:c,details:d}}function H(a){return a.replace(/^第[一二三四五六七八九十百零〇\d]+[章节篇部分][\s、..::]*/u,"").replace(/^\d+(?:\.\d+)*[..、::]?\s*/u,"").trim()}let I=new Set(["目录","前言","摘要","附录","索引","封面","总则"]);function J(a){if(!a||I.has(a))return!1;let b=(a.match(/[\u4e00-\u9fa5]/gu)||[]).length;return 0!==b&&!(b>=4)&&!/[A-Za-z]/u.test(a)&&a.length<=4}function K(a){let b=[],c=new Set,d="",e="";for(let f of a.split(/\r?\n/u)){let a=/^(#{2,4})\s+(.+?)\s*$/u.exec(f.trim());if(!a)continue;let g=a[1].length,h=a[2];if(2===g){d=h,e="";continue}let i=H(h);if(i&&!c.has(i)){let a=function(a){if(!(!a||I.has(a))&&0!==(a.match(/[\u4e00-\u9fa5]/gu)||[]).length){if(J(a))return"标题核心名不足 4 字(残缺标题)";if(/[,,]/u.test(a))return"标题含逗号(句式化标题)";if(/[等及和与]$/u.test(a))return"标题以悬挂连接词结尾(残缺标题)"}}(i);a&&(c.add(i),b.push({chapterTitle:d,parentTitle:e,rawTitle:h,reason:a}))}3===g&&(e=h)}return b}function L(a){let b=[];for(let c of K(a)){let a=c.parentTitle?`「${c.parentTitle}」内`:c.chapterTitle?`「${c.chapterTitle}」章内`:"";if(b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`小节标题残缺或句式化:${a}“${c.rawTitle}”(${c.reason})`,suggestion:"将标题重命名为完整表达小节内容的正式名称(如“危大”应为“危大工程辨识与管控”、残缺名补全语义),正文内容不变;禁止使用“施工概况/施工流程/施工方法”等结构标签词充当标题。"}),b.length>=6)break}return b}function M(a){return K(a).slice(0,6).map(a=>({chapterTitle:a.chapterTitle,title:a.rawTitle,reason:a.reason}))}let N=["系统","工程","设施","设备","装置","结构","管道","安装","施工","项目","要点"];function O(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){let d=b[a],e=/^(#{2,4})\s+(.+?)\s*$/u.exec(d.trim());if(!e)continue;let f=e[2],g=H(f);if(!J(g))continue;let h=[],i=a+1,j=0;for(;i<b.length&&j<400&&!/^\s*#{1,6}\s/u.test(b[i]);)h.push(b[i]),j+=b[i].length,i+=1;let k=h.join("\n"),l=N.find(a=>k.includes(g+a));if(!l||((g+l).match(/[\u4e00-\u9fa5]/gu)||[]).length<4)continue;let m=f.indexOf(g);if(m<0)continue;let n=`${f.slice(0,m)}${g}${l}${f.slice(m+g.length)}`;b[a]=d.replace(f,n),c.push({from:f,to:n})}return 0===c.length?{markdown:a,fixedCount:0,details:[]}:{markdown:b.join("\n"),fixedCount:c.length,details:c}}},56942:(a,b,c)=>{c.d(b,{$:()=>g,R:()=>h});var d=c(92808);function e(a){return[...new Set(a.filter(Boolean))]}function f(a){let b=(0,d.t0)(a,d.hW);return b.length>0?b:["project_overview"]}function g(a){var b,c,d;let g=a.resolvedRoles.filter(a=>a.required&&!a.satisfied).map(a=>a.role),h=a.resolvedRoles.filter(a=>a.weak).map(a=>a.role),i=(b=a.template,c=a.spec,d=a.summary,b.chapters.map(a=>{let b=function(a,b){let c=b.chapterRules.find(b=>b.id===a.id||b.title===a.title),d=(c?.requiredFactIds||[]).map(a=>b.factFields.find(b=>b.id===a)?.name).filter(Boolean);return e([...a.requiredFacts||[],...d])}(a,c),g=e([...f([a.title,a.purpose,...a.queries||[],...a.sections||[]].join("\n")),...b.flatMap(a=>f(a))]),h=g.filter(a=>(d.materialInventory[a]||[]).length>0),i=h.reduce((a,b)=>a+(d.materialInventory[b]||[]).length,0),j=b.filter(a=>f(a).some(a=>h.includes(a))),k=b.filter(a=>!j.includes(a));return{chapterId:a.id,title:a.title,requiredFacts:b,coveredFacts:j,missingFacts:k,requiredRoles:g,satisfiedRoles:h,evidenceCount:i}})),j=[],k=[];0===a.template.chapters.length&&k.push("模板未配置章节,建议通过模板章节或显式 OUTLINE 提供文档结构"),a.template.chapters.some(a=>!a.purpose&&(!a.queries||0===a.queries.length)&&(!a.requiredFacts||0===a.requiredFacts.length))&&k.push("部分模板章节缺少 purpose、queries 或 requiredFacts,生成质量可能不稳定"),a.summary.source.ambiguous&&j.push(a.summary.source.selectionReason),a.summary.fingerprint.confidence<.34&&k.push("材料指纹置信度较低,建议绑定明确的材料文件"),0===a.summary.source.selectedFiles&&j.push("未绑定可用项目资料文件,无法支撑文档生成"),g.length>0&&0===a.summary.source.selectedFiles&&k.push("模板未绑定可用项目资料文件,请先绑定参与生成的资料"),h.length>0&&0===a.summary.source.selectedFiles&&k.push("绑定资料证据较弱,请确认资料已完成索引");let l=i.filter(a=>0===a.evidenceCount);l.length>0&&k.push(`章节级证据覆盖较弱:${l.slice(0,5).map(a=>a.title).join("、")}`);let m=a.summary.coverage.satisfiedRoles,n=a.resolvedRoles.filter(a=>!a.required&&!a.satisfied).map(a=>a.role),o=[`资料范围:${a.summary.source.selectionReason},可用文件 ${a.summary.source.selectedFiles}/${a.summary.source.totalFiles} 份`,`已识别资料类型:${m.join("、")||"无"}`,a.summary.coverage.missingRoles.length?`待补充必需资料类型:${a.summary.coverage.missingRoles.join("、")}`:"必需资料类型已满足",g.length?`模板强相关资料角色缺失:${g.join("、")}`:"模板强相关资料角色已满足",n.length?`可选资料角色未识别:${n.join("、")}`:"",h.length?`证据较弱资料角色:${h.join("、")}`:""].filter(Boolean);return{ready:0===j.length,missingRoles:g,weakRoles:h,diagnostics:o,chapterDiagnostics:i,blockingIssues:j,warnings:k}}function h(a,b={}){let c=a.chapterDiagnostics.filter(a=>0===a.evidenceCount||a.missingFacts.length>0).slice(0,8).map(a=>`${a.title}:证据 ${a.evidenceCount} 条${a.missingFacts.length?`,缺失 ${a.missingFacts.slice(0,6).join("、")}`:""}`);return b.publicSafe?["## 生成事实使用边界",c.length?`章节证据风险:
24
25
  ${c.join("\n")}`:"","资料不足的事实不得编造;仅施工组织、计划安排、资源配置类数据可在文档要求允许时进行计划推导并标注。"].filter(Boolean).join("\n"):["## 后台生成准备度",`可生成:${a.ready?"是":"否"}`,a.missingRoles.length?`资料诊断:部分模板期望资料类型未从绑定文件中明确识别,生成时仅使用已绑定资料中的事实`:"",a.weakRoles.length?`资料诊断:部分资料类型证据较弱,生成时不得补写资料未明确的事实`:"",c.length?`章节级证据风险:
25
26
  ${c.join("\n")}`:""].filter(Boolean).join("\n")}},58965:(a,b,c)=>{c.d(b,{$m:()=>f,VX:()=>d,tK:()=>e});let d=/\b(?:TDbPipe|TDbPipeValve|TDbPipeFitting|TDbWellh|AcDb\w+|Dwg\w+|Polyline|Hatch|Layer|BlockReference)\b/giu,e=/[\w\u4e00-\u9fa5\-—_+]+\.(?:pdf|dwg|docx?|xlsx?|xls|csv|png|jpe?g|webp)\b/giu,f="[零〇一二三四五六七八九十百千万两]+"},61373:(a,b,c)=>{c.d(b,{rd:()=>O,KX:()=>P,kt:()=>D,K7:()=>F,V3:()=>as,cf:()=>Y,p8:()=>Z,pV:()=>K,y4:()=>T,r4:()=>$,rs:()=>ar,BJ:()=>M,Re:()=>y,z1:()=>C,wi:()=>t,bR:()=>_,UG:()=>ap,CK:()=>an,Ed:()=>ao,Bl:()=>W,FD:()=>i,kT:()=>N,nP:()=>L,uv:()=>J,bx:()=>G,dh:()=>aa,b_:()=>S});var d=c(58965),e=c(22157),f=c(54185),g=c(70208),h=c(41991);function i(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let j=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\s)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\s)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\s)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\s)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\s)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\s)?/gmu,k=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,l=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,m=/^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|^#{2,6}\s+.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|^#{2,6}\s+.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项)\s*$/gmu,n=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u,o=/注意事项|如何|怎么写|按需|视情况|是否/u,p=["如何编写施工方案的写作说明标题","根据项目情况判断的注意事项标题","按需生成的编写要求与说明标题"],q=["危大工程专项施工方案与安全措施","质量验收标准与检测要求","成品保护与移交管理措施"];async function r(a){return(0,h.A)({prototypes:[...p],negativePrototypes:[...q],embedDocuments:a})}function s(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,g.GQ)(b);return n.test(b)||n.test(c)||(0,g.mq)(b)||(0,g.mq)(c)}function t(a){return a.replace(/PDF\s*第\s*\d+(?:\s*[-—至到~~]\s*\d+)?\s*页/giu,"相关资料").replace(/PDF\s*第(?![ \t]*[0-90-9])/giu,"").replace(/第\s*\d+\s*页\s*(?:\/|共)\s*\d+\s*页/gu,"").replace(/第\s*\d+\s*(?:[-—至到~~]\s*\d+)?\s*页/gu,"相关资料").replace(/(装饰工程|土建工程|加固工程|给排水工程|电气工程|智能化工程|消防工程|弱电智能化工程|室外道排工程|建筑结构加固工程)\s*(?:(?:施工)?图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/\d+\s*页\s*(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:(?:施工)?图纸)?/gu,"$1专业图纸").replace(/(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:[((]\s*)?\d+\s*页\s*(?:(?:施工)?图纸)?\s*[))]?/gu,"$1专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9、及与和]{2,24})\s*(?:共|多达|约|合计)\s*\d+\s*页/gu,"$1相关专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24}工程)\s*(?:图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24})(?<!施工)\s*(?:施工)?图纸\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/(给排水|电气|智能化|消防|暖通|人防)\s*[((]\s*\d+\s*页\s*[))]/gu,"$1专业图纸").replace(/(?:依据|按照|结合)?\s*图纸\s*[((]\s*\d+\s*页\s*[))]/gu,"依据相关专业图纸").replace(/(?:依据|按照|结合)?\s*清单\s*[((]?\s*\d+\s*页\s*[))]?/gu,"依据工程量清单").replace(/资料\s*[((]?\s*\d+\s*页\s*[))]?/gu,"项目资料").replace(/[((]?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件|工程)?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:(?:共|多达|约|合计)\s*)?\d+\s*页[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件)?[))]?/gu,a=>/图纸|工程|装饰|土建|加固|给排水|电气|智能化|消防/u.test(a)?"相关专业图纸":/清单/u.test(a)?"工程量清单":"相关资料").replace(/(?:位于|详见|见|参见|依据|按照|结合)?\s*相关资料(?:\s*相关资料)+/gu,"相关资料")}let u=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function v(a){return/^\s*\|/u.test(a)||/^\s*\|?\s*:?-{3,}:?/u.test(a)?a:a.replace(/([。;;])\s*(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S)/gu,"$1\n").replace(/([^\n])\s+(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\*\*)/gu,"$1\n")}RegExp(String.raw`\S.+(?:\s|[。;;])${u}\S.+(?:\s|[。;;])${u}\S`,"u");let w=RegExp(`\r?
26
27
  `,"u"),x=RegExp(`
@@ -31,7 +31,7 @@ ${a.content||""}`)),c=await (0,bj.Mv)(br,b),d=a.map((a,d)=>({item:a,text:b[d],sc
31
31
  ${a.item.content||""}`),c=`${a.item.filePath}|${a.item.sectionTitle||""}|${b.slice(0,120)}`;e.has(c)||(e.add(c),f.push({...a.item,content:b}))}return f}function bH(a){return bx(a).length>0}function bI(a,b){let c=(a,b)=>a.length>0?a:b;return{...a,awardObjectives:c(a.awardObjectives,b.awardObjectives),specialQualityStandards:c(a.specialQualityStandards,b.specialQualityStandards),awardClauses:c(a.awardClauses,b.awardClauses),greenBuildingGrade:a.greenBuildingGrade||b.greenBuildingGrade,smartSiteGrade:a.smartSiteGrade||b.smartSiteGrade,assemblyRate:a.assemblyRate||b.assemblyRate,systematicBenchmarks:c(a.systematicBenchmarks,b.systematicBenchmarks),frontScheduleClauses:c(a.frontScheduleClauses,b.frontScheduleClauses),prohibitionNotes:c(a.prohibitionNotes,b.prohibitionNotes),dateFabricationProhibited:a.dateFabricationProhibited||b.dateFabricationProhibited,extracted:a.extracted||b.extracted}}function bJ(a,b){let c=new Set,d=[];for(let e of[...a,...b])c.has(e.text)||(c.add(e.text),d.push(e));return d}function bK(a){return!!a&&(a.awardObjectives.length>0||a.specialQualityStandards.length>0||a.awardClauses.length>0||!!a.greenBuildingGrade||!!a.smartSiteGrade||!!a.assemblyRate||a.systematicBenchmarks.length>0||a.frontScheduleClauses.length>0||a.dateFabricationProhibited||a.prohibitionNotes.length>0)}function bL(a){let b=p.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,e.c6)(a||"default"));return o.mkdirSync(b,{recursive:!0}),b}function bM(a){return a.map(a=>({filePath:a.filePath||"",sectionTitle:a.sectionTitle||"",contentHash:(0,e.c6)(a.content||"")})).sort((a,b)=>`${a.filePath}|${a.sectionTitle}`.localeCompare(`${b.filePath}|${b.sectionTitle}`))}function bN(a){return a.coreTerms.length>0?a.coreTerms.join(" "):a.text}function bO(a){if(!a)return[];let b=[];for(let c of a.awardObjectives)b.push({kind:"创优目标",item:c});for(let c of a.specialQualityStandards)b.push({kind:"特殊质量标准",item:c});for(let c of a.awardClauses)b.push({kind:"奖项条款",item:c});for(let c of a.systematicBenchmarks)b.push({kind:"体系基准要求",item:c});for(let c of a.frontScheduleClauses)b.push({kind:"前附表响应条款",item:c});return a.greenBuildingGrade&&b.push({kind:"绿色建筑等级",item:a.greenBuildingGrade}),a.smartSiteGrade&&b.push({kind:"智慧工地等级",item:a.smartSiteGrade}),a.assemblyRate&&b.push({kind:"装配率要求",item:a.assemblyRate}),b}let bP={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},responsive:{type:"boolean",required:!0}}}}}},bQ=new Map;async function bR(a,b={}){let c=a.map(a=>({kind:a.kind,text:a.text.trim()})).filter(a=>a.text.length>0);if(0===c.length)return new Map;let d=c.map(a=>`${a.kind}\u0001${a.text}`).join("\x02"),f=bQ.get(d);if(void 0!==f)return f;let g=new Set;c.forEach((a,b)=>{((0,e.hh)(a.text)||(0,bk.dn)(a.text))&&g.add(b)});let h=await (0,aF.bb)([(0,bh.y4)("你是招标文件要求项程序性/实质性分类器。"),"对每个要求项判定其是否属于施工组织设计正文必须响应的实质要求:\n- 实质要求(responsive=true):创优目标与奖项、质量/工期/安全/环保目标、绿色建筑/智慧工地/装配式等级、扬尘治理、四节一环保、人员与分包要求、付款履约约束等施组需写入或遵守的条款\n- 程序性条款(responsive=false):开标时间地点、保证金账户、投标文件递交/解密方式、评标委员会组成、投标有效期等纯投标程序信息\n只输出 JSON,不得输出其他内容。"].join("\n"),c.map((a,b)=>`${b+1}. [${a.kind}] ${a.text}`).join("\n"),{maxTokens:2e3,temperature:0,signal:b.signal,diagnostics:b.diagnostics,schema:bP,taskKind:"structuredGeneration"});if(!h?.results?.length)return new Map(c.map((a,b)=>[b,!g.has(b)]));let i=new Map;for(let a of h.results)"number"==typeof a.index&&i.set(a.index,!1!==a.responsive);let j=new Map(c.map((a,b)=>[b,!g.has(b)&&(i.get(b)??!0)]));return bQ.size>=32&&bQ.clear(),bQ.set(d,j),j}let bS={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},alternative:{type:"boolean",required:!0}}}}}};async function bT(a,b={}){let c=a.filter(a=>a.text.trim());if(0===c.length)return new Map;let d=await (0,aF.bb)([(0,bh.y4)("你是招标要求条款锚点关系判定器。"),'对每条条款判定其锚点之间的关系:\n- alternative=true:条款锚点为"或/及/任选其一"关系(如"省级或国家级奖项""A、B、C任选"),满足任一锚点即算完整响应\n- alternative=false:条款锚点必须全部满足(并列承诺、金额与奖项共存条款),缺任一锚点即部分响应\n只输出 JSON,不得输出其他内容。'].join("\n"),c.map((a,b)=>`${b+1}. 条款:${a.text}
32
32
  未命中锚点:${a.missingAnchors.join("、")||"(无)"}`).join("\n"),{maxTokens:1e3,temperature:0,signal:b.signal,diagnostics:b.diagnostics,schema:bS,taskKind:"structuredGeneration"});if(!d?.results?.length)return new Map(c.map((a,b)=>[b,!1]));let e=new Map;for(let a of d.results)"number"==typeof a.index&&e.set(a.index,!0===a.alternative);return new Map(c.map((a,b)=>[b,e.get(b)??!1]))}function bU(a){let b=a;for(;;){let a=b.replace(/^(?:争创|争取|力争|争获|确保|获得|创建|力创|评为|荣获|标为|目标为|承诺|为)/u,"");if(a===b||!a)break;b=a}return b}function bV(a,b,c){let d=a.text.replace(/\s+/gu,""),e=new Set;for(let b of a.coreTerms){let a=b.replace(/\s+/gu,"");a.length>=2&&e.add(a)}if(!c?.skipNumericAnchors)for(let a of d.matchAll(/(?:\d+(?:\.\d+)?\s*(?:%|%|天|日|万元|亿元|元|米|m|M|mm|毫米|层|年|个|月|周|小时|分钟|项|处|台|套|辆|人|家|次|遍|道|吨|kPa|MPa))/giu))e.add(a[0].replace(/\s+/gu,""));for(let a of d.matchAll(/[\u4e00-\u9fa5]{2,6}[杯奖星]/gu)){let b=bU(a[0]);/^[\u4e00-\u9fa5]{2,7}$/u.test(b)&&e.add(b)}let f=[],g=[];for(let a of e)(b.includes(a)?f:g).push(a);return{total:e.size,hit:f,missing:g}}async function bW(a,b,c){let d=[],e=bO(b);if(0===e.length)return d;let f=a.replace(/\s+/gu,""),g=[/100%围挡|周边100%围挡/u,/物料堆放100%覆盖|物料堆放.{0,8}覆盖|密目网.*覆盖|覆盖.{0,4}密目网/u,/出入车辆100%冲洗|车辆.{0,10}冲洗|冲洗.{0,10}车辆|冲洗点/u,/施工现场地面100%硬化|地面100%硬化/u,/拆迁工地100%湿法作业|拆迁.{0,10}湿法作业|湿法作业.{0,10}拆迁|无拆迁|不涉及拆迁/u,/渣土车辆100%密闭运输|密闭运输|密闭式/u],h=()=>g.filter(b=>b.test(a)).length,i=a.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>bX(a)).filter(Boolean).slice(0,80),j=await bR(e.map(a=>({kind:a.kind,text:a.item.text})),{signal:c.signal,diagnostics:c.diagnostics}),k=c.bodyTexts&&c.bodyTexts.length>0?[...i,...c.bodyTexts]:i,l=[];for(let[a,{kind:b,item:g}]of e.entries()){if(!1===j.get(a)||"体系基准要求"===b&&/六个百分百|扬尘治理/u.test(g.text)&&h()>=4)continue;let e=bN(g),i=0;for(let a of k){let b=c.semanticSimilarity(e,a);b>i&&(i=b)}if(i>=.6){if(!b_(g.text)){let a=new Set;for(let b of g.text.matchAll(/(?:\d+(?:\.\d+)?\s*(?:万元|亿元|元))/giu))a.add(b[0].replace(/\s+/gu,""));if(a.size>0&&[...a].filter(a=>!f.includes(a)).length>0){let a=bV(g,f);l.push({item:g,kind:b,bestSimilarity:i,hit:a.hit,missing:a.missing})}}continue}let m=bV(g,f,{skipNumericAnchors:b_(g.text)});if(!(m.total>0)||0!==m.missing.length){if(m.hit.length>0){l.push({item:g,kind:b,bestSimilarity:i,hit:m.hit,missing:m.missing});continue}d.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`评分项要求未响应:${b}“${g.text}”在正文中零命中(最佳语义相似度 ${i.toFixed(2)})`,suggestion:`招标文件明确要求的${b}必须显性响应:在对应章节补写“${g.text}”及配套保证措施。`})}}if(l.length>0){let a=await bT(l.map(a=>({text:a.item.text,missingAnchors:a.missing})),{signal:c.signal,diagnostics:c.diagnostics});for(let[b,c]of l.entries())a.get(b)||d.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`评分项要求部分响应:${c.kind}“${c.item.text}”已命中“${c.hit.join("、")}”,但缺少“${c.missing.join("、")}”(最佳语义相似度 ${c.bestSimilarity.toFixed(2)})`,suggestion:`条款内全部关键数据与奖项必须逐项显性响应:在对应章节补写“${c.missing.join("、")}”对应内容(缺一即部分响应)。`})}if(b){let a=[...b.awardObjectives,...b.awardClauses].map(a=>a.text);if(a.length>0){let b=new Set;for(let a of f.matchAll(/[杯奖]/gu)){let c=f[(a.index||0)+1];if("奖"===a[0]&&void 0!==c&&/[励金惩罚项]/u.test(c))continue;let d=(a.index||0)+1,e=f.slice(Math.max(0,d-13),d-1),g=e.match(/(?:(|\(|\u201c)([\u4e00-\u9fa5]{2,6})$/u),h=g?g[1]:e.match(/[\u4e00-\u9fa5]{2,6}$/u)?.[0];if(!h)continue;let i=bU(h)+a[0];/^[\u4e00-\u9fa5]{2,7}$/u.test(i)&&b.add(i)}for(let c of b)!/优质工程|优良工程|样板工程|示范工程|文明工地|标准化工地/u.test(c)&&(a.some(a=>a.includes(c))||d.unshift({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`奖项名称疑似杜撰/替换:正文出现“${c}”,不在招标文件奖项要求原文中(招标文件要求:${a.map(a=>a.slice(0,60)).join(";")})`,suggestion:`奖项名称必须与招标文件原文逐字一致:把正文“${c}”改为招标文件原文奖项名称,禁止替换、降级或省略;招标文件“确保/达到”类要求不得弱化为“争创/争取”。`}));if(a.some(a=>/确保|必须|须/u.test(a)))for(let c of b)a.some(a=>a.includes(c))&&RegExp(`(?:争创|争取|力争|争获)${c}`).test(f)&&d.unshift({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`奖项承诺强度弱化:“${c}”前使用了争取类措辞(争创/争取/力争),招标文件要求为“确保/必须”级别`,suggestion:`招标文件“确保/达到”类等级要求不得弱化为“争创/争取”:把正文争取类措辞改为“确保${c}”并配套创优保证措施。`})}}return d.slice(0,8)}function bX(a){return a.trim().replace(/^#{2,4}\s+/u,"").replace(/^\d+(?:\.\d+)*[\s、.]+/u,"").trim()}async function bY(a,b,c,d={}){let e=[];if(!a)return e;let f=b.map(a=>bX(a.title)).filter(Boolean);if(0===f.length)return e;let g=bO(a),h=await bR(g.map(a=>({kind:a.kind,text:a.item.text})),{signal:d.signal,diagnostics:d.diagnostics});for(let[a,{kind:b,item:d}]of g.entries()){if(!1===h.get(a))continue;let g=bN(d),i="",j=0;for(let a of f){let b=c(g,a);b>j&&(j=b,i=a)}j>=.45&&e.push({kind:b,item:d,chapterTitle:i,score:j})}return e}function bZ(a){if(!a)return[];let b=[];a.extracted&&b.push(`已从绑定资料结构化提取评分项要求(哈希 ${a.sourceHash?.slice(0,8)})`),a.awardObjectives.length&&b.push(`创优目标 ${a.awardObjectives.length} 条:${a.awardObjectives.map(a=>a.text).join("、")}`),a.specialQualityStandards.length&&b.push(`特殊质量标准 ${a.specialQualityStandards.length} 条`),a.awardClauses.length&&b.push(`奖项条款 ${a.awardClauses.length} 条`),a.greenBuildingGrade&&b.push(`绿色建筑等级:${a.greenBuildingGrade.text}`),a.smartSiteGrade&&b.push(`智慧工地等级:${a.smartSiteGrade.text}`),a.assemblyRate&&b.push(`装配率:${a.assemblyRate.text}`),a.systematicBenchmarks.length&&b.push(`体系基准 ${a.systematicBenchmarks.length} 条:${a.systematicBenchmarks.map(a=>a.text).join("、")}`);let c=a.frontScheduleClauses.filter(a=>!(0,bk.dn)(a.text));return c.length&&b.push(`前附表响应条款 ${c.length} 条:${c.map(a=>a.text).slice(0,8).join("、")}`),a.dateFabricationProhibited&&b.push("禁编日期:以开工令为准"),a.extracted||b.push("评分项要求未提取(无绑定资料或模型不可用),零响应检测跳过"),b}let b$=/履约保证金|保证金账户|中标金额|进度款|工程款|付款|结清|结算|违约金|贷款市场报价利率|LPR|最高投标限价|工程结算价款|预付款|支付担保|保函|暂列金额|暂估价|结算核减|造价咨询费|工程量.*异议|增值税|异地纳税人/u;function b_(a){return b$.test(a)}async function b0(a){let{chapters:b,model:c,similarity:d}=a,e=bO(c);if(0===e.length)return{fixedCount:0,details:[]};let f=await bY(c,b,d,{signal:a.signal,diagnostics:a.diagnostics});if(0===f.length&&0===b.length)return{fixedCount:0,details:[]};let g=new Map(f.map(a=>[a.item,a])),h=bX(b[0]?.title||""),i=b.map(a=>a.content).join("\n").replace(/\s+/gu,""),j=0,k=[];for(let{kind:a,item:c}of e){var l;let d=g.get(c);if(!d&&h&&(d={kind:a,item:c,chapterTitle:h,score:0}),!d)continue;let e=bV(c,i,{skipNumericAnchors:b_(c.text)});if(e.total>0&&0===e.missing.length)continue;let f=b.find(a=>bX(a.title)===d.chapterTitle);if(!f)continue;let m=/(?:要求|等级|标准)[::]\s*无\s*$/u.test(c.text.trim()),n=c.text.trim().replace(/\.\.\.+|…+$/u,""),o=b_(c.text)?`按招标文件约定:${l=c.text,/违约金|贷款市场报价利率|LPR/u.test(l)?"本工程工期延误违约金按招标文件约定条款执行,进度计划与纠偏措施按进度管理制度落实。":/保证金/u.test(l)?"本工程履约保证金按招标文件约定的金额、提交期限与退还时限执行,可按约定以保函形式替代。":/预付款/u.test(l)?"本工程预付款的支付、扣回与使用按招标文件约定执行,专款用于施工准备。":/支付担保/u.test(l)?"本工程发包人工程款支付担保按招标文件约定执行,担保办结后我方按约组织进场施工。":/扬尘/u.test(l)?"本工程扬尘污染防治费用与建筑工人实名制管理费用按招标文件约定列入费用计划并专款专用。":/结清|结算|付款|进度款|工程款/u.test(l)?"本工程进度款、竣工结算款与最终结清款的支付审批时限按招标文件约定执行。":/最高投标限价/u.test(l)?"本工程相关费用按招标文件约定列入计划并专款专用。":/暂列金额|暂估价/u.test(l)?"本工程暂列金额按招标文件约定计入投标总价并按规定计税,暂列金额的使用范围与计价规则按合同约定执行。":/核减|造价咨询费/u.test(l)?"本工程竣工结算核减比例与造价咨询费承担方式按招标文件约定执行,结算编制与报审按合同约定时限办理。":/清单.*异议|工程量.*错误|异议.*清单/u.test(l)?"本工程开工前完成工程量清单核对,对清单工程量的异议按招标文件约定的期限与方式提出并附计算依据。":/增值税|纳税人/u.test(l)?"本工程按招标文件约定的计税方法执行异地纳税人增值税相关规定,计税资料与申报口径按合同约定办理。":/投标报价.*覆盖|报价.*一切/u.test(l)?"本工程投标报价已覆盖招标文件要求的全部工作内容,施工期间发生的工程内容均按合同约定的计量计价规则执行。":"本工程相关商务条款按招标文件约定执行。"}`:m?`按招标文件要求:${n},本项无强制要求,施工按现行国家及地方相关标准执行。`:`按招标文件要求:${n}。${b1(c.text)}`;f.content=`${f.content.replace(/\s+$/u,"")}
33
33
 
34
- ${o}`,i+=o.replace(/\s+/gu,""),j+=1,k.push(`${a}“${c.text.slice(0,28)}${c.text.length>28?"…":""}” → ${d.chapterTitle}${0===d.score?"(兜底路由)":""}`)}return{fixedCount:j,details:k.slice(0,6)}}function b1(a){if(/分包/u.test(a))return"本工程不进行分包,全部施工内容由我方自行组织完成。";if(/总价合同|总价包干/u.test(a))return"本工程合同价款按总价包干执行,除合同约定调整情形外不予调整。";if(/隐蔽工程/u.test(a))return"本工程隐蔽验收按上述时限提前通知监理单位参加检查。";if(/预付款/u.test(a))return"本工程预付款的支付、扣回与使用按上述条款执行,专款用于施工准备。";if(/扬尘/u.test(a))return"本工程扬尘污染防治费用按上述条款列入计划并专款专用。";if(/工期延误|违约金/u.test(a))return"本工程工期与违约金管理按上述条款执行,进度计划与纠偏措施按进度管理制度落实。";if(/保证金/u.test(a))return"本工程保证金缴纳、退还与保函替代按上述条款执行。";if(/更换主要施工管理人员|更换项目经理/u.test(a))return"本工程主要施工管理人员保持稳定,确需更换时提前按上述条款提交书面申请并获发包人书面同意后执行。";if(/农民工工资专用账户|农民工工资/u.test(a))return"本工程农民工工资专用账户按上述条款设立并专款专用,实名制管理与工资支付保障按劳动力管理制度落实。";if(/支付担保/u.test(a))return"本工程发包人工程款支付担保按上述条款执行,担保办结后我方按约组织进场施工。";if(/安全生产|事故/u.test(a))return"本工程安全生产无事故目标与带班检查频次按上述条款执行,现场安全管理按安全检查与整改销项制度落实。";if(/工程报表|周报/u.test(a))return"本工程每月25日前报送工程报表与下月计划、周例会前一天报送周报,由资料员按期编制报送。";if(/竣工资料|竣工结算/u.test(a))return"本工程竣工资料套数与移交时限按上述条款执行,竣工结算申请与审批按约定时限办理。";if(/缺陷责任期|保修/u.test(a))return"本工程缺陷责任期与保修响应时限按上述条款执行,保修期内接到通知按时限到场修复。";if(/工期总日历天数/u.test(a))return"本工程工期天数计算以工期总日历天数为准,进度计划按总日历天数编制并动态校核。";if(/可调整价差|市场价格波动|价格调整|调差/u.test(a))return"本工程价格调整范围按《可调整价差人工和主要材料一览表》执行:表内人工与主要材料按合同约定调差,表外材料价格风险由承包人承担,调差申请与审批按合同专用条款办理。";if(/注册建造师|建造师数量|资质标准/u.test(a))return"项目部按资质标准配置市政公用工程专业注册建造师,数量满足招标文件要求,注册建造师证书注册于本公司并在岗履职。";if(/养护等级|养护期|绿化养护/u.test(a))return"本工程绿化养护执行招标文件约定的养护等级与养护期,养护期内按养护方案落实浇水、修剪、施肥、除虫等作业并留存养护记录。";let b=/^([^::]{2,24})[::]/u.exec(a)?.[1];return b&&!/承包人|发包人|招标人/u.test(b)?`本工程${b}按上述条款执行,具体安排见对应章节。`:"本施工组织设计已按上述条款要求逐项落实执行。"}let b2=[{key:"table-line-residue",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.br)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"templated-labels",stage5:!0,round2:!0,fix:a=>{let b=(0,aP.p_)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"repeated-words",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Vw)(a);return{markdown:b,fixedCount:+(b!==a)}}},{key:"duplicate-tables",stage5:!1,round2:!0,fix:a=>{let b=(0,ao.lR)(a);return{markdown:b.markdown,fixedCount:b.removedCount}}},{key:"finish-thickness",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.JF)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"labor-peak",stage5:!0,round2:!0,fix:(a,b)=>{let c=(0,ao.BR)(a,b.laborPeakAuthority);return{markdown:c.markdown,fixedCount:c.fixedCount}}},{key:"internal-table-row-dup",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.QM)(a);return{markdown:b.markdown,fixedCount:b.removedCount}}},{key:"greening-maintenance",stage5:!0,round2:!0,fix:(a,b)=>{let c=(0,ao.mG)(a,b.greeningMaintenanceAuthority);return{markdown:c.markdown,fixedCount:c.fixedCount}}},{key:"paragraph-opening-repeat",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Qc)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"paragraph-tail-repeat",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.kp)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"collision-numbered-heading",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.fK)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"inverted-date-range",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.r_)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"truncated-sentence",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Y4)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"table-borne-prose",stage5:!1,round2:!0,fix:a=>{let b=(0,ao.hX)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"meta-discourse",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Fd)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"formula-residue",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.EJ)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"self-undermining",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.ir)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"empty-scoring-response",stage5:!0,round2:!0,fix:a=>{let b=function(a){let b=a.split(/\r?\n/u),c=[],d=0,e=[];for(let a of b){let b=a.trim();if(!b.includes("本施工组织设计已按上述条款要求逐项落实执行")){c.push(a);continue}let f=/[::]([^。;;\n]{8,90})/u.exec(b),g=f?.[1]?.trim();if(!g){c.push(a);continue}let h=b1(g);if("本施工组织设计已按上述条款要求逐项落实执行。"===h){c.push(a);continue}c.push(b.replace(/本施工组织设计已按上述条款要求逐项落实执行。?/g,h)),d+=1,e.push(g.slice(0,18))}return{markdown:c.join("\n"),fixedCount:d,details:e}}(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"atlas-reference",stage5:!0,round2:!1,fix:a=>{let b=(0,M.Fc)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"tertiary-h4-dedupe",stage5:!1,round2:!0,fix:a=>(0,bh.pV)(a)},{key:"internal-term-heading",stage5:!1,round2:!0,fix:a=>(0,bi.fc)(a)},{key:"skeleton-fingerprint-variants",stage5:!1,round2:!0,fix:a=>{let b=(0,aP.sO)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}}],b3=[{id:"table-line-residue",kind:"deterministic",anchoredTo:"table-quality",giveUpOnFailure:!0},{id:"templated-labels",kind:"deterministic",anchoredTo:"templated-label",giveUpOnFailure:!0},{id:"repeated-words",kind:"deterministic",anchoredTo:"repeated-word",giveUpOnFailure:!0},{id:"duplicate-tables",kind:"deterministic",anchoredTo:"duplicate-table",giveUpOnFailure:!0},{id:"finish-thickness",kind:"deterministic",anchoredTo:"finish-thickness",giveUpOnFailure:!0},{id:"labor-peak",kind:"deterministic",anchoredTo:"resource-consistency",authorities:["laborPeak"],giveUpOnFailure:!0},{id:"internal-table-row-dup",kind:"deterministic",anchoredTo:"table-spam",giveUpOnFailure:!0},{id:"greening-maintenance",kind:"deterministic",anchoredTo:"greening-maintenance-mismatch",authorities:["greeningMaintenance"],giveUpOnFailure:!0},{id:"paragraph-opening-repeat",kind:"deterministic",anchoredTo:"paragraph-opening-repeat",giveUpOnFailure:!0},{id:"paragraph-tail-repeat",kind:"deterministic",anchoredTo:"paragraph-tail-repeat",giveUpOnFailure:!0},{id:"collision-numbered-heading",kind:"deterministic",anchoredTo:"collision-numbered-heading",giveUpOnFailure:!0},{id:"inverted-date-range",kind:"deterministic",anchoredTo:"inverted-date-range",giveUpOnFailure:!0},{id:"truncated-sentence",kind:"deterministic",anchoredTo:"truncated-sentence",giveUpOnFailure:!0},{id:"table-borne-prose",kind:"deterministic",anchoredTo:"major-content-governance",giveUpOnFailure:!0},{id:"meta-discourse",kind:"deterministic",anchoredTo:"meta-discourse-declaration",giveUpOnFailure:!0},{id:"formula-residue",kind:"deterministic",anchoredTo:"formula-residue",giveUpOnFailure:!0},{id:"self-undermining",kind:"deterministic",anchoredTo:"self-undermining-candidate",giveUpOnFailure:!0},{id:"empty-scoring-response",kind:"deterministic",anchoredTo:"requirements-coverage",giveUpOnFailure:!0},{id:"atlas-reference",kind:"deterministic",anchoredTo:"drawing-reference",giveUpOnFailure:!0},{id:"tertiary-h4-dedupe",kind:"deterministic",anchoredTo:"tertiary-heading",giveUpOnFailure:!0},{id:"internal-term-heading",kind:"deterministic",anchoredTo:"internal-terminology-anchor",giveUpOnFailure:!0},{id:"skeleton-fingerprint-variants",kind:"deterministic",anchoredTo:"skeleton-fingerprint",giveUpOnFailure:!0}],b4=["source-enumeration","internal-terminology-anchor","fabricated-start-date","repeated-word","writer-missing-section","meta-discourse-declaration","formula-residue","finish-thickness","formal-placeholder","truncated-sentence"],b5=[{id:"fact-landing",kind:"llm-patch",anchoredTo:"important-unplaced-facts",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"table-repair",kind:"llm-patch",anchoredTo:"table-quality",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"table-execution-repair",kind:"llm-patch",anchoredTo:"table-plan-execution",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"templating-repair",kind:"llm-patch",anchoredTo:"templating-filler",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"workpackage-skeleton-repair",kind:"llm-patch",anchoredTo:"workpackage-skeleton",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"planned-section-repair",kind:"llm-patch",anchoredTo:"planned-section-completeness",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"global-consistency-repair",kind:"llm-patch",anchoredTo:"global-consistency-review",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"qingtian-review-repair",kind:"llm-patch",anchoredTo:"qingtian-review",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0}],b6=new Set;function b7(a,b){return b6.add(a),b()}let b8=[{id:"spec-gate-rules",scope:"full-document",category:"structure"},{id:"auto-spec-validation",scope:"full-document",category:"structure"},{id:"fact-consistency",scope:"full-document",category:"fact_consistency"},{id:"project-contamination",scope:"full-document",category:"scope"},{id:"project-basic-placeholder",scope:"full-document",category:"format"},{id:"standard-final",scope:"full-document",category:"structure"},{id:"fact-coverage",scope:"full-document",category:"evidence_coverage"},{id:"page-target",scope:"full-document",category:"structure"},{id:"document-budget",scope:"full-document",category:"structure"},{id:"formal-text-gate",scope:"full-document",category:"format"},{id:"heading-uncovered-engineering-items",scope:"full-document",category:"structure"},{id:"writer-missing-section",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"critical-section-depth",scope:"chapter",category:"structure"},{id:"critical-section-fact-density",scope:"chapter",category:"evidence_coverage"},{id:"construction-org-professional-audit",scope:"chapter",category:"professional_chain"},{id:"toc-consistency",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"heading-duplicate",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"templated-label",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"title-integrity",scope:"full-document",category:"structure"},{id:"evaluation-criteria-coverage",scope:"full-document",category:"evidence_coverage"},{id:"requirements-coverage",scope:"full-document",category:"evidence_coverage"},{id:"fabricated-start-date",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"field-value-mismatch",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"area-arithmetic",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"resource-consistency",scope:"full-document",category:"fact_consistency",authorities:["laborPeak"]},{id:"node-schedule-consistency",scope:"full-document",category:"fact_consistency"},{id:"cross-section-numeric-conflict",scope:"full-document",category:"fact_consistency"},{id:"greening-maintenance-mismatch",scope:"full-document",category:"fact_consistency",authorities:["greeningMaintenance"]},{id:"street-light-count-mismatch",scope:"full-document",category:"fact_consistency"},{id:"spec-location-mismatch",scope:"full-document",category:"fact_consistency"},{id:"blueprint-citation-consistency",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"foundation-form-residue",scope:"full-document",category:"fact_consistency"},{id:"ambiguous-either-or",scope:"full-document",category:"fact_consistency"},{id:"excavation-depth-lock",scope:"full-document",category:"fact_consistency"},{id:"excavation-hazard-classification",scope:"full-document",category:"fact_consistency"},{id:"support-form-fact-consistency",scope:"full-document",category:"fact_consistency",authorities:["supportSystem"]},{id:"equipment-entry-timing",scope:"full-document",category:"fact_consistency"},{id:"fabricated-award",scope:"full-document",category:"fact_consistency"},{id:"bidder-qualification-section",scope:"full-document",category:"scope"},{id:"cross-chapter-duplicate-section",scope:"chapter",category:"structure"},{id:"basic-info-schedule-field",scope:"full-document",category:"fact_consistency"},{id:"duplicate-table",scope:"full-document",category:"table"},{id:"duplicate-paragraph",scope:"full-document",category:"structure"},{id:"paragraph-tail-repeat",scope:"full-document",category:"style",deterministicSafe:!0},{id:"collision-numbered-heading",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"inverted-date-range",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"resource-triad-section-hierarchy",scope:"full-document",category:"structure"},{id:"support-system-conflict",scope:"full-document",category:"fact_consistency",authorities:["supportSystem"]},{id:"dangerous-list-consistency",scope:"full-document",category:"fact_consistency"},{id:"hazard-exclusion-contradiction",scope:"full-document",category:"fact_consistency"},{id:"six-hundred-percent-coverage",scope:"full-document",category:"evidence_coverage"},{id:"self-undermining-candidate",scope:"full-document",category:"style"},{id:"paragraph-opening-repeat",scope:"full-document",category:"style",deterministicSafe:!0},{id:"flow-form-repeat",scope:"full-document",category:"style"},{id:"skeleton-fingerprint",scope:"full-document",category:"style"},{id:"repeated-word",scope:"full-document",category:"style",deterministicSafe:!0},{id:"commercial-data-in-body",scope:"full-document",category:"scope"},{id:"overview-recap",scope:"full-document",category:"style"},{id:"closure-phrase-density-cap",scope:"full-document",category:"style"},{id:"parameter-concept-conflict",scope:"full-document",category:"fact_consistency"},{id:"internal-terminology-anchor",scope:"full-document",category:"style",deterministicSafe:!0},{id:"construction-system-coverage",scope:"chapter",category:"evidence_coverage"},{id:"dangerous-applicability",scope:"full-document",category:"evidence_coverage"},{id:"innovation-tech-coverage",scope:"full-document",category:"evidence_coverage"},{id:"instruction-like-heading",scope:"full-document",category:"structure"},{id:"formal-heading-hierarchy",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"formal-content-integrity",scope:"full-document",category:"format",deterministicSafe:!0},{id:"punctuation-artifact",scope:"full-document",category:"format",deterministicSafe:!0},{id:"table-quality",scope:"full-document",category:"table",deterministicSafe:!0},{id:"table-spam",scope:"full-document",category:"table",deterministicSafe:!0},{id:"basis-regulations-coverage",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"resource-breakdown-consistency",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"section-content-integrity",scope:"chapter",category:"structure"},{id:"professional-content",scope:"chapter",category:"professional_chain"},{id:"professional-score",scope:"chapter",category:"professional_chain"},{id:"generic-professional-content",scope:"chapter",category:"professional_chain"},{id:"management-measure-number",scope:"chapter",category:"professional_chain"},{id:"closed-loop-density",scope:"full-document",category:"control_loop"},{id:"cross-chapter-consistency",scope:"full-document",category:"fact_consistency"},{id:"process-spec-conflict",scope:"full-document",category:"fact_consistency"},{id:"evidence-usage-coverage",scope:"full-document",category:"evidence_coverage"},{id:"paragraph-generic",scope:"full-document",category:"style"},{id:"construction-org-generic-language",scope:"chapter",category:"style"},{id:"construction-org-control-loop",scope:"chapter",category:"control_loop"},{id:"construction-org-professional-chain",scope:"chapter",category:"professional_chain"},{id:"construction-org-consistency",scope:"full-document",category:"fact_consistency"},{id:"construction-org-chapter-data-coverage",scope:"chapter",category:"evidence_coverage"},{id:"construction-org-major-content",scope:"chapter",category:"professional_chain"},{id:"construction-org-division-section",scope:"chapter",category:"structure"},{id:"major-content-governance",scope:"full-document",category:"structure"},{id:"construction-org-bonus-module",scope:"chapter",category:"professional_chain"},{id:"chapter-dependency",scope:"chapter",category:"professional_chain"},{id:"document-delivery-score",scope:"full-document",category:"professional_chain"},{id:"generated-fact-verification",scope:"full-document",category:"fact_consistency"},{id:"duplicate-basic-info",scope:"full-document",category:"structure"},{id:"formal-style",scope:"full-document",category:"style"},{id:"tertiary-heading",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"min-chapter-section",scope:"chapter",category:"structure"},{id:"precise-fact-usage",scope:"full-document",category:"fact_consistency"},{id:"boq-placement",scope:"full-document",category:"evidence_coverage"},{id:"stage-phrasing",scope:"full-document",category:"fact_consistency"},{id:"emergency-section-depth",scope:"full-document",category:"structure"},{id:"boq-row-trace",scope:"full-document",category:"evidence_coverage"},{id:"drawing-reference",scope:"full-document",category:"evidence_coverage"},{id:"web-evidence-leakage",scope:"full-document",category:"scope"},{id:"formal-placeholder",scope:"full-document",category:"format",deterministicSafe:!0},{id:"prompt-example-leak",scope:"full-document",category:"format"},{id:"degenerate-content",scope:"chapter",category:"style"},{id:"planned-auto-spec-gate",scope:"full-document",category:"structure"},{id:"planned-structure",scope:"full-document",category:"structure"},{id:"prompt-document-rule",scope:"full-document",category:"format"},{id:"local-adaptation-keyword",scope:"full-document",category:"evidence_coverage"},{id:"boq-division-coverage",scope:"full-document",category:"evidence_coverage"},{id:"important-unplaced-facts",scope:"chapter",category:"evidence_coverage"},{id:"table-plan-execution",scope:"chapter",category:"table"},{id:"templating-filler",scope:"full-document",category:"style"},{id:"templating-difficulty",scope:"full-document",category:"professional_chain"},{id:"workpackage-skeleton",scope:"chapter",category:"structure"},{id:"planned-section-completeness",scope:"chapter",category:"structure"},{id:"global-consistency-review",scope:"full-document",category:"fact_consistency"},{id:"qingtian-review",scope:"full-document",category:"qingtian_review"},{id:"source-enumeration",scope:"full-document",category:"style",deterministicSafe:!0},{id:"meta-discourse-declaration",scope:"full-document",category:"style",deterministicSafe:!0},{id:"finish-thickness",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"formula-residue",scope:"full-document",category:"format",deterministicSafe:!0},{id:"truncated-sentence",scope:"full-document",category:"format",deterministicSafe:!0}];function b9(a){return b8.find(b=>b.id===a)}var ca=c(73186),cb=c(80439);async function cc(a){var b;let c=(0,ca.Su)(a.chapterDrafts.flatMap(a=>a.evidence||[]),a.projectMaterialScope);(0,ca.U2)(c,a.projectMaterialScope,"finalize:chapter-evidence"),c.length>0&&(a.allEvidence.push(...c),a.allEvidence.splice(0,a.allEvidence.length,...(0,g.QR)(a.allEvidence,{preservePinned:!0})));let d=(0,ca.Su)(a.allEvidence,a.projectMaterialScope);a.allEvidence.splice(0,a.allEvidence.length,...d),(0,ca.U2)(a.allEvidence,a.projectMaterialScope,"finalize:all-evidence"),(0,e.Te)(a.signal);let f=(0,g.QR)(a.allEvidence,{preservePinned:!0});a.allEvidence.splice(0,a.allEvidence.length,...(0,ca.Su)(f,a.projectMaterialScope)),(0,ca.U2)(a.allEvidence,a.projectMaterialScope,"finalize:post-file-understanding"),a.facts=(0,n.B2)(a.template,a.allEvidence,a.documentSpec);let{localFacts:h,projectBasicFacts:i,preciseFacts:j,structuredTables:k}=(0,n.d6)({evidence:a.allEvidence,template:a.template,spec:a.documentSpec,profile:a.domainProfile,scope:a.projectMaterialScope,diagnostics:a.generationDiagnostics}),l=[...h,...i,...j],m={facts:[],stages:[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"已有本地/资料事实覆盖主要必需字段,跳过 LLM 全量事实抽取"}]};if((0,n.N2)(l,a.template,a.documentSpec)){let b=(0,g.QR)(a.allEvidence,{preservePinned:!0});try{m=await (0,n.OQ)(b,a.factExtractionPromptTexts,a.template,a.documentSpec,a.signal,a.generationDiagnostics)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fact extraction failed:",b)}}for(let b of m.stages)(0,cb.fx)(a.progressStages,b);let o=A(a.allEvidence);for(let c of(a.structuredFacts=(0,ca.am)((b=[...h,...i,...j,...m.facts,...o],a.allEvidence,b.filter(a=>!!a.sourceFile)),a.projectMaterialScope),a.governedStructuredFacts=K(a.structuredFacts,a.scopeConflicts??H(a.structuredFacts)),a.governedStructuredFacts))a.facts[c.key]=`${(0,e.lG)(c.value)}(来源:${c.sourceFile},角色:${c.roleId})`;a.factsModel=await (0,n.d7)(a.governedStructuredFacts,k,a.missingItems,a.documentSpec,a.domainProfile);let p=L({facts:a.governedStructuredFacts,projectRoot:a.projectRoot,requirement:a.requirement||"",templateId:a.template.id});a.factsModel.canonical=p,a.scheduleAuthority=(0,ao.GG)(a.factsModel),a.assemblyRateAuthority=(0,ao.hI)(a.factsModel),a.scaleSummary=(0,ao.Pt)(a.factsModel),a.supportAuthority=(0,ao.P3)(a.factsModel),a.decisionLockEntries=a$({facts:[...h,...i,...j],evidence:a.allEvidence})}function cd(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function ce(a){return a.replace(/[((]\d+[))]/gu,"").replace(/副本|最终版|扫描件|定稿/gu,"").replace(/[\s,。,.;;::《》“”‘’()()_-]+/gu,"").toLowerCase()}function cf(a,b){let c=ce(b);if(!c||c.length<4)return!0;let d=ce(a);return!!d.includes(c)||c.length>=12&&d.includes(c.slice(0,Math.max(8,Math.floor(.72*c.length))))}var cg=c(73859);function ch(a){return a.replace(/[((]\d+[))]/gu,"").replace(/副本|最终版|扫描件|定稿/gu,"").replace(/\s+/gu,"").replace(/[,。,.;;::《》“”‘’()()_-]/gu,"").toLowerCase()}function ci(a,b){let c=a.trim();if((0,cg.d2)(b,c)||(0,cg.rF)(b,c)||/签章|盖章|联系人|联系电话|电话|邮箱|解密|开标|评标|保证金|交易系统|空白|填写|上传|下载|递交|投标文件制作|电子服务系统|交易平台/u.test(c)||/\|/u.test(c)||/^#+\s*/u.test(c)||/见(?:招标公告|投标人须知|前附表|本项目|补疑)|资料参数行摘要|公共资源交易监督管理|开评标程序|监管部门|招标代理机构|监督管理部门|行政监督部门/u.test(c)||/是否|符合|采购范围|规定的投标截止时间|电子交易系统|投标人须知|招标文件正文/u.test(c)&&/\d{3,}/u.test(c)||/项目名称|工程名称/u.test(c)&&/项目编号|工程概况|建筑面积|本项目分为|现状建筑物|改造工程|标段/u.test(c)||/项目编号[::]|工程概况[::]|本项目分为|现状建筑物|总建筑面积|本次改造工程|清单编制说明/u.test(c))return"";let d=/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月)/u.exec(c)?.[0],e=ch(d&&/工期|总工期|合同工期|计划工期|施工周期/u.test(c)?d:c);return!e||e.length>80?"":e}var cj=c(23760),ck=c(40693),cl=c(1358),cm=c(11248);function cn(a){return(0,cm.K3)(`${a.fieldName||a.key} ${(0,e.lG)(a.value)}`)}function co(a){return[...a.project,...a.schedule,...a.quality,...a.safety,...a.resources,...a.preciseFacts,...a.bills,...a.drawings,...a.rules,...a.specifications].map(cn).join("\n")}function cp(a,b){let c=[{label:"工期",corpus:co({...b,project:[],quality:[],safety:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/工期|日历天|合同工期|计划工期/u},{label:"质量",corpus:co({...b,project:[],schedule:[],safety:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/质量目标|质量标准|验收|复验/u},{label:"安全",corpus:co({...b,project:[],schedule:[],quality:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/安全|文明|风险|应急/u},{label:"资源",corpus:co({...b,project:[],schedule:[],quality:[],safety:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/资源|材料|设备|劳动力/u},{label:"工程量",corpus:co({...b,project:[],schedule:[],quality:[],safety:[],resources:[],preciseFacts:[],drawings:[],rules:[],specifications:[]}),required:/工程量|清单|建筑面积|长度|吨|台|套|项/u}],d=(0,cm.K3)(a.replace(/\s+/gu,"")),e=[];for(let b of c)b.required.test(a)&&0===[...new Set(b.corpus.split("\n").map(a=>a.replace(/\s+/gu,"").slice(0,24)).filter(Boolean))].filter(a=>a.length>=6&&d.includes(a)).length&&e.push({level:"warning",message:`证据使用覆盖率偏低:正文中未明显使用${b.label}相关事实`,suggestion:`请在相应章节中引用至少一项${b.label}事实,避免只写通用表述。`});return e}async function cq(a,b){let c=a.split(/\n\s*\n/gu).map(a=>a.trim()).filter(Boolean),d=/(?:加强组织领导|严格执行规范|落实责任制度|确保工程质量|强化过程管理|提高思想认识|完善管理体系|形成闭环管理|统筹推进|全面落实)/gu,e=[];for(let a of c){if(120>(0,h.V7)(a)||(a.match(d)||[]).length<2)continue;let c=await b.analyze(a);c&&(c.concrete||e.push({level:"warning",message:`段落存在空泛表述:${a.slice(0,48)}...`,suggestion:"请补充该段对应的对象、动作、控制点或验收闭环,避免只保留管理性套话。"}))}return e}function cr(a,b){let c=[];if(!b)return c;let d=a.map(a=>`${a.title}
34
+ ${o}`,i+=o.replace(/\s+/gu,""),j+=1,k.push(`${a}“${c.text.slice(0,28)}${c.text.length>28?"…":""}” → ${d.chapterTitle}${0===d.score?"(兜底路由)":""}`)}return{fixedCount:j,details:k.slice(0,6)}}function b1(a){if(/分包/u.test(a))return"本工程不进行分包,全部施工内容由我方自行组织完成。";if(/总价合同|总价包干/u.test(a))return"本工程合同价款按总价包干执行,除合同约定调整情形外不予调整。";if(/隐蔽工程/u.test(a))return"本工程隐蔽验收按上述时限提前通知监理单位参加检查。";if(/预付款/u.test(a))return"本工程预付款的支付、扣回与使用按上述条款执行,专款用于施工准备。";if(/扬尘/u.test(a))return"本工程扬尘污染防治费用按上述条款列入计划并专款专用。";if(/工期延误|违约金/u.test(a))return"本工程工期与违约金管理按上述条款执行,进度计划与纠偏措施按进度管理制度落实。";if(/保证金/u.test(a))return"本工程保证金缴纳、退还与保函替代按上述条款执行。";if(/更换主要施工管理人员|更换项目经理/u.test(a))return"本工程主要施工管理人员保持稳定,确需更换时提前按上述条款提交书面申请并获发包人书面同意后执行。";if(/农民工工资专用账户|农民工工资/u.test(a))return"本工程农民工工资专用账户按上述条款设立并专款专用,实名制管理与工资支付保障按劳动力管理制度落实。";if(/支付担保/u.test(a))return"本工程发包人工程款支付担保按上述条款执行,担保办结后我方按约组织进场施工。";if(/安全生产|事故/u.test(a))return"本工程安全生产无事故目标与带班检查频次按上述条款执行,现场安全管理按安全检查与整改销项制度落实。";if(/工程报表|周报/u.test(a))return"本工程每月25日前报送工程报表与下月计划、周例会前一天报送周报,由资料员按期编制报送。";if(/竣工资料|竣工结算/u.test(a))return"本工程竣工资料套数与移交时限按上述条款执行,竣工结算申请与审批按约定时限办理。";if(/缺陷责任期|保修/u.test(a))return"本工程缺陷责任期与保修响应时限按上述条款执行,保修期内接到通知按时限到场修复。";if(/工期总日历天数/u.test(a))return"本工程工期天数计算以工期总日历天数为准,进度计划按总日历天数编制并动态校核。";if(/可调整价差|市场价格波动|价格调整|调差/u.test(a))return"本工程价格调整范围按《可调整价差人工和主要材料一览表》执行:表内人工与主要材料按合同约定调差,表外材料价格风险由承包人承担,调差申请与审批按合同专用条款办理。";if(/注册建造师|建造师数量|资质标准/u.test(a))return"项目部按资质标准配置市政公用工程专业注册建造师,数量满足招标文件要求,注册建造师证书注册于本公司并在岗履职。";if(/养护等级|养护期|绿化养护/u.test(a))return"本工程绿化养护执行招标文件约定的养护等级与养护期,养护期内按养护方案落实浇水、修剪、施肥、除虫等作业并留存养护记录。";let b=/^([^::]{2,24})[::]/u.exec(a)?.[1];return b&&!/承包人|发包人|招标人/u.test(b)?`本工程${b}按上述条款执行,具体安排见对应章节。`:"本施工组织设计已按上述条款要求逐项落实执行。"}let b2=[{key:"table-line-residue",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.br)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"templated-labels",stage5:!0,round2:!0,fix:a=>{let b=(0,aP.p_)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"repeated-words",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Vw)(a);return{markdown:b,fixedCount:+(b!==a)}}},{key:"duplicate-tables",stage5:!1,round2:!0,fix:a=>{let b=(0,ao.lR)(a);return{markdown:b.markdown,fixedCount:b.removedCount}}},{key:"finish-thickness",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.JF)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"labor-peak",stage5:!0,round2:!0,fix:(a,b)=>{let c=(0,ao.BR)(a,b.laborPeakAuthority);return{markdown:c.markdown,fixedCount:c.fixedCount}}},{key:"internal-table-row-dup",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.QM)(a);return{markdown:b.markdown,fixedCount:b.removedCount}}},{key:"greening-maintenance",stage5:!0,round2:!0,fix:(a,b)=>{let c=(0,ao.mG)(a,b.greeningMaintenanceAuthority);return{markdown:c.markdown,fixedCount:c.fixedCount}}},{key:"paragraph-opening-repeat",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Qc)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"paragraph-tail-repeat",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.kp)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"collision-numbered-heading",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.fK)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"inverted-date-range",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.r_)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"truncated-sentence",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Y4)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"table-borne-prose",stage5:!1,round2:!0,fix:a=>{let b=(0,ao.hX)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"meta-discourse",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.Fd)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"formula-residue",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.EJ)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"self-undermining",stage5:!0,round2:!0,fix:a=>{let b=(0,ao.ir)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"empty-scoring-response",stage5:!0,round2:!0,fix:a=>{let b=function(a){let b=a.split(/\r?\n/u),c=[],d=0,e=[];for(let a of b){let b=a.trim();if(!b.includes("本施工组织设计已按上述条款要求逐项落实执行")){c.push(a);continue}let f=/[::]([^。;;\n]{8,90})/u.exec(b),g=f?.[1]?.trim();if(!g){c.push(a);continue}let h=b1(g);if("本施工组织设计已按上述条款要求逐项落实执行。"===h){c.push(a);continue}c.push(b.replace(/本施工组织设计已按上述条款要求逐项落实执行。?/g,h)),d+=1,e.push(g.slice(0,18))}return{markdown:c.join("\n"),fixedCount:d,details:e}}(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"atlas-reference",stage5:!0,round2:!1,fix:a=>{let b=(0,M.Fc)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"tertiary-h4-dedupe",stage5:!1,round2:!0,fix:a=>(0,bh.pV)(a)},{key:"internal-term-heading",stage5:!1,round2:!0,fix:a=>(0,bi.fc)(a)},{key:"skeleton-fingerprint-variants",stage5:!1,round2:!0,fix:a=>{let b=(0,aP.sO)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"flow-form-variants",stage5:!1,round2:!0,fix:a=>{let b=(0,aP.z9)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}},{key:"truncated-title-completion",stage5:!1,round2:!0,fix:a=>{let b=(0,aP.G9)(a);return{markdown:b.markdown,fixedCount:b.fixedCount}}}],b3=[{id:"table-line-residue",kind:"deterministic",anchoredTo:"table-quality",giveUpOnFailure:!0},{id:"templated-labels",kind:"deterministic",anchoredTo:"templated-label",giveUpOnFailure:!0},{id:"repeated-words",kind:"deterministic",anchoredTo:"repeated-word",giveUpOnFailure:!0},{id:"duplicate-tables",kind:"deterministic",anchoredTo:"duplicate-table",giveUpOnFailure:!0},{id:"finish-thickness",kind:"deterministic",anchoredTo:"finish-thickness",giveUpOnFailure:!0},{id:"labor-peak",kind:"deterministic",anchoredTo:"resource-consistency",authorities:["laborPeak"],giveUpOnFailure:!0},{id:"internal-table-row-dup",kind:"deterministic",anchoredTo:"table-spam",giveUpOnFailure:!0},{id:"greening-maintenance",kind:"deterministic",anchoredTo:"greening-maintenance-mismatch",authorities:["greeningMaintenance"],giveUpOnFailure:!0},{id:"paragraph-opening-repeat",kind:"deterministic",anchoredTo:"paragraph-opening-repeat",giveUpOnFailure:!0},{id:"paragraph-tail-repeat",kind:"deterministic",anchoredTo:"paragraph-tail-repeat",giveUpOnFailure:!0},{id:"collision-numbered-heading",kind:"deterministic",anchoredTo:"collision-numbered-heading",giveUpOnFailure:!0},{id:"inverted-date-range",kind:"deterministic",anchoredTo:"inverted-date-range",giveUpOnFailure:!0},{id:"truncated-sentence",kind:"deterministic",anchoredTo:"truncated-sentence",giveUpOnFailure:!0},{id:"table-borne-prose",kind:"deterministic",anchoredTo:"major-content-governance",giveUpOnFailure:!0},{id:"meta-discourse",kind:"deterministic",anchoredTo:"meta-discourse-declaration",giveUpOnFailure:!0},{id:"formula-residue",kind:"deterministic",anchoredTo:"formula-residue",giveUpOnFailure:!0},{id:"self-undermining",kind:"deterministic",anchoredTo:"self-undermining-candidate",giveUpOnFailure:!0},{id:"empty-scoring-response",kind:"deterministic",anchoredTo:"requirements-coverage",giveUpOnFailure:!0},{id:"atlas-reference",kind:"deterministic",anchoredTo:"drawing-reference",giveUpOnFailure:!0},{id:"tertiary-h4-dedupe",kind:"deterministic",anchoredTo:"tertiary-heading",giveUpOnFailure:!0},{id:"internal-term-heading",kind:"deterministic",anchoredTo:"internal-terminology-anchor",giveUpOnFailure:!0},{id:"skeleton-fingerprint-variants",kind:"deterministic",anchoredTo:"skeleton-fingerprint",giveUpOnFailure:!0},{id:"flow-form-variants",kind:"deterministic",anchoredTo:"flow-form-repeat",giveUpOnFailure:!0},{id:"truncated-title-completion",kind:"deterministic",anchoredTo:"title-integrity",giveUpOnFailure:!0}],b4=["source-enumeration","internal-terminology-anchor","fabricated-start-date","repeated-word","writer-missing-section","meta-discourse-declaration","formula-residue","finish-thickness","formal-placeholder","truncated-sentence"],b5=[{id:"fact-landing",kind:"llm-patch",anchoredTo:"important-unplaced-facts",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"table-repair",kind:"llm-patch",anchoredTo:"table-quality",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"table-execution-repair",kind:"llm-patch",anchoredTo:"table-plan-execution",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"templating-repair",kind:"llm-patch",anchoredTo:"templating-filler",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"workpackage-skeleton-repair",kind:"llm-patch",anchoredTo:"workpackage-skeleton",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"planned-section-repair",kind:"llm-patch",anchoredTo:"planned-section-completeness",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"global-consistency-repair",kind:"llm-patch",anchoredTo:"global-consistency-review",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0},{id:"qingtian-review-repair",kind:"llm-patch",anchoredTo:"qingtian-review",patchGuard:{detectors:[...b4]},giveUpOnFailure:!0}],b6=new Set;function b7(a,b){return b6.add(a),b()}let b8=[{id:"spec-gate-rules",scope:"full-document",category:"structure"},{id:"auto-spec-validation",scope:"full-document",category:"structure"},{id:"fact-consistency",scope:"full-document",category:"fact_consistency"},{id:"project-contamination",scope:"full-document",category:"scope"},{id:"project-basic-placeholder",scope:"full-document",category:"format"},{id:"standard-final",scope:"full-document",category:"structure"},{id:"fact-coverage",scope:"full-document",category:"evidence_coverage"},{id:"page-target",scope:"full-document",category:"structure"},{id:"document-budget",scope:"full-document",category:"structure"},{id:"formal-text-gate",scope:"full-document",category:"format"},{id:"heading-uncovered-engineering-items",scope:"full-document",category:"structure"},{id:"writer-missing-section",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"critical-section-depth",scope:"chapter",category:"structure"},{id:"critical-section-fact-density",scope:"chapter",category:"evidence_coverage"},{id:"construction-org-professional-audit",scope:"chapter",category:"professional_chain"},{id:"toc-consistency",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"heading-duplicate",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"templated-label",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"title-integrity",scope:"full-document",category:"structure"},{id:"evaluation-criteria-coverage",scope:"full-document",category:"evidence_coverage"},{id:"requirements-coverage",scope:"full-document",category:"evidence_coverage"},{id:"fabricated-start-date",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"field-value-mismatch",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"area-arithmetic",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"resource-consistency",scope:"full-document",category:"fact_consistency",authorities:["laborPeak"]},{id:"node-schedule-consistency",scope:"full-document",category:"fact_consistency"},{id:"cross-section-numeric-conflict",scope:"full-document",category:"fact_consistency"},{id:"greening-maintenance-mismatch",scope:"full-document",category:"fact_consistency",authorities:["greeningMaintenance"]},{id:"street-light-count-mismatch",scope:"full-document",category:"fact_consistency"},{id:"spec-location-mismatch",scope:"full-document",category:"fact_consistency"},{id:"blueprint-citation-consistency",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"foundation-form-residue",scope:"full-document",category:"fact_consistency"},{id:"ambiguous-either-or",scope:"full-document",category:"fact_consistency"},{id:"excavation-depth-lock",scope:"full-document",category:"fact_consistency"},{id:"excavation-hazard-classification",scope:"full-document",category:"fact_consistency"},{id:"support-form-fact-consistency",scope:"full-document",category:"fact_consistency",authorities:["supportSystem"]},{id:"equipment-entry-timing",scope:"full-document",category:"fact_consistency"},{id:"fabricated-award",scope:"full-document",category:"fact_consistency"},{id:"bidder-qualification-section",scope:"full-document",category:"scope"},{id:"cross-chapter-duplicate-section",scope:"chapter",category:"structure"},{id:"basic-info-schedule-field",scope:"full-document",category:"fact_consistency"},{id:"duplicate-table",scope:"full-document",category:"table"},{id:"duplicate-paragraph",scope:"full-document",category:"structure"},{id:"paragraph-tail-repeat",scope:"full-document",category:"style",deterministicSafe:!0},{id:"collision-numbered-heading",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"inverted-date-range",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"resource-triad-section-hierarchy",scope:"full-document",category:"structure"},{id:"support-system-conflict",scope:"full-document",category:"fact_consistency",authorities:["supportSystem"]},{id:"dangerous-list-consistency",scope:"full-document",category:"fact_consistency"},{id:"hazard-exclusion-contradiction",scope:"full-document",category:"fact_consistency"},{id:"six-hundred-percent-coverage",scope:"full-document",category:"evidence_coverage"},{id:"self-undermining-candidate",scope:"full-document",category:"style"},{id:"paragraph-opening-repeat",scope:"full-document",category:"style",deterministicSafe:!0},{id:"flow-form-repeat",scope:"full-document",category:"style"},{id:"skeleton-fingerprint",scope:"full-document",category:"style"},{id:"repeated-word",scope:"full-document",category:"style",deterministicSafe:!0},{id:"commercial-data-in-body",scope:"full-document",category:"scope"},{id:"overview-recap",scope:"full-document",category:"style"},{id:"closure-phrase-density-cap",scope:"full-document",category:"style"},{id:"parameter-concept-conflict",scope:"full-document",category:"fact_consistency"},{id:"internal-terminology-anchor",scope:"full-document",category:"style",deterministicSafe:!0},{id:"construction-system-coverage",scope:"chapter",category:"evidence_coverage"},{id:"dangerous-applicability",scope:"full-document",category:"evidence_coverage"},{id:"innovation-tech-coverage",scope:"full-document",category:"evidence_coverage"},{id:"instruction-like-heading",scope:"full-document",category:"structure"},{id:"formal-heading-hierarchy",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"formal-content-integrity",scope:"full-document",category:"format",deterministicSafe:!0},{id:"punctuation-artifact",scope:"full-document",category:"format",deterministicSafe:!0},{id:"table-quality",scope:"full-document",category:"table",deterministicSafe:!0},{id:"table-spam",scope:"full-document",category:"table",deterministicSafe:!0},{id:"basis-regulations-coverage",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"resource-breakdown-consistency",scope:"full-document",category:"fact_consistency",authorities:["blueprint"]},{id:"section-content-integrity",scope:"chapter",category:"structure"},{id:"professional-content",scope:"chapter",category:"professional_chain"},{id:"professional-score",scope:"chapter",category:"professional_chain"},{id:"generic-professional-content",scope:"chapter",category:"professional_chain"},{id:"management-measure-number",scope:"chapter",category:"professional_chain"},{id:"closed-loop-density",scope:"full-document",category:"control_loop"},{id:"cross-chapter-consistency",scope:"full-document",category:"fact_consistency"},{id:"process-spec-conflict",scope:"full-document",category:"fact_consistency"},{id:"evidence-usage-coverage",scope:"full-document",category:"evidence_coverage"},{id:"paragraph-generic",scope:"full-document",category:"style"},{id:"construction-org-generic-language",scope:"chapter",category:"style"},{id:"construction-org-control-loop",scope:"chapter",category:"control_loop"},{id:"construction-org-professional-chain",scope:"chapter",category:"professional_chain"},{id:"construction-org-consistency",scope:"full-document",category:"fact_consistency"},{id:"construction-org-chapter-data-coverage",scope:"chapter",category:"evidence_coverage"},{id:"construction-org-major-content",scope:"chapter",category:"professional_chain"},{id:"construction-org-division-section",scope:"chapter",category:"structure"},{id:"major-content-governance",scope:"full-document",category:"structure"},{id:"construction-org-bonus-module",scope:"chapter",category:"professional_chain"},{id:"chapter-dependency",scope:"chapter",category:"professional_chain"},{id:"document-delivery-score",scope:"full-document",category:"professional_chain"},{id:"generated-fact-verification",scope:"full-document",category:"fact_consistency"},{id:"duplicate-basic-info",scope:"full-document",category:"structure"},{id:"formal-style",scope:"full-document",category:"style"},{id:"tertiary-heading",scope:"full-document",category:"structure",deterministicSafe:!0},{id:"min-chapter-section",scope:"chapter",category:"structure"},{id:"precise-fact-usage",scope:"full-document",category:"fact_consistency"},{id:"boq-placement",scope:"full-document",category:"evidence_coverage"},{id:"stage-phrasing",scope:"full-document",category:"fact_consistency"},{id:"emergency-section-depth",scope:"full-document",category:"structure"},{id:"boq-row-trace",scope:"full-document",category:"evidence_coverage"},{id:"drawing-reference",scope:"full-document",category:"evidence_coverage"},{id:"web-evidence-leakage",scope:"full-document",category:"scope"},{id:"formal-placeholder",scope:"full-document",category:"format",deterministicSafe:!0},{id:"prompt-example-leak",scope:"full-document",category:"format"},{id:"degenerate-content",scope:"chapter",category:"style"},{id:"planned-auto-spec-gate",scope:"full-document",category:"structure"},{id:"planned-structure",scope:"full-document",category:"structure"},{id:"prompt-document-rule",scope:"full-document",category:"format"},{id:"local-adaptation-keyword",scope:"full-document",category:"evidence_coverage"},{id:"boq-division-coverage",scope:"full-document",category:"evidence_coverage"},{id:"important-unplaced-facts",scope:"chapter",category:"evidence_coverage"},{id:"table-plan-execution",scope:"chapter",category:"table"},{id:"templating-filler",scope:"full-document",category:"style"},{id:"templating-difficulty",scope:"full-document",category:"professional_chain"},{id:"workpackage-skeleton",scope:"chapter",category:"structure"},{id:"planned-section-completeness",scope:"chapter",category:"structure"},{id:"global-consistency-review",scope:"full-document",category:"fact_consistency"},{id:"qingtian-review",scope:"full-document",category:"qingtian_review"},{id:"source-enumeration",scope:"full-document",category:"style",deterministicSafe:!0},{id:"meta-discourse-declaration",scope:"full-document",category:"style",deterministicSafe:!0},{id:"finish-thickness",scope:"full-document",category:"fact_consistency",deterministicSafe:!0},{id:"formula-residue",scope:"full-document",category:"format",deterministicSafe:!0},{id:"truncated-sentence",scope:"full-document",category:"format",deterministicSafe:!0}];function b9(a){return b8.find(b=>b.id===a)}var ca=c(73186),cb=c(80439);async function cc(a){var b;let c=(0,ca.Su)(a.chapterDrafts.flatMap(a=>a.evidence||[]),a.projectMaterialScope);(0,ca.U2)(c,a.projectMaterialScope,"finalize:chapter-evidence"),c.length>0&&(a.allEvidence.push(...c),a.allEvidence.splice(0,a.allEvidence.length,...(0,g.QR)(a.allEvidence,{preservePinned:!0})));let d=(0,ca.Su)(a.allEvidence,a.projectMaterialScope);a.allEvidence.splice(0,a.allEvidence.length,...d),(0,ca.U2)(a.allEvidence,a.projectMaterialScope,"finalize:all-evidence"),(0,e.Te)(a.signal);let f=(0,g.QR)(a.allEvidence,{preservePinned:!0});a.allEvidence.splice(0,a.allEvidence.length,...(0,ca.Su)(f,a.projectMaterialScope)),(0,ca.U2)(a.allEvidence,a.projectMaterialScope,"finalize:post-file-understanding"),a.facts=(0,n.B2)(a.template,a.allEvidence,a.documentSpec);let{localFacts:h,projectBasicFacts:i,preciseFacts:j,structuredTables:k}=(0,n.d6)({evidence:a.allEvidence,template:a.template,spec:a.documentSpec,profile:a.domainProfile,scope:a.projectMaterialScope,diagnostics:a.generationDiagnostics}),l=[...h,...i,...j],m={facts:[],stages:[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"已有本地/资料事实覆盖主要必需字段,跳过 LLM 全量事实抽取"}]};if((0,n.N2)(l,a.template,a.documentSpec)){let b=(0,g.QR)(a.allEvidence,{preservePinned:!0});try{m=await (0,n.OQ)(b,a.factExtractionPromptTexts,a.template,a.documentSpec,a.signal,a.generationDiagnostics)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fact extraction failed:",b)}}for(let b of m.stages)(0,cb.fx)(a.progressStages,b);let o=A(a.allEvidence);for(let c of(a.structuredFacts=(0,ca.am)((b=[...h,...i,...j,...m.facts,...o],a.allEvidence,b.filter(a=>!!a.sourceFile)),a.projectMaterialScope),a.governedStructuredFacts=K(a.structuredFacts,a.scopeConflicts??H(a.structuredFacts)),a.governedStructuredFacts))a.facts[c.key]=`${(0,e.lG)(c.value)}(来源:${c.sourceFile},角色:${c.roleId})`;a.factsModel=await (0,n.d7)(a.governedStructuredFacts,k,a.missingItems,a.documentSpec,a.domainProfile);let p=L({facts:a.governedStructuredFacts,projectRoot:a.projectRoot,requirement:a.requirement||"",templateId:a.template.id});a.factsModel.canonical=p,a.scheduleAuthority=(0,ao.GG)(a.factsModel),a.assemblyRateAuthority=(0,ao.hI)(a.factsModel),a.scaleSummary=(0,ao.Pt)(a.factsModel),a.supportAuthority=(0,ao.P3)(a.factsModel),a.decisionLockEntries=a$({facts:[...h,...i,...j],evidence:a.allEvidence})}function cd(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function ce(a){return a.replace(/[((]\d+[))]/gu,"").replace(/副本|最终版|扫描件|定稿/gu,"").replace(/[\s,。,.;;::《》“”‘’()()_-]+/gu,"").toLowerCase()}function cf(a,b){let c=ce(b);if(!c||c.length<4)return!0;let d=ce(a);return!!d.includes(c)||c.length>=12&&d.includes(c.slice(0,Math.max(8,Math.floor(.72*c.length))))}var cg=c(73859);function ch(a){return a.replace(/[((]\d+[))]/gu,"").replace(/副本|最终版|扫描件|定稿/gu,"").replace(/\s+/gu,"").replace(/[,。,.;;::《》“”‘’()()_-]/gu,"").toLowerCase()}function ci(a,b){let c=a.trim();if((0,cg.d2)(b,c)||(0,cg.rF)(b,c)||/签章|盖章|联系人|联系电话|电话|邮箱|解密|开标|评标|保证金|交易系统|空白|填写|上传|下载|递交|投标文件制作|电子服务系统|交易平台/u.test(c)||/\|/u.test(c)||/^#+\s*/u.test(c)||/见(?:招标公告|投标人须知|前附表|本项目|补疑)|资料参数行摘要|公共资源交易监督管理|开评标程序|监管部门|招标代理机构|监督管理部门|行政监督部门/u.test(c)||/是否|符合|采购范围|规定的投标截止时间|电子交易系统|投标人须知|招标文件正文/u.test(c)&&/\d{3,}/u.test(c)||/项目名称|工程名称/u.test(c)&&/项目编号|工程概况|建筑面积|本项目分为|现状建筑物|改造工程|标段/u.test(c)||/项目编号[::]|工程概况[::]|本项目分为|现状建筑物|总建筑面积|本次改造工程|清单编制说明/u.test(c))return"";let d=/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月)/u.exec(c)?.[0],e=ch(d&&/工期|总工期|合同工期|计划工期|施工周期/u.test(c)?d:c);return!e||e.length>80?"":e}var cj=c(23760),ck=c(40693),cl=c(1358),cm=c(11248);function cn(a){return(0,cm.K3)(`${a.fieldName||a.key} ${(0,e.lG)(a.value)}`)}function co(a){return[...a.project,...a.schedule,...a.quality,...a.safety,...a.resources,...a.preciseFacts,...a.bills,...a.drawings,...a.rules,...a.specifications].map(cn).join("\n")}function cp(a,b){let c=[{label:"工期",corpus:co({...b,project:[],quality:[],safety:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/工期|日历天|合同工期|计划工期/u},{label:"质量",corpus:co({...b,project:[],schedule:[],safety:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/质量目标|质量标准|验收|复验/u},{label:"安全",corpus:co({...b,project:[],schedule:[],quality:[],resources:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/安全|文明|风险|应急/u},{label:"资源",corpus:co({...b,project:[],schedule:[],quality:[],safety:[],preciseFacts:[],bills:[],drawings:[],rules:[],specifications:[]}),required:/资源|材料|设备|劳动力/u},{label:"工程量",corpus:co({...b,project:[],schedule:[],quality:[],safety:[],resources:[],preciseFacts:[],drawings:[],rules:[],specifications:[]}),required:/工程量|清单|建筑面积|长度|吨|台|套|项/u}],d=(0,cm.K3)(a.replace(/\s+/gu,"")),e=[];for(let b of c)b.required.test(a)&&0===[...new Set(b.corpus.split("\n").map(a=>a.replace(/\s+/gu,"").slice(0,24)).filter(Boolean))].filter(a=>a.length>=6&&d.includes(a)).length&&e.push({level:"warning",message:`证据使用覆盖率偏低:正文中未明显使用${b.label}相关事实`,suggestion:`请在相应章节中引用至少一项${b.label}事实,避免只写通用表述。`});return e}async function cq(a,b){let c=a.split(/\n\s*\n/gu).map(a=>a.trim()).filter(Boolean),d=/(?:加强组织领导|严格执行规范|落实责任制度|确保工程质量|强化过程管理|提高思想认识|完善管理体系|形成闭环管理|统筹推进|全面落实)/gu,e=[];for(let a of c){if(120>(0,h.V7)(a)||(a.match(d)||[]).length<2)continue;let c=await b.analyze(a);c&&(c.concrete||e.push({level:"warning",message:`段落存在空泛表述:${a.slice(0,48)}...`,suggestion:"请补充该段对应的对象、动作、控制点或验收闭环,避免只保留管理性套话。"}))}return e}function cr(a,b){let c=[];if(!b)return c;let d=a.map(a=>`${a.title}
35
35
  ${a.content}`).join("\n\n");if(/进度|工期/u.test(d)&&/资源|材料|设备|劳动力/u.test(d)){let d=a.find(a=>/资源|材料|设备|劳动力/u.test(a.title)),e=d?b.get(d.title):void 0;e?.contentNeeds.resource||c.push({level:"warning",message:"章节逻辑依赖不足:进度章节与资源章节之间缺少明显支撑关系",suggestion:"请在资源章节补充与工期目标相匹配的劳动力、材料、设备投入和调配计划。"})}return/质量/u.test(d)&&/施工|工艺|技术/u.test(d)&&(a.some(a=>b.get(a.title)?.contentNeeds.quality||b.get(a.title)?.contentNeeds.construction)||c.push({level:"warning",message:"章节逻辑依赖不足:质量章节未明显支撑施工工艺控制",suggestion:"请在施工技术和质量章节之间补齐工艺控制点、验收要求和整改复验闭环。"})),/安全|文明|风险/u.test(d)&&(a.some(a=>b.get(a.title)?.contentNeeds.safety)||c.push({level:"warning",message:"章节逻辑依赖不足:安全章节缺少检查整改和应急支撑",suggestion:"请补齐风险识别、检查整改、应急响应和演练闭环。"})),c}let cs=/安全|文明|质量|绿色施工|环保|扬尘|消防|应急|危大|风险|规范|标准|管理要求|施工工艺|技术措施|验收/u,ct=/项目名称|工程名称|建设地点|建设单位|招标人|发包人|建设规模|招标范围|合同工期|计划工期|质量标准|危大工程清单|工程量|材料规格|设备型号|图纸参数|报价|单价|利润|税率|合同金额|联系方式|品牌/u,cu=/报价|单价|合价|金额|利润|税率|增值税|招标控制价|最高投标限价|中标价|合同价|暂列金额/u,cv=/联网增强|联网检索|网页资料|搜索结果|根据网页|互联网资料|在线资料|浏览器|搜索引擎/u,cw=["项目名称","工程名称","建设地点","建设单位","招标人","发包人","建设规模","招标范围","合同工期","计划工期","工程量","报价","单价"];function cx(a){return a.replace(/&amp;/gu,"&").replace(/&lt;/gu,"<").replace(/&gt;/gu,">").replace(/&quot;/gu,'"').replace(/&#39;/gu,"'").replace(/<[^>]+>/gu,"").replace(/\s+/gu," ").trim()}async function cy(a,b,c,d,e){let f=`https://duckduckgo.com/html/?q=${encodeURIComponent(a)}`,g=new AbortController,h=setTimeout(()=>g.abort(),8e3),i=()=>g.abort();e?.addEventListener("abort",i,{once:!0});let j=await fetch(f,{headers:{"User-Agent":"Mozilla/5.0 compatible; customize-agent web research"},signal:g.signal}).finally(()=>{clearTimeout(h),e?.removeEventListener("abort",i)});return j.ok?[...(await j.text()).matchAll(/<a[^>]+class="result__a"[^>]+href="([^"]+)"[^>]*>([\s\S]*?)<\/a>[\s\S]*?<a[^>]+class="result__snippet"[^>]*>([\s\S]*?)<\/a>/giu)].map(a=>{let b=cx(a[1]||""),c=cx(a[2]||""),d=cx(a[3]||""),e=/uddg=([^&]+)/u.exec(b)?.[1];return{url:e?decodeURIComponent(e):b,title:c,snippet:d}}).filter(a=>{let b=`${a.title} ${a.snippet} ${a.url}`;return!(!a.url||!a.snippet||ct.test(b)||cu.test(b)||cv.test(b)||d.some(a=>a&&b.includes(a)))&&(0===c.length||c.some(b=>a.url.includes(b)))}).slice(0,b):[]}async function cz(a){if(!a.config.enabled||!function(a,b){let c=`${a} ${b.join(" ")}`;return!(!cs.test(c)||/项目概况|工程概况|建设地点|建设规模|招标范围|工程量|报价|造价/u.test(c)&&!/安全|文明|质量|危大|环保|工艺|措施/u.test(c))}(a.chapterTitle,a.sectionTitles))return{evidence:[],queries:[],filtered:0};let b=function(a,b,c){let d=`${a} ${b.join(" ")}`,e=[/危大/u.test(d)?"危大工程 专项施工方案 管理规定 安全措施":"",/安全|文明/u.test(d)?"建筑工程 安全文明施工 管理要求":"",/质量|验收/u.test(d)?"建筑工程 质量控制 质量验收 通用要求":"",/扬尘|环保|绿色/u.test(d)?"施工现场 扬尘治理 绿色施工 环保要求":"",/消防|应急/u.test(d)?"施工现场 消防 应急管理 要求":"",/工艺|技术措施/u.test(d)?"建筑工程 施工工艺 技术措施 通用要求":""].filter(Boolean),f=`${a.replace(ct,"")} 公开规范 通用要求`.trim();return[...new Set(e.length?e:[f])].slice(0,c)}(a.chapterTitle,a.sectionTitles,a.config.maxQueriesPerChapter),c=[],d=0;for(let e of b)try{for(let b of(await cy(e,a.config.maxResultsPerQuery,a.config.trustedDomains,a.runtimeRules.forbiddenTerms||[],a.signal))){let e=function(a,b){let c=a;for(let a of cw)c=c.replace(RegExp(`${a}[^。;;
36
36
  ]{0,80}`,"gu"),"");for(let a of b.map(a=>{var b;return null==(b=a.value)?"":"string"==typeof b||"number"==typeof b||"boolean"==typeof b?String(b).trim():""}).filter(a=>a.length>=3&&a.length<=80))c=c.replace(RegExp(a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),"gu"),"");return c.replace(cu,"").trim()}(b.snippet,a.localFacts);if(!e||e.length<20){d+=1;continue}c.push({chapterId:a.chapterId,filePath:b.url,score:.42,content:`参考依据:${b.title}
37
37
  ${e}`,source:function(a){let b=a.toLowerCase();return b.includes(".gov.cn")||b.includes("mohurd")||b.includes("zjt")||a.includes("住建")?"web-policy":"web-evidence"}(b.url),sectionTitle:a.chapterTitle})}}catch{d+=1}return{evidence:c,queries:b,filtered:d}}let cA=[{label:"工程名称",factGroups:["project"],patterns:[/工程名称\s*[::]\s*([^\n|]+)/u],locations:"封面、工程概况、页眉页脚、专项方案、表格标题"},{label:"建设地点",factGroups:["project"],patterns:[/建设地点\s*[::]\s*([^\n|]+)/u,/工程地点\s*[::]\s*([^\n|]+)/u],locations:"工程概况、周边环境、扬尘噪声、交通导改、属地化措施"},{label:"总工期",factGroups:["schedule"],patterns:[/总工期\s*[::]\s*([^\n|]+)/u,/计划工期\s*[::]\s*([^\n|]+)/u,/工期目标\s*[::]\s*([^\n|]+)/u],locations:"工程概况、进度计划、横道图、资源计划、纠偏措施"},{label:"建设规模",factGroups:["project","preciseFacts"],patterns:[/建设规模\s*[::]\s*([^\n|]+)/u,/建筑面积\s*[::]\s*([^\n|]+)/u,/道路长度\s*[::]\s*([^\n|]+)/u,/管线长度\s*[::]\s*([^\n|]+)/u],locations:"工程概况、工程量表、施工部署、资源配置"},{label:"机械数量型号",factGroups:["resources"],patterns:[/([\p{Script=Han}A-Za-z0-9]+(?:机|吊|泵|车))\s*[^\n|]{0,12}(\d+)\s*(台|套|辆)/u],locations:"机械表、平面布置、进度保障、安全专项方案"},{label:"劳动力人数",factGroups:["resources"],patterns:[/劳动力\s*[^\n|]{0,12}(\d+)\s*人/u,/班组\s*[^\n|]{0,12}(\d+)\s*人/u],locations:"劳动力计划、进度节点、抢工方案、工资保障台账"},{label:"危大工程清单",factGroups:["safety","preciseFacts"],patterns:[/危大工程\s*[::]\s*([^\n|]+)/u,/深基坑|高支模|起重吊装|脚手架/u],locations:"安全章节、专项方案、审批表、应急预案"},{label:"环保监测指标",factGroups:["quality","safety","preciseFacts"],patterns:[/PM10|PM2\.5|TSP|噪声|扬尘在线监测/u],locations:"文明施工、扬尘噪声、智慧工地、应急联动"}];function cB(a){return a.replace(/[\s,。;;::|]/gu,"").trim()}let cC=/塔式起重机|履带吊|汽车吊|卷扬机|脚手架|扣件|钢管|模板|噪声|PM2\.5|PM10|TSP|扬尘在线监测|临电|消防|安全网|围挡|洗车台|沉淀池|雾炮/u,cD=/不使用|不采用|不配置|无需|未采用|不得使用|禁止使用/u;function cE(a,b){let c=[];for(let d of b){let b=a[d];if(Array.isArray(b))for(let a of b)a&&"object"==typeof a&&"value"in a&&"string"==typeof a.value&&c.push(a.value)}return c.map(cB).filter(Boolean)}let cF=/([\u4e00-\u9fa5A-Za-z0-9()()]{1,12}?)(\d+(?:\.\d+)?)\s*(?:mm|cm|m|米|MPa|kN|kV|kW|℃|°C|元|万元|人|天|日|个|层|樘|处|套|台|t|吨)([\u4e00-\u9fa5A-Za-z0-9()()]{0,8})/gu,cG=["直径","厚度","宽度","长度","高度","深度","间距","距离","标高","偏差","数量","面积","体积","重量","压力","温度","强度","等级","坡度","规格","尺寸","层数","次数","跨度","半径"];async function cH(a){let b=function(a){let b=[];for(let c of a.split(/\r?\n/u)){let a=c.trim();if(!(/^#{1,6}\s/u.test(a)||/^\s*\|/u.test(a)))for(let c of a.matchAll(RegExp(cF.source,"gu"))){let a=(c[1]||"").trim(),d=Number(c[2]),e=(c[3]||"").trim(),f=`${a}${e}`.replace(/[\s,,、;;::]/gu,"");!(f.length<2)&&/[\u4e00-\u9fa5A-Za-z]{2,}/u.test(f)&&Number.isFinite(d)&&!(d<=0)&&(cG.some(a=>f.replace(/(?:mm|cm|m|MPa|kN|kV|kW|℃|元|万元|人|天|日|个|层|樘|处|套|台|t|吨)/gu,"").replace(/[\s,,、;;::()()]/gu,"")===a)||b.push({concept:f,value:d,raw:c[0]}))}}let c=new Set;return b.filter(a=>{let b=a.raw;return!c.has(b)&&(c.add(b),!0)}).slice(0,60)}(a);if(b.length<3)return[];let c=[...new Set(b.map(a=>a.concept))];if(c.length<2)return[];let d=await (0,bj.VN)().embedDocuments(c);if(d.length!==c.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${c.length} 条,实际 ${d.length} 条`);let e=new Map(c.map((a,b)=>[a,d[b]])),f=function(a,b){let c=new Map(a.map(a=>[a,a])),d=a=>{let b=c.get(a)||a;return b===a?a:(c.set(a,d(b)),c.get(a)||a)},e=(a,b)=>{c.set(d(a),d(b))};for(let c=0;c<a.length;c+=1)for(let d=c+1;d<a.length;d+=1)b(a[c],a[d])>=.6&&e(a[c],a[d]);return c}(c,(a,b)=>{let c=e.get(a),d=e.get(b);if(!c||!d||0===c.length||0===d.length)return 0;let f=Math.min(c.length,d.length),g=0;for(let a=0;a<f;a+=1)g+=c[a]*d[a];return g}),g=a=>{let b=a;for(;(f.get(b)||b)!==b;)b=f.get(b)||b;return b},h=new Map;for(let a of b){let b=g(a.concept),c=h.get(b)||[];c.push(a),h.set(b,c)}let i=[];for(let a of h.values()){if(a.length<2)continue;let b=[...new Set(a.map(a=>a.value))];if(b.length<2)continue;let c=Math.max(...b),d=Math.min(...b);if(!(c-d<=.02*c)&&!(c>20*d)&&!(a.filter(a=>/[、/](?:与)?\d/u.test(a.raw)).length>=2)&&(i.push(`“${a[0].concept}”出现多个口径:${[...new Set(a.map(a=>a.raw))].slice(0,3).join("、")}`),i.length>=4))break}return 0===i.length?[]:[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`同一参数概念出现多口径数值冲突:${i.join(";")}`,suggestion:"以绑定资料(图纸/清单/规范)裁决口径为准统一数值表述:每个参数概念全文只保留一个口径数值,删除矛盾表述。"}]}let cI=["电梯","幕墙","智能化","消防","暖通","给排水","电气","燃气","人防","室外","园林","绿化","景观","钢结构","防水","保温","门窗","通风","空调","防雷","接地","动力","照明","拆除","加固","装修","装饰"];var cJ=c(27625);let cK=/分[为成]?[^。;;,,\n]{0,12}阶段|共[分设]?[^。;;,,\n]{0,12}阶段|划[分]?为[^。;;,,\n]{0,12}阶段|[二三四五六七八九十]个阶段/u,cL={一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};function cM(a){return/(\d+|[一二三四五六七八九十]+)\s*个?\s*阶段/u.exec(a)?.[1]??null}function cN(a){let b=a.map(cM).filter(a=>null!==a).map(a=>/^\d+$/u.test(a)?parseInt(a,10):/^[一二三四五六七八九十]+$/u.test(a)?"十"===a?10:1===a.length?cL[a]??null:a.startsWith("十")?10+(cL[a[1]]??0):a.endsWith("十")?(cL[a[0]]??0)*10:(cL[a[0]]??0)*10+(cL[a[2]]??0):null).filter(a=>null!==a);return 0===b.length?null:1===new Set(b).size?b[0]:null}async function cO(a){let b=[...new Set(a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\|)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.replace(/\s+/gu,"").trim()).filter(a=>a.length>=8&&a.length<=60&&cK.test(a)))];if(b.length<2)return[];let c=await (0,bj.Mv)(b,b),d=b.map((a,b)=>b),e=a=>{let b=a;for(;d[b]!==b;)b=d[b];let c=a;for(;d[c]!==b;){let a=d[c];d[c]=b,c=a}return b},f=(a,b)=>{d[e(b)]=e(a)};for(let a=0;a<b.length;a+=1)for(let d=a+1;d<b.length;d+=1)c(b[a],b[d])>=.62&&f(a,d);let g=new Map;for(let a=0;a<b.length;a+=1){let c=e(a),d=g.get(c)||[];d.push(b[a]),g.set(c,d)}if(g.size<2||new Set([...g.values()].map(cN).filter(a=>null!==a)).size<2)return[];let h=[...g.values()].map(a=>a.sort((a,b)=>b.length-a.length)[0]).slice(0,4);return[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`施工阶段划分口径不统一:正文出现 ${g.size} 种互异阶段划分口径(${h.map(a=>`“${a.slice(0,16)}”`).join("、")})`,suggestion:"全文统一阶段划分口径:以总进度计划/施工部署章节的划分为唯一口径,其余章节划分句逐字对齐或删除。"}]}var cP=c(41991);let cQ=/应急预案|应急措施|应急响应|应急救援|突发事件|应急管理|应急物资|应急演练|应急组织|应急保障/u,cR=/应急|突发|救援|预案|抢险|疏散/u,cS=["应急预案的编制与响应流程","突发事件应急处置措施","应急救援组织体系与保障"],cT=["应急照明系统安装调试","应急电源配置与切换方案"],cU={organization:"应急管理领导小组、应急救援队伍的组织机构与职责分工",procedure:"应急处置程序、应急响应流程与应急演练安排",resource:"应急物资、应急器材设备的储备与保障措施"},cV=/应急物资|急救箱|灭火器|沙袋|发电机|水泵|对讲机|应急照明|应急灯|防护服|救援绳|救生衣|铁锹|编织袋|抽水泵|警示带|应急器材/u,cW=/配备|储备|保障|配置|数量|不少于|共计|套|具|个|台|把|只/u,cX=["应急物资储备清单与配备数量","应急救援器材的配置与保障"],cY=["应急照明灯具数量与回路设计","应急电源的电气系统设计"];async function cZ(a){return(0,cP.A)({prototypes:[...cS],negativePrototypes:[...cT],embedDocuments:a})}async function c$(a){return(0,cP.A)({prototypes:[...cX],negativePrototypes:[...cY],embedDocuments:a})}async function c_(a,b){let c=a.split(/\r?\n/u),d=[],e=c.map(a=>{let b=/^(#{2,4})\s+(.+)$/u.exec(a.trim());if(b)return{level:b[1].length,title:b[2].replace(/^\d+(?:\.\d+)*\s+/u,"").trim()}}).filter(a=>void 0!==a).filter(a=>!cQ.test(a.title)&&cR.test(a.title)),f=await cZ(b),g=e.length>0?await f(e.map(a=>a.title)):[],h=new Set(e.filter((a,b)=>g[b]).map(a=>a.title)),i=a=>cQ.test(a)||h.has(a),j=!1,k=[],l=[],m="",n=0;for(let a of c){let b=/^(#{2,4})\s+(.+)$/u.exec(a.trim());if(b){let a=b[1].length,c=b[2].replace(/^\d+(?:\.\d+)*\s+/u,"").trim();if(i(c)){j=!0,k.push(c);continue}a<=3&&j&&(j=!1);continue}if(j&&a.trim()&&!/^\s*\|/u.test(a)){l.push(a);let b=a.replace(/\s+/gu,"");m+=b,n+=b.length}}if(0===k.length)return d;let o=[];n<300&&o.push(`字数仅 ${n} 字(要求 ≥300 字)`);let p=m.match(/.{1,200}/gu)||[],q=Object.values(cU),r=await (0,bj.Mv)(p,q),s=a=>p.some(b=>r(b,a)>=bj.Eh);s(cU.organization)||o.push("应急组织体系"),s(cU.procedure)||o.push("应急处置程序/演练");let t=await c$(b),u=l.join("。").split(/[。;;]/u).map(a=>a.trim()).filter(a=>cV.test(a)&&cW.test(a)),v=u.length>0?await t(u):[];return s(cU.resource)||v.some(Boolean)||o.push("应急物资保障"),o.length>0&&d.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`应急预案小节深度不足:${k.join("、")}(缺少:${o.join("、")})`,suggestion:"补写应急组织体系(领导小组/抢险队与职责)、应急处置程序与演练安排、应急物资清单与保障措施,达到可落地深度。",sectionTitle:k[0]}),d}async function c0(a){let b=await (0,cj.Z2)(a.markdown,a.factsModel,{scopeClassifier:a.factTokenScopeClassifier}),c=bO(a.tenderRequirements).map(({item:a})=>bN(a)),d=a.markdown.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>bX(a)).filter(Boolean).slice(0,80),e=(0,ao.s3)(a.markdown),f=await (0,bj.Mv)(c,[...d,...e]),g=await (0,bj.Mv)(a.evaluationCriteriaItems||[],d),i=new Map((await Promise.all(a.chapters.map(async b=>[b.title,await a.professionalDepthClassifier.analyze(b.content)]))).filter(a=>!!a[1]));return[...b7("toc-consistency",()=>a.promptDocumentRules?.forbidToc?[]:[...(0,cj.gN)(a.markdown),...(0,cj.f8)(a.markdown)]),...b7("heading-duplicate",()=>(0,cj.kw)(a.markdown)),...b7("templated-label",()=>(0,aP.D9)(a.markdown)),...b7("title-integrity",()=>(0,aP.uw)(a.markdown)),...b7("evaluation-criteria-coverage",()=>(0,cj.wl)(a.markdown,a.evaluationCriteriaItems||[],{semanticSimilarity:g})),...await b7("requirements-coverage",()=>bW(a.markdown,a.tenderRequirements,{semanticSimilarity:f,bodyTexts:e})),...b7("fabricated-start-date",()=>(0,ao.cf)(a.markdown,a.factsModel)),...b7("field-value-mismatch",()=>(0,ao.a8)(a.markdown,a.factsModel)),...b7("area-arithmetic",()=>(0,ao.u2)(a.markdown)),...b7("resource-consistency",()=>(0,ao.rA)(a.markdown,{laborPeakAuthority:a.blueprintData?a9(a.blueprintData).laborPeakAuthority:void 0})),...b7("node-schedule-consistency",()=>(0,ao.Et)(a.markdown)),...b7("cross-section-numeric-conflict",()=>(0,ao.H)(a.markdown)),...b7("greening-maintenance-mismatch",()=>(0,ao.x5)(a.markdown,a.factsModel)),...b7("street-light-count-mismatch",()=>(0,ao.Tz)(a.markdown,a.factsModel)),...b7("spec-location-mismatch",()=>(0,ao.$$)(a.markdown,a.factsModel.specAuthorityMap)),...b7("blueprint-citation-consistency",()=>a.blueprintData?bf(a.markdown,a.blueprintData).filter(a=>"error"===a.level):[]),...b7("foundation-form-residue",()=>(0,ao.N$)(a.markdown)),...b7("ambiguous-either-or",()=>(0,ao.Fr)(a.markdown)),...b7("excavation-depth-lock",()=>(0,ao.bq)(a.markdown)),...b7("excavation-hazard-classification",()=>(0,ao.LA)(a.markdown,a.factsModel)),...b7("support-form-fact-consistency",()=>(0,ao.ek)(a.markdown,a.factsModel)),...b7("equipment-entry-timing",()=>(0,ao.fQ)(a.markdown,a.factsModel)),...b7("fabricated-award",()=>(0,ao.hu)(a.markdown,a.factsModel,a.tenderRequirements)),...b7("bidder-qualification-section",()=>(0,ao.Rv)(a.markdown)),...b7("cross-chapter-duplicate-section",()=>(function(a,b){let c=a=>a.replace(/^\d+(?:\.\d+)*[、..\s]*/u,"").replace(/[\s,,、]/gu,""),d=new Map;a.forEach((a,b)=>{let c=(0,aq.GQ)(a.title).replace(/[\s,,、]/gu,"");c&&!d.has(c)&&d.set(c,b)});let e=new Map,f=new Map;a.forEach((a,b)=>{let d=new Set;for(let g of(a.content||"").split(/\r?\n/u)){let a=/^###\s+(.+?)\s*$/u.exec(g.trim());if(!a)continue;let h=c(a[1]);if(h.length<8||d.has(h))continue;d.add(h),f.has(h)||f.set(h,a[1].replace(/^\d+(?:\.\d+)*[、..\s]*/u,"").trim());let i=e.get(h)||[];i.push(b),e.set(h,i)}});let g=new Map;b.forEach(a=>{let b=d.get((0,aq.GQ)(a.title).replace(/[\s,,、]/gu,""));if(void 0!==b)for(let d of a.sections||[]){let a=c(d);if(a.length<8)continue;let e=g.get(a)||[];e.includes(b)||e.push(b),g.set(a,e)}});let h=[];for(let[b,c]of e){if(c.length<2)continue;let d=g.get(b)||[];if(d.length>=2)continue;let e=1===d.length?d[0]:c[0],i=f.get(b)||b;for(let b of c){if(b===e)continue;let c=a[b];h.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",chapterId:c.id,sectionTitle:i,message:`跨章同名小节:“${i}”已在「${a[e].title}」落位,本章(「${c.title}」)同名小节属跨章串章重复,须改写归并`,suggestion:"同一主题小节全文只保留一处(归属章);非归属章的同名小节:内容与本章主题相关则改写标题为可区分的具体主题并归并内容,与本章无关则整节删除(含标题行);修复后全文不得再出现跨章同名小节。"})}}return h})(a.chapters,a.effectiveChapters||a.template.chapters||[])),...b7("basic-info-schedule-field",()=>(0,ao.cT)(a.markdown)),...b7("duplicate-table",()=>(0,ao.ub)(a.markdown)),...b7("duplicate-paragraph",()=>(0,ao.cl)(a.markdown)),...b7("paragraph-tail-repeat",()=>(0,ao.AD)(a.markdown)),...b7("collision-numbered-heading",()=>(0,ao.xR)(a.markdown)),...b7("inverted-date-range",()=>(0,ao.jP)(a.markdown)),...b7("resource-triad-section-hierarchy",()=>(0,ao.zP)(a.markdown)),...await b7("support-system-conflict",()=>(0,ao.r8)(a.markdown,(0,ao.P3)(a.factsModel))),...b7("dangerous-list-consistency",()=>(0,ao.vH)(a.markdown)),...b7("hazard-exclusion-contradiction",()=>(0,ao.m6)(a.markdown)),...await b7("six-hundred-percent-coverage",()=>(0,ao.sn)(a.markdown)),...await b7("self-undermining-candidate",()=>(0,ao.YN)(a.markdown)),...b7("paragraph-opening-repeat",()=>(0,ao.y2)(a.markdown)),...b7("flow-form-repeat",()=>(0,aP.Q9)(a.markdown)),...b7("skeleton-fingerprint",()=>(0,aP.o0)(a.markdown)),...b7("repeated-word",()=>(0,ao.Xc)(a.markdown)),...await b7("commercial-data-in-body",()=>(0,ao.mC)(a.markdown)),...b7("overview-recap",()=>(0,ao.l4)(a.markdown)),...b7("closure-phrase-density-cap",()=>(0,ao.dF)(a.markdown)),...await b7("parameter-concept-conflict",()=>cH(a.markdown)),...await b7("internal-terminology-anchor",()=>(0,bi.WT)(a.markdown)),...b7("construction-system-coverage",()=>(function(a){let b=[...new Set(a.flatMap(a=>cI.filter(b=>a.title.includes(b))))];if(0===b.length)return[];let c=a.map(a=>a.content||"").join("\n"),d=b.filter(a=>!c.includes(a));if(0===d.length)return[];let e=a.find(a=>d.some(b=>a.title.includes(b)));return[{level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`章节大纲涉及的专业工程系统在正文零覆盖:${d.join("、")}`,suggestion:"对应章节必须补写该专业工程的施工方案正文(施工概况/施工流程/施工方法,含可核实的工艺参数),不得整章零覆盖。",chapterId:e?.id}]})(a.chapters)),...b7("dangerous-applicability",()=>(0,cJ.e6)(a.markdown)),...b7("innovation-tech-coverage",()=>(0,cj.Ef)(a.markdown,a.effectiveChapters||a.template.chapters||[])),...b7("instruction-like-heading",()=>(0,cj.K1)(a.markdown)),...b7("formal-heading-hierarchy",()=>(0,cj.Fv)(a.markdown)),...b7("formal-content-integrity",()=>(0,cj.k0)(a.markdown)),...b7("punctuation-artifact",()=>(0,cj.vZ)(a.markdown)),...b7("table-quality",()=>(0,cj.NS)(a.markdown)),...b7("table-spam",()=>(0,cj.SN)(a.markdown)),...b7("basis-regulations-coverage",()=>(0,cj.AN)(a.markdown,a.blueprintData)),...b7("resource-breakdown-consistency",()=>(0,cj.EJ)(a.markdown,a.blueprintData)),...b7("section-content-integrity",()=>(0,cj.qK)(a.markdown,a.chapters)),...b7("professional-content",()=>(0,cj.ji)(a.chapters,i)),...b7("professional-score",()=>(0,cj.i0)(a.chapters,i)),...b7("generic-professional-content",()=>(0,cj.ST)(a.chapters,i)),...b7("management-measure-number",()=>(0,cj.xX)(a.chapters,i)),...await b7("closed-loop-density",()=>(0,cj.Zu)(a.markdown)),...await b7("cross-chapter-consistency",()=>(0,cj.qm)(a.markdown,a.factsModel,a.scopeConflicts,i)),...await b7("process-spec-conflict",()=>(0,cj.hr)(a.markdown,a.factsModel)),...b7("evidence-usage-coverage",()=>cp(a.markdown,a.factsModel)),...await b7("paragraph-generic",()=>cq(a.markdown,a.professionalDepthClassifier)),...await b7("construction-org-generic-language",()=>(0,ck.Fw)(a.chapters)),...b7("construction-org-control-loop",()=>(0,ck.Hl)(a.chapters)),...b7("construction-org-professional-chain",()=>(0,ck.iX)({markdown:a.markdown,factsModel:a.factsModel,chapters:a.chapters})),...b7("construction-org-consistency",()=>(function(a,b){let c=[];if(!/施工组织设计|施工组织|施组|质量|安全|文明施工/u.test(a))return c;for(let d of cA){let e=cE(b,d.factGroups),f=(function(a,b){let c=[];for(let d of b){let b=new RegExp(d.source,d.flags.includes("g")?d.flags:`${d.flags}g`);for(let d of a.matchAll(b)){let a=cB(d[1]||d[0]||"");!cD.test(a)&&a.length>=2&&a.length<=80&&c.push(a)}}return[...new Set(c)]})(a,d.patterns).filter(a=>!cC.test(a)&&!function(a,b){return 0===b.length||b.some(b=>b.includes(a)||a.includes(b)||a.length>=4&&b.includes(a.slice(0,4)))}(a,e)).slice(0,5);f.length>0&&c.push({level:"warning",message:`施组数据一致性风险:${d.label} 可能与项目图谱/事实不一致(${f.join("、")})`,suggestion:`请核对${d.label}在${d.locations}中的表述,统一以招标文件、项目图谱和可信事实为准。`})}return c})(a.markdown,a.factsModel)),...b7("construction-org-chapter-data-coverage",()=>(function(a,b){let c=[],d=cE(b,["project","schedule","resources","quality","safety","preciseFacts"]);if(0===d.length)return c;for(let b of a)/概况|进度|资源|质量|安全|文明|工资|应急/u.test(`${b.title} ${(b.sections||[]).join(" ")}`)&&(d.some(a=>a.length>=3&&b.content.includes(a.slice(0,Math.min(10,a.length))))||c.push({level:"warning",message:`${b.title} 缺少可识别的项目图谱事实支撑`,suggestion:"请至少引用工程名称、工期、工程量、资源、风险、质量安全目标等项目专属事实之一,避免纯模板化。"}));return c})(a.chapters,a.factsModel)),...b7("construction-org-major-content",()=>(0,ck.Av)(a.chapters,a.markdown)),...b7("construction-org-division-section",()=>(0,ck.CS)(a.chapters,a.markdown)),...b7("major-content-governance",()=>(0,ck.l5)(a.markdown)),...b7("construction-org-bonus-module",()=>(0,ck.b7)(a.chapters)),...b7("chapter-dependency",()=>cr(a.chapters,i)),...b7("document-delivery-score",()=>(function(a,b,c,d){let e={factuality:2*!(0,cj.vY)(a,c).some(a=>"error"===a.level),structure:b.length>0&&b.every(b=>a.includes(b.title)&&(0,h.V7)(b.content)>=600)?2:1,depth:0===(0,cj.i0)(b,d).length?2:1,executable:0===cr(b,d).length?2:1,evidence:0===cp(a,c).length?2:1},f=e.factuality+e.structure+e.depth+e.executable+e.evidence;return[{level:"info",message:`文档交付评分报告:总分 ${f}/10,事实${e.factuality},结构${e.structure},专业${e.depth},可执行${e.executable},证据${e.evidence}`,suggestion:f>=8?"可交付,但建议继续优化证据使用覆盖率和章节依赖链路。":"建议优先修复低分维度后再导出。"}]})(a.markdown,a.chapters,a.factsModel,i)),...b7("generated-fact-verification",()=>b),...b7("duplicate-basic-info",()=>(0,cj.iC)(a.markdown)),...await b7("formal-style",()=>(0,cj.BV)(a.markdown)),...b7("tertiary-heading",()=>(0,bh.dh)(a.markdown)),...b7("min-chapter-section",()=>(0,cj.Ty)(a.chapters)),...await b7("precise-fact-usage",()=>(0,cj.N1)(a.markdown,a.factsModel,a.chapters)),...await b7("boq-placement",()=>(0,cj.S2)(a.markdown,a.chapters,a.factsModel)),...await b7("stage-phrasing",()=>cO(a.markdown)),...await b7("emergency-section-depth",()=>c_(a.markdown)),...b7("boq-row-trace",()=>(0,cl.QP)((0,cl.JV)(a.markdown,a.factsModel))),...b7("drawing-reference",()=>(0,cj.yd)(a.markdown,a.factsModel)),...b7("web-evidence-leakage",()=>(function(a){let b=[];return cv.test(a)&&b.push({level:"warning",message:"正文包含联网增强过程性表述",suggestion:"请删除联网检索、网页资料、搜索结果等过程性话术,改为正式交付语言。"}),b})(a.markdown)),...b7("formal-placeholder",()=>(0,cj.bM)(a.markdown)),...b7("prompt-example-leak",()=>(0,cj.M$)(a.markdown,a.promptBindings)),...b7("degenerate-content",()=>(0,cj.AC)(a.markdown,a.chapters)),...b7("planned-auto-spec-gate",()=>(0,cj.mR)(a.markdown,a.template)),...b7("planned-structure",()=>(0,bh.UG)(a.markdown,a.template)),...await b7("prompt-document-rule",()=>(0,bh.Ed)(a.markdown,a.promptDocumentRules)),...await b7("local-adaptation-keyword",()=>(0,ao.cJ)(a.markdown,a.factsModel)),...b7("boq-division-coverage",()=>(0,cl.sl)(a.markdown,a.chapters,a.factsModel))]}let c1={project:"项目基础事实",schedule:"工期与节点",quality:"质量目标与验收",safety:"安全文明要求",resources:"资源投入依据",quantities:"清单/图纸/工程量事实",rules:"规范规则与验收要求"};var c2=c(52922);let c3=["精心组织","科学统筹","科学管理","精益求精","全力保障","高效推进","力争优质","力争一流","一流水平","完善体系","最大限度","显著提升","大力落实","严格把控","充分确保","竭力打造","现代化管理","加强管理","提高意识","强化监督","持续完善","及时处理","全方位","常态化","提质增效","高标准","统筹推进"];[...c3];let c4=["危险性较大的分部分项工程安全管理","扬尘污染防治措施","建筑工人实名制管理","农民工工资专用账户与工资支付保障","生产安全事故应急预案与应急演练","绿色施工与四节一环保措施"],c5=["危险源辨识与风险识别评估","编制专项施工方案","组织专家论证并履行审批程序","对作业人员进行安全技术交底","施工过程监测与监控量测","分部分项工程验收","三级配电系统","两级漏电保护装置","漏电保护器与接地保护","实名制考勤与人员管理","农民工工资专用账户银行代发","应急预案编制与响应","绿色施工措施与评价"];function c6(a){return a.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").replace(/\s+/gu,"").trim()}async function c7(a,b){let{blocks:c,completeBlocks:d}=await (0,c2.Pm)(a);return Math.round((.7*Math.min(1,d/Math.max(6,Math.ceil((b&&b>0?b:void 0)??(0,h.V7)(a)/1500)))+.3*(c?d/c:0))*100)}let c8=/目录|层级|编号|表格|表头|分隔线|页码|空小节|缺少规划小节|小节只有标题|缺节/u,c9=/跨章一致性复核|事实一致性冲突|事实冲突|评分项要求|可靠精确参数|应急预案|属地创优|工伤保险|专业评分|深度不足|事实反查|存在多个值|已确认事实未在正文中落位|事实未在正文中落位/u,da=/缺少规划小节|小节只有标题|空小节|只有标题或表格无正文|小节内容补写未完成|小节生成未达标|同名小节|H4 标题|正文缺少章节标题|小节正文过短/u;async function db(a,b){let c=await (0,c2.Bt)(a,b),d=(0,c2.Ye)(a),e=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.replace(/[\s,,、::()()【】[\]《》“”"'`]/gu,"")).filter(a=>a.length>=12),f=e.length?(e.length-new Set(e).size)/e.length:0,g=await (0,c2.gE)(a,b),h=(0,c2.nY)(a);return{level:g.heavyTemplated?"heavy":c.level,fillerRatio:c.ratio,fillerSentences:c.fillerSentences,totalSentences:c.totalSentences,vagueHitCount:d.reduce((a,b)=>a+b.count,0),vaguePhrases:d.map(a=>a.phrase),duplicateSentenceRate:f,crossProjectResidue:h,difficultyCountermeasureRatio:g.ratio,difficultyBothCount:g.bothCount,difficultyCountermeasures:g.countermeasures,difficultyHeavyTemplated:g.heavyTemplated}}async function dc(a){let b=a.markdown.split(/\n{2,}/u).filter(a=>a.trim().length>=30),c=await (0,bj.Mv)(b,[...c4,...c5],a.embedDocuments),d=a=>b.some(b=>c(b,a)>=bj.Eh),e=await (0,c2.Bt)(a.markdown,a.embedDocuments);return{completeness:function(a,b,c,d){let e=[...a.matchAll(/^#{1,3}\s+(.+)$/gmu)].map(a=>c6(a[1]||"")).filter(a=>a.length>=2),f=1,g=c?.chapters||[];if(g.length>0){let a=g.map(a=>c6(a.title)).filter(Boolean);f=a.filter(a=>e.some(b=>b.includes(a)||a.includes(b))).length/a.length}else b.length>0&&(f=b.filter(a=>e.some(b=>b.includes(c6(a.title))||c6(a.title).includes(b))).length/b.length);return Math.round((.55*f+.45*(c4.filter(d).length/c4.length))*100)}(a.markdown,a.chapters,a.template,d),specificity:function(a,b,c){let d=c.filter(cl.O7),e=d.filter(a=>"used"===a.status),f=d.length?e.length/d.length:1,g=e.map(a=>String(a.value||"").replace(/\s+/gu," ").trim()).filter(a=>a.length>=4&&a.length<=60),h=b.map(a=>(a.content||"").replace(/\s+/gu," ")),i=g.filter(a=>h.filter(b=>b.includes(a)).length>=2).length;return Math.round((.55*f+.45*(g.length?i/g.length:1))*100)}(a.markdown,a.chapters,a.factTraces),compliance:function(a,b){let c=c5.filter(b).length/c5.length,d=(0,c2.JD)(a);return Math.round((.8*c+.1*(d.twoStepComplete?1:d.categories.length>0&&d.graded?.6:.3*(d.categories.length>0))+.1*(0,c2.bH)(a).coverage)*100)}(a.markdown,d),executability:await c7(a.markdown,a.referenceCompleteBlocks),normalization:function(a){let b=a=>"table"===a.category||"format"===a.category||("structure"===a.category?da.test(a.message):!a.category&&!c9.test(a.message)&&c8.test(a.message));return Math.max(0,100-8*a.filter(a=>"error"===a.level&&b(a)).length-Math.min(3*a.filter(a=>"warning"===a.level&&b(a)).length,30))}(a.issues),uniqueness:function(a,b){let c=c3.filter(b=>a.includes(b)).length,d=b.vagueSemanticSentences,e=100*Math.max(0,b.ratio-.1),f=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.replace(/[\s,,、::()()【】[\]《》“”"'`]/gu,"")).filter(a=>a.length>=12);return Math.max(0,Math.round(100-4*c-6*d-.5*e-60*(f.length?(f.length-new Set(f).size)/f.length:0)))}(a.markdown,e)}}async function dd(a){let b=await dc({markdown:a.markdown,chapters:a.chapters,template:a.template,factTraces:a.factTraces,issues:a.issues,referenceCompleteBlocks:a.referenceCompleteBlocks,embedDocuments:a.embedDocuments}),c=Math.round((.3*b.completeness+.25*b.specificity+.2*b.compliance+.15*b.executability+.1*b.normalization)*Math.min(1,b.uniqueness/90)),d=a.issues.filter(a=>"error"===a.level).length,e=Math.max(0,Math.min(99,Math.round(c-8*d))),f=a.knowledgeCoverage.score>=95?95:85;return{overall:c,deliveryProbability:e,target:f,passed:e>=f&&0===d,scores:b,templating:await db(a.markdown,a.embedDocuments),summary:`交付置信度 ${e}% / 目标 ${f}%,综合评分 ${c}/100(资料完整性 ${b.completeness}、方案针对性 ${b.specificity}、合规性 ${b.compliance}、可落地性 ${b.executability}、编制规范性 ${b.normalization}、低雷同性 ${b.uniqueness})`,actions:e>=f&&0===d?["已达到当前质量目标,建议保持事实口径和导出前复核。"]:["按招标评审口径补齐短板维度:章节与强制模块缺失补完整性、项目专属数据补针对性、危大闭环与强制制度补合规性、责任频次闭环句式补可落地性、表格层级与数据一致补规范性、清理空话禁用词与重复句式降雷同。","系统需优先修复阻断问题、扩大本地知识库检索、补抽结构化事实,并将未落位事实写入对应章节。"]}}let de=new Set(["fact-coverage","overview-recap","internal-terminology-anchor","global-consistency-snapshot","data-consistency-snapshot"]);function df(...a){return a.flat()}var dg=c(91977),dh=c(51144);function di(a){let b=Math.max(0,Math.ceil(a.totalChunks||0)),c=Math.max(0,Math.ceil(a.loadedChunks||0)),d=Math.max(0,b-c),e=b>0?c/b:1,f=[...b>=1e3&&e<.35?["切片未完全预加载"]:[],...!1===a.vectorReady?["向量索引未就绪"]:[]];return{totalChunks:b,loadedChunks:c,omittedChunks:d,loadedRatio:e,highRisk:f.length>0,riskReason:f.join("、")||void 0}}async function dj(a){(0,e.Te)(a.signal);let b=[];if(0===a.scopedFilePaths.length)return b;let c=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.chapter.title),d=(c?1.6:1)*(/[、,,与和及]/.test(a.chapter.title)?1.4:1),f=Math.ceil((a.highRisk?18:10)*d),h=Math.ceil((a.highRisk?24:14)*(c?1.4:1)),i=Math.ceil((a.highRisk?72:42)*d),j=Math.ceil((a.highRisk?72e3:42e3)*d),k=[...new Set([...a.requiredNeeds||[],...a.extraClues||[]])].slice(0,12),l=(function(a,b=[],c=[]){let d=a.sections||[],e=[...a.requiredFacts,...b,...c],f=(0,dh.Cr)(d,a=>(0,dh.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-sections").selected,g=(0,dh.Cr)(e,a=>(0,dh.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-facts").selected,h=/[、,,与和及]/.test(a.title),i=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.title),j=/进度|工期|节点/u.test(a.title)?["合同工期","计划工期","日历天","开工","竣工","关键线路","进度计划","施工进度"]:/质量|验收/u.test(a.title)?["质量标准","验收规范","检验批","复验","合格","质量保证","隐蔽验收"]:/安全|危大|风险/u.test(a.title)?["安全措施","风险源","危大工程","应急","检查整改","安全防护","应急预案","基坑支护","基坑开挖","基坑底标高","坡率","支护形式","降水","开挖深度","高支模","专项方案"]:i?["工程量清单","项目特征","材料设备","规格型号","数量单位","劳动力","机械设备","进场计划","资源保障","主要材料","施工机具","材料供应","设备配置"]:/施工|方案|方法|技术|工艺/u.test(a.title)?["施工方法","工艺流程","技术标准","构造做法","控制要点","施工准备"]:["工程范围","施工方法","控制要点","验收要求"],k=h?[...j,...a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4)]:j,l=[...new Set([a.title,...f,...g,...k].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】\-/]+/u)).map(a=>a.trim()).filter(a=>a.length>=2))],m=(0,dh.Cr)(l,a=>(0,dh.Ox)(a),{maxItems:36,maxChars:1200},"retrieval-tokens").selected,n=h?a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4).map(a=>`${a} ${f.slice(0,6).join(" ")} ${g.slice(0,4).join(" ")}`.trim()):[];return[...new Set([`${a.title} ${f.join(" ")}`.trim(),...g.map(b=>`${a.title} ${b}`.trim()),...f.map(b=>`${a.title} ${b} ${g.slice(0,6).join(" ")}`.trim()),`${a.title} ${k.join(" ")}`.trim(),...n,m.join(" ")].filter(Boolean))]})(a.chapter,a.requiredNeeds,a.extraClues).slice(0,f),m=[...k.map(b=>`${a.chapter.title} ${b} ${(a.chapter.sections||[]).join(" ")}`.trim()).filter(a=>!l.includes(a)).map(a=>({text:a,boost:2,source:"required-fact-evidence"})),...l.map(a=>({text:a,boost:2.4,source:"deep-retrieval"}))];return b.push(...(await (0,e.l$)(m,async b=>{var c;(0,e.Te)(a.signal);let d=await a.manager.search(a.projectRoot,b.text,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:h,weights:{keyword:.62,vector:.32,rewrite:.9,hybridBonus:.28},generationMode:!0});return(c={chapter:a.chapter,results:d.results.filter(b=>a.scopedFilePaths.includes(b.filePath)),fileRoleByPath:a.fileRoleByPath,fileProcessingByPath:a.fileProcessingByPath,boost:b.boost,source:b.source}).results.map(a=>{let b=c.fileProcessingByPath.get(a.filePath);return{chapterId:c.chapter.id,filePath:a.filePath,score:a.score+c.boost+("table"===b?3:"structured_data"===b?2.6:3.2*("bill_of_quantities"===b)),content:a.content,roleId:c.fileRoleByPath.get(a.filePath),processingType:b,sectionTitle:a.sectionTitle,source:c.source}})},{kind:"deepRetrieval",highRisk:a.highRisk})).flat()),[...(0,g.QR)(b.filter(a=>"required-fact-evidence"===a.source),{maxItems:Math.max(6,3*k.length),maxChars:18e3,preservePinned:!0}),...(0,g.QR)(b.filter(a=>"required-fact-evidence"!==a.source),{maxItems:i,maxChars:j,preservePinned:!0})]}var dk=c(32434),dl=c(36003);async function dm(a,b){let c=(0,bh.r4)(a.content);if(0===c.length)return[];let d=[];for(let e of c){let c=e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),f=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),g=f?.[1]||"",h=await (0,dl.AI)(e,(0,dl.Ym)(e,a.chapter,a.evidence),b),i=(0,dl.uQ)(e,g,h);i&&d.push(`${e}:${i}`)}return d}function dn(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function dp(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function dq(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function dr(a){var b;(0,e.Te)(a.signal);let c=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}