@customize-agent/server 4.13.2 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/1001.js +6 -0
  5. package/.next/server/chunks/208.js +81 -33
  6. package/.next/server/chunks/2886.js +12 -12
  7. package/.next/server/chunks/5284.js +15 -13
  8. package/.next/server/chunks/6482.js +4 -63
  9. package/.next/server/chunks/9227.js +1 -1
  10. package/.next/server/pages/404.html +1 -1
  11. package/.next/server/pages/500.html +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  13. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  14. package/.next/server/pages/api/assets/generated.js +1 -1
  15. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  16. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  17. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  18. package/.next/server/pages/api/documents/export.js +1 -1
  19. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  20. package/.next/server/pages/api/documents/generate.js +1 -1
  21. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  22. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  23. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  24. package/.next/server/pages/api/documents/generated.js +1 -1
  25. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  26. package/.next/server/pages/api/documents/templates.js +1 -1
  27. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  28. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  29. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  30. package/.next/server/pages/api/kb/intelligence.js +1 -1
  31. package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
  32. package/.next/server/pages/api/kb/reindex.js +1 -1
  33. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  34. package/.next/server/pages/api/kb/upload/complete.js +1 -1
  35. package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
  36. package/.next/server/pages/api/kb/upload.js +1 -1
  37. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  38. package/.next/server/pages/api/prompt.js +1 -1
  39. package/.next/server/pages/api/prompt.js.nft.json +1 -1
  40. package/.next/server/pages/api/template-references.js +1 -1
  41. package/.next/server/pages/api/template-references.js.nft.json +1 -1
  42. package/.next/server/pages/asset-library.html +1 -1
  43. package/.next/server/pages/document-roles.html +1 -1
  44. package/.next/server/pages/documents.html +1 -1
  45. package/.next/server/pages/guide.html +1 -1
  46. package/.next/server/pages/index.html +1 -1
  47. package/.next/server/pages/knowledge/file-detail.html +1 -1
  48. package/.next/server/pages/knowledge/files.html +1 -1
  49. package/.next/server/pages/knowledge/manage.html +1 -1
  50. package/.next/server/pages/knowledge.html +1 -1
  51. package/.next/server/pages/models.html +1 -1
  52. package/.next/server/pages/overview.html +1 -1
  53. package/.next/server/pages/prompt.html +1 -1
  54. package/.next/server/pages/settings.html +1 -1
  55. package/.next/server/pages/system/logs.html +1 -1
  56. package/.next/server/pages/template-references.html +1 -1
  57. package/.next/server/pages-manifest.json +29 -29
  58. package/package.json +1 -1
  59. package/.next/server/chunks/5726.js +0 -9
  60. /package/.next/static/{WrIQbtiNtHbetwCZ0lstW → -eOxudpLDomlK_hyLr6b5}/_buildManifest.js +0 -0
  61. /package/.next/static/{WrIQbtiNtHbetwCZ0lstW → -eOxudpLDomlK_hyLr6b5}/_ssgManifest.js +0 -0
@@ -1,9 +1,12 @@
1
- "use strict";exports.id=208,exports.ids=[208],exports.modules={2773:(a,b,c)=>{c.d(b,{$b:()=>A,Hh:()=>u,Hz:()=>x,SK:()=>B,W9:()=>v,_W:()=>y,_n:()=>w,qp:()=>t});var d=c(76760),e=c(44533),f=c(70963),g=c(70933),h=c(14070),i=c(51144);let j=["tender_document","bill_of_quantities","drawing","addendum","contract","technical_specification","schedule_document","quality_safety_document","other"],k={tender_document:"招标文件正文",bill_of_quantities:"工程量清单",drawing:"图纸/设计资料",addendum:"补疑/澄清/答疑",contract:"合同资料",technical_specification:"技术规范/技术要求",schedule_document:"工期/进度资料",quality_safety_document:"质量安全文明资料",other:"其他资料"},l={addendum:100,tender_document:90,contract:80,technical_specification:75,bill_of_quantities:70,drawing:65,schedule_document:60,quality_safety_document:60,other:10};function m(a){return k[a]||"其他资料"}function n(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function o(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function p(a){let b=o(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function q(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function r(a,b,c){let d=a.filter(n),e=(b||[]).map(a=>o(a.materialRootPath)).filter(Boolean);if(e.length>0){let a=d.filter(a=>e.some(b=>o(a.relativePath)===b||o(a.relativePath).startsWith(`${b}/`))),b=s(a,c);return{files:b.files,roots:b.roots.length?b.roots:e,warnings:0===a.length?["项目资料包下未找到已完成索引的可用文件。"]:[]}}let f=s(d,c);return f.scoped?{files:f.files,roots:f.roots,warnings:[]}:{files:d,roots:[...new Set(d.map(a=>p(a.relativePath)).filter(Boolean))],warnings:["模板未显式绑定项目资料包,已使用当前知识库全部可用资料。"]}}function s(a,b){let c=(b||"").trim();if(!c)return{files:a,roots:[...new Set(a.map(a=>p(a.relativePath)).filter(Boolean))],scoped:!1};let d=new Map;for(let b of a){let a=p(b.relativePath);a&&d.set(a,[...d.get(a)||[],b])}let e=[...d.entries()].map(([a,b])=>({group:a,groupFiles:b,score:function(a,b){let c=q(a),d=q(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,c)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);return e.length>0&&(1===e.length||e[0].score>e[1].score)?{files:e[0].groupFiles,roots:[e[0].group],scoped:!0}:{files:a,roots:[...d.keys()],scoped:!1}}function t(a){return(a.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:o(a.materialRootPath)}))}function u(a,b,c={}){return r((0,e.Yy)(a),t(b),c.requirement).files.map(a=>a.relativePath)}function v(a,b,c={}){let f=r((0,e.Yy)(a),t(b),c.requirement),g={tender_document:[],bill_of_quantities:[],drawing:[],addendum:[],contract:[],technical_specification:[],schedule_document:[],quality_safety_document:[],other:[]},h=f.files.map(a=>{let b=function(a){let b=o(a).toLowerCase(),c=[],d=(d,e)=>(d.lastIndex=0,(!!d.test(a)||!!d.test(b))&&(c.push(e),!0));return d(/补疑|答疑|澄清|疑问回复|答复|变更|更正|补充通知|addendum|clarification/iu,"补疑/澄清关键词")?{kind:"addendum",confidence:.92,signals:c}:d(/清单|工程量|分部分项|措施项目|项目特征|招标控制价|boq|bill.?of.?quantities/iu,"清单/工程量关键词")?{kind:"bill_of_quantities",confidence:.9,signals:c}:d(/图纸|施工图|建筑图|结构图|安装图|设计图|总平|平面图|立面图|剖面图|节点|dwg|drawing|cad/iu,"图纸/设计关键词")?{kind:"drawing",confidence:.88,signals:c}:d(/招标文件|投标人须知|评标办法|招标公告|招标正文|招标需求|tender|bidding/iu,"招标文件关键词")?{kind:"tender_document",confidence:.9,signals:c}:d(/合同|协议书|专用条款|通用条款|contract/iu,"合同关键词")?{kind:"contract",confidence:.82,signals:c}:d(/技术规范|技术要求|施工规范|验收规范|标准|做法说明|specification|standard/iu,"技术规范关键词")?{kind:"technical_specification",confidence:.8,signals:c}:d(/工期|进度|计划|节点|里程碑|schedule/iu,"工期进度关键词")?{kind:"schedule_document",confidence:.72,signals:c}:d(/质量|安全|文明|环保|危大|验收|quality|safety/iu,"质量安全关键词")?{kind:"quality_safety_document",confidence:.72,signals:c}:{kind:"other",confidence:.35,signals:["未命中明确资料类型,按其他资料处理"]}}(a.relativePath),c={filePath:a.relativePath,fileName:d.basename(a.relativePath),kind:b.kind,confidence:b.confidence,priority:l[b.kind],chunkCount:a.chunkCount,summary:`${m(b.kind)}:${d.basename(a.relativePath)},可用切片 ${a.chunkCount||0} 条。`,keySignals:b.signals};return g[b.kind].push(c),c}).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence),i=(f.roots[0]||p(h[0]?.filePath||"")||"当前知识库项目").replace(/\.(?:pdf|docx?|xlsx?|xls|dwg|zip)$/iu,"").replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").trim(),j=[...f.warnings];return 0===g.tender_document.length&&j.push("未识别到招标文件正文,工程概况、招标响应和评审要求可能不足。"),0===g.bill_of_quantities.length&&j.push("未识别到工程量清单,施工范围、资源配置和主要工程内容可能不足。"),0===g.drawing.length&&j.push("未识别到图纸/设计资料,施工方法、专业接口和构造做法可能不足。"),{projectName:i,materialRoots:f.roots,files:h,groups:g,warnings:j}}function w(a,b,c){let d=c?(0,f.C)(c):"",e=[`本次文档必须围绕项目资料包”${b.projectName}”展开,不得把其他项目资料混入正文。`,"招标文件正文用于确定项目边界、招标响应、工期质量安全目标和评审关注点。","招标硬性要求必须逐项明确响应:质量标准、计划工期、缺陷责任期与保修、安全文明目标、项目经理及组织机构;工期/质量/保修类承诺可在概况与质量章节落位,不得遗漏。","工程量清单用于确定主要工程内容、分部分项、项目特征、资源配置和施工方法依据。","图纸/设计资料用于确定施工对象、空间关系、构造做法、专业接口和重点难点。","补疑/澄清/答疑属于高优先级修正资料,如与原文件冲突,以补疑/澄清/答疑为准。"],g=a.chapters.map(a=>{var d;let e=(d=a.title,/概况|工程|项目|总体/u.test(d)?["tender_document","addendum","bill_of_quantities"]:/部署|组织|平面|准备/u.test(d)?["tender_document","bill_of_quantities","drawing","addendum"]:/施工|工艺|技术|方案|方法|分部分项/u.test(d)?["bill_of_quantities","drawing","technical_specification","addendum"]:/进度|工期/u.test(d)?["tender_document","addendum","schedule_document","bill_of_quantities"]:/质量|验收/u.test(d)?["tender_document","technical_specification","drawing","quality_safety_document","addendum"]:/安全|文明|环保|风险|危大/u.test(d)?["tender_document","quality_safety_document","drawing","addendum"]:/资源|材料|设备|劳动力|机械/u.test(d)?["bill_of_quantities","drawing","tender_document"]:["tender_document","bill_of_quantities","drawing","addendum","technical_specification"]).filter(a=>b.groups[a]?.length>0),f=e.length?e:["tender_document","bill_of_quantities","drawing"].filter(a=>b.groups[a]?.length>0),g=(c?.works||[]).filter(b=>{if(!b.name)return!1;let c=(0,h.C1)(b.name,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b.name,a));return c||d}).map(a=>`${a.name}:${a.scope.slice(0,120)}`),k=(c?.methods||[]).filter(b=>!!b.applicableWorks?.length&&b.applicableWorks.some(b=>{let c=(0,h.C1)(b,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b,a));return c||d})).map(a=>a.name);return{chapterId:a.id,chapterTitle:a.title,writingGoal:`围绕”${a.title}”组织本项目资料事实,优先体现招标要求、清单工程内容、图纸施工对象和补疑修正口径。`,mustUseMaterialKinds:f,evidenceQueries:Object.fromEntries(j.map(b=>[b,function(a,b){let c=(0,i.Cr)(a.sections||[],a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:sections`),d=(0,i.Cr)(a.requiredFacts,a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:facts`),e=c.selected.join(" "),f=d.selected.join(" "),g=`${a.title} ${e} ${f}`.trim();return[...new Set(({tender_document:[g,`${a.title} 招标范围 工期 质量 标准 评审 响应要求`,"项目概况 招标范围 投标文件 技术标 施工组织设计"],bill_of_quantities:[g,`${a.title} 工程量清单 分部分项 项目特征 数量 单位`,"清单 工程内容 主要分部分项 工程量 项目特征"],drawing:[g,`${a.title} 图纸 设计说明 构造做法 施工部位 节点`,"图纸 设计说明 平面 节点 构造 做法 专业接口"],addendum:[g,`${a.title} 补疑 澄清 答疑 变更 修正`,"补疑 澄清 答疑 招标文件 清单 图纸 修正"],contract:[g,`${a.title} 合同 条款 履约 责任 验收`],technical_specification:[g,`${a.title} 技术规范 施工要求 验收标准 控制要点`],schedule_document:[g,`${a.title} 工期 进度 节点 计划 里程碑`],quality_safety_document:[g,`${a.title} 质量 安全 文明 环保 验收 风险`],other:[g]})[b].filter(Boolean))]}(a,b)])),mustCover:[...new Set([a.purpose,...a.sections||[],...a.requiredFacts,...g,...k])].filter(Boolean).slice(0,24),avoidWriting:["不得脱离项目资料泛泛套写通用内容","不得编造资料未确认的项目专属数字、日期、金额、工程量、材料规格;标准规范编号与法规名称属公共知识可正常引用","不得忽略补疑/澄清对原始资料的修正"]}}),k=function(a){let{profile:b}=a,c=j.map(a=>`${m(a)}:${b.groups[a].length?b.groups[a].map(a=>`${a.fileName}(${a.chunkCount||0})`).join("、"):"未识别"}`).join("\n"),d=a.chapterPlans.map((a,b)=>`${b+1}. ${a.chapterTitle}
1
+ "use strict";exports.id=208,exports.ids=[208],exports.modules={1358:(a,b,c)=>{c.d(b,{JV:()=>k,O7:()=>h,QP:()=>l,SR:()=>g,c$:()=>j,e$:()=>i,rj:()=>f});var d=c(22157);function e(a){return a.replace(/[\s,,.。::;;||()()《》<>【】"“”'‘’]/gu,"").toLowerCase()}function f(a){let b=a.replace(/[||]\s*(?:[||]\s*)+$/gu,"").replace(/(?:[。;;]|\d+\s*[..、])\s*(?:未尽事宜|其余(?:未尽)?事宜|其他(?:未尽)?事宜|注\s*[::]).*$/u,"").trim();return b=b.replace(/[、,,;;]+\s*$/u,"").trim(),/[||]/u.test(b)&&(b=b.split(/[||]/u)[0]?.trim()||b),b}function g(a){return!(/^(?:见|详见|按|执行|参见|依据).{0,16}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料)$/u.test(a)||/(?:^|[::]\s*)(?:见|详见|按|执行|参见|依据)[^。;;]{0,18}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料|补疑|答疑)[^。;;]{0,6}$/u.test(a)||/^见.{0,24}(?:招标范围|招标补疑|补疑|前附表|答疑)/u.test(a)||/^(?:合同协议书|通用条款|专用条款|招标文件|招标公告|投标人须知前附表|附件|资料)$/u.test(a.replace(/[()()\d一二三四五六七八九十、..\s]/gu,""))||/^(?:工程名称|项目名称|建设地点|建设规模|计划工期|质量标准|招标范围|合同估算价|工程概况|项目概况|项目内容)$/u.test(a)||/\|/u.test(a)||/^#+\s*/u.test(a)||/^[一二三四五六七八九十]+[、..]\s*\S{2,}[::]/u.test(a)||/^[((]\s*\d+[))]/u.test(a)&&/具备|证书|考核|资格|人员/u.test(a))&&(!(a.length<4)||!!/\d/u.test(a))}function h(a){let b=String(a.value||"").trim(),c=`${a.label}${b}`;return!(!/项目|工程|编号|地点|规模|范围|工期|质量|安全|资源|材料|设备|验收|\d/u.test(c)||!g(b)||/^(?:技术参数|精确参数)$/u.test(a.label))}function i(a,b){let c=new Set,g=[];for(let h of[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications]){let b=f((0,d.lG)(h.value).replace(/\s+/gu," ").trim()),i=h.fieldName||h.key||h.fieldId||"资料事实",j=`${i}:${b}`;!b||c.has(j)||(c.add(j),g.push({label:i,value:b,sourceFile:h.sourceFile,status:!function(a,b){let c=e(a),d=e(b);if(!d||d.length<2||c.includes(d))return!0;{let a=b.split(/[;;。\n]|、|,|,/u).map(a=>e(a.replace(/^\s*\d+\s*[、..]\s*/u,""))).filter(a=>a.length>=4);if(a.length>=2&&a.some(a=>c.includes(a)))return!0}{let a=b.replace(/[、,,;;||\s]+/gu,"、").split("、").map(a=>e(a.replace(/(?:工程|项目|改造|维修|安装|施工|内容|资料|要求|标准)+$/u,""))).filter(a=>a.length>=2);if(a.length>=1&&(a.length>=2||(a[0]?.length??0)>=3)&&a.every(a=>c.includes(a)))return!0}return(b.match(/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年|万元|元|平方米|㎡|m²|立方米|m³|米|m|mm|cm|台|套|人|项|%|MPa|kPa|个|栋|层|标段|批|处|座|组|道|根|樘|扇)?/giu)||[]).some(a=>e(a).length>=2&&c.includes(e(a)))}(a,b)?"unplaced":"used",confidence:h.confidence}))}return g}function j(a,b={}){let c=a.filter(a=>"unplaced"===a.status&&h(a)),d=b.maxIssues&&b.maxIssues>0?b.maxIssues:c.length;return c.slice(0,d).map(a=>({level:"warning",message:`已确认知识库事实未落位:${a.label}=${a.value}`,suggestion:`请将该事实落位到对应章节,并保持来源 ${a.sourceFile||"结构化事实主表"} 的原始口径。${c.length>d?`(共${c.length}个未落位事实,此处显示前${d}个)`:""}`}))}function k(a,b){let c=b.tables||[],d=[],f=e(a);for(let a of c){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|名称|清单项|分部分项|项目特征|工程内容|材料名称|设备名称/u.test(a)),g=b.findIndex(a=>/编码|编号|序号|项目编码/u.test(a)),h=b.findIndex(a=>/数量|工程量/u.test(a)),i=b.findIndex(a=>/单位/u.test(a));for(let b of a.rows){let j=c>=0&&b[c]||"",k=g>=0&&b[g]||"",l=h>=0&&b[h]||"",m=i>=0&&b[i]||"";if(!j&&!k)continue;let n=e(j),o=e(k),p=n.length>=3&&f.includes(n.slice(0,12))||o.length>=3&&f.includes(o.slice(0,8));d.push({itemCode:k.slice(0,50),itemName:j.slice(0,200),quantity:l.slice(0,50),unit:m.slice(0,20),sourceFile:a.sourceFile||"",placed:p})}}return d.sort((a,b)=>a.placed===b.placed?0:a.placed?1:-1)}function l(a,b={}){let c=a.filter(a=>!a.placed);if(0===c.length)return[];let d=a.length,e=(d-c.length)/d,f=[];return e<.3?f.push({level:"warning",message:`BOQ 清单行级落位严重不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。未落位清单项示例:${c.slice(0,5).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join(";")}`}):e<.6&&f.push({level:"warning",message:`BOQ 清单行级落位不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`建议补充落位:${c.slice(0,5).map(a=>a.itemName).join("、")}`}),f}},2773:(a,b,c)=>{c.d(b,{$b:()=>A,Hh:()=>u,Hz:()=>x,SK:()=>B,W9:()=>v,_W:()=>y,_n:()=>w,qp:()=>t});var d=c(76760),e=c(44533),f=c(70963),g=c(70933),h=c(14070),i=c(51144);let j=["tender_document","bill_of_quantities","drawing","addendum","contract","technical_specification","schedule_document","quality_safety_document","other"],k={tender_document:"招标文件正文",bill_of_quantities:"工程量清单",drawing:"图纸/设计资料",addendum:"补疑/澄清/答疑",contract:"合同资料",technical_specification:"技术规范/技术要求",schedule_document:"工期/进度资料",quality_safety_document:"质量安全文明资料",other:"其他资料"},l={addendum:100,tender_document:90,contract:80,technical_specification:75,bill_of_quantities:70,drawing:65,schedule_document:60,quality_safety_document:60,other:10};function m(a){return k[a]||"其他资料"}function n(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function o(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function p(a){let b=o(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function q(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function r(a,b,c){let d=a.filter(n),e=(b||[]).map(a=>o(a.materialRootPath)).filter(Boolean);if(e.length>0){let a=d.filter(a=>e.some(b=>o(a.relativePath)===b||o(a.relativePath).startsWith(`${b}/`))),b=s(a,c);return{files:b.files,roots:b.roots.length?b.roots:e,warnings:0===a.length?["项目资料包下未找到已完成索引的可用文件。"]:[]}}let f=s(d,c);return f.scoped?{files:f.files,roots:f.roots,warnings:[]}:{files:d,roots:[...new Set(d.map(a=>p(a.relativePath)).filter(Boolean))],warnings:["模板未显式绑定项目资料包,已使用当前知识库全部可用资料。"]}}function s(a,b){let c=(b||"").trim();if(!c)return{files:a,roots:[...new Set(a.map(a=>p(a.relativePath)).filter(Boolean))],scoped:!1};let d=new Map;for(let b of a){let a=p(b.relativePath);a&&d.set(a,[...d.get(a)||[],b])}let e=[...d.entries()].map(([a,b])=>({group:a,groupFiles:b,score:function(a,b){let c=q(a),d=q(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,c)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);return e.length>0&&(1===e.length||e[0].score>e[1].score)?{files:e[0].groupFiles,roots:[e[0].group],scoped:!0}:{files:a,roots:[...d.keys()],scoped:!1}}function t(a){return(a.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:o(a.materialRootPath)}))}function u(a,b,c={}){return r((0,e.Yy)(a),t(b),c.requirement).files.map(a=>a.relativePath)}function v(a,b,c={}){let f=r((0,e.Yy)(a),t(b),c.requirement),g={tender_document:[],bill_of_quantities:[],drawing:[],addendum:[],contract:[],technical_specification:[],schedule_document:[],quality_safety_document:[],other:[]},h=f.files.map(a=>{let b=function(a){let b=o(a).toLowerCase(),c=[],d=(d,e)=>(d.lastIndex=0,(!!d.test(a)||!!d.test(b))&&(c.push(e),!0));return d(/补疑|答疑|澄清|疑问回复|答复|变更|更正|补充通知|addendum|clarification/iu,"补疑/澄清关键词")?{kind:"addendum",confidence:.92,signals:c}:d(/清单|工程量|分部分项|措施项目|项目特征|招标控制价|boq|bill.?of.?quantities/iu,"清单/工程量关键词")?{kind:"bill_of_quantities",confidence:.9,signals:c}:d(/图纸|施工图|建筑图|结构图|安装图|设计图|总平|平面图|立面图|剖面图|节点|dwg|drawing|cad/iu,"图纸/设计关键词")?{kind:"drawing",confidence:.88,signals:c}:d(/招标文件|投标人须知|评标办法|招标公告|招标正文|招标需求|tender|bidding/iu,"招标文件关键词")?{kind:"tender_document",confidence:.9,signals:c}:d(/合同|协议书|专用条款|通用条款|contract/iu,"合同关键词")?{kind:"contract",confidence:.82,signals:c}:d(/技术规范|技术要求|施工规范|验收规范|标准|做法说明|specification|standard/iu,"技术规范关键词")?{kind:"technical_specification",confidence:.8,signals:c}:d(/工期|进度|计划|节点|里程碑|schedule/iu,"工期进度关键词")?{kind:"schedule_document",confidence:.72,signals:c}:d(/质量|安全|文明|环保|危大|验收|quality|safety/iu,"质量安全关键词")?{kind:"quality_safety_document",confidence:.72,signals:c}:{kind:"other",confidence:.35,signals:["未命中明确资料类型,按其他资料处理"]}}(a.relativePath),c={filePath:a.relativePath,fileName:d.basename(a.relativePath),kind:b.kind,confidence:b.confidence,priority:l[b.kind],chunkCount:a.chunkCount,summary:`${m(b.kind)}:${d.basename(a.relativePath)},可用切片 ${a.chunkCount||0} 条。`,keySignals:b.signals};return g[b.kind].push(c),c}).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence),i=(f.roots[0]||p(h[0]?.filePath||"")||"当前知识库项目").replace(/\.(?:pdf|docx?|xlsx?|xls|dwg|zip)$/iu,"").replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").trim(),j=[...f.warnings];return 0===g.tender_document.length&&j.push("未识别到招标文件正文,工程概况、招标响应和评审要求可能不足。"),0===g.bill_of_quantities.length&&j.push("未识别到工程量清单,施工范围、资源配置和主要工程内容可能不足。"),0===g.drawing.length&&j.push("未识别到图纸/设计资料,施工方法、专业接口和构造做法可能不足。"),{projectName:i,materialRoots:f.roots,files:h,groups:g,warnings:j}}function w(a,b,c){let d=c?(0,f.C)(c):"",e=[`本次文档必须围绕项目资料包”${b.projectName}”展开,不得把其他项目资料混入正文。`,"招标文件正文用于确定项目边界、招标响应、工期质量安全目标和评审关注点。","招标硬性要求必须逐项明确响应:质量标准、计划工期、缺陷责任期与保修、安全文明目标、项目经理及组织机构;工期/质量/保修类承诺可在概况与质量章节落位,不得遗漏。","工程量清单用于确定主要工程内容、分部分项、项目特征、资源配置和施工方法依据。","图纸/设计资料用于确定施工对象、空间关系、构造做法、专业接口和重点难点。","补疑/澄清/答疑属于高优先级修正资料,如与原文件冲突,以补疑/澄清/答疑为准。"],g=a.chapters.map(a=>{var d;let e=(d=a.title,/概况|工程|项目|总体/u.test(d)?["tender_document","addendum","bill_of_quantities"]:/部署|组织|平面|准备/u.test(d)?["tender_document","bill_of_quantities","drawing","addendum"]:/施工|工艺|技术|方案|方法|分部分项/u.test(d)?["bill_of_quantities","drawing","technical_specification","addendum"]:/进度|工期/u.test(d)?["tender_document","addendum","schedule_document","bill_of_quantities"]:/质量|验收/u.test(d)?["tender_document","technical_specification","drawing","quality_safety_document","addendum"]:/安全|文明|环保|风险|危大/u.test(d)?["tender_document","quality_safety_document","drawing","addendum"]:/资源|材料|设备|劳动力|机械/u.test(d)?["bill_of_quantities","drawing","tender_document"]:["tender_document","bill_of_quantities","drawing","addendum","technical_specification"]).filter(a=>b.groups[a]?.length>0),f=e.length?e:["tender_document","bill_of_quantities","drawing"].filter(a=>b.groups[a]?.length>0),g=(c?.works||[]).filter(b=>{if(!b.name)return!1;let c=(0,h.C1)(b.name,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b.name,a));return c||d}).map(a=>`${a.name}:${a.scope.slice(0,120)}`),k=(c?.methods||[]).filter(b=>!!b.applicableWorks?.length&&b.applicableWorks.some(b=>{let c=(0,h.C1)(b,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b,a));return c||d})).map(a=>a.name);return{chapterId:a.id,chapterTitle:a.title,writingGoal:`围绕”${a.title}”组织本项目资料事实,优先体现招标要求、清单工程内容、图纸施工对象和补疑修正口径。`,mustUseMaterialKinds:f,evidenceQueries:Object.fromEntries(j.map(b=>[b,function(a,b){let c=(0,i.Cr)(a.sections||[],a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:sections`),d=(0,i.Cr)(a.requiredFacts,a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:facts`),e=c.selected.join(" "),f=d.selected.join(" "),g=`${a.title} ${e} ${f}`.trim();return[...new Set(({tender_document:[g,`${a.title} 招标范围 工期 质量 标准 评审 响应要求`,"项目概况 招标范围 投标文件 技术标 施工组织设计"],bill_of_quantities:[g,`${a.title} 工程量清单 分部分项 项目特征 数量 单位`,"清单 工程内容 主要分部分项 工程量 项目特征"],drawing:[g,`${a.title} 图纸 设计说明 构造做法 施工部位 节点`,"图纸 设计说明 平面 节点 构造 做法 专业接口"],addendum:[g,`${a.title} 补疑 澄清 答疑 变更 修正`,"补疑 澄清 答疑 招标文件 清单 图纸 修正"],contract:[g,`${a.title} 合同 条款 履约 责任 验收`],technical_specification:[g,`${a.title} 技术规范 施工要求 验收标准 控制要点`],schedule_document:[g,`${a.title} 工期 进度 节点 计划 里程碑`],quality_safety_document:[g,`${a.title} 质量 安全 文明 环保 验收 风险`],other:[g]})[b].filter(Boolean))]}(a,b)])),mustCover:[...new Set([a.purpose,...a.sections||[],...a.requiredFacts,...g,...k])].filter(Boolean).slice(0,24),avoidWriting:["不得脱离项目资料泛泛套写通用内容","不得编造资料未确认的项目专属数字、日期、金额、工程量、材料规格;标准规范编号与法规名称属公共知识可正常引用","不得忽略补疑/澄清对原始资料的修正"]}}),k=function(a){let{profile:b}=a,c=j.map(a=>`${m(a)}:${b.groups[a].length?b.groups[a].map(a=>`${a.fileName}(${a.chunkCount||0})`).join("、"):"未识别"}`).join("\n"),d=a.chapterPlans.map((a,b)=>`${b+1}. ${a.chapterTitle}
2
2
  - 写作目标:${a.writingGoal}
3
3
  - 必用资料类型:${a.mustUseMaterialKinds.map(m).join("、")||"按现有资料综合使用"}
4
4
  - 必须覆盖:${a.mustCover.join("、")||"按章节目标展开"}
5
5
  - 禁止:${a.avoidWriting.join(";")}`).join("\n");return["## 项目资料理解模型",`项目资料包:${b.projectName}`,`资料根目录:${b.materialRoots.join("、")||"当前知识库全部资料"}`,"资料类型清单:",c,b.warnings.length?`资料风险:${b.warnings.join(";")}`:"","全局写作重点:",...a.globalWritingFocus.map(a=>`- ${a}`),"章节资料使用计划:",d,a.graphPrompt||""].filter(Boolean).join("\n")}({profile:b,globalWritingFocus:e,chapterPlans:g,graphPrompt:d});return{profile:b,globalWritingFocus:e,chapterPlans:g,prompt:k}}function x(a){let b=new Map,c=new Map;for(let d of a.files)b.set(d.filePath,d.kind),c.set(d.filePath,"drawing"===d.kind?"drawing":"bill_of_quantities"===d.kind?"table":"technical_specification"===d.kind?"specification":"tender_document"===d.kind||"addendum"===d.kind?"rule":"reference");return{kindByPath:b,processingByPath:c}}function y(a){return a||"other"}function z(a){return"drawing"===a?"drawing":"bill_of_quantities"===a?"table":"technical_specification"===a?"specification":"tender_document"===a||"addendum"===a?"rule":"reference"}async function A(a){let b=[];if(!a.plan)return b;for(let c of a.plan.mustUseMaterialKinds){let d=a.profile.groups[c].map(a=>a.filePath).filter(b=>a.scopedFilePaths.includes(b));if(0!==d.length)for(let e of(0,i.Cr)(a.plan.evidenceQueries[c]||[],a=>(0,i.Ox)(a),{maxItems:6,maxChars:1200},`evidence-queries:${c}`).selected){if(a.signal?.aborted)throw Error("aborted");let f=await a.manager.search(a.projectRoot,e,{scope:"project",filters:{filePaths:d},limit:a.limitPerQuery,weights:{keyword:.68,vector:.25,rewrite:.85,hybridBonus:.3},generationMode:!0,disableReranker:!0});b.push(...f.results.filter(a=>d.includes(a.filePath)).map(b=>({chapterId:a.chapter.id,filePath:b.filePath,score:b.score+l[c]/100+2,content:b.content,roleId:y(c),processingType:z(c),sectionTitle:b.sectionTitle,source:`material-plan:${c}`})))}}return(0,g.QR)(b,{maxItems:48,maxChars:52e3,preservePinned:!0})}function B(a){let b=[],c=new Set(a.plan?.mustUseMaterialKinds||[]),d=a.profile.files.filter(b=>a.scopedFilePaths.includes(b.filePath)&&(0===c.size||c.has(b.kind))).sort((a,b)=>b.priority-a.priority),e=[a.chapter.title,...a.chapter.sections||[],...a.chapter.requiredFacts].filter(Boolean);for(let c of d){let d=a.project.getFileDetail?.(c.filePath);if(d?.chunks?.length)for(let f of d.chunks.map((a,b)=>{let d=(0,g.eE)(a.content),f=`${a.sectionTitle||""}
6
- ${d}`;return{chunk:a,index:b,score:.8*e.filter(a=>f.includes(a)).length+ +!!/\d+(?:\.\d+)?\s*(?:日历天|天|月|年|万元|元|㎡|m²|m³|米|mm|台|套|人|项|%|MPa|kPa)/u.test(d)+.4*(0===b)+c.priority/120}}).filter(a=>a.score>0).sort((a,b)=>b.score-a.score))b.push({chapterId:a.chapter.id,filePath:d.file.relativePath,score:1.8+f.score,content:f.chunk.content,roleId:y(c.kind),processingType:z(c.kind),sectionTitle:f.chunk.sectionTitle,source:"project-material-sample"})}return(0,g.QR)(b,{preservePinned:!0})}},6444:(a,b,c)=>{c.d(b,{N:()=>l,x:()=>k});var d=c(77598),e=c(8753),f=c(92808);function g(a){return a.replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/gu,"-").slice(0,60)||`fact-${Date.now()}`}function h(a){let b=RegExp("[“”\"'‘’「」『』《》](.{2,80}?)[“”\"'‘’「」『』《》]","gu");return[...a.matchAll(b)].map(a=>a[1].trim()).filter(Boolean)}function i(a){return a.split(/[\n;;。]/u).map(a=>a.trim()).filter(a=>a.length>=2)}function j(a,b=""){let c=function(a,b=""){return`${b} ${a.name} ${a.category} ${a.outputTitle} ${a.description}`}(a,b);return(0,e.V)().autoSpecGates.filter(a=>a.templateMatchers.some(a=>(function(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}})(c,a)))}function k(a,b=""){let c=function(a,b=""){return d.createHash("sha1").update(JSON.stringify({id:a.id,name:a.name,description:a.description,outputTitle:a.outputTitle,chapters:a.chapters,promptBindings:a.promptBindings,projectBindings:a.projectBindings,projectRoleConfigId:a.projectRoleConfigId,requirement:b})).digest("hex").slice(0,12)}(a,b),e=function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,f.rs)(b,f.nt)||a.category||"文档"}(a),l=function(a,b){let c=[a.name,a.category,a.outputTitle,a.description],d=[];for(let b of a.chapters)for(let a of(c.push(b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]),b.requiredFacts||[]))d.push(a);let e=c.filter(Boolean).join("\n"),g=new Set(d);for(let a of(0,f.t0)(e,f.NT))g.add(a);for(let c of j(a,b))for(let a of c.requiredFacts)g.add(a);return[...g].filter(Boolean)}(a,e),m=function(a=""){let b=new Set;for(let c of[/(?:必须|需要|要求|增加|包含|包括|补充|设置|新增).{0,12}?(?:章节|章|节|小节)[::为是]?\s*([^。;;\n]{2,80})/giu,/(?:章节|目录).{0,8}?(?:包括|包含|为|是)[::]?\s*([^。;;\n]{2,120})/giu])for(let d of a.matchAll(c))for(let a of d[1].split(/[、,,/]/u).map(a=>a.trim()).filter(Boolean))!/不要|禁止|不得|不能/iu.test(a)&&a.length<=40&&b.add(a.replace(/[。;;::]+$/u,""));return[...b]}(b),n=function(a=""){let b=new Set;for(let c of i(a).filter(a=>/必须|一定要|务必|输出|写明/iu.test(a)&&!/章节|章|节|小节/iu.test(a))){for(let a of h(c))b.add(a);let a=c.match(/(?:输出|写明)\s*([^。;;\n]{2,30})/iu);a&&b.add(a[1].trim())}return[...b].filter(a=>a&&a.length<=30&&!/不要|禁止|不得|不能|生成|要求内容|专业|结构完整|直接用于/u.test(a))}(b),o=function(a=""){let b=new Set;for(let c of i(a).filter(a=>/不要|禁止|不得|不能|不允许|严禁/iu.test(a))){for(let a of h(c))b.add(a);let a=c.match(/(?:不要|禁止|不得|不能|不允许|严禁)(?:出现|输出|写|包含)?\s*([^。;;\n]{2,40})/iu);a&&b.add(a[1].replace(/^(这些|以下|内容|词语|文字)[::]?/u,"").trim())}return[...b].filter(a=>a&&!/章节|页|表格/u.test(a))}(b),p=function(a=""){let b=a.match(/(?:大概|约|左右|不少于|至少|控制在|不超过|最多)?\s*(\d{1,3})\s*(?:页|page)/iu);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return/不少于|至少/iu.test(a)?{min:c}:/不超过|最多|以内|控制在/iu.test(a)?{max:c}:{target:c,min:Math.max(1,Math.floor(.85*c)),max:Math.ceil(1.15*c)}}(b),q=j(a,e),r=Math.max(0,...q.map(a=>a.minTables||0)),s=Math.max(function(a=""){let b=a.match(/(?:至少|不少于)?\s*(\d{1,2})\s*(?:个|张)?\s*表格/iu);return b?Number(b[1]):/表格化|用表格|表格形式|表格表达/iu.test(a)?1:void 0}(b)||0,r)||void 0,t=a.chapters.map((a,b)=>{let c=[a.title,a.purpose,...a.sections||[],...a.requiredFacts||[],...a.queries||[]].join("\n"),d=new Set(a.requiredFacts||[]);for(let a of l)(c.includes(a)||RegExp(a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),"iu").test(c))&&d.add(a);for(let a of(0,f.t0)(c,f.Ny))d.add(a);return{id:a.id,title:a.title,required:!0,order:b,minWords:900,requiredFactIds:[...d].filter(a=>l.includes(a)).map(g),requiredFileRoleIds:[],requiredPromptRoleIds:[],generationHint:[a.purpose,a.sections?.length?`必须包含小节:${a.sections.join("、")}`:"",d.size?`重点覆盖事实:${[...d].join("、")}`:""].filter(Boolean).join("\n")}}),u=m.filter(a=>!t.some(b=>b.title.includes(a)||a.includes(b.title))).map((a,b)=>({id:`user-chapter-${g(a)}`,title:a,required:!0,order:t.length+b,minWords:600,requiredFactIds:[],requiredFileRoleIds:[],requiredPromptRoleIds:[],generationHint:`用户明确要求包含该章节:${a}`})),v=[{id:"auto-source-required",name:"事实必须有来源",type:"source_required",level:"warning",evaluator:{subject:"source",operator:"all_have_source"}},{id:"auto-min-source",name:"至少使用绑定材料来源",type:"source_required",level:"warning",evaluator:{subject:"source",operator:"min_count",min:2}},{id:"auto-no-debug-text",name:"不得输出后台流程话术",type:"forbidden_text",level:"error",value:"知识库证据",evaluator:{subject:"document",operator:"not_contains",value:"知识库证据"}},...q.flatMap(a=>a.requiredTexts.map(a=>({id:`configured-required-${g(a)}`,name:`配置建议包含:${a}`,type:"configured_required_text",level:"warning",value:a,evaluator:{subject:"document",operator:"contains",value:a}}))),...q.flatMap(a=>a.forbiddenTexts.map(a=>({id:`configured-forbidden-${g(a)}`,name:`配置建议避免:${a}`,type:"configured_forbidden_text",level:"warning",value:a,evaluator:{subject:"document",operator:"not_contains",value:a}}))),...r?[{id:"configured-min-table-count",name:`配置建议正式表格不少于 ${r} 个`,type:"configured_table_density",level:"warning",evaluator:{subject:"table",operator:"min_count",min:r}}]:[],...m.map(a=>({id:`user-required-chapter-${g(a)}`,name:`用户提到章节:${a}`,type:"user_required_chapter",level:"warning",target:a,evaluator:{subject:"chapter",operator:"exists",target:a}})),...n.map(a=>({id:`user-required-text-${g(a)}`,name:`用户提到应包含:${a}`,type:"user_required_text",level:"warning",value:a,evaluator:{subject:"document",operator:"contains",value:a}})),...o.map(a=>({id:`user-forbidden-text-${g(a)}`,name:`用户要求不得包含:${a}`,type:"user_forbidden_text",level:"error",value:a,evaluator:{subject:"document",operator:"not_contains",value:a}})),...s?[{id:"user-min-table-count",name:`用户提到表格数量不少于 ${s}`,type:"user_format_table",level:"warning",evaluator:{subject:"table",operator:"min_count",min:s}}]:[],...p?.min?[{id:"user-min-page-count",name:`用户提到页数不少于 ${p.min}`,type:"user_page_target",level:"warning",evaluator:{subject:"page",operator:"min_count",min:p.min}}]:[],...p?.max?[{id:"user-max-page-count",name:`用户要求页数不超过 ${p.max}`,type:"user_page_target",level:"warning",evaluator:{subject:"page",operator:"max_count",min:p.max}}]:[]],w=[...t,...u];return{sourceHash:c,managedBy:"system",spec:{id:`auto-${a.id}-${c}`.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),name:`后台优化建议 - ${a.name}`,description:`${e}后台优化建议,由模板、提示词、角色绑定和用户临时要求静默生成,仅用于提升内容完整性,不接管章节结构。`,factFields:l.map(a=>({id:g(a),name:a,type:"auto",required:q.some(b=>b.requiredFacts.includes(a))||!/资源|品牌|重点|难点|约束/iu.test(a),extractionHint:`从绑定材料摘要、角色绑定证据和知识库证据中抽取“${a}”。`,validationHint:`生成内容涉及“${a}”时必须与绑定材料一致,不得引入无关事实。`})),chapterMode:"fixed",chapterRules:w,dynamicChapterRule:{source:"ai_plan",minChapters:0,maxChapters:0,titleStrategy:"template",minWordsPerChapter:0,generationHint:`不自动规划或补充章节;仅按${e}正式文件要求提供内容完整性建议。`},gateRules:v,builtIn:!0}}}function l(a,b,c={}){return c.publicSafe?`## 文档事实与质量要求
6
+ ${d}`;return{chunk:a,index:b,score:.8*e.filter(a=>f.includes(a)).length+ +!!/\d+(?:\.\d+)?\s*(?:日历天|天|月|年|万元|元|㎡|m²|m³|米|mm|台|套|人|项|%|MPa|kPa)/u.test(d)+.4*(0===b)+c.priority/120}}).filter(a=>a.score>0).sort((a,b)=>b.score-a.score))b.push({chapterId:a.chapter.id,filePath:d.file.relativePath,score:1.8+f.score,content:f.chunk.content,roleId:y(c.kind),processingType:z(c.kind),sectionTitle:f.chunk.sectionTitle,source:"project-material-sample"})}return(0,g.QR)(b,{preservePinned:!0})}},5726:(a,b,c)=>{c.d(b,{pR:()=>B,hK:()=>K,Hd:()=>C,H1:()=>u,Uv:()=>y,Ah:()=>E,Q3:()=>F,$v:()=>L,ze:()=>O,Al:()=>M,$g:()=>D});var d=c(73024),e=c(48161),f=c(76760),g=c(19898),h=c(28103),i=c(37047),j=c(95734),k=c(61373);function l(a,b){if(a.length<=b)return a;let c=a.length/b,d=[];for(let e=0;d.length<b&&e<b;e+=1)d.push(a[Math.floor(e*c)]||a[0]);return d}async function m(a,b){let c=l(a,250);if(!(c.length<8))try{let a=b?null:(0,i.VN)(),d=b?await b(c):a?await a.embedDocuments(c):[];if(d.length!==c.length)return;let e=0,f=0;for(let a=0;a<c.length;a+=1)for(let b=a+1;b<c.length;b+=1)f+=1,function(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}(d[a]||[],d[b]||[])>=.85&&(e+=1);return{semanticDuplicationRate:f>0?e/f:0,semanticSegmentCount:c.length}}catch{return}}async function n(a){let b=l(a,300);if(0===b.length)return;let c=[];for(let d=0;d<b.length;d+=60){let e=b.slice(d,d+60),f=e.map((a,b)=>`【块${b}】${a.slice(0,400)}`).join("\n"),g=await (0,j.bb)((0,k.y4)('你是施工组织设计质量标注专家。逐块判定(只依据该块文本,不联想上下文):\n1. fiveElementComplete:该块是否同时具备措施五要素——方案(制定/编制/建立/采用…制度、方案、措施)、流程(工序/步骤/顺序)、责任人(项目经理/技术负责人/施工员/质检员/安全员等具体岗位)、时间节点(每日/每周/每月/不少于X次/24小时等量化频次)、验收标准(验收/整改/复查/销项/闭环/合格)。五要素齐备才判 true,缺任一要素判 false。\n2. arrowChain:该块是否描述施工工序先后关系或流程推进顺序(含"先…再…后…"自然语言表述,不要求出现"→"符号)。\n只输出 JSON,格式:{"blocks":[{"fiveElementComplete":true,"arrowChain":false}]},与输入块顺序一一对应。'),f,{maxTokens:4e3,temperature:0,disableThinkingBoost:!0});if(!g?.blocks||0===g.blocks.length)break;let h=[];for(let a=0;a<e.length;a+=1){let b=g.blocks[a];h.push({fiveElementComplete:!!b?.fiveElementComplete,arrowChain:!!b?.arrowChain})}c.push({batch:h,totalBlocks:a.length})}return c.length>0?c:void 0}async function o(a,b){try{let c=a.slice(0,12e3),d=await (0,j.bb)((0,k.y4)('你是施工组织设计评审专家。基于提供的参考施组样本(节选),输出质量点评 JSON:\n{"highlights":["值得对标的亮点,每条≤40字,最多5条"],"weaknesses":["明显短板,每条≤40字,最多5条"],"benchmarkable":"一段≤80字的最值得对标点总结"}。只输出 JSON。'),`章节结构:${b.slice(0,12).join(" / ")}
7
+
8
+ 样本节选:
9
+ ${c}`,{maxTokens:1200,temperature:0,disableThinkingBoost:!0});if(!d)return;return{highlights:Array.isArray(d.highlights)?d.highlights.slice(0,5):[],weaknesses:Array.isArray(d.weaknesses)?d.weaknesses.slice(0,5):[],benchmarkable:"string"==typeof d.benchmarkable?d.benchmarkable:""}}catch{return}}async function p(a,b,c){let d=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=a.split(/\n{2,}/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=30);if(0===d.length&&0===e.length)return;let f={semanticDuplicationRate:0,semanticSegmentCount:0,enrichedAt:Date.now()},g=await m(d,c);g&&(f.semanticDuplicationRate=g.semanticDuplicationRate,f.semanticSegmentCount=g.semanticSegmentCount);let h=await n(e);if(h){let a=0,b=0,c=0;for(let d of h)a+=d.batch.filter(a=>a.fiveElementComplete).length,b+=d.batch.filter(a=>a.arrowChain).length,c+=d.batch.length;if(c>0){let d=h[0]?.totalBlocks||e.length;f.llmFiveElement={completeBlocks:Math.round(a/c*d),sampledBlocks:c,totalBlocks:d},f.llmArrowChain={chainSegments:b,sampledSegments:c,totalSegments:e.length}}}return f.qualityNotes=await o(a,b),g||h||f.qualityNotes?f:void 0}function q(){let a=f.join(e.homedir(),".customize-agent","template-references");return d.mkdirSync(f.join(a,"files"),{recursive:!0}),a}function r(){return f.join(q(),"references.json")}function s(){try{let a=r();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));return Array.isArray(b)?b:[]}catch{return[]}}function t(a){d.writeFileSync(r(),JSON.stringify(a,null,2),"utf-8")}function u(){return s().sort((a,b)=>b.uploadedAt-a.uploadedAt)}function v(a){return u().filter(b=>b.projectType===a)}async function w(a){let b=d.statSync(a),c=new g.FileClassifier().classify(a,f.basename(a),b),e=new g.ContentExtractor,h=((await e.extract(c)).text||"").trim();if(!h)throw Error("文件未能提取到有效文本(可能是扫描件或加密文件)");return h}let x=null;function y(){return x??=z().finally(()=>{x=null})}async function z(){let a=s(),b=a.filter(a=>"ready"===a.status&&4!==a.profileVersion);if(0===b.length)return;let c=!1;for(let a of b){let b=f.join(q(),a.filePath);if(d.existsSync(b))try{let d=await w(b);a.qualityProfile=await (0,h.WT)(d),a.profileVersion=4,c=!0}catch{}}for(let e of(c&&t(a),b)){let a=f.join(q(),e.filePath);"ready"===e.status&&d.existsSync(a)&&A(e,a)}}async function A(a,b){try{let c=await w(b),d=await p(c,a.qualityProfile?.headingStructure||[]);if(!d)return;let e=s(),f=e.find(b=>b.id===a.id);if(!f||!f.qualityProfile)return;f.qualityProfile={...f.qualityProfile,semantic:d},t(e)}catch{}}async function B(a){let b=q(),c=`ref-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,e=f.extname(a.fileName)||".pdf",g=`${c}${e.toLowerCase()}`,i=f.join(b,"files",g);d.copyFileSync(a.tempFilePath,i);let j=d.statSync(i).size,k={id:c,fileName:a.fileName,projectType:a.projectType||"其他",typeSource:a.projectType?"manual":"auto",uploadedAt:Date.now(),fileSize:j,filePath:f.join("files",g),status:"parsing"},l=s();l.push(k),t(l);try{let a=await w(i);k.qualityProfile=await (0,h.WT)(a),k.profileVersion=4,k.textSlices=function(a,b=8){let c=a.split(/\n{2,}|\r\n\r\n/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=20),d=Math.max(1,Math.floor(c.length/b)),e=[];for(let a=0;a<c.length&&e.length<b;a+=d)e.push(c[a].slice(0,300));return[...new Set(e)]}(a),k.status="ready","auto"===k.typeSource&&(k.projectType=(0,h.aF)(a)),t(l),A(k,i)}catch(a){k.status="failed",k.errorMessage=a instanceof Error?a.message:"解析失败",t(l)}return k}function C(a){let b=s(),c=b.find(b=>b.id===a);if(!c)return!1;t(b.filter(b=>b.id!==a));let e=f.join(q(),c.filePath);try{d.existsSync(e)&&d.unlinkSync(e)}catch{}return!0}function D(a,b){let c=s(),d=c.find(b=>b.id===a);if(d)return d.projectType=b,d.typeSource="manual",t(c),d}function E(a){let b=v(a).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return;let c=b.map(a=>a.qualityProfile),d=J(c),e=c[0];return{profile:{wordCount:G(c.map(a=>a.wordCount)),effectiveWordCount:G(c.map(a=>a.effectiveWordCount)),paramDensity:d.paramDensity.avg,paramCount:Math.round(G(c.map(a=>a.paramCount))),arrowChainCoverage:d.arrowChainCoverage.avg,duplicationRate:d.duplicationRate.avg,tableCount:Math.round(d.tableCount.avg),sectionCount:Math.round(d.sectionCount.avg),subsectionCount:Math.round(d.subsectionCount.avg),subitemCount:Math.round(d.subitemCount.avg),avgSectionWords:d.avgSectionWords.avg,headingStructure:e.headingStructure,tableTitles:e.tableTitles,paramTokens:e.paramTokens,segmentCount:Math.round(G(c.map(a=>a.segmentCount||0))),arrowChainSegmentCount:Math.round(G(c.map(a=>a.arrowChainSegmentCount||0))),duplicatedSegmentCount:Math.round(G(c.map(a=>a.duplicatedSegmentCount||0))),fiveElementCompleteBlocks:Math.max(0,...c.map(a=>a.fiveElementCompleteBlocks||0))},sourceCount:b.length}}function F(a){let b=v(a).filter(a=>"ready"===a.status&&a.qualityProfile?.headingStructure?.length);if(0!==b.length)return{text:I(b.map(a=>(a.qualityProfile.headingStructure||[]).map(a=>({value:a})))).slice(0,12).map(a=>a.value).map((a,b)=>`第${["一","二","三","四","五","六","七","八","九","十","十一","十二"][b]??b+1}章 ${a}`).join("\n"),sourceCount:b.length}}function G(a){return a.length>0?a.reduce((a,b)=>a+b,0)/a.length:0}function H(a){return{avg:G(a),min:a.length?Math.min(...a):0,max:a.length?Math.max(...a):0}}function I(a){let b=new Map;for(let c of a)for(let a of c)b.set(a.value,(b.get(a.value)||0)+(a.weight??1));return[...b.entries()].map(([a,b])=>({value:a,count:b})).sort((a,b)=>b.count-a.count)}function J(a){if(0===a.length){let a={avg:0,min:0,max:0};return{paramDensity:{...a},arrowChainCoverage:{...a},duplicationRate:{...a},tableCount:{...a},sectionCount:{...a},subsectionCount:{...a},subitemCount:{...a},avgSectionWords:{avg:0}}}let b=a.map(a=>a.paramDensity),c=a.map(a=>a.arrowChainCoverage),d=a.map(a=>a.duplicationRate),e=a.reduce((a,b)=>a+(b.effectiveWordCount||b.wordCount),0),f=a.reduce((a,b)=>a+b.paramCount,0),g=a.reduce((a,b)=>a+(b.segmentCount||0),0),h=a.reduce((a,b)=>a+(b.arrowChainSegmentCount||0),0),i=a.reduce((a,b)=>a+(b.duplicatedSegmentCount||0),0),j=a.reduce((a,b)=>a+b.sectionCount,0);return{paramDensity:{avg:e>0?1e3*f/e:0,min:Math.min(...b),max:Math.max(...b)},arrowChainCoverage:{avg:g>0?h/g:0,min:Math.min(...c),max:Math.max(...c)},duplicationRate:{avg:g>0?i/g:0,min:Math.min(...d),max:Math.max(...d)},tableCount:H(a.map(a=>a.tableCount)),sectionCount:H(a.map(a=>a.sectionCount)),subsectionCount:H(a.map(a=>a.subsectionCount||0)),subitemCount:H(a.map(a=>a.subitemCount||0)),avgSectionWords:{avg:j>0?Math.round(e/j):0}}}function K(){let a=u().filter(a=>"ready"===a.status&&a.qualityProfile),b=new Map;for(let c of a){let a=b.get(c.projectType)||[];a.push(c),b.set(c.projectType,a)}let c=[];for(let[a,d]of b){let b=d.map(a=>a.qualityProfile),e=I(b.map(a=>(a.headingStructure||[]).map(a=>({value:a})))),f=I(b.map(a=>(a.tableTitles||[]).map(a=>({value:a})))),g=I(b.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count}))));c.push({projectType:a,sourceCount:d.length,totalWords:b.reduce((a,b)=>a+b.wordCount,0),updatedAt:Math.max(...d.map(a=>a.uploadedAt)),metrics:J(b),typicalHeadings:e.slice(0,16).map(a=>({title:a.value,count:a.count,ratio:d.length>0?Math.min(1,a.count/d.length):0})),commonTables:f.slice(0,10).map(a=>({title:a.value,count:a.count})),frequentParams:g.slice(0,12).map(a=>({token:a.value,count:a.count}))})}return c.sort((a,b)=>b.sourceCount-a.sourceCount)}function L(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" ")),c=v(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return[];let d=c.map(a=>a.qualityProfile),e=c.length,f=G(d.map(a=>a.wordCount)),g=f>0?Math.max(.3,Math.min(2,a.targetWords/f)):1,i=I(d.map(a=>(a.headingStructure||[]).map(a=>({value:a})))).filter(a=>a.count>=Math.ceil(e/2)).slice(0,12),j=I(d.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count})))),k=[`同类工程(${b})参考特征(来自 ${e} 份优秀入围文件画像,仅供软性参考;任何项目专属数字与参数仍必须以知识库证据为准,为对齐特征而编造参数、虚构表格或堆砌无意义内容严格禁止):`],l=J(d),m=l.paramDensity.avg,n=l.arrowChainCoverage.avg,o=l.sectionCount.avg>0?l.tableCount.avg/l.sectionCount.avg:0,p=l.avgSectionWords.avg;k.push(`- 工艺参数密度参考:约 ${(m*g).toFixed(1)} 个/千字(同类工程画像均值 ${m.toFixed(1)},已按本项目篇幅折减);参数应来自已确认事实与专业知识,不得编造。`);let q=Math.max(n,.08);return k.push(`- 工序顺序表达覆盖率参考:含工序顺序表达(顺序词叙述/编号步骤/有序无序列表/箭头链任一形式,形式由模型自然选择)的段落占比不低于 ${Math.round(100*q)}%(同类工程画像均值 ${Math.round(100*n)}%,已按生成侧门禁取下限);施工与流程小节宜用工序顺序表达串联工艺步骤。`),k.push(`- 表格参考:同类工程平均每章约 ${o.toFixed(1)} 张正式表格(在事实允许的前提下合理配置)。`),k.push(`- 章节体量参考:同类工程平均约 ${Math.round(l.sectionCount.avg)} 章、平均每章约 ${p} 字;实际以模板章节与篇幅目标为准。`),i.length>0&&k.push(`- 典型章节结构参考(出现于半数以上样本,仅供结构参考,不强制):${i.map(a=>a.value).join("、")}`),j.length>0&&k.push(`- 高频工艺参数种类参考:${j.slice(0,12).map(a=>a.value).join("、")}(同类型优秀样本中出现频次最高的工艺参数词条,施工方法小节可按专业实际与通用规范自然使用这些参数种类;项目专属数值必须来自知识库证据,不得为凑密度编造)。`),k}function M(a){let b=v((0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" "))).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return[];let c=b.map(a=>a.qualityProfile),d=Math.ceil(b.length/2),e=new Map,f=new Map;for(let a of c){let b=new Set;(a.headingStructure||[]).forEach((a,c)=>{if(f.set(a,(f.get(a)||0)+1),b.has(a))return;b.add(a);let d=e.get(a)||{sum:0,count:0};d.sum+=c,d.count+=1,e.set(a,d)})}let g=[...f.entries()].filter(([,a])=>a>=d).sort((a,b)=>{let c=e.get(a[0]),d=e.get(b[0]);return c.sum/c.count-d.sum/d.count}).map(([a])=>a).slice(0,10),i=c.reduce((a,b)=>a+b.sectionCount,0),j=c.reduce((a,b)=>a+(b.subsectionCount||0),0),k=c.reduce((a,b)=>a+(b.subitemCount||0),0),l=["- 写法骨架参考(同类优秀样本的展开模式,仅供结构参照;样本中的任何数值与原文句子都不得复制):"];g.length>=3&&l.push(`- 章节推进骨架:${g.join(" → ")}(出现于半数以上样本的一级章节按典型顺序排列,仅作结构参照,不强制)。`),i>0&&l.push(`- 分层展开深度:同类样本平均每章约 ${(j/i).toFixed(1)} 个二级小节、${(k/i).toFixed(1)} 个三级子目——范文把方案分层展开到具体措施条目,而不是整段综述概括。`);let m=g.filter(a=>/施工方案|施工方法|施工内容|施工部署|分部分项/u.test(a)).slice(0,4);return m.length>0&&l.push(`- 方案章节典型组织:同类样本中方案类章节以「${m.join("」「")}」等标题独立成章,逐分项展开,不并入项目概况章节。`),l.push("- 分部分项展开模式:同类样本按“施工概况(作业对象、部位、工程量)→工艺流程(工序顺序表达串联关键工序)→施工方法(工具机具、材料规格、工艺参数、验收标准)”三段逐分项展开;方法段正文以工序顺序表达(形式由模型自然选择:顺序词叙述、编号步骤、有序/无序列表或箭头链均可)串联连续工序,工艺参数落位在方法叙述中而非单独罗列清单。"),l}function N(a){return a.replace(/^第[一二三四五六七八九十百千\d]+[章节篇][、..]?\s*/u,"").replace(/^\d+(?:\.\d+)*[、..]?\s*/u,"").trim()}function O(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles].join(" ")),c=v(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return;let d=I(c.map(a=>a.qualityProfile).map(a=>(a.headingStructure||[]).map(a=>({value:a})))),e=new Set(a.chapterTitles.map(N)),f=d.filter(a=>a.count>=Math.ceil(c.length/2)).filter(a=>!e.has(N(a.value))).slice(0,6).map(a=>({title:a.value,ratio:Math.min(1,a.count/c.length)}));return f.length>0?{projectType:b,sourceCount:c.length,missingHeadings:f}:void 0}},6444:(a,b,c)=>{c.d(b,{N:()=>l,x:()=>k});var d=c(77598),e=c(8753),f=c(92808);function g(a){return a.replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/gu,"-").slice(0,60)||`fact-${Date.now()}`}function h(a){let b=RegExp("[“”\"'‘’「」『』《》](.{2,80}?)[“”\"'‘’「」『』《》]","gu");return[...a.matchAll(b)].map(a=>a[1].trim()).filter(Boolean)}function i(a){return a.split(/[\n;;。]/u).map(a=>a.trim()).filter(a=>a.length>=2)}function j(a,b=""){let c=function(a,b=""){return`${b} ${a.name} ${a.category} ${a.outputTitle} ${a.description}`}(a,b);return(0,e.V)().autoSpecGates.filter(a=>a.templateMatchers.some(a=>(function(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}})(c,a)))}function k(a,b=""){let c=function(a,b=""){return d.createHash("sha1").update(JSON.stringify({id:a.id,name:a.name,description:a.description,outputTitle:a.outputTitle,chapters:a.chapters,promptBindings:a.promptBindings,projectBindings:a.projectBindings,projectRoleConfigId:a.projectRoleConfigId,requirement:b})).digest("hex").slice(0,12)}(a,b),e=function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,f.rs)(b,f.nt)||a.category||"文档"}(a),l=function(a,b){let c=[a.name,a.category,a.outputTitle,a.description],d=[];for(let b of a.chapters)for(let a of(c.push(b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]),b.requiredFacts||[]))d.push(a);let e=c.filter(Boolean).join("\n"),g=new Set(d);for(let a of(0,f.t0)(e,f.NT))g.add(a);for(let c of j(a,b))for(let a of c.requiredFacts)g.add(a);return[...g].filter(Boolean)}(a,e),m=function(a=""){let b=new Set;for(let c of[/(?:必须|需要|要求|增加|包含|包括|补充|设置|新增).{0,12}?(?:章节|章|节|小节)[::为是]?\s*([^。;;\n]{2,80})/giu,/(?:章节|目录).{0,8}?(?:包括|包含|为|是)[::]?\s*([^。;;\n]{2,120})/giu])for(let d of a.matchAll(c))for(let a of d[1].split(/[、,,/]/u).map(a=>a.trim()).filter(Boolean))!/不要|禁止|不得|不能/iu.test(a)&&a.length<=40&&b.add(a.replace(/[。;;::]+$/u,""));return[...b]}(b),n=function(a=""){let b=new Set;for(let c of i(a).filter(a=>/必须|一定要|务必|输出|写明/iu.test(a)&&!/章节|章|节|小节/iu.test(a))){for(let a of h(c))b.add(a);let a=c.match(/(?:输出|写明)\s*([^。;;\n]{2,30})/iu);a&&b.add(a[1].trim())}return[...b].filter(a=>a&&a.length<=30&&!/不要|禁止|不得|不能|生成|要求内容|专业|结构完整|直接用于/u.test(a))}(b),o=function(a=""){let b=new Set;for(let c of i(a).filter(a=>/不要|禁止|不得|不能|不允许|严禁/iu.test(a))){for(let a of h(c))b.add(a);let a=c.match(/(?:不要|禁止|不得|不能|不允许|严禁)(?:出现|输出|写|包含)?\s*([^。;;\n]{2,40})/iu);a&&b.add(a[1].replace(/^(这些|以下|内容|词语|文字)[::]?/u,"").trim())}return[...b].filter(a=>a&&!/章节|页|表格/u.test(a))}(b),p=function(a=""){let b=a.match(/(?:大概|约|左右|不少于|至少|控制在|不超过|最多)?\s*(\d{1,3})\s*(?:页|page)/iu);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return/不少于|至少/iu.test(a)?{min:c}:/不超过|最多|以内|控制在/iu.test(a)?{max:c}:{target:c,min:Math.max(1,Math.floor(.85*c)),max:Math.ceil(1.15*c)}}(b),q=j(a,e),r=Math.max(0,...q.map(a=>a.minTables||0)),s=Math.max(function(a=""){let b=a.match(/(?:至少|不少于)?\s*(\d{1,2})\s*(?:个|张)?\s*表格/iu);return b?Number(b[1]):/表格化|用表格|表格形式|表格表达/iu.test(a)?1:void 0}(b)||0,r)||void 0,t=a.chapters.map((a,b)=>{let c=[a.title,a.purpose,...a.sections||[],...a.requiredFacts||[],...a.queries||[]].join("\n"),d=new Set(a.requiredFacts||[]);for(let a of l)(c.includes(a)||RegExp(a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),"iu").test(c))&&d.add(a);for(let a of(0,f.t0)(c,f.Ny))d.add(a);return{id:a.id,title:a.title,required:!0,order:b,minWords:900,requiredFactIds:[...d].filter(a=>l.includes(a)).map(g),requiredFileRoleIds:[],requiredPromptRoleIds:[],generationHint:[a.purpose,a.sections?.length?`必须包含小节:${a.sections.join("、")}`:"",d.size?`重点覆盖事实:${[...d].join("、")}`:""].filter(Boolean).join("\n")}}),u=m.filter(a=>!t.some(b=>b.title.includes(a)||a.includes(b.title))).map((a,b)=>({id:`user-chapter-${g(a)}`,title:a,required:!0,order:t.length+b,minWords:600,requiredFactIds:[],requiredFileRoleIds:[],requiredPromptRoleIds:[],generationHint:`用户明确要求包含该章节:${a}`})),v=[{id:"auto-source-required",name:"事实必须有来源",type:"source_required",level:"warning",evaluator:{subject:"source",operator:"all_have_source"}},{id:"auto-min-source",name:"至少使用绑定材料来源",type:"source_required",level:"warning",evaluator:{subject:"source",operator:"min_count",min:2}},{id:"auto-no-debug-text",name:"不得输出后台流程话术",type:"forbidden_text",level:"error",value:"知识库证据",evaluator:{subject:"document",operator:"not_contains",value:"知识库证据"}},...q.flatMap(a=>a.requiredTexts.map(a=>({id:`configured-required-${g(a)}`,name:`配置建议包含:${a}`,type:"configured_required_text",level:"warning",value:a,evaluator:{subject:"document",operator:"contains",value:a}}))),...q.flatMap(a=>a.forbiddenTexts.map(a=>({id:`configured-forbidden-${g(a)}`,name:`配置建议避免:${a}`,type:"configured_forbidden_text",level:"warning",value:a,evaluator:{subject:"document",operator:"not_contains",value:a}}))),...r?[{id:"configured-min-table-count",name:`配置建议正式表格不少于 ${r} 个`,type:"configured_table_density",level:"warning",evaluator:{subject:"table",operator:"min_count",min:r}}]:[],...m.map(a=>({id:`user-required-chapter-${g(a)}`,name:`用户提到章节:${a}`,type:"user_required_chapter",level:"warning",target:a,evaluator:{subject:"chapter",operator:"exists",target:a}})),...n.map(a=>({id:`user-required-text-${g(a)}`,name:`用户提到应包含:${a}`,type:"user_required_text",level:"warning",value:a,evaluator:{subject:"document",operator:"contains",value:a}})),...o.map(a=>({id:`user-forbidden-text-${g(a)}`,name:`用户要求不得包含:${a}`,type:"user_forbidden_text",level:"error",value:a,evaluator:{subject:"document",operator:"not_contains",value:a}})),...s?[{id:"user-min-table-count",name:`用户提到表格数量不少于 ${s}`,type:"user_format_table",level:"warning",evaluator:{subject:"table",operator:"min_count",min:s}}]:[],...p?.min?[{id:"user-min-page-count",name:`用户提到页数不少于 ${p.min}`,type:"user_page_target",level:"warning",evaluator:{subject:"page",operator:"min_count",min:p.min}}]:[],...p?.max?[{id:"user-max-page-count",name:`用户要求页数不超过 ${p.max}`,type:"user_page_target",level:"warning",evaluator:{subject:"page",operator:"max_count",min:p.max}}]:[]],w=[...t,...u];return{sourceHash:c,managedBy:"system",spec:{id:`auto-${a.id}-${c}`.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),name:`后台优化建议 - ${a.name}`,description:`${e}后台优化建议,由模板、提示词、角色绑定和用户临时要求静默生成,仅用于提升内容完整性,不接管章节结构。`,factFields:l.map(a=>({id:g(a),name:a,type:"auto",required:q.some(b=>b.requiredFacts.includes(a))||!/资源|品牌|重点|难点|约束/iu.test(a),extractionHint:`从绑定材料摘要、角色绑定证据和知识库证据中抽取“${a}”。`,validationHint:`生成内容涉及“${a}”时必须与绑定材料一致,不得引入无关事实。`})),chapterMode:"fixed",chapterRules:w,dynamicChapterRule:{source:"ai_plan",minChapters:0,maxChapters:0,titleStrategy:"template",minWordsPerChapter:0,generationHint:`不自动规划或补充章节;仅按${e}正式文件要求提供内容完整性建议。`},gateRules:v,builtIn:!0}}}function l(a,b,c={}){return c.publicSafe?`## 文档事实与质量要求
7
10
  建议关注事实:${a.factFields.map(a=>a.name).join("、")}
8
11
  章节内容要求:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
9
12
  质量控制点:${a.gateRules.map(a=>a.name).join("、")}`:`## 结构化检查摘要
@@ -12,16 +15,75 @@ ${d}`;return{chunk:a,index:b,score:.8*e.filter(a=>f.includes(a)).length+ +!!/\d+
12
15
  说明:以下内容仅用于事实覆盖、检索命中和质量检查,不得新增、删除、重排用户或模板章节。
13
16
  建议关注事实:${a.factFields.map(a=>a.name).join("、")}
14
17
  章节内容建议:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
15
- 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|\b\d+\s*[×xX]\s*\d+(?:\s*[×xX]\s*\d+)?\b|\b(?:GB|GB\/T|ISO|IEC|IEEE|RFC|API|DB\d*|T\/[A-Z]+)\s*[\w.-]+\b)/giu,e=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|φ\s*\d+|Φ\s*\d+|GB\s*\d+|JGJ\s*\d+/iu,f=/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|IEC|台|套|个|项|批|次|份|人|㎡|日历天|万元|元|型号|规格|数量|单位/iu,g=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+|\d+\s*[×xX]\s*\d+/iu,h=/\d+(?:\.\d+)?\s*(?:m³|m3|m²|㎡|mm|cm|m\/s|m|km|MPa|kN|kN\/m²|kPa|℃|%|d|h|min|MΩ|t|次\/天)|[MC]\d{1,3}(?:\.\d+)?|[<>≤≥]\s*\d+(?:\.\d+)?\s*(?:mm|MPa|%|d)|间距[≤<]?\s*\d+|偏差[≤<]?\s*\d+|坡度\s*\d+(?:\.\d+)?(?::\d+|%)|压实度\s*[≥>]?\s*\d+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu},23021:(a,b,c)=>{c.d(b,{KX:()=>n,Yx:()=>i,aw:()=>l,ji:()=>m,tL:()=>j});var d=c(70208),e=c(35882);let f=[{id:"overview",title:"工程概况与总体理解",requiredSectionPatterns:[/编制依据|编制说明/u,/工程概况|项目概况|基本概况/u,/现场踏勘|施工条件|现场条件/u],chapterPatterns:[/概况|总体|理解|说明|编制|项目/u],remedy:"应设置工程概况章节,包含编制依据、工程基本概况、现场条件与总体理解。",level:"required"},{id:"major-content",title:"项目主要施工内容",requiredSectionPatterns:[/主要施工内容|主要施工项目|施工内容/u],chapterPatterns:[/概况|总体|理解|主要施工|工程/u],remedy:'必须包含"项目主要施工内容"小节,按工作包展开施工概况、施工流程、施工方法。',level:"required"},{id:"key-difficulty",title:"重难点分析与对策",requiredSectionPatterns:[/重点.*难点|难点.*对策|重难点/u],chapterPatterns:[/概况|总体|理解|重点|难点|施工/u],remedy:"应设置项目特点、重点、难点分析小节,并逐项给出应对措施与责任闭环。",level:"required"},{id:"deployment",title:"施工部署与施工组织",requiredSectionPatterns:[/施工部署|总体部署|流水|施工顺序|施工区段/u],chapterPatterns:[/部署|组织|总体|方案/u],remedy:"应设置施工部署小节,明确流水段划分、施工顺序与资源调配。",level:"required"},{id:"schedule",title:"进度计划与工期保障",requiredSectionPatterns:[/进度计划|工期|节点/u],chapterPatterns:[/进度|工期|计划|保障/u],remedy:"应设置进度计划与工期保障小节,含总进度计划、关键节点与纠偏措施。",level:"required"},{id:"quality",title:"质量保证体系与措施",requiredSectionPatterns:[/质量/u],chapterPatterns:[/质量|验收|保障|措施/u],remedy:"应设置质量保证体系与措施小节,含质量目标、三检、隐蔽验收、通病防治。",level:"required"},{id:"safety",title:"安全文明施工与危大工程管控",requiredSectionPatterns:[/安全/u,/危大/u],chapterPatterns:[/安全|文明|风险|危大|保障|措施/u],remedy:"应设置安全管理与危大工程管控小节,含危险源辨识、危大清单、专项方案。",level:"required"},{id:"resources",title:"劳动力材料机械设备配置",requiredSectionPatterns:[/劳动力|机械设备|材料.*计划|资源配置|人材机/u],chapterPatterns:[/资源|劳动力|机械|材料|设备|计划/u],remedy:"应设置资源配置小节,含分阶段劳动力、机械设备投入与材料进场计划。",level:"required"},{id:"environment",title:"绿色文明施工与环保措施",requiredSectionPatterns:[/文明施工|扬尘|噪声|绿色|环保|四节/u],chapterPatterns:[/文明|绿色|环保|扬尘|噪声|保障|措施/u],remedy:"应设置文明施工与绿色施工小节,含扬尘噪声管控与四节一环保措施。",level:"required"},{id:"emergency",title:"应急管理体系",requiredSectionPatterns:[/应急/u],chapterPatterns:[/应急|安全|保障|措施/u],remedy:"应设置应急管理小节,含应急组织、物资储备与专项预案。",level:"recommended"}],g={building:[{id:"key-difficulty",title:"危大工程专项管控(房建)",requiredSectionPatterns:[/深基坑|高支模|起重吊装|脚手架/u],chapterPatterns:[/危大|安全|专项/u],remedy:"房建项目应对深基坑、高支模、起重吊装、脚手架等危大工程逐项给出专项方案与安全管理措施。",level:"recommended"}],municipal:[{id:"key-difficulty",title:"交通导改与管线保护(市政)",requiredSectionPatterns:[/交通导改|交通导行|占道施工/u,/管线保护|管线探测/u],chapterPatterns:[/交通|管线|安全|专项|保障/u],remedy:"市政项目应设置交通导改与既有管线保护专项内容。",level:"recommended"}],renovation:[{id:"key-difficulty",title:"居民协调与既有保护(改造)",requiredSectionPatterns:[/居民|扰民|既有.*保护|不中断/u],chapterPatterns:[/居民|协调|保护|保障|专项/u],remedy:"改造项目应设置居民沟通协调与既有设施保护专项内容。",level:"recommended"}],decoration:[{id:"key-difficulty",title:"成品保护与交叉施工(装饰)",requiredSectionPatterns:[/成品保护/u,/交叉施工|工序穿插/u],chapterPatterns:[/成品保护|交叉|协调|保障|专项/u],remedy:"装饰项目应设置成品保护与交叉施工工序优化专项内容。",level:"recommended"}]};function h(a){return(0,d.GQ)(a).replace(/\s+/gu,"").toLowerCase()}function i(a){return h(`${a.title} ${(a.sections||[]).join(" ")}`).slice(0,800)}function j(a){let b=a.join("\n"),c=new Map;for(let a of b.matchAll(/(\d{1,2})\s*[.、.]\s*([^;。\n]{4,60})/gu)){let b=a[2].trim().replace(/[“”"'"]/gu,"");if(!/[\u4e00-\u9fa5]{3}/u.test(b)&&!/[杯奖]/u.test(b)||/AI|大模型|评审|评分|分值|分项|子项|满分|得分|投标人须|详见|招标文件/u.test(b)||/公共资源|电子交易|加密|投标|开标|评标委员会|评标价|中标候选|中标人/u.test(b))continue;let e=Number(a[1]);if(!c.has(e)){let a=function(a){let b=a.replace(/^针对/u,"").replace(/^确保/u,"").replace(/的保障体系与措施$/u,"").replace(/的管理体系与措施$/u,"").replace(/保障体系与措施$/u,"").replace(/管理体系与措施$/u,"").replace(/[,、;,;]+$/u,"").trim();return!/[\u4e00-\u9fa5]{3}/u.test(b)&&!/[杯奖]/u.test(b)||/工期与质量/u.test(b)?"":b.length>24?b.slice(0,24):b}(b);if(a&&(0,d.ob)(a)||(0,d.ob)(b))continue;c.set(e,{index:e,text:b,title:a})}}return[...c.values()]}function k(a){let b=a.source.replace(/[\\/^$.*+?()[\]{}]/gu,"").replace(/u$/u,"");return b.split("|").map(a=>a.trim()).find(Boolean)||b}function l(){let a={};for(let b of f)for(let c of b.requiredSectionPatterns){let b=k(c),d=c.source.replace(/[\\/^$.*+?()[\]{}|]/gu,"").replace(/u$/u,"");d===b||a[d]||(a[d]=b)}return a}function m(a){return a.length?a.map((a,b)=>{let c=a.sections||[];if(c.length<2||!(0===b||/概况|总体理解|编制说明|编制依据/u.test(a.title)))return a;let d=c.findIndex(a=>/^(?:编制说明|编制依据)/u.test(a)||/工程概况|项目概况|基本概况/u.test(a));if(d<=0)return a;let e=[c[d],...c.filter((a,b)=>b!==d)];return{...a,sections:e}}):a}function n(a){var b;let c,j=(b=a.chapters,[...f].map(a=>{let c=[],d=new Set;for(let e of b){let b=h(`${e.title} ${(e.sections||[]).join(" ")}`);for(let f of a.requiredSectionPatterns)f.test(b)&&!d.has(f)&&(d.add(f),c.push(e.title))}let e=[...new Set(c)],f=a.requiredSectionPatterns.filter(a=>!d.has(a)).map(a=>k(a)),g=d.size===a.requiredSectionPatterns.length?e.length>1?"fragmented":"satisfied":"missing";return{groupId:a.id,groupTitle:a.title,level:a.level,status:g,carrierChapters:e,missingSections:f,remedy:a.remedy}})),l=[],m=j.filter(a=>"required"===a.level&&"missing"===a.status);for(let a of m)l.push({level:"error",severity:"blocker",message:`评标结构缺失:${a.groupTitle}(缺少:${a.missingSections.join("、")})`,suggestion:a.remedy});for(let a of j.filter(a=>"fragmented"===a.status))l.push({level:"warning",severity:"warning",message:`${a.groupTitle} 小节散落在 ${a.carrierChapters.length} 个章节(${a.carrierChapters.join("、")}),结构可能失真`,suggestion:"建议将同类内容集中到一个承载章节,避免章节间职责重叠。"});for(let b of a.chapters){let a=(b.sections||[]).length;a>18&&l.push({level:"warning",severity:"warning",message:`${b.title} 规划小节 ${a} 个,超过 18 个上限,易产生内容膨胀与重复`,suggestion:"合并语义相近的小节,或将细分内容下移为三级小节而非二级小节。"})}let n=a.chapters.map(a=>({...a,sections:[...a.sections||[]]})),o=new Set;for(let a of m){let b=f.find(b=>b.id===a.groupId);if(!b)continue;let c=n.findIndex(a=>{let c=h(a.title);return b.chapterPatterns.some(a=>a.test(c))&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线/u.test(c)}),d=n[c>=0?c:0];for(let b of a.missingSections.filter(a=>!o.has(a)))o.add(b),d.sections.some(a=>h(a).includes(h(b))||h(b).includes(h(a)))||d.sections.push(b)}let p=/^(?:确保\s*)?([人材机])(?:员|力|料|械|工)?\s*的保障体系与措施$/u;for(let a of n){if(!/人[、,,]材[、,,]机/u.test(a.title))continue;let b=new Set,c=[];for(let d of a.sections){if(h(d)===h(a.title))continue;let e=p.exec(d.trim());e?b.has(e[1])||(b.add(e[1]),c.push(d.trim())):c.push(d)}for(let a of["人","材","机"])b.has(a)||c.push(`确保${a}的保障体系与措施`);c.length!==a.sections.length&&(a.sections=c)}if(a.evaluationItems?.length){let b=a.chapters.map(i);for(let{item:e}of(c=function(a,b,c){let d=[],e=a.map(i);for(let a of b){let b=a.title;if(!b||e.some(a=>(function(a,b){let c=h(b);return!!c&&(a.includes(c)||c.includes(a.slice(0,40)))})(a,b)))continue;let f=0;if(c?.semanticSimilarity)for(let a of e)f=Math.max(f,c.semanticSimilarity(b,a));f>=.6||d.push({item:a,title:b,bestSimilarity:c?.semanticSimilarity?f:void 0})}return{items:b,uncovered:d}}(a.chapters,a.evaluationItems,{semanticSimilarity:a.semanticSimilarity})).uncovered){let c=e.title;if(!c||(0,d.ob)(c))continue;let f=b.reduce((b,d,e)=>{let f=a.semanticSimilarity?a.semanticSimilarity(c,d):+!!d.includes(h(c));return f>b.score?{index:e,score:f}:b},{index:-1,score:-1}).index,g=n[f>=0?f:0];g.sections.some(a=>h(a).includes(h(c))||h(c).includes(h(a)))||(g.sections.push(c),g.purpose=`${g.purpose||""};系统已按招标文件技术评审条目自动补足小节“${c}”,必须基于项目资料与适用技术展开实质内容。`,l.push({level:"warning",severity:"warning",message:`评分标准条目“${c}”无承接章节,已自动补小节“${c}”至“${g.title}”`,suggestion:"请确认补充小节与招标文件评审条目口径一致。"}))}}for(let b of(0,e.yt)(a))if("general"!==b)for(let a of g[b]){let b=h(n.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" "));if(a.requiredSectionPatterns.some(a=>a.test(b)))continue;let c=n.findIndex(b=>{let c=h(b.title);return a.chapterPatterns.some(a=>a.test(c))});n[c>=0?c:0].sections.push(a.title)}return{diagnostics:j,issues:l,enrichedChapters:n,criteriaAudit:c}}},23500:(a,b,c)=>{c.d(b,{bj:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});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(5726);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(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 u(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 v(){try{let a=s();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(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"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 A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(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=P(d),h=[];for(let a of g){let d=z(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:x(d.content),contentPreview:y(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 C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(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=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r,s=D(a),t=[];if(!s)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let u=(0,i.XB)("prompt"),v=N(s),w=O(s);v||t.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),v&&!w&&t.push({level:"error",message:`项目角色配置不存在或已删除:${v}`}),s.promptIds?.length&&t.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),s.promptBindings?.length&&t.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let x=Q(s),y=(0,o.qp)(s);w&&0===w.promptRoles.length&&t.push({level:"error",message:"项目角色配置未配置提示词角色。"}),w&&w.promptRoles.length>0&&0===x.length&&t.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let z=e.resolve(b),B=(0,h.Yy)(z),C=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}(y,B);if(0===y.length?t.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===C.length&&t.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),s&&(f=(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),0===y.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=t.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&t.splice(a,1)}let E=new Map(B.map(a=>[a.relativePath,a])),G=[],H=C.map(a=>{let b=E.get(a);return b||t.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&G.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&t.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&t.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)}}),I=H.filter(a=>a.exists).length,J=H.filter(a=>a.exists&&!a.indexed).length;I>0&&J===I?t.push({level:"error",message:`模板绑定的项目资料包(${I} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):t.push(...G);let K=A(x),L=new Set(w?.promptRoles.map(a=>a.roleId)||[]);for(let a of w?.promptRoles||[]){let b=u.find(b=>b.id===a.roleId);if(!b){t.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&t.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let M=x.map(a=>{let b=u.find(b=>b.id===a.roleId),c=K.find(b=>b.id===a.promptId);return b||t.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),L.has(a.roleId)||t.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||t.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&t.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}}),P=(w?.promptRoles||[]).map(a=>{let b=u.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=x.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(K.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(K.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))t.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(s){let a=f||(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),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?"必需资料角色缺失":"可选资料角色缺失"}})}(s,a);for(let c of(g=(0,n.$)({template:s,spec:(0,k.x)(s).spec,summary:a,resolvedRoles:b})).blockingIssues)t.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)t.push({level:"warning",message:a})}try{let a=(0,k.x)(s).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(s,a),f=s.generationSettings||s.exportSettings,g=(0,p.q6)(s.exportSettings||s.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=C.reduce((a,b)=>a+(E.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:q}=await Promise.all([c.e(6482),c.e(9227)]).then(c.bind(c,79227));j=q({template:s,chapters:e,requirement:d.requirement,materialFileCount:C.length,evidenceCount:o,targetWords:n,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0)})}catch{}try{r=(0,q.ze)({templateName:s.name,chapterTitles:s.chapters.map(a=>a.title)})}catch{}return{templateId:a,projectRoleConfigId:v,configName:w?.name,fileDiagnostics:H,promptDiagnostics:M,roleDiagnostics:P,readiness:g,issues:t,strategyPreview:j,referenceStructureSuggestion:r}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(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=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...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=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(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=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(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 Q(a){let b=O(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 P(d)}},35882:(a,b,c)=>{c.d(b,{dK:()=>r,yt:()=>j});var d=c(70208);let e=[{id:"basis-overview",title:"编制说明与工程概况",aliases:["编制说明","工程概况","项目概况","项目基本情况","工程基本信息"],category:"setup",level:"core",sectionItems:["编制依据","项目主要施工内容","项目特点、重点、难点分析"],queries:["工程概况","编制依据","招标范围","建设地点","建设规模","工期质量目标"],facts:["工程名称","建设地点","建设规模","招标范围","计划工期","质量目标"],tableSections:["项目重难点识别表"],attachHints:["概况","项目","工程","说明","总纲","部署"]},{id:"organization",title:"项目管理组织机构与职责",aliases:["组织机构","项目管理","岗位职责","管理机构","管理人员"],category:"setup",level:"core",sectionItems:["项目管理组织架构","管理人员岗位职责","内外部协调机制","劳务实名制与人员管理"],queries:["项目管理组织机构","岗位职责","项目经理","技术负责人","劳资员"],facts:["项目管理人员","岗位职责","持证人员","管理组织"],tableSections:["项目管理人员岗位职责配置表","内外协调沟通计划表"],attachHints:["组织","管理","部署","概况","保障"]},{id:"deployment",title:"施工部署与施工流水组织",aliases:["施工部署","总体部署","流水组织","施工组织","流水段"],category:"setup",level:"core",sectionItems:["施工总体部署","施工区段与流水段划分","各阶段施工顺序","多工序穿插与交叉作业管理","资源动态调配机制"],queries:["施工部署","流水段划分","施工顺序","工序穿插","资源调配"],facts:["施工范围","施工阶段","流水段","工期节点","资源配置"],tableSections:["施工流水段划分一览表","交叉作业安全管控清单"],attachHints:["部署","组织","总体","概况","方案"]},{id:"site-layout",title:"施工现场平面布置与临设管理",aliases:["总平面布置","现场平面","平面布置","临设","临水临电","人车分流"],category:"setup",level:"core",sectionItems:["施工现场总平面布置","办公区生活区加工区材料堆放区布置","现场交通组织与人车分流","临时用水布置","临时用电三级配电两级保护","材料场内转运路线"],queries:["施工总平面","临时用电","临时用水","材料堆放","场内交通"],facts:["施工现场条件","临设布置","临水临电","材料堆场","交通组织"],tableSections:["现场总平面分区布置表","场内交通导改组织计划表","临时用电负荷统计表","临时用水布置统计表","材料场内转运路线规划表"],attachHints:["部署","平面","现场","临设","组织"]},{id:"progress",title:"进度计划与工期保障",aliases:["进度计划","工期保障","工期计划","节点控制","进度控制"],category:"setup",level:"core",sectionItems:["总进度计划","关键节点控制计划","周计划日计划分解机制","进度偏差分析与纠偏措施","工期风险预警机制"],queries:["总工期","进度计划","关键节点","工期保障","进度纠偏"],facts:["计划工期","开竣工时间","关键节点","资源保障"],tableSections:["关键施工节点控制计划表"],attachHints:["进度","工期","部署","资源","保障"]},{id:"resources",title:"资源配置计划",aliases:["资源配置","机械设备","劳动力","材料计划","人材机"],category:"setup",level:"core",sectionItems:["主要施工机械设备投入计划","分阶段劳动力投入计划","主要材料进场计划","周转材料配置计划","资源动态调配机制"],queries:["机械设备投入","劳动力计划","材料进场计划","周转材料","资源配置"],facts:["机械设备","劳动力","材料","工程量","施工阶段"],tableSections:["主要施工机械设备投入计划表","分阶段劳动力动态投入计划表","主要材料进场验收管控表"],attachHints:["资源","部署","进度","保障","组织"]},{id:"main-methods",title:"主要分部分项工程施工方案",aliases:["主要施工方案","施工方案","施工方法","分部分项","工艺方案","技术措施"],category:"technical",level:"core",sectionItems:["主要分部分项工程施工流程","关键工序施工工艺","质量控制点与验收要求","施工重难点专项措施"],queries:["分部分项工程","施工工艺","施工方法","验收要求","技术措施"],facts:["施工内容","工程量","图纸做法","技术标准","验收规范"],tableSections:["分项工程施工控制要点表","主要工程量一览表"],attachHints:["方案","施工","技术","工艺","措施"]},{id:"quality",title:"质量管理体系与质量保证措施",aliases:["质量管理","质量保证","质量控制","质量措施","验收管理"],category:"assurance",level:"core",sectionItems:["质量管理目标","三检制度","样板引路制度","隐蔽工程验收","原材料进场复试与见证取样","实测实量与质量通病治理","成品保护专项措施","质量问题闭环整改机制"],queries:["质量保证措施","三检制度","样板引路","隐蔽验收","质量通病","成品保护"],facts:["质量目标","验收标准","材料复试","质量控制点"],tableSections:["隐蔽工程验收清单表","分项工程质量控制要点表","质量通病防治清单表","样板引路实施计划表","成品保护管控清单表"],attachHints:["质量","保障","保证","措施","管理","验收"]},{id:"safety-risk",title:"安全管理、风险分级与危大工程管控",aliases:["安全管理","安全措施","风险分级","危大工程","安全生产","隐患排查"],category:"assurance",level:"core",sectionItems:["安全管理目标","危险源辨识与风险分级管控","危大工程辨识清单","危大工程专项施工方案审批流程","安全技术逐级交底","临边洞口高处作业起重吊装消防临电管理","安全隐患排查与闭环整改","应急救援组织与应急演练"],queries:["安全管理","风险分级管控","危大工程","安全技术交底","临时用电","消防安全"],facts:["安全目标","危大工程","风险源","安全标准","应急要求"],tableSections:["危险源辨识与风险分级管控清单","危大工程全流程闭环管控表","安全防护设施验收计划表","交叉作业安全管控清单","消防设施布置表"],attachHints:["安全","风险","危大","保障","措施","管理"]},{id:"environment-green",title:"文明施工、扬尘、噪声与绿色施工",aliases:["文明施工","扬尘治理","噪声管控","绿色施工","环保措施","四节一环保","建筑垃圾"],category:"environment",level:"core",sectionItems:["文明施工目标","扬尘污染专项管控","噪声分时段管控","施工废水沉淀处理","建筑垃圾分类回收","四节一环保措施","智慧工地与在线监测"],queries:["文明施工","扬尘治理","噪声管控","绿色施工","建筑垃圾分类","四节一环保"],facts:["文明施工目标","扬尘要求","噪声要求","环保标准","垃圾处置"],tableSections:["环境污染物管控指标一览表","建筑垃圾分类管理表","噪声分级管控表"],attachHints:["文明","环保","绿色","扬尘","噪声","保障","措施"]},{id:"labor-wage",title:"农民工工资保障与劳务管理",aliases:["农民工工资","工资保障","劳务管理","实名制","银行代发","工资专户"],category:"labor",level:"mandatory",sectionItems:["劳务实名制管理","农民工工资专用账户","银行代发制度","工资按月足额发放","考勤台账与工资支付台账","工资保证金与劳资纠纷处置"],queries:["农民工工资保障","劳务实名制","工资专用账户","银行代发","工资支付台账"],facts:["劳务管理要求","工资支付要求","实名制要求"],tableSections:["农民工工资管控台账表","劳务实名制管理台账表"],attachHints:["工资","劳务","实名","保障","措施","管理"]},{id:"external-protection",title:"周边环境、管线与既有建构筑物保护",aliases:["周边环境","管线保护","地下管线","既有建筑","交通导行","居民沟通"],category:"external",level:"conditional",sectionItems:["周边道路居民区学校医院商业区识别","既有地下管线探测与保护","临近建构筑物沉降监测","交通导行与公众安全保障","居民沟通与投诉响应机制"],queries:["地下管线保护","周边环境保护","交通导行","居民沟通","临近建筑沉降监测"],facts:["周边环境","地下管线","交通条件","居民区","既有建筑"],tableSections:["临近建筑地下管线保护清单表","交通导改组织计划表"],attachHints:["周边","管线","交通","居民","市政","改造","保护","环境","方案"]},{id:"seasonal",title:"季节性施工保障",aliases:["季节性施工","雨季施工","夏季高温","冬季施工","防汛","大风天气"],category:"seasonal",level:"core",sectionItems:["雨季施工措施","夏季高温施工措施","冬季施工措施","防汛防雷大风天气应急措施"],queries:["季节性施工","雨季施工","高温施工","冬季施工","防汛措施"],facts:["施工季节","当地气候","工期节点","防汛要求"],tableSections:["季节性施工资源配置表"],attachHints:["季节","雨季","高温","冬季","防汛","保障","措施"]},{id:"emergency",title:"应急管理体系",aliases:["应急管理","应急预案","应急救援","事故处置","演练计划"],category:"emergency",level:"core",sectionItems:["应急组织架构","应急物资储备","高处坠落物体打击坍塌触电火灾暴雨大风高温中暑专项预案","应急响应流程","应急演练计划","事故上报与复盘整改"],queries:["应急预案","应急组织","应急物资","应急演练","事故上报"],facts:["应急要求","安全风险","应急物资","演练计划"],tableSections:["应急物资储备清单表","应急演练计划表"],attachHints:["应急","预案","救援","安全","保障","措施"]},{id:"innovation-tech",title:"新技术、新工艺、新材料、新设备的应用",aliases:["新技术","新工艺","新材料","新设备","四新技术","科技创新","四新"],category:"digital",level:"conditional",sectionItems:["新技术新工艺应用计划","新材料应用与性能保障","新设备投入与功效提升","创新技术应用效果与实施保障"],queries:["新技术应用","新工艺","新材料","新设备","四新"],facts:["新技术要求","新工艺要求","新材料要求","新设备要求"],tableSections:["新技术新工艺应用计划表"],attachHints:["技术","创新","保障","措施","质量","工期"]},{id:"digital-bim",title:"BIM、智慧工地与创新加分模块",aliases:["BIM","智慧工地","数字化","智能监测","创新加分","AI视频识别"],category:"digital",level:"optional",sectionItems:["BIM场地布置优化","BIM管线综合深化","4D进度模拟","智慧工地视频监控","扬尘噪声实名制塔机黑匣子监测","AI视频识别与风险预警"],queries:["BIM应用","智慧工地","数字化管控","扬尘在线监测","实名制管理"],facts:["智慧工地要求","BIM要求","监测设备","信息化管理"],tableSections:["BIM智慧工地应用点表","智慧工地监测点位清单"],attachHints:["BIM","智慧","数字","创新","加分","保障","措施"]},{id:"delivery",title:"竣工清理、验收移交与保修",aliases:["竣工验收","竣工清理","验收移交","资料归档","保修","分户验收"],category:"delivery",level:"conditional",sectionItems:["竣工清理与垃圾外运","缺陷修补与复查销项","竣工资料归档","验收移交与保修响应"],queries:["竣工验收","资料归档","验收移交","保修响应","竣工清理"],facts:["竣工要求","验收标准","移交要求","保修要求"],tableSections:["竣工清理与移交计划表"],attachHints:["竣工","验收","移交","保修","收尾"]}],f={building:[{id:"building-methods",title:"房建工程专项施工工艺",aliases:["房建","基础主体","主体结构","二次结构","屋面防水","多塔吊"],category:"technical",level:"conditional",projectTypes:["building"],sectionItems:["基坑开挖及支护","基坑降水及沉降监测","钢筋模板混凝土施工","砌体及二次结构施工","屋面与厨卫防水闭水试验","机电预留预埋","多塔吊作业防碰撞"],queries:["房建工程施工","主体结构","二次结构","屋面防水","多塔防碰撞"],facts:["建筑结构","层数高度","基础形式","主体结构","防水做法"],tableSections:["多塔防碰撞管控表","隐蔽工程验收清单表"],attachHints:["方案","施工","技术","工艺","房建","主体"]}],municipal:[{id:"municipal-methods",title:"市政工程专项施工工艺",aliases:["市政","道路","管网","沟槽","交通导改","雨污水"],category:"technical",level:"conditional",projectTypes:["municipal"],sectionItems:["全线现场踏勘与地下管线探测","交通导改与占道施工","沟槽开挖支护与降排水","雨污水管道铺设与闭水试验","路基分层碾压与压实度检测","水稳基层与沥青面层施工","新旧管网道路接驳与竣工移交"],queries:["市政工程","交通导改","地下管线","沟槽开挖","管道闭水","沥青摊铺"],facts:["道路长度","管线类型","交通条件","沟槽深度","路面结构"],tableSections:["既有管线保护管控表","交通导改组织计划表"],attachHints:["方案","施工","技术","工艺","市政","道路","管网"]}],renovation:[{id:"renovation-methods",title:"老旧小区改造专项施工组织",aliases:["老旧小区","小区改造","改造工程","飞线整治","雨污分流"],category:"technical",level:"conditional",projectTypes:["renovation"],sectionItems:["居民沟通协调机制","楼栋单元分区分段施工","原有建构筑物与既有设施保护","外墙空鼓铲除加固与屋面翻新防水","雨污管网分流与飞线整治","降噪防尘与不中断通行保障"],queries:["老旧小区改造","居民沟通","分区施工","既有保护","飞线整治","雨污分流"],facts:["小区现状","居民通行","改造范围","既有设施","外墙屋面"],tableSections:["居民沟通协调计划表","既有成品保护清单表"],attachHints:["方案","施工","技术","工艺","改造","小区","居民"]}],decoration:[{id:"decoration-methods",title:"装饰装修工程专项施工工艺",aliases:["装饰装修","装修","精装修","吊顶","墙地面","成品保护"],category:"technical",level:"conditional",projectTypes:["decoration"],sectionItems:["墙地面基层处理与挂网防开裂","厨卫阳台分层防水与48小时闭水试验","吊顶龙骨加固与木构件防火防腐","墙地面铺装空鼓防控与阴阳角收口","交叉施工工序优化","室内空气质量管控与成品保护"],queries:["装饰装修","基层处理","闭水试验","吊顶龙骨","成品保护","室内空气质量"],facts:["装修范围","材料做法","防水部位","吊顶做法","环保要求"],tableSections:["成品保护管控清单表","交叉施工工序优化表"],attachHints:["方案","施工","技术","工艺","装饰","装修"]}]},g=[...e,...f.building,...f.municipal,...f.renovation,...f.decoration];function h(a){return(0,d.GQ)(a).replace(/\s+/gu,"").toLowerCase()}function i(a,b,c){let d=new Set,e=[...a||[],...b].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0));return"number"==typeof c?e.slice(0,c):e}function j(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`),c=[];return/市政|道路|管网|雨污|污水|给水|沟槽|交通导|沥青|水稳|检查井/u.test(b)&&c.push("municipal"),/老旧小区|小区改造|改造|修缮|飞线|居民|雨污分流/u.test(b)&&c.push("renovation"),/装饰|装修|精装|吊顶|墙地面|乳胶漆|瓷砖|石材|室内/u.test(b)&&c.push("decoration"),/房建|住宅|办公楼|厂房|主体结构|基础|屋面|二次结构|塔吊|建筑/u.test(b)&&c.push("building"),c.length?[...new Set(c)]:["general"]}function k(a,b,c){return!!(!a.projectTypes?.length||a.projectTypes.some(a=>b.includes(a)))||a.aliases.some(a=>c.includes(h(a)))||a.sectionItems.some(a=>c.includes(h(a)))}function l(a,b,c=!1){let d=h(a),e=0;if(!c){for(let a of b.attachHints)d.includes(h(a))&&(e+=5);/概况|部署|组织|平面|资源|进度/u.test(d)&&"setup"===b.category&&(e+=6),/方案|施工|技术|工艺|分部分项|方法/u.test(d)&&"technical"===b.category&&(e+=8),/保障|保证|措施|管理/u.test(d)&&["assurance","environment","labor","seasonal","emergency","digital"].includes(b.category)&&(e+=6)}for(let a of b.aliases){let b=h(a);(d.includes(b)||b.includes(d))&&(e+=12)}return/质量/u.test(d)&&"quality"===b.id&&(e+=15),/安全|危大|风险/u.test(d)&&"safety-risk"===b.id&&(e+=15),/工期|进度/u.test(d)&&"progress"===b.id&&(e+=15),/文明|环保|扬尘|噪声|绿色/u.test(d)&&"environment-green"===b.id&&(e+=15),/工资|劳务|实名/u.test(d)&&"labor-wage"===b.id&&(e+=15),/应急|预案/u.test(d)&&"emergency"===b.id&&(e+=15),/季节|雨季|冬季|高温|防汛/u.test(d)&&"seasonal"===b.id&&(e+=15),/周边|管线|交通|居民|保护/u.test(d)&&"external-protection"===b.id&&(e+=12),/BIM|智慧|数字|创新/iu.test(a)&&"digital-bim"===b.id&&(e+=15),/竣工|验收|移交|保修/u.test(d)&&"delivery"===b.id&&(e+=15),e}function m(a,b){let c={index:0,score:-1};if(b.forEach((b,d)=>{let e=l(b.title,a);e>c.score&&(c={index:d,score:e})}),c.score>0)return c.index;let d={setup:/概况|部署|组织|资源|进度|总体/u,technical:/方案|施工|技术|工艺|措施/u,assurance:/保障|保证|措施|管理|质量|安全/u,environment:/保障|措施|文明|环保|绿色/u,labor:/保障|措施|劳务|工资/u,external:/方案|施工|周边|保护|交通/u,seasonal:/保障|措施|季节|雨季/u,emergency:/保障|措施|应急|安全/u,digital:/保障|措施|智慧|BIM|创新/u,delivery:/竣工|验收|移交|收尾/u},e=b.findIndex(b=>d[a.category].test(b.title));return e>=0?e:Math.max(0,b.length-1)}function n(a){return/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线|交通导改|垃圾分类|多塔|成品保护/u.test(a)}function o(a){return/保障|保证|措施|管理/u.test(a)&&!n(a)}function p(a,b){let c=h(b.title);return a.aliases.some(a=>c.includes(h(a)))||c.includes(h(a.title)),a.title}function q(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(h(b)),e=[...c(h(a))];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function r(a){if(!function(a){let b=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`);return!!/施工组织设计|施工组织|施组|技术标|投标技术|施工方案/u.test(b)||["施工","工程","质量","安全","进度","文明","部署","方案"].filter(a=>b.includes(a)).length>=3&&!/监理|可研|运维|维护|保养/u.test(b)}(a))return{chapters:a.chapters,report:{attached:[],unattached:[],totals:{attachedModules:0,sectionCount:0}}};let b=j(a),c=h(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" ")}`),d=a.chapters.some(a=>/概况|部署|总体|组织|主要施工方案|保障|保证|综合措施|管理体系/u.test(a.title)&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|应急|BIM|智慧|管线|交通导改/u.test(a.title)),f=g.filter(a=>k(a,b,c)),r=new Set,s={attached:[],unattached:[],totals:{attachedModules:0,sectionCount:0}},t=new Map,u=a.chapters.map(a=>(t.set(a.id,(a.sections||[]).length),{...a,sections:[...a.sections||[]],queries:[...a.queries||[]],requiredFacts:[...a.requiredFacts||[]],tableSections:[...a.tableSections||[]]}));for(let a of f){let e=u.map((b,c)=>({index:c,score:l(b.title,a,o(b.title)),chapter:b})).filter(d=>(function(a,b,c,d){if(!k(a,c,d))return!1;let e=h(b.title);if(a.aliases.some(a=>e.includes(h(a)))||a.sectionItems.some(a=>e.includes(h(a))))return!0;if(n(b.title))return!1;if(o(b.title))return"conditional"!==a.level&&"optional"!==a.level&&l(b.title,a,!0)>=10;let f=l(b.title,a);return f>=10||("optional"===a.level?f>=12||/BIM|智慧|数字|创新/iu.test(d):"conditional"===a.level?f>=8||a.projectTypes?.some(a=>c.includes(a))===!0||a.aliases.some(a=>d.includes(h(a))):f>=6)})(a,d.chapter,b,c)).sort((a,b)=>b.score-a.score),f=e[0]?.index,g=f??(d&&("core"===a.level||"mandatory"===a.level)?m(a,u):-1);if(g<0&&"conditional"===a.level&&(g=m(a,u)),g<0)continue;let j=u[g],v=p(a,j),w=a.sectionItems.map(a=>`“${a}”`).join("、"),x=t.get(j.id)??0,y=j.sections.length-x,z=Math.max(0,12-x),A=j.sections.some(a=>q(a,v)>=.6),B=!A&&y<z;B&&(j.sections=i(j.sections,[v])),j.queries=i(j.queries,[a.title,...a.queries]),j.requiredFacts=i(j.requiredFacts,a.facts),j.tableSections=i(j.tableSections,a.tableSections||[]),B?j.purpose=`${j.purpose};系统已按施工组织设计标准模块库挂靠“${a.title}”小节,该小节须覆盖以下要点(可在小节内以段落或列表自然展开,无需再单列小节):${w};仅在本章范围内展开与章节语义、项目类型和资料事实合理相关的内容,禁止机械塞入无关内容。`:A?j.purpose=`${j.purpose};模块“${a.title}”与本章已有小节主题重合,不新增小节标题,其覆盖要点并入该小节:${w}。`:j.purpose=`${j.purpose};模块“${a.title}”因本章小节数已达容量上限不新增标题,其覆盖要点并入相近小节(可在小节内以段落或列表自然展开):${w}。`,r.add(a.id),s.attached.push({chapterId:j.id,chapterTitle:j.title,moduleId:a.id,moduleTitle:a.title,kind:void 0!==f?"matched":"fallback"})}for(let a of d?f.filter(a=>("mandatory"===a.level||"core"===a.level)&&!r.has(a.id)):[]){let b=m(a,u),c=u[b],d=p(a,c),e=a.sectionItems.map(a=>`“${a}”`).join("、"),f=t.get(c.id)??0,g=Math.max(0,12-f),h=!c.sections.some(a=>q(a,d)>=.6)&&c.sections.length-f<g;h&&(c.sections=i(c.sections,[d])),c.queries=i(c.queries,[a.title,...a.queries]),c.requiredFacts=i(c.requiredFacts,a.facts),c.tableSections=i(c.tableSections,a.tableSections||[]),c.purpose=`${c.purpose};系统已补足施工组织设计必备模块“${a.title}”${h?"":"(不新增小节标题,要点并入相近小节)"},须以合理挂靠方式呈现并覆盖以下要点:${e};不改变用户一级章节。`,r.add(a.id),s.attached.push({chapterId:c.id,chapterTitle:c.title,moduleId:a.id,moduleTitle:a.title,kind:"fallback"})}if(!u.some(a=>/项目主要施工内容|主要施工内容/u.test(`${a.title} ${(a.sections||[]).join(" ")}`))){let a=e.find(a=>"basis-overview"===a.id),b=u.findIndex(a=>/概况|重点|难点|部署|总体|施工|保障/u.test(a.title)),c=u[b>=0?b:0];c.sections=function(a,b,c){let d=new Set;return[...b,...a||[]].map(a=>a.trim()).filter(a=>a&&!d.has(a)&&(d.add(a),!0))}(c.sections,["项目主要施工内容"]),c.queries=i(c.queries,["项目主要施工内容",...a?.queries||[]]),c.requiredFacts=i(c.requiredFacts,a?.facts||["施工内容","工程量","施工范围"]),c.purpose=`${c.purpose};系统已补足施工组织设计必备小节“项目主要施工内容”,必须按工作包展开施工概况、施工流程、施工方法。`}for(let a of f)r.has(a.id)||s.unattached.push({moduleId:a.id,moduleTitle:a.title,level:a.level,sections:a.sectionItems,reason:"no-semantic-chapter"});return s.totals.attachedModules=r.size,s.totals.sectionCount=u.reduce((a,b)=>a+(b.sections||[]).length,0),{chapters:u,report:s}}},44533:(a,b,c)=>{c.d(b,{NW:()=>l,Qh:()=>m,VS:()=>q,Yy:()=>p,a2:()=>k,aY:()=>o});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return g.join(h.homedir(),".customize-agent")}function l(a){return(0,d.getProjectKbPath)(g.resolve(a))}function m(){return j||(j=new d.MultiProjectManager(k())),j}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!n(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!n(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function p(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.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=l(a);if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.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 q(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=p(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
18
+ 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|\b\d+\s*[×xX]\s*\d+(?:\s*[×xX]\s*\d+)?\b|\b(?:GB|GB\/T|ISO|IEC|IEEE|RFC|API|DB\d*|T\/[A-Z]+)\s*[\w.-]+\b)/giu,e=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|φ\s*\d+|Φ\s*\d+|GB\s*\d+|JGJ\s*\d+/iu,f=/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|IEC|台|套|个|项|批|次|份|人|㎡|日历天|万元|元|型号|规格|数量|单位/iu,g=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+|\d+\s*[×xX]\s*\d+/iu,h=/\d+(?:\.\d+)?\s*(?:m³|m3|m²|㎡|mm|cm|m\/s|m|km|MPa|kN|kN\/m²|kPa|℃|%|d|h|min|MΩ|t|次\/天)|[MC]\d{1,3}(?:\.\d+)?|[<>≤≥]\s*\d+(?:\.\d+)?\s*(?:mm|MPa|%|d)|间距[≤<]?\s*\d+|偏差[≤<]?\s*\d+|坡度\s*\d+(?:\.\d+)?(?::\d+|%)|压实度\s*[≥>]?\s*\d+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu},22157:(a,b,c)=>{c.d(b,{Kd:()=>u,TP:()=>t,Te:()=>s,V:()=>f,VX:()=>o,W6:()=>i,Ww:()=>p,Xl:()=>k,Z1:()=>g,c6:()=>q,hh:()=>v,jf:()=>x,l$:()=>w,lG:()=>r,tU:()=>n,wq:()=>j});var d=c(77598),e=c(78217);let f=/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u;function g(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,12}顺序|依次|先后|先.{0,12}(?:后|再|然后|最后)|顺序施工|流水顺序/u.test(a)||(a.match(/(?:^|\n)\s*(?:\d+[.、]|[((]\d+[))]|[一二三四五六七八九十]+[、.]|第[一二三四五六七八九十]+步)/gmu)||[]).length>=2||(a.match(/(?:^|\n)\s*(?:[-*•]|\d+\.)\s+\S/gmu)||[]).length>=2||/[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u.test(a))}function h(a){return a.replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"")}function i(a){let b=a.split(/\r?\n/u),c="",d=new Map,e=[];for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(!b)continue;let f=b[1].length;if(2===f){c="";continue}if(3===f){c=b[2].trim();continue}if(4!==f)continue;let g=`${c}::${h(b[2].trim())}`;if(!g)continue;let i=(d.get(g)||0)+1;d.set(g,i),i>=2&&e.push(b[2].trim())}return e}function j(a){let b=a.split(/\r?\n/u),c=[],d="",e=new Set,f=!1;for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(b){let g=b[1].length;if(g<=3&&(d=3===g?b[2].trim():"",e.clear()),f=!1,4===g){let g=`${d}::${h(b[2].trim())}`;if(!g){c.push(a);continue}if(e.has(g)){f=!0;continue}e.add(g)}c.push(a);continue}f||c.push(a)}return c.join("\n")}function k(a,b,c={}){if(!c.fuzzy){let c=l(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||l(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=m(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=m(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||o(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 l(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 m(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function n(a){return m(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function o(a,b){let c=n(a),d=n(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function p(a,b){let c=[...new Set(b.filter(Boolean))];if(0===c.length)return a;let d=new Set;return a.split("\n").map(a=>{if(!/^\s*#{3,4}\s+/u.test(a))return a;let b=m(a);if(!b)return a;let e=c.find(a=>!d.has(a)&&o(b,a));if(!e||e===b)return a;let f=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return f?(d.add(e),`${f}${e}`):a}).join("\n")}function q(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function r(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 s(a){if(a?.aborted)throw Error("用户中止")}function t(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let u=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标"];function v(a){return!!(u.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}async function w(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 x{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:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});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(5726);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(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 u(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 v(){try{let a=s();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(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"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 A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(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=P(d),h=[];for(let a of g){let d=z(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:x(d.content),contentPreview:y(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 C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(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=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r,s=D(a),t=[];if(!s)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let u=(0,i.XB)("prompt"),v=N(s),w=O(s);v||t.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),v&&!w&&t.push({level:"error",message:`项目角色配置不存在或已删除:${v}`}),s.promptIds?.length&&t.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),s.promptBindings?.length&&t.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let x=Q(s),y=(0,o.qp)(s);w&&0===w.promptRoles.length&&t.push({level:"error",message:"项目角色配置未配置提示词角色。"}),w&&w.promptRoles.length>0&&0===x.length&&t.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let z=e.resolve(b),B=(0,h.Yy)(z),C=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}(y,B);if(0===y.length?t.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===C.length&&t.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),s&&(f=(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),0===y.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=t.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&t.splice(a,1)}let E=new Map(B.map(a=>[a.relativePath,a])),G=[],H=C.map(a=>{let b=E.get(a);return b||t.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&G.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&t.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&t.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)}}),I=H.filter(a=>a.exists).length,J=H.filter(a=>a.exists&&!a.indexed).length;I>0&&J===I?t.push({level:"error",message:`模板绑定的项目资料包(${I} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):t.push(...G);let K=A(x),L=new Set(w?.promptRoles.map(a=>a.roleId)||[]);for(let a of w?.promptRoles||[]){let b=u.find(b=>b.id===a.roleId);if(!b){t.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&t.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let M=x.map(a=>{let b=u.find(b=>b.id===a.roleId),c=K.find(b=>b.id===a.promptId);return b||t.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),L.has(a.roleId)||t.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||t.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&t.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}}),P=(w?.promptRoles||[]).map(a=>{let b=u.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=x.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(K.length>1)try{let{detectPromptRuleConflicts:a}=await c.e(1001).then(c.bind(c,71001));for(let b of a(K.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))t.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(s){let a=f||(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),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?"必需资料角色缺失":"可选资料角色缺失"}})}(s,a);for(let c of(g=(0,n.$)({template:s,spec:(0,k.x)(s).spec,summary:a,resolvedRoles:b})).blockingIssues)t.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)t.push({level:"warning",message:a})}try{let a=(0,k.x)(s).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(s,a),f=s.generationSettings||s.exportSettings,g=(0,p.q6)(s.exportSettings||s.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=C.reduce((a,b)=>a+(E.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:q}=await Promise.all([c.e(1001),c.e(6482),c.e(9227)]).then(c.bind(c,79227));j=q({template:s,chapters:e,requirement:d.requirement,materialFileCount:C.length,evidenceCount:o,targetWords:n,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0)})}catch{}try{r=(0,q.ze)({templateName:s.name,chapterTitles:s.chapters.map(a=>a.title)})}catch{}return{templateId:a,projectRoleConfigId:v,configName:w?.name,fileDiagnostics:H,promptDiagnostics:M,roleDiagnostics:P,readiness:g,issues:t,strategyPreview:j,referenceStructureSuggestion:r}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(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=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...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=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(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=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(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 Q(a){let b=O(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 P(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:()=>l,Qh:()=>m,VS:()=>q,Yy:()=>p,a2:()=>k,aY:()=>o});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return g.join(h.homedir(),".customize-agent")}function l(a){return(0,d.getProjectKbPath)(g.resolve(a))}function m(){return j||(j=new d.MultiProjectManager(k())),j}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!n(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!n(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function p(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.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=l(a);if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.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 q(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=p(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
16
19
  ${a.category}
17
20
  ${a.format}
18
- ${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 m().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)}function f(a){let b=0,c=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,d="string"==typeof a.value?a.value:"number"==typeof a.value?String(a.value):"";return a.required&&(b+=10),/\d/u.test(d)&&(b+=5),/项目名称|工程名称|项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|施工范围|计划工期|合同工期|质量标准|合同估算|投资估算|最高投标限价/u.test(c)&&(b+=4),/m[23²³]?|mm|cm|km|t|kg|台|套|个|万元|元|%|MPa|日历天/u.test(d)&&(b+=3),/招标文件|招标公告|投标人须知|前附表/u.test(a.fieldId||"")&&(b+=2),b}c.d(b,{Cr:()=>d,Ox:()=>e,rF:()=>f})},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?`章节证据风险:
21
+ ${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 m().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)}function f(a){let b=0,c=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,d="string"==typeof a.value?a.value:"number"==typeof a.value?String(a.value):"";return a.required&&(b+=10),/\d/u.test(d)&&(b+=5),/项目名称|工程名称|项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|施工范围|计划工期|合同工期|质量标准|合同估算|投资估算|最高投标限价/u.test(c)&&(b+=4),/m[23²³]?|mm|cm|km|t|kg|台|套|个|万元|元|%|MPa|日历天/u.test(d)&&(b+=3),/招标文件|招标公告|投标人须知|前附表/u.test(a.fieldId||"")&&(b+=2),b}c.d(b,{Cr:()=>d,Ox:()=>e,rF:()=>f})},52922:(a,b,c)=>{c.d(b,{Bt:()=>m,JD:()=>A,Pm:()=>o,T4:()=>w,Ye:()=>k,bH:()=>D,gE:()=>r,nY:()=>F});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.filter((a,b)=>l.some(b=>e(a,b)>=d.Eh)||h[b]).length,n=c.length?m/c.length:0;return{totalSentences:c.length,fillerSentences:m,ratio:n,level:n>=.4?"heavy":n>=.2?"medium":"light",vagueCandidateSentences:i,vagueSemanticSentences:k}}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=(a,b)=>{let c=(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},k=0,l=0,m=0;for(let a of c)e.filter(b=>j(a,b)).length>=4?k+=1:j(a,n.role)&&j(a,n.frequency)||(l+=1),j(a,n.role)&&j(a,n.frequency)&&j(a,n.acceptance)&&(m+=1);return{blocks:c.length,completeBlocks:k,incompleteBlocks:l,closedLoopBlocks:m}}let p="分析该工程难点的成因与风险来源",q=/\d+(?:\.\d+)?\s*(?:mm|cm|m|米|℃|%|kN|MPa|次|天|小时|h|Hz|m³)/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)return"";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})(a).split(/\n{2,}/u).filter(a=>a.trim().length>=20),e=await (0,d.Mv)(c,[p],b),f=0,g=0,h=0;for(let a of c){let b=e(a,p)>=d.Eh,c=q.test(a);b&&(f+=1),c&&(g+=1),b&&c&&(h+=1)}let i=c.length?h/c.length:0;return{countermeasures:c.length,attributed:f,quantified:g,bothCount:h,ratio:i,heavyTemplated:c.length>0&&i<.5}}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){return E.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u/gu,""))}},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?`章节证据风险:
19
22
  ${c.join("\n")}`:"","资料不足的事实不得编造;仅施工组织、计划安排、资源配置类数据可在文档要求允许时进行计划推导并标注。"].filter(Boolean).join("\n"):["## 后台生成准备度",`可生成:${a.ready?"是":"否"}`,a.missingRoles.length?`资料诊断:部分模板期望资料类型未从绑定文件中明确识别,生成时仅使用已绑定资料中的事实`:"",a.weakRoles.length?`资料诊断:部分资料类型证据较弱,生成时不得补写资料未明确的事实`:"",c.length?`章节级证据风险:
20
- ${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()()\-—_+\s]+\.(?:pdf|dwg|docx?|xlsx?|xls|csv|png|jpe?g|webp)\b/giu,f="[零〇一二三四五六七八九十百千万两]+"},70208:(a,b,c)=>{c.d(b,{GQ:()=>o,Ui:()=>m,YZ:()=>p,bl:()=>l,cs:()=>n,effectiveTemplateChapters:()=>s,mq:()=>g,ob:()=>h,tb:()=>q});var d=c(58965),e=c(23500);function f(a){let b=a.trim(),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function g(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(b)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(b)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(b)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(b)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(b)||/^\d+\s*项/u.test(b)||/^\d+(?:[((]\d+[))])?\s*目/u.test(b)||/^\d+\s*对(?:与|于)/u.test(b)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(b)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(b)||/^\d{1,4}[^,,。;\s]{1,6}[,,]/u.test(b)||/^\d{1,2}[一-龥]{2,10}$/u.test(b)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(b)||/[((【[《]$/u.test(b)||/[((【[《][^))】]》]*$/u.test(b)||/以下简/u.test(b)||/^\d{1,4}\s*[a-zA-Z]/u.test(b)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(b)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(b)||/^\d{1,3}\s*款/u.test(b)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(b))||function(a){let b=a.replace(/\s+/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(b)}function h(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))||g(b)}function i(a){return 0===a.trim().length||h(a)}let j="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",k=RegExp(`<\\s*${j}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${j}\\s*>`,"giu");function l(a){return RegExp(`^\\s*<\\s*${j}(?:\\s[^>]*)?>`,"iu").test(a)}function m(a){return RegExp(`^\\s*<\\/\\s*${j}\\s*>`,"iu").test(a)}function n(a){for(let b of a){let a=function(a,b,c){let e=[];for(let g of function(a,b){k.lastIndex=0;let c=[...a.matchAll(k)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>f(a)).filter(a=>!i(a))}(g))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!i(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function o(a){let b=a.replace(/^#+\s*/u,"").trim(),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function p(a){return o(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function q(a,b){let c=o(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function r(a,b){let c=new Set;return a.filter(a=>{let d=p(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function s(a,b,c){return!b||c?.preserveExplicitOutline?r([...a.chapters],{...c,template:a}):r([...a.chapters].map(a=>{let c=o(a.title),d=b.chapterRules.find(b=>b.id===a.id||o(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>t,OF:()=>p,Pc:()=>r,QO:()=>q,QR:()=>o,T3:()=>n,eE:()=>k,ks:()=>w,qy:()=>v});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144);function j(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function k(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function l(a){let b=k(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function m(a){let b=[...new Set(k(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/(?:GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO|IEC)\s*[\w./-]*\d/u.test(a),e=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d||e&&/\d/u.test(a)&&a.length<=260}))].map(a=>(function(a){if(a.length<=160)return a;let b=a.match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|(?:计划工期|合同工期|合同估算价|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准)[^。;;,,]{0,40}|(?:GB|JGJ|CJJ|DB|CECS|ISO|IEC)\s*\/?\s*T?\s*[\w./-]*\d/gu);return b&&b.length>0?[...new Set(b)].join(";"):a.slice(0,160)})(a)).filter(Boolean);return(0,i.Cr)([...new Set(b)],a=>(0,i.Ox)(a),{},"key-fact-lines").selected.join("\n")}function n(a,b){let c=Math.max(400,Math.floor(b)),d=k(a);if(d.length<=c)return d;let e=d.split("\n"),f=[{re:/基坑底标高|换填底标高|整平标高|开挖深度|放坡系数|支护形式|坡率/u,value:20},{re:/标高/u,value:10},{re:/[±+]\s*0[.,]0{2,}/u,value:8},{re:/[±+-]\s*\d+\.\d{2,}/u,value:3}],g=e.map((a,b)=>{let c=0;for(let{re:b,value:d}of f)if(b.test(a)){c=d;break}return{line:a,index:b,value:c}}).filter(a=>a.value>0);if(!g.length)return d.slice(0,c);g.sort((a,b)=>b.value-a.value||a.index-b.index);let h=d.slice(0,Math.min(300,Math.max(80,Math.floor(.22*c)))).trimEnd(),i=`(超长证据参数窗口提取:${g.length} 行参数命中,尾部关键参数已前置展示)`,j=c-h.length-i.length-4,l=[],m=new Set,n=Math.max(50,Math.floor(.15*c));for(let{line:a,index:b}of g){if(j<=30)break;if(m.has(b))continue;let c=b>0&&/图纸节点:/u.test(e[b-1])?e[b-1].slice(0,n):"",d=[c,a].filter(Boolean).join("\n"),f=d.length>j?d.slice(0,j):d;l.push(f),j-=f.length+1,m.add(b),c&&m.add(b-1)}let o=l.length?l.join("\n"):d.slice(0,j+h.length),p=`${h}
23
+ ${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()()\-—_+\s]+\.(?:pdf|dwg|docx?|xlsx?|xls|csv|png|jpe?g|webp)\b/giu,f="[零〇一二三四五六七八九十百千万两]+"},61373:(a,b,c)=>{c.d(b,{rd:()=>N,KX:()=>O,kt:()=>D,K7:()=>F,V3:()=>ar,cf:()=>X,p8:()=>Y,y4:()=>S,r4:()=>Z,rs:()=>aq,BJ:()=>L,Re:()=>y,z1:()=>C,wi:()=>t,bR:()=>$,UG:()=>ao,CK:()=>am,Ed:()=>an,Bl:()=>V,FD:()=>i,kT:()=>M,nP:()=>K,uv:()=>J,bx:()=>G,dh:()=>_,b_:()=>R});var d=c(58965),e=c(22157),f=c(70208),g=c(98632),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,f.GQ)(b);return n.test(b)||n.test(c)||(0,f.mq)(b)||(0,f.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?
24
+ `,"u"),x=RegExp(`
25
+ {3,}`,"gu");function y(a){return a.split(w).map(v).join("\n").replace(x,"\n\n")}function z(a){return/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a)}function A(a){let b=a.trim();return/^\|.*\|$/u.test(b)&&b.split("|").length>=3}function B(a){return`| ${Array.from({length:Math.max(2,a)},()=>"---").join(" | ")} |`}function C(a){let b=a.split(/\r?\n/u),c=[],d=0;for(let a=0;a<b.length;a+=1){let e=b[a];if(z(e)){c.push(e);continue}if(!(A(e)||d>0&&function(a){let b=a.trim();return b.startsWith("|")&&b.length>1}(e))){d=0,c.push(e);continue}let f=b[a+1]||"",g=d||e.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).length;if(c.push(function(a,b){let c=a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim());for(;c.length<b;)c.push("");return`| ${c.slice(0,b).join(" | ")} |`}(e,g)),z(f)){c.push(B(g)),d=g,a+=1;continue}!d&&A(f)&&function(a){let b=a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.replace(/\*\*/gu,"").trim());return!(b.length<2)&&b.filter(a=>/^(?:序号|信息项|内容|控制项目|控制内容|执行要求|责任主体|检查(?:与验收)?|验收标准|备注|名称|规格(?:型号)?|单位|数量|阶段|措施|风险|应急物资名称|资源类别|投入计划|管理要求)$/u.test(a)).length>=Math.min(2,b.length)}(e)&&(c.push(B(g)),d=g)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}let D=/(?:项目部|本项目|本工程)?(?:根据|依据|结合|按照|以)?(?:本项目|项目|[^。;;\n]{0,30}?)?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单)(?:[、,,及和与\s]*(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单|现行规范|规范)){1,}(?:[^。;;\n]{0,80})?[,,]/u,E=/编制依据|编制说明|法律法规|规范标准|标准依据/u;function F(a){let b=a.split(/\r?\n/u),c=[],d=!1;for(let a of b){let b=a.trim();if(/^#{2,4}\s+/u.test(b)){d=E.test(b.replace(/^#{2,4}\s+/u,"")),c.push(a);continue}if(/^\s*\|/u.test(b)||d){c.push(a.trimEnd());continue}let e=a.replace(D,"").replace(/(?:施工图设计说明|工程量清单项目特征|补充答疑修正口径|答疑修正口径)(?:[、,,及和与\s]*(?:施工图设计说明|工程量清单项目特征|补充答疑修正口径|答疑修正口径)){1,}/gu,"项目技术文件").replace(/(?:根据|依据|以)(?:[^。;;\n]{0,30})?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸)(?:[^。;;\n]{0,40})(?:编制|确定|要求|为编制基础)[。;;]?/gu,"").replace(/(?<=\S)\s{2,}(?=\S)/gu," ").trimEnd();/^(?:本节|本小节|本章)?(?:内容|措施)?(?:根据|依据)(?:招标文件|补疑澄清文件|补遗澄清文件|答疑(?:回复)?文件|澄清文件|工程量清单|设计图纸|施工图纸)[^。;;\n]*[。;;]?$/u.test(e.trim())||c.push(e)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}function G(a){let b=[],c=!1;return a.split(/\r?\n/u).forEach((a,d)=>{let e=a.trim();if(/^#{2,4}\s+/u.test(e)){c=E.test(e.replace(/^#{2,4}\s+/u,""));return}!/^\s*\|/u.test(e)&&(D.test(a)&&!c&&b.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现资料来源罗列话术:第 ${d+1} 行`,suggestion:"删除“根据/依据招标文件、清单、图纸”等来源罗列,直接保留项目事实、施工内容和控制措施;编制依据类小节可集中罗列依据文件。"}),/^\s*\*\*[^*]{2,40}表\*\*\s*$/u.test(a)&&b.push({level:"error",severity:"blocker",category:"format",owner:"system",message:`正式正文不得用粗体段落充当表名:第 ${d+1} 行`,suggestion:"表名必须转换为 #### 四级标题,避免导出后混入正文段落。"}))}),b.slice(0,20)}let H=/(?:安全|管理|施工|质量|工期|进度|保障|体系|措施|控制|工程|项目|技术|方案|计划|组织|标准|规范|验收|方法|工艺|文明|绿色)/u,I=/(?:工程施工方案|安装工程施工方案|专业工程施工方案|专项施工方案)$/u;function J(a){let b=a.split(/\r?\n/u),c=[],d=new Set;for(let a of b){let b=/^###\s+(.+)$/u.exec(a.trim());b&&d.add(b[1].trim().replace(/^\d+(?:\.\d+)*\s*/u,""))}return b.forEach((a,b)=>{let e=/^####\s+(.+)$/u.exec(a.trim());if(!e)return;let f=e[1].trim(),g=f.replace(/^\d+(?:\.\d+)*\s*/u,"").trim();if(!g)return;if(d.has(g)||d.has(f))return void c.push({level:"warning",severity:"warning",category:"structure",owner:"system",repairability:"llm_repairable",message:`H4 标题与本章三级小节同名:${f}(第 ${b+1} 行)`,suggestion:`删除该 H4 块或改为三级小节「${g}」下的独立子主题标题,禁止与三级小节同名造成结构重复。`});let h=new Map;for(let a=0;a<g.length-1;a+=1){let b=g.slice(a,a+2);H.test(b)||h.set(b,(h.get(b)||0)+1)}let i=[...h.entries()].filter(([,a])=>a>=2).map(([a])=>a);if(i.length>0)return void c.push({level:"warning",severity:"warning",category:"structure",owner:"system",repairability:"llm_repairable",message:`H4 标题疑似词尾粘连或多主题拼接:${f}(重复词:${i.join("、")},第 ${b+1} 行)`,suggestion:"重写为单一主题的短标题,去掉粘连重复的尾部词语。"});g.length>14&&!I.test(g)&&c.push({level:"warning",severity:"warning",category:"structure",owner:"system",repairability:"llm_repairable",message:`H4 标题过长疑似多主题拼接:${f}(${g.length} 字,第 ${b+1} 行)`,suggestion:"拆分为多个独立 H4 或压缩为单一主题短标题。"})}),c.slice(0,20)}function K(a){let b=a.split(/\r?\n/u),c=[],d=[],e=null,f=null,g=a=>{if(f)for(let b of a.replace(/^#{1,6}\s+/u,"").replace(/^\|.*\|$/u,"").trim().split(/[。;;]/u)){let a=b.trim();a.length>=24&&f.sentences.push(a.replace(/[\s\p{P}]+/gu,"").toLowerCase())}};for(let a of b){let b=/^##\s+(.+)$/u.exec(a.trim());if(b){e&&d.push(e),e={title:b[1].trim(),sections:[]},f=null;continue}let c=/^###\s+(.+)$/u.exec(a.trim());if(c&&e){f={title:c[1].trim(),sentences:[]},e.sections.push(f);continue}/^####\s+/u.test(a.trim())||g(a)}for(let a of(e&&d.push(e),d))for(let b=0;b<a.sections.length;b+=1)for(let d=b+1;d<a.sections.length;d+=1){let e=new Set(a.sections[b].sentences),f=new Set(a.sections[d].sentences);if(0===e.size||0===f.size)continue;let g=0;for(let a of e)f.has(a)&&(g+=1);let h=g/Math.min(e.size,f.size);h>=.3&&g>=3&&c.push({level:"warning",severity:"warning",category:"structure",owner:"system",repairability:"llm_repairable",message:`${a.title} 内「${a.sections[b].title}」与「${a.sections[d].title}」正文重复(${g} 句重合,占 ${Math.round(100*h)}%)`,suggestion:"两个小节正文出现大量重复句子:后写的小节必须围绕本小节主题差异化重写,删除复制自另一小节的内容,只保留本小节专属做法与参数。"})}return c.slice(0,20)}function L(a){let b=a.split(w),c=[];for(let a=0;a<b.length;a+=1){let d=b[a]||"",e=d.trim();if(!(e&&!/^\|/u.test(e)&&(e.match(/\|/gu)||[]).length>=2&&!/^#{1,6}\s/u.test(e)&&!z(e)&&c.length>0&&A(c[c.length-1]||""))){c.push(d);continue}let f=e.split("|").map(a=>a.trim()).filter(Boolean);if(f.length<2){c.push(d);continue}if(z(c[c.length-1]||"")){c.push(`| ${f.join(" | ")} |`);continue}let g=c[c.length-1]||"",h=`${g.replace(/\s*\|\s*$/u,"")}${f[0]}`,i=f.slice(1).join(";");c[c.length-1]=`${h}${i?`;${i}`:""} |`}return c.join("\n")}function M(a){return(function(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){if(!A(b[a])||!z(b[a+1]||"")){c.push(b[a]);continue}let d=[];for(;a<b.length&&A(b[a]);)d.push(b[a]),a+=1;a-=1;let e=d.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim())),f=Array.from({length:Math.max(...e.map(a=>a.length))},(a,b)=>e.some((a,c)=>1!==c&&!!a[b]?.trim())),g=e.map((a,b)=>{let c=f.map((b,c)=>b?a[c]||"":null).filter(a=>null!==a);return 1===b?B(c.length):`| ${c.join(" | ")} |`});c.push(...g)}return c.join("\n")})(C(L(y(t(F(function(a){let b=a.trim(),c=/^```(?:markdown|md)?\s*\n([\s\S]*?)\n```\s*$/iu.exec(b);return c?c[1].trim():a}(a)).replace(/\b(m|㎡)\s*2\b/giu,"平方米").replace(/\bm\s*[²2]\b/giu,"平方米").replace(/\b(m|㎥)\s*3\b/giu,"立方米").replace(/\bm\s*[³3]\b/giu,"立方米").replace(/\bmm2\b/giu,"平方毫米").replace(/\bcm2\b/giu,"平方厘米").replace(/\bkm2\b/giu,"平方千米").replace(/(\d+(?:\.\d+)?)平方(?:\d+(?:\.\d+)?)?(?=\d|[,,;;))]|\s|$)/gu,"$1平方米").replace(/原则上/gu,"").replace(/\s*×\s*/gu,"\xd7").replace(/\s*≤\s*/gu,"≤").replace(/\s*≥\s*/gu,"≥").replace(/\s*±\s*/gu,"\xb1")))))).replace(/^####\s+(.*?)(.{2,4})\2\s*$/gmu,"#### $1$2").split(/\r?\n/u).map(a=>a=(a=a.replace(/(?<=[。;;])(?=#{3,4}\s+\S)/gu,"\n\n")).replace(/^([^|]*[。;;])\s*(\|[^|\n]+\|\s*)$/u,"$1\n$2")).join("\n").replace(/^\*\*([^*\n]{4,40})\*\*\s*$/gmu,(a,b)=>{let c=b.trim();return/[::。!!??,,、]$/u.test(c)||/^(?:注意|提示|备注|警告|说明)/u.test(c)?a:`#### ${c}`}).replace(/承包人案/gu,"方案").replace(/承包人法(?=[::])/gu,"施工方法").replace(/承包人法/gu,"方法").replace(j,"").replace(/(^|\n)---\s*\n+(?=以上内容已依据)/gu,"$1").replace(/^以上内容已依据[\s\S]*?(?=\n\s*\n)/gmu,"").replace(k,"").replace(l,"").replace(m,"").replace(d.tK,"").replace(/^#\s+/gmu,"").replace(d.VX,"").split(/\r?\n/u).filter((a,b,c)=>{let d=b>0?(0,f.GQ)((c[b-1]||"").trim().replace(/^#{1,6}\s+/u,"")):"",e=(0,f.GQ)(a.trim().replace(/^#{1,6}\s+/u,""));if(d&&s(d)&&e.length>0&&e.length<=12&&!/^#{1,6}\s/u.test(a.trim()))return!1;let g=a.trim();if(!g)return!0;if(/^####\s+.*(?:补充条款|评标办法|投标须知)/u.test(g)||/该小节围绕.+进行补充说明/u.test(g)||/仅作为内部事实提取依据|正式正文不得引用文件名|后台事实|内部事实/u.test(g))return!1;if(/^\s*\|/u.test(g)||/^\s*\|?\s*:?-{3,}:?/u.test(g))return!0;let h=(0,f.GQ)(g.replace(/^#{1,6}\s+/u,""));return!(/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(h)||h.length<=1||s(h))&&!(/[,、;:和与在为对将]$/u.test(h)||/(通过|包括|如下|主要包括)$/u.test(h))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}let N=`以下规则仅用于保障导出格式正确和事实安全,不得覆盖用户在提示词中已明确的要求。
26
+ 不得把”知识库、检索、资料类型、提示词角色、规范包、事实字段、缺失项、校验结果、资料未提供、未检索到”等后台流程话术写入正文。
27
+ 严禁使用“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列开头;正文必须直接写项目事实、施工内容、控制措施、验收节点。编制依据类小节除外:该小节可集中罗列编制依据文件清单。
28
+ 禁止模板化空话与流程套话:不同小节必须写各自专属的专业内容,逐节落位本项目工程量、设备规格、工艺参数与验收标准,不得复制相同段落,不得用泛化的流程描述代替专业内容;正文末尾不得输出自我总结或合规声明段落。
29
+ 项目概况只交代一次:工程地点、建设规模(总建筑面积)、计划工期、改造范围、保留商铺等总述信息,只在项目概况/工程概况类章节集中交代。其他章节不得以“本项目为……”开头整段复述项目概况;正文直接写本专业内容,确需数据支撑时只引用所需的具体数字(如“按 45 日历天总工期倒排”“针对 4368m\xb2 改造范围”),不复述面积、商铺、工期的完整概况段。
30
+ 【内容落地五要素】每项管控措施必须写全五要素:方案 + 流程 + 责任人 + 时间节点 + 验收标准;责任人落到具体岗位(项目经理/技术负责人/施工员/质检员/安全员/材料员等),检查频次量化到每日/每周/每月/不少于X次,整改落到“整改→复查→销项”闭环。禁止只写“加强、落实、确保”式无责任、无标准、无频次的空话。
31
+ 【闭环句式密度硬约束】全文每 1500 字至少 1 段完整闭环句式:同一自然段内必须同时出现责任岗位(项目经理/技术负责人/施工员/质检员/安全员/材料员/试验员等)+ 检查频次(每日/每周/每月/不少于X次/定期)+ 整改闭环(整改/复查/销项/复验)三要素,缺一不可;禁止措施段落只有频次数字而无责任岗位,或只有岗位口号而无量化频次。
32
+ 【空话禁用词】以下词语直接禁写,一律替换为“责任岗位 + 执行动作 + 量化标准 + 检查频次 + 整改闭环”句式:${g.QX.join("、")};并避免“合理、充分、完善、切实、尽量、适时”等单字虚词作为措施句核心动词。
33
+ 【评分点响应】段落首句先回应本节评分点或招标评审关键词,再展开具体措施;一段只写一个主题,避免多个得分点混在大段文字中;三级标题尽量直接放置评分关键词。
34
+ 【数据表格化】关键数据(建筑面积、层数、总工期、开工竣工节点、设备型号数量、管理人员配置、劳动力人数、材料批次、养护天数、检测频次、检验批划分)优先用表格呈现,不藏在正文大段文字中;正文中数据密集型内容(多组对比数值、多岗位职责分工、多阶段资源配置、多节点工期安排、多类管控指标、多工种劳动力分配)宁可多用表格,直观性优于纯文字叙述。表格前必须有 1~2 句引导叙述说明表格作用与关键结论,表格不能替代小节正文。每张表格应有说明性标题或表前引导句点名用途;同一主题同一数据不得重复堆叠凑数,但内容较多的主题可合理分组为多张表。
35
+ 【工艺参数密度】正文每 1000 字至少落位 6 处带单位的量化工艺参数(如 20mm、C30、0.5MPa、养护 28 天、搭接长度 500mm、压实度 95%、含水率 3%),均匀分布在各章节而非集中在个别小节;参数必须来自绑定材料或行业通用规范值,不得编造。
36
+ 【工序顺序表达】施工流程、施工方法、检验验收类叙述必须有清晰的工序顺序表达,形式由模型根据内容自然选择、不做统一要求:可用顺序词叙述(先…再…最后…、依次/先后/按…顺序)、编号步骤、有序/无序列表或箭头链等形式;同一章节内形式应多样化,禁止全篇同一形式(如通篇箭头链)。每个分部分项方案至少 1 处 3 环节以上的工序顺序表达,全文含工序顺序表达的段落占比不低于 8%。
37
+ 【数据自洽】全文核心数据(工程名称、建设地点、总工期、建筑面积、层数、人员、机械、材料批次、施工阶段划分、危大工程清单)必须前后一致,任何跨章冲突、参数矛盾即为内容缺陷;数据以绑定材料与计划推导结果为准,不得一处一改。
38
+ 【工艺黄金公式】工艺描述按“工艺名称 + 来源依据 + 适用范围 + 核心工序(按施工顺序 3~5 步)+ 质量控制要点(1~2 个量化指标)”展开;提及规范标准必须带编号(如 GB 50204-2015)并采用现行有效版本,不得虚构或引用已废止版本。
39
+ 【重难点公式】重难点 = 项目具体条件 + 难度分析 + 影响后果;工程重点 3~5 条、工程难点 3~4 条,每个重难点必须在后续对应章节给出解决措施形成跨章闭环。
40
+ 【低雷同】不同章节不得复制相同段落;同类措施必须通过句式重构、数据替换、流程细化差异化表达;项目概况叙述(位置+规模+建设内容+工期+质量目标的连写段)全文只允许在项目基本信息表引导段出现一次,特点分析、重难点分析等小节直接切入特点与对策,禁止再次粘贴项目概况段;不写“本工程严格执行国家有关标准规范”式通用万能句。
41
+ 【导出格式】章标题用 ## ,节标题用 ### 加数字编号(如 1.1),小节标题用 #### 加数字编号(如 1.1.1)。禁止用数字编号或粗体代替 ###/#### 标题。
42
+ Markdown 表格格式硬约束:凡是输出 Markdown 表格,必须使用标准 GFM 表格格式。
43
+ 表格必须包含表头行、分隔线和数据行;表头下一行必须是分隔线,例如 |---|---|。
44
+ 禁止只输出连续的“| 字段 | 值 |”裸表格行;两列键值信息表默认使用表头 | 信息项 | 内容 |。
45
+ 表头、分隔线和数据行必须连续,中间不得插入正文、说明、空行或补充段落。
46
+ 表格数据完整性硬约束:数据行每一列都必须有具体数据值,不得出现空单元格;不得用“—/若干/约/待定/暂无/不适用”等占位或模糊表达代替具体数据(合计/小计/总计/累计行的“—”不适用语义除外)。数据优先取自本项目资料,资料未直接给出时按工程量、工期与专业定额工效推算具体数值。
47
+ 表格名称/标题不得占用表格单元格(如“竣工清理与移交计划表”作为表头第一格导致整表错位);表名写在表格上方的正文叙述中,表内第一行从表头列名开始。
48
+ 正文表格不得展示后台溯源列或系统过程列,如“资料来源/说明”“资料来源/证明”“知识库来源”等。
49
+ 项目名称、项目编号、招标人/业主/建设单位、建设地点、建设规模、计划工期、质量标准、合同估算价等项目基础信息,只能在项目基本信息表中集中输出一次;后续章节如需引用,应写入正文或专业表格的业务字段,不得重复生成项目基础信息键值表。
50
+ 【段落格式】段落之间必须空行(双换行)分隔,不得用单换行连续写大段文字。列表项逐行独占。步骤描述之间加空行。
51
+ 事实来源分级:项目专属事实(工期、金额、工程量、建设规模、人名、公司、品牌、供应商、材料规格、日期节点)必须来自绑定材料,不得编造;公共专业知识(法律法规名称、标准规范编号 GB/JGJ/CJJ/DB 系列、通用施工工艺与行业惯例)可依据现行有效版本和专业经验直接撰写,不要求材料提供,但不得虚构编号或引用已废止版本。
52
+ 计划编制类字段边界:劳动力计划人数、机械设备台班、进度时间安排、材料进场时间、检验批划分等属于投标人计划编制成果,资料中不会直接给出,必须基于项目工程量、总工期、工序流水与定额工效推导出具体数值并写入正文,不得因资料未提供而留空或用“另行确定”等话术回避。`,O='只生成当前节及其节内三级小节正文,不生成其他同级节,不重复章节一级标题。\n优先使用当前模板、用户要求、绑定提示词和绑定材料中的事实;项目专属事实(具体数值、时间、规格、人名、品牌、责任主体)缺少依据时不得编造;法律法规名称、标准规范编号等公共专业知识可依据现行有效版本直接引用,无需材料提供。\n禁止编造具体日期:开工日期、竣工日期、具体某月某日只有在绑定材料明确提供时才可写入;材料未提供具体日期时,进度安排一律用相对工期表达(如"开工令下发后第7日""第1日~第7日"),不得写"2026年8月8日"等绝对日期。\n小节应有实质正文;除非用户或模板明确要求纯表格,否则表格只能作为辅助表达,不能整节只有表格。\n不得用通用兜底段落、空泛管理话术或后台缺料说明冒充正文;信息不足时只写已有事实、适用边界和待复核口径。\n不得以“本项目为……”开头复述项目概况段(工程地点、面积、工期、保留商铺等总述信息只在项目概况/工程概况类章节出现);本小节直接写专业内容,需要数据时只引用所需数字。',P="你是专业施工组织设计文档生成智能体,承担文档结构规划、正文写作、质量评审与局部修复任务。\n通用硬约束:\n1. 项目专属事实(工期、金额、工程量、建设规模、人名、公司、品牌、供应商、材料规格、日期节点)必须来自绑定材料,不得编造;公共专业知识(法律法规名称、标准规范编号、通用施工工艺与行业惯例)可依据现行有效版本直接引用,但不得虚构编号或引用已废止版本。\n2. 输出中不得出现后台流程话术(知识库、检索、资料类型、提示词角色、规范包、事实字段、缺失项、校验结果、资料未提供、未检索到等)。\n3. 严格遵守调用点给出的输出契约:JSON 调用只返回 JSON,正文调用遵循 Markdown 结构要求。",Q=[P,"你是施工组织设计文档写作专家。",N,O].join("\n\n");function R(a){return"0"===process.env.DOCUMENT_L0_SYSTEM_PREFIX?a:Q}function S(a,b){return"0"===process.env.DOCUMENT_L0_SYSTEM_PREFIX?b??a:[P,a].join("\n\n")}function T(a){return(0,f.GQ)(a.replace(/^#+\s*/u,"")).replace(/^(?:第)?[一二三四五六七八九十百千万\d]+章\s*/u,"").trim().replace(/\s+/gu,"")}function U(a,b){let c=T(a),d=T(b);return!!(c&&d&&c===d)}function V(a){let b=a.split(/\r?\n/u),c=[],d="";for(let a of b){let b=a.trim(),e=/^##\s+(#{2,5})\s+(.+)$/u.exec(b);if(e){let a=e[1]||"",b=(e[2]||"").trim();b&&!U(b,d)&&(c.push(`${a} ${(0,f.GQ)(b)}`),d=b);continue}let g=/^(#{1,6})\s+(.+)$/u.exec(b);if(g){let b=(g[2]||"").trim();if(b){if(U(b,d))continue;d=b}c.push(a);continue}b&&(d=""),c.push(a)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}function W(a,b,c){let d=new Set;for(let e=b;e<c;e+=1){let b=a[e].trim();if(!(/^#{1,6}\s/u.test(b)||/^\|.*\|$/u.test(b)))for(let a of b.split(/[。;;]/u)){let b=a.trim();b.length>=16&&d.add(b.replace(/[\s\p{P}]+/gu,""))}}return d}function X(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){let d=/^(#{2,3})\s+(.+)$/u.exec(b[a].trim());d&&(c.length>0&&(c[c.length-1].end=a),c.push({level:d[1].length,title:d[2].trim(),normalized:d[2].trim().replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[\s::、。,,;;/|—-]/gu,""),start:a,end:b.length}))}if(0===c.length)return a;let d=[];for(let a=0;a<c.length;a+=1){let e=c[a];if(2!==e.level)continue;let f=c.findIndex((b,c)=>c>a&&2===b.level),g=f>=0?c[f].start:b.length,h=c.find(a=>a!==e&&3===a.level&&a.normalized===e.normalized&&a.start>e.start&&a.start<g);if(!h)continue;let i=W(b,e.start+1,e.end),j=W(b,h.start+1,h.end),k=[...i].filter(a=>j.has(a)).length,l=Math.min(i.size,j.size);if((l>0?k/l:0)>=.5){let a=b.slice(e.start+1,e.end).join("\n").length>=b.slice(h.start+1,h.end).join("\n").length?h:e;d.push({start:a.start,end:a.end,downgrade:!1})}else d.push({start:e.start,end:e.start,downgrade:!0})}if(0===d.length)return a;let e=[];for(let a=0;a<b.length;a+=1){if(d.some(b=>!b.downgrade&&a>=b.start&&a<b.end))continue;let c=d.find(b=>b.downgrade&&b.start===a);e.push(c?b[a].replace(/^##\s+/,"### "):b[a])}return e.join("\n").replace(/\n{3,}/gu,"\n\n")}function Y(a){let b=a.split(/\r?\n/u),c=[],d=[],e=[],f=()=>{if(0===e.length)return;let a=e.join("\n").trim();if(e=[],!a)return;let b=a.replace(/[\s\p{P}]+/gu,"");if(!(b.length>=24&&d.includes(b)))for(let e of(d=[...d,b].slice(-3),a.split(/\n/u)))c.push(e)};for(let a of b){let b=a.trim();if(/^#{1,6}\s/u.test(b)){f(),c.push(a),d=[];continue}if(""===b){f(),c.push(a);continue}e.push(a)}return f(),c.join("\n")}function Z(a){return[...new Set([...a.matchAll(/^###\s+(.+)$/gmu)].map(a=>(0,f.GQ)(a[1]||"")).filter(a=>a.length>=2&&a.length<=80).filter(a=>!s(a)).filter(a=>!/^\d+(?:\.\d+){2,}\s+/u.test(a)))]}function $(a){let b=a.split(/\r?\n/u),c="",d=0;return b.map(a=>{let b=/^\*\*([^*]{2,40}表)\*\*\s*$/u.exec(a.trim());if(b&&c)return d+=1,`#### ${c}.${d} ${(0,f.GQ)(b[1]||"")}`;let e=/^###\s+(\d+\.\d+)\s+.+$/u.exec(a.trim());if(e)return c=e[1],d=0,a;if(/^##\s+/u.test(a.trim()))return c="",d=0,a;let g=/^(#{4,5})\s+(.+)$/u.exec(a.trim());if(g){if(!c)return"#####"===g[1]?a.replace(/^\s*#####/u,"####"):a;let b=(g[2]||"").trim(),e=(0,f.GQ)(b.replace(/^\d+\.\d+\.\d+\s+/u,""));return e?(d+=1,`#### ${c}.${d} ${e}`):a}return a}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}function _(a){let b=[],c="";for(let d of a.split(/\r?\n/u)){let a=d.trim(),e=/^###\s+(\d+\.\d+)\s+.+$/u.exec(a);if(e){c=e[1];continue}if(/^##\s+/u.test(a)&&(c=""),!c)continue;let g=/^####\s+(.+)$/u.exec(a);if(g){let a=(g[1]||"").trim();RegExp(`^${aj(c)}\\.\\d+\\s+\\S`,"u").test(a)||b.push({level:"warning",message:`三级小节缺少 ${c}.x 编号:${(0,f.GQ)(a)}`,suggestion:"三级小节必须使用“#### 章号.节号.序号 标题”。"})}}return b}function aa(a){let b=a.replace(/\*+/gu,"").trim();if(s(b))return"";let c=(0,f.GQ)(b).replace(/^[-—–]\s*/u,"").trim();return s(c)||/^(?:雨季|冬季|高温|台风|大风)(?:[、,](?:雨季|冬季|高温|台风|大风))*等特殊气候$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风)$/u.test(c)?"":c}function ab(a=[]){return[...new Set(a.map(aa).filter(a=>a.length>=2))]}function ac(a){return["## 目录","",...a.flatMap((a,b)=>{let c=ab(a.sections||[]);return[`${(0,f.tb)(b,a.title)}`,...c.map((a,c)=>` ${function(a,b,c){let d=(0,f.GQ)(c);return!function(a){let b=/^\s*(\d+)\.(\d+)[..、]?\s+(.+)$/u.exec(a);return!!b&&(0,f.GQ)(b[3]||"").trim()===(0,f.GQ)(a).trim()}(c)?`${a+1}.${b+1} ${d}`:d}(b,c,a)}`)]})].join("\n")}function ad(a){return a.replace(/<div class="document-cover">[\s\S]*?<\/div>\s*(?:<div class="page-break"><\/div>\s*)?/giu,"").replace(/^#\s+.+\n{1,2}/u,"")}function ae(a){return a.replace(/^##\s+目录\s*$[\s\S]*?(?=\n<div class="page-break"><\/div>|\n##\s+第[一二三四五六七八九十百千万\d]+章|\n##\s+)/gmu,"").replace(/^<div class="page-break"><\/div>\s*(?=##\s+第[一二三四五六七八九十百千万\d]+章)/gmu,"")}function af(a){let b=!1;return a.replace(/^##\s+目录\s*$[\s\S]*?(?=\n<div class="page-break"><\/div>|\n##\s+)/gmu,a=>b?"":(b=!0,a)).replace(/\n{3,}/gu,"\n\n").trim()}function ag(a,b){let c=af(a);b.forEach((a,b)=>{let d=(0,f.GQ)(a.title),e=RegExp(`^##\\s+(?:第[一二三四五六七八九十百千万\\d]+章\\s*)?${aj(d)}\\s*$`,"mu");c=e.test(c)?c.replace(e,`## ${(0,f.tb)(b,a.title)}`):c});let d=c.split(/\r?\n/u),g=-1,h=0,i=0,j="",k="",l=!1,m=new Set,n=a=>{let c=b[g]?.sections||[],d=al(a);return c.findIndex(a=>al(a)===d)},o=(a,c)=>{let d=aa(a);if(!d||s(a)||s(d))return"";let e=n(d),l=b[g]?.sections||[],o=e>=0?e+1:h+1,p=e>=0?al(l[e]):al(d);return m.has(p)?(h=o,j=c||`${g+1}.${h}`,i+=1,`#### ${g+1}.${h}.${i} ${d}`):(h=o,i=0,j=c||`${g+1}.${h}`,k=e>=0?(0,f.GQ)(l[e]):d,m.add(p),`### ${g+1}.${h} ${e>=0?(0,f.GQ)(l[e]):d}`)},p=(a,c)=>{let d=al(a),e=n(a)>=0&&!m.has(d);return!h||c&&c!==j&&(0===(b[g]?.sections||[]).length||e)?o(a,c):(i+=1)<=4?`#### ${g+1}.${h}.${i} ${a}`:`**${a}**`},q=!1;return d.map(a=>{let c=a.trim();if(/^##\s+目录\s*$/u.test(c))return q=!0,a;if(q&&/^<div class="page-break"><\/div>$/u.test(c))return q=!1,a;if(q)return a;if(/^##\s+第[一二三四五六七八九十百千万\d]+章\s+/u.test(c))return g+=1,h=0,i=0,j="",k="",l=!1,m=new Set,a;let d=/^##\s+第[一二三四五六七八九十百千万\d]+节\s+(.+)$/u.exec(c);if(g>=0&&d)return l=!0,o(d[1]||"");let r=/^##\s+\d+[..、]\s+(.+)$/u.exec(c);if(g>=0&&r)return l=!0,o(r[1]||"");let s=/^##\s+(\d+)\.(\d+)\s+(.+)$/u.exec(c);if(g>=0&&s)return l=!0,o(s[3]||"",`${s[1]}.${s[2]}`);let t=/^##\s+(.+)$/u.exec(c);if(g>=0&&t){let b=(0,f.GQ)(t[1]||"");return/^本章目录$/u.test(b)?"":/^附录/u.test(b)?a:(l=!0,o(b))}let u=/^###\s+(?:(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(g>=0&&u)return l=!0,o(u[3]||"",u[1]&&u[2]?`${u[1]}.${u[2]}`:void 0);let v=/^####\s+(\d+)\.(\d+)(?!\.)\s+(.+)$/u.exec(c);if(g>=0&&v){let a=(0,f.GQ)(v[3]||""),c=e.V.test(k),d=0===(b[g]?.sections||[]).length,h=n(a)>=0;return!l&&!c&&(h||d)?o(v[3]||"",`${v[1]}.${v[2]}`):p(a,j)}let w=/^####\s+(?:(\d+)\.(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(g>=0&&w){let a=w[1]&&w[2]?`${w[1]}.${w[2]}`:j;return p((0,f.GQ)(w[4]||""),a)}return a}).filter(a=>""!==a).join("\n")}function ah(a,b){let c=a.replace(/^\*\*([^*\n]{4,40})\*\*\s*$/gmu,(a,b)=>{let c=b.trim();return/[::。!!??,,、]$/u.test(c)||/^(?:注意|提示|备注|警告|说明)/u.test(c)?a:`#### ${c}`}).replace(/承包人案/gu,"方案").replace(/承包人法(?=[::])/gu,"施工方法").replace(/承包人法/gu,"方法").replace(/(?:本|我)施工方/gu,"我公司").replace(/(?:本|我)投标人/gu,"我公司").replace(/高度重视/gu,"严格落实").replace(/重中之重/gu,"关键控制事项");for(let a of b?.forbiddenTerms||[])a&&/^(?:报价明细表|最高投标限价|招标控制价)$/u.test(a)&&(c=c.split(/\r?\n/u).filter(b=>!RegExp(aj(a),"u").test(b)).join("\n"));return c}function ai(a,b){if(!b)return ah(a);let c=function(a,b){let c=a;for(let a of b?.requiredTables||[])c=function(a,b){if(/项目基本信息/u.test(b)&&(/项目基本信息/u.test(a)||/\|\s*信息项\s*\|\s*内容\s*\|/u.test(a)||/\|\s*项目名称\s*\|[^\n|]+\|/u.test(a))||RegExp(aj(b),"u").test(a))return a;let c=/项目基本信息/u.test(b)?"":`**${b}**
53
+
54
+ | 控制项目 | 控制内容 | 执行要求 | 复核要求 |
55
+ |---|---|---|---|
56
+ | ${b.replace(/表$/u,"")} | 依据招标文件、施工图设计文件、工程量清单和施工组织安排填写 | 实施前完成专业复核、审批确认和交底闭环 | 不采用无依据的工程实体参数 |`;if(!c)return a;let d=/项目基本信息|概况/u.test(b)?/工程概况|项目概况/u:/应急/u.test(b)?/主要施工方法|应急|安全/u:/材料|物资/u.test(b)?/物资|材料/u:/机械|设备/u.test(b)&&!/检测|试验/u.test(b)?/机械|设备/u:/检测|试验/u.test(b)?/质量|检测|试验/u:/劳动力/u.test(b)?/劳动力/u:/进度|工期/u.test(b)?/工期|进度/u:void 0,e=[...a.matchAll(/^##\s+(.+)$/gmu)],f=e.find(a=>d?.test(a[1]||""))||e[0];if(!f?.index&&f?.index!==0)return`${a.trim()}
57
+
58
+ ${c}`;let g=e.find(a=>(a.index||0)>(f.index||0)),h=g?.index??a.length;return`${a.slice(0,h).trimEnd()}
59
+
60
+ ${c}
61
+
62
+ ${a.slice(h).trimStart()}`}(c,a);return c}(a,b);for(let a of(b.forbidCover&&(c=ad(c)),b.forbidToc&&(c=ae(c)),b.preferredTerms||[]))if(a.from&&a.from!==a.to&&!(a.from.length<2)){if("施工方"===a.from){c=c.replace(/施工方(?!法|案|式|针|向|面)/gu,a.to);continue}c=c.replace(RegExp(aj(a.from),"gu"),a.to)}return(c=ah(c,b)).replace(/\n{3,}/gu,"\n\n").trim()}function aj(a){return a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function ak(a){return/\|[^\n]+\|\s*\n\s*\|\s*:?-{3,}:?\s*\|/u.test(a)}function al(a){return(0,f.GQ)(a.replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").replace(/[()]/gu,a=>"("===a?"(":")").replace(/[\s::.。;;,,、]+$/gu,"").replace(/的(?=保障体系|管理体系|控制体系|措施|方案|计划|要求)/gu,"").replace(/[\s()()::.。;;,,、-]/gu,"").trim()}function am(a){return a.chapters.map(a=>[`- ${a.title}`,a.sections?.length?` 规划小节:${a.sections.join("、")}`:"",a.tableSections?.length?` 表格小节:${a.tableSections.join("、")}`:"",a.tableRequirements?.length?` 表格内容要求:${a.tableRequirements.join(";")}`:"",a.tablePlans?.length?` 结构化表格规划:${a.tablePlans.map(a=>`${a.title}(${a.fields.map(a=>a.name).join("/")})`).join(";")}`:""].filter(Boolean).join("\n")).join("\n")}async function an(a,b,c){if(!b)return[];let d=[],e=[...a.matchAll(m)].map(a=>(a[0]||"").replace(/^#{2,6}\s+/u,"").trim()).filter(Boolean),g=RegExp(m.source,"mu"),h=[...a.matchAll(/^#{2,6}\s+(.+)$/gmu)].map(a=>({raw:a[0]||"",title:a[1]?.replace(/^\d+(?:\.\d+)*[、..\s]*\s*/u,"").trim()||""})).filter(a=>a.title&&!g.test(a.raw)&&o.test(a.title));if(h.length>0){let a=await r(c),b=await a(h.map(a=>a.title));h.forEach((a,c)=>{b[c]&&e.push(a.title)})}e.length>0&&d.push({level:"error",message:`正文存在疑似提示词指令标题:${e.slice(0,5).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题。"});let i=/document-cover|^#\s+/mu.test(a),j=/^##\s+目录\s*$/mu.test(a);"required"!==b.coverPolicy||i||d.push({level:"error",message:"正文缺少提示词要求的封面",suggestion:"用户明确要求封面时,应保留封面内容。"}),"required"!==b.tocPolicy||j||d.push({level:"error",message:"正文缺少提示词要求的目录",suggestion:"用户明确要求目录时,应基于最终合法正文标题生成目录。"}),b.forbidCover&&i&&d.push({level:"error",message:"正文残留封面内容",suggestion:"总控提示词禁止封面时,正式正文必须直接进入第一章。"}),b.forbidToc&&j&&d.push({level:"error",message:"正文残留目录内容",suggestion:"总控提示词禁止目录时,正式正文不得生成目录或导航页。"});let k=(b.requiredTables||[]).filter(b=>!RegExp(aj(b),"u").test(a)||!function(a,b){let c=a.search(RegExp(aj(b),"u"));return!(c<0)&&ak(a.slice(c,Math.min(a.length,c+1600)))}(a,b));k.length>0&&d.push({level:"error",message:`正文缺少总控提示词要求的正式表格:${k.join("、")}`,suggestion:"请在对应章节补齐表名、表头、分隔线和数据行,不得只写表名或空表。"});let l=(b.requiredKeywords||[]).filter(b=>b&&!RegExp(aj(b),"u").test(a));l.length>0&&d.push({level:"warning",message:`正文缺少提示词要求覆盖的关键词:${l.join("、")}`,suggestion:"请在相关章节自然补齐这些要点,避免堆砌关键词。"});let n=(b.forbiddenPatterns||[]).filter(b=>b&&RegExp(aj(b),"u").test(a));n.length>0&&d.push({level:"warning",message:`正文出现提示词禁止内容:${n.join("、")}`,suggestion:"请删除或替换为正式交付表述。"});let p=(b.forbiddenTerms||[]).filter(b=>b&&!/^(?:工程造价|造价|报价|投标报价|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|兜底)$/u.test(b)&&RegExp(aj(b),"u").test(a));p.length>0&&d.push({level:"warning",message:`正文残留总控提示词禁止词:${p.join("、")}`,suggestion:"请改为正式交付语言,删除后台话术、第三人称和口号式表达。"});let q=b.exactHeadings||[];if(q.length>0){let c=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>(0,f.GQ)(a[1]||"")).filter(a=>("目录"!==a||"required"!==b.tocPolicy)&&!/^附录/u.test(a)),e=q.map(f.GQ),g=q.filter(a=>!c.includes((0,f.GQ)(a))),h=b.forbidExtraHeadings?c.filter(a=>!e.includes((0,f.GQ)(a))):[];g.length>0&&d.push({level:"error",message:`正文缺少提示词指定一级章节:${g.join("、")}`,suggestion:"请严格按用户提示词 OUTLINE 输出一级章节。"}),h.length>0&&d.push({level:"warning",message:`正文出现提示词未允许的一级章节:${h.join("、")}`,suggestion:"请检查是否为正文内部层级误升;如不影响指定 OUTLINE 完整性,可在后续排版中并入所属章节。"})}let s=(b.forbiddenSubjects||[]).filter(b=>b&&RegExp(aj(b),"u").test(a));s.length>0&&d.push({level:"warning",message:`正文残留禁用主体表达:${s.join("、")}`,suggestion:"请统一改为用户提示词指定的表达主体。"});let t=a.replace(/\s/gu,"").length;return b.minChars&&t<Math.floor(.95*b.minChars)&&d.push({level:"warning",message:`正文长度低于提示词要求:当前 ${t} 字,要求不少于 ${b.minChars} 字`,suggestion:"请按章节深度扩写,但不得编造资料外事实。"}),d.map(a=>"warning"===a.level&&/提示词|禁止|禁用|必含关键词|必需表格|主体表达/u.test(a.message)?{...a,level:"error",severity:a.severity||"blocker"}:a)}function ao(a,b){let c=[];for(let d of b.chapters){let b=function(a,b){let c=(0,f.YZ)(b),d=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>({index:a.index||0,raw:a[0],title:(0,f.YZ)(a[1]||"")})),e=d.find(a=>a.title===c);if(!e)return;let g=d.find(a=>a.index>e.index&&a.title!==c),h=e.index+e.raw.length,i=g?.index??a.length;return{start:e.index,end:i,heading:e.raw,body:a.slice(h,i)}}(a,d.title);if(!b){c.push({level:"error",message:`${d.title} 正文缺少章节标题`,suggestion:"请重新生成,确保模板章节完整输出。"});continue}let e=b.heading+b.body;d.tableSections?.length&&!ak(e)&&c.push({level:"warning",message:`${d.title} 缺少必要的正式表格`,suggestion:"建议按模板 tableSections/tableRequirements 在对应小节补充正式 Markdown 表格。"})}return c}function ap(a){let b=[...a.matchAll(/^##\s+.+$/gmu)];if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,f=b[d+1]?.index??a.length,g=a.slice(e,f),h=[...g.matchAll(/^###\s+(\d+)\.(\d+)\s+.+$/gmu)];if(h.length<2){c+=g;continue}let i=h[0].index||0;c+=g.slice(0,i)+h.map((a,b)=>{let c=a.index||0,d=h[b+1]?.index??g.length;return{order:Number(a[2]||b+1),content:g.slice(c,d).trim()}}).sort((a,b)=>a.order-b.order).map(a=>a.content).join("\n\n")+"\n\n"}return c.replace(/\n{3,}/gu,"\n\n").trim()}function aq(a,b,c={}){let d=ai(i(a,!!c.forbidDrawingImages),c.promptRules),e=ap(function(a){let b=[...a.matchAll(/^##\s+(.+)$/gmu)].filter(a=>/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(a[1]||""));if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,g=b[d+1]?.index??a.length,h=a.slice(e,g),i=[...h.matchAll(/^###\s+(\d+)\.(\d+)\s+(.+)$/gmu)];if(1!==i.length){c+=h;continue}let j=i[0],k=(0,f.GQ)((b[d][1]||"").replace(/^第[一二三四五六七八九十百千万\d]+章\s*/u,"")),l=(0,f.GQ)(j[3]||""),m=j.index||0,n=[...h.slice(m).matchAll(/^####\s+\d+\.\d+\.\d+\s+(.+)$/gmu)];if(n.length<2||!U(l,k)){c+=h;continue}let o=h.slice(0,m).trimEnd(),p=h.slice(m),q=p.search(/^####\s+/mu),r=q>0?p.slice(j[0].length,q).trim():"",s=n.map((a,b)=>{let c=a.index||0,e=n[b+1]?.index??p.length,g=(0,f.GQ)(a[1]||""),h=p.slice(c+a[0].length,e).trim(),i=`### ${d+1}.${b+1} ${g}`;return`${i}
63
+
64
+ ${0===b&&r?`${r}
65
+
66
+ `:""}${h}`.trim()}).join("\n\n");c+=`${o}
67
+
68
+ ${s}
69
+
70
+ `}return c.replace(/\n{3,}/gu,"\n\n").trim()}($(M(c.promptRules?"required"===c.promptRules.coverPolicy?"required"===c.promptRules.tocPolicy?d:ae(d):"required"===c.promptRules.tocPolicy?ad(d):ad(ae(d)):d)))),g=function(a,b){let c=ag(af(ae(a)),b),d=[...c.matchAll(/^##\s+(.+)$/gmu)];return b.map((a,e)=>{let g=(0,f.tb)(e,a.title),h=d.find(b=>U(b[1]||"",a.title)||U(b[1]||"",g));if(!h||void 0===h.index)return a.sections||[];let i=d.find(a=>(a.index||0)>(h.index||0)&&b.some(b=>U(a[1]||"",b.title))),j=Z(c.slice(h.index,i?.index??c.length));return j.length>0?j:a.sections||[]})}(e,b),h=b.map((a,b)=>({...a,sections:g[b]?.length?g[b]:a.sections||[]}));return{markdown:ai(ap($(M(c.promptRules?.tocPolicy==="required"?function(a,b){let c=ag(a,b),d=ae(c),e=[...d.matchAll(/^##\s+(.+)$/gmu)],f=ac(b.map(a=>{let c=e.find(b=>U(b[1]||"",a.title));if(!c||void 0===c.index)return a;let f=e.find(a=>(a.index||0)>(c.index||0)&&b.some(b=>U(a[1]||"",b.title))),g=d.slice(c.index,f?.index??d.length),h=a.sections?.length?void 0:Z(g);return h?.length?{...a,sections:h,content:g}:{...a,content:g}})),g=/^##\s+目录\s*$/mu.exec(c);if(g?.index!==void 0){let a=g.index+g[0].length,b=c.slice(a).search(/\n##\s+第[一二三四五六七八九十百千万\d]+章/u),d=[...c.slice(a).matchAll(/\n<div class="page-break"><\/div>/gu)],e=d[0]?.index??(b>=0?b:c.length-a),h=a+e;return`${c.slice(0,g.index)}${f.trim()}${c.slice(h)}`.replace(/\n{3,}/gu,"\n\n")}let h='<div class="page-break"></div>',i=c.indexOf(h);if(i>=0){let a=i+h.length;return`${c.slice(0,a)}
71
+
72
+ ${f}
73
+
74
+ ${h}
75
+
76
+ ${c.slice(a).trimStart()}`}return`${f}
77
+
78
+ <div class="page-break"></div>
79
+
80
+ ${c}`}(e,h):ag(e,h)))),c.promptRules),chapters:h}}function ar(a,b={}){let c=a.chapters.map(a=>({...a,sections:ab(a.sections||[])})),d=c.map((a,b)=>(function(a,b){let c=`## ${(0,f.tb)(b,a.title)}`,d=M(a.content);var e=/^##\s+.+$/mu.test(d)?d.replace(/^##\s+.+$/mu,c):`${c}
81
+
82
+ ${d}`,g=a.title;let h=e.split(/\r?\n/u),i=!1;return h.filter((a,b)=>{let d=a.trim(),e=/^##\s+(.+)$/u.exec(a.trim())?.[1]||"";if(e){if(U(e,c))return!i&&(i=!0,!0);if(b>0&&U(e,g))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&U(d,g))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()})(a,b)),e=d.filter(Boolean).join("\n\n"),g=c.map((a,b)=>{if(a.sections?.length)return a;let c=ag(d[b]||"",[a]),e=Z(c);return e.length?{...a,sections:ab(e),content:c}:{...a,content:c}});return aq([function(a,b){let c=b||{},d=(...a)=>{let b=a.find(a=>!!c[a]);return b?String(c[b]).split("(来源")[0].trim():""},e=d("工程名称","项目名称","工程名"),f=d("建设单位","建设单位名称","发包人"),g=d("施工单位","承包单位","承包人"),h=d("建设地点","工程地点","项目地址"),i=d("建设规模","建筑面积","工程规模"),j=[["工程名称",e||a],["建设单位",f],["编制单位",g||f],["建设地点",h],["建设规模",i],["计划工期",d("计划工期","工期","总工期")],["质量标准",d("质量标准","质量目标","质量等级")]].filter(a=>!!a[1]);return['<div class="document-cover">',`# ${a}`,j.length>0?["","| 项目 | 内容 |","| --- | --- |",...j.map(a=>`| ${a[0]} | ${a[1].replace(/\|/gu,"/")} |`)].join("\n"):"","</div>"].filter(Boolean).join("\n")}(a.title,a.facts),'\n<div class="page-break"></div>\n',ac(g),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}},70208:(a,b,c)=>{c.d(b,{GQ:()=>o,Ui:()=>m,YZ:()=>p,bl:()=>l,cs:()=>n,effectiveTemplateChapters:()=>s,mq:()=>g,ob:()=>h,tb:()=>q});var d=c(58965),e=c(23500);function f(a){let b=a.trim(),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function g(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(b)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(b)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(b)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(b)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(b)||/^\d+\s*项/u.test(b)||/^\d+(?:[((]\d+[))])?\s*目/u.test(b)||/^\d+\s*对(?:与|于)/u.test(b)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(b)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(b)||/^\d{1,4}[^,,。;\s]{1,6}[,,]/u.test(b)||/^\d{1,2}[一-龥]{2,10}$/u.test(b)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(b)||/[((【[《]$/u.test(b)||/[((【[《][^))】]》]*$/u.test(b)||/以下简/u.test(b)||/^\d{1,4}\s*[a-zA-Z]/u.test(b)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(b)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(b)||/^\d{1,3}\s*款/u.test(b)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(b))||function(a){let b=a.replace(/\s+/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(b)}function h(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))||g(b)}function i(a){return 0===a.trim().length||h(a)}let j="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",k=RegExp(`<\\s*${j}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${j}\\s*>`,"giu");function l(a){return RegExp(`^\\s*<\\s*${j}(?:\\s[^>]*)?>`,"iu").test(a)}function m(a){return RegExp(`^\\s*<\\/\\s*${j}\\s*>`,"iu").test(a)}function n(a){for(let b of a){let a=function(a,b,c){let e=[];for(let g of function(a,b){k.lastIndex=0;let c=[...a.matchAll(k)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>f(a)).filter(a=>!i(a))}(g))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!i(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function o(a){let b=a.replace(/^#+\s*/u,"").trim(),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function p(a){return o(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function q(a,b){let c=o(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function r(a,b){let c=new Set;return a.filter(a=>{let d=p(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function s(a,b,c){return!b||c?.preserveExplicitOutline?r([...a.chapters],{...c,template:a}):r([...a.chapters].map(a=>{let c=o(a.title),d=b.chapterRules.find(b=>b.id===a.id||o(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>t,OF:()=>p,Pc:()=>r,QO:()=>q,QR:()=>o,T3:()=>n,eE:()=>k,ks:()=>w,qy:()=>v});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144);function j(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function k(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function l(a){let b=k(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function m(a){let b=[...new Set(k(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/(?:GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO|IEC)\s*[\w./-]*\d/u.test(a),e=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d||e&&/\d/u.test(a)&&a.length<=260}))].map(a=>(function(a){if(a.length<=160)return a;let b=a.match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|(?:计划工期|合同工期|合同估算价|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准)[^。;;,,]{0,40}|(?:GB|JGJ|CJJ|DB|CECS|ISO|IEC)\s*\/?\s*T?\s*[\w./-]*\d/gu);return b&&b.length>0?[...new Set(b)].join(";"):a.slice(0,160)})(a)).filter(Boolean);return(0,i.Cr)([...new Set(b)],a=>(0,i.Ox)(a),{},"key-fact-lines").selected.join("\n")}function n(a,b){let c=Math.max(400,Math.floor(b)),d=k(a);if(d.length<=c)return d;let e=d.split("\n"),f=[{re:/基坑底标高|换填底标高|整平标高|开挖深度|放坡系数|支护形式|坡率/u,value:20},{re:/标高/u,value:10},{re:/[±+]\s*0[.,]0{2,}/u,value:8},{re:/[±+-]\s*\d+\.\d{2,}/u,value:3}],g=e.map((a,b)=>{let c=0;for(let{re:b,value:d}of f)if(b.test(a)){c=d;break}return{line:a,index:b,value:c}}).filter(a=>a.value>0);if(!g.length)return d.slice(0,c);g.sort((a,b)=>b.value-a.value||a.index-b.index);let h=d.slice(0,Math.min(300,Math.max(80,Math.floor(.22*c)))).trimEnd(),i=`(超长证据参数窗口提取:${g.length} 行参数命中,尾部关键参数已前置展示)`,j=c-h.length-i.length-4,l=[],m=new Set,n=Math.max(50,Math.floor(.15*c));for(let{line:a,index:b}of g){if(j<=30)break;if(m.has(b))continue;let c=b>0&&/图纸节点:/u.test(e[b-1])?e[b-1].slice(0,n):"",d=[c,a].filter(Boolean).join("\n"),f=d.length>j?d.slice(0,j):d;l.push(f),j-=f.length+1,m.add(b),c&&m.add(b-1)}let o=l.length?l.join("\n"):d.slice(0,j+h.length),p=`${h}
21
83
  ${i}
22
84
  ${o}`;return p.length>c?p.slice(0,c):p}function o(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,g=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,h=Number.isFinite(b.maxItemsPerFile)&&b.maxItemsPerFile>0?Math.floor(b.maxItemsPerFile):void 0,i=function(a,b,c){let f=new Set,g=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=k(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=l(e);if(e.length>20&&f.shouldUse)return e;let g=m(e);return g.length>20?`资料参数行摘要:
23
85
  ${g}`:e.length>80&&f.noiseScore<.9?e:[".pdf",".doc",".docx",".xls",".xlsx",".png",".jpg",".jpeg",".webp",".dwg"].includes(c)?`该资料为${c.replace(".","").toUpperCase()}格式附件,仅作为内部事实提取依据;正式正文不得引用文件名。`:e}(a.filePath,a.content),c=l(b);return{item:{...a,content:b,score:a.score*(1+c.factDensity)*(1-.45*c.noiseScore)},quality:c}}),h=g.filter(a=>a.quality.shouldUse||/附件,仅作为内部事实提取依据/u.test(a.item.content)),i=Number.isFinite(b)&&b>0?Math.ceil(b):void 0,j=(h.length>=Math.min(3,a.length)?h:g).sort((a,b)=>b.item.score-a.item.score).filter(a=>{let b=function(a){let b=a.content.replace(/\s+/gu," ").trim();return`${a.filePath}:${a.sectionTitle||""}:${(0,e.createHash)("sha1").update(b).digest("hex")}`}(a.item);return!f.has(b)&&(f.add(b),!0)}),n=i?j.slice(0,i):j;if(c){let b=g.reduce((a,b)=>a+b.quality.noiseScore,0),d=g.reduce((a,b)=>a+b.quality.factDensity,0);c.evidence.raw+=a.length,c.evidence.used+=n.length,c.evidence.filteredNoise+=Math.max(0,g.length-h.length),c.evidence.avgNoiseScore=g.length?Number((b/g.length).toFixed(3)):0,c.evidence.avgFactDensity=g.length?Number((d/g.length).toFixed(3)):0}return n.map(a=>a.item)}(a,void 0,c),j=b.preservePinned?i.filter(a=>"pinned-evidence"===a.source||"bound-file"===a.source||"required-fact-evidence"===a.source):[],p=i.filter(a=>!j.includes(a)),q=[],r=new Map,s=0,t=(a,b=!1)=>{if(f&&q.length>=f)return;let c=r.get(a.filePath)||0;if(!b&&void 0!==h&&c>=h)return;let d=k(a.content);g&&d.length>4e3&&(d=n(d,Math.min(12e3,g)));let e=s+d.length;g&&q.length>0&&e>g||(q.push({...a,content:d}),r.set(a.filePath,c+1),s=e)};for(let a of j)t(a,!0);for(let a of p)t(a);return c&&(c.evidence.budgetDropped+=Math.max(0,i.length-q.length)),q}function p(a,b=0){return`- ${j(a,b)}:${k(a.content).replace(/\s+/gu," ").slice(0,260)}`}function q(a,b){let c=new Map;for(let e of b){let b=function(a,b){let c=d.extname(a).toLowerCase();return"drawing"===b||/地图|map|drawing|design/iu.test(a)?"map":[".png",".jpg",".jpeg",".webp"].includes(c)?"image":"table"===b?"table":[".xls",".xlsx",".csv"].includes(c)?"spreadsheet":[".pdf",".doc",".docx"].includes(c)?"document":c&&![".md",".txt"].includes(c)?"attachment":"text"}(e.filePath,e.processingType),f=c.get(e.filePath)||{filePath:e.filePath,kind:b,roleId:e.roleId,processingType:e.processingType,score:e.score,semanticTitle:function(a,b){let c=d.basename(a).replace(/\.[^.]+$/u,"");return"map"===b?c.replace(/^地图-/u,"").replace(/-完整地图$/u,"完整地图"):"image"===b?c.replace(/-/gu," "):"spreadsheet"===b?`${c}(结构化表格)`:"document"===b?`${c}(文档附件)`:c}(e.filePath,b),contentUse:"map"===b?"作为视觉/地图证据,用于说明空间关系、区域划分、点位、路线或布局。":"image"===b?"作为图片证据,用于视觉说明、参考图或章节配图。":"spreadsheet"===b||"table"===b?"作为表格/数据证据,用于字段对比、明细、数量和结构化结论。":"document"===b?"作为 PDF/Word 文档证据,用于提取规范、事实、说明、约束和附件来源。":"attachment"===b?"作为附件证据,用于提供补充来源、文件级约束或可追溯引用。":"作为文本证据,用于事实抽取、章节论据和来源引用。",relatedFacts:[],relatedChapters:[],snippets:[]};f.score=Math.max(f.score,e.score),f.relatedFacts=[...new Set([...f.relatedFacts,...function(a,b){let c=`${a.filePath}
24
- ${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(e,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=e.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),c.set(e.filePath,f)}let e=[...c.values()].sort((a,b)=>b.score-a.score),f={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of e)f[a.kind].push(a);let g=[`绑定材料包:文本片段 ${b.length} 条、结构化材料 ${e.length} 个。`,`材料类型分布:文本 ${f.text.length}、文档 ${f.document.length}、表格/数据 ${f.spreadsheet.length+f.table.length}、图片 ${f.image.length}、视觉/地图 ${f.map.length}、其他 ${f.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:b,resources:e,byKind:f,summary:g}}function r(a,b=8e3,c=36e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=Number(process.env.DOCUMENT_EVIDENCE_BUDGET_CEILING);return Math.max(b,Math.min(Number.isFinite(e)&&e>0?Math.floor(e):c,Math.ceil(12*d)))}function s(a,b,c,d){let e=b.trim();if(e){if(!Number.isFinite(d)||!d||c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}}function t(a,b){let c=`${a.sectionTitle||""}
86
+ ${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(e,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=e.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),c.set(e.filePath,f)}let e=[...c.values()].sort((a,b)=>b.score-a.score),f={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of e)f[a.kind].push(a);let g=[`绑定材料包:文本片段 ${b.length} 条、结构化材料 ${e.length} 个。`,`材料类型分布:文本 ${f.text.length}、文档 ${f.document.length}、表格/数据 ${f.spreadsheet.length+f.table.length}、图片 ${f.image.length}、视觉/地图 ${f.map.length}、其他 ${f.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:b,resources:e,byKind:f,summary:g}}function r(a,b=8e3,c=24e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=Number(process.env.DOCUMENT_EVIDENCE_BUDGET_CEILING),f=Number.isFinite(e)&&e>0?Math.floor(e):c,g=Number(process.env.DOCUMENT_EVIDENCE_BUDGET_RATIO);return Math.max(b,Math.min(f,Math.ceil(d*(Number.isFinite(g)&&g>0?g:8))))}function s(a,b,c,d){let e=b.trim();if(e){if(!Number.isFinite(d)||!d||c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}}function t(a,b){let c=`${a.sectionTitle||""}
25
87
  ${a.content}`,d=a.score;for(let e of(g.sv.test(c)&&(d+=8),/计划工期|合同工期|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准|招标范围/u.test(c)&&(d+=10),b))e&&(c.includes(e)||(0,h.Lk)(a,e))&&(d+=6);return/GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO/iu.test(c)&&(d+=3),d}function u(a,b,c,d){let e={chars:0,omitted:0},f=[],g=new Set,h=new Map,i=[...a].sort((a,b)=>d(b)-d(a));for(let a of i){if(h.has(a.filePath))continue;let d=f.length;s(f,c(a,f.length),e,b),f.length>d&&(h.set(a.filePath,1),g.add(a))}for(let a of i){if(g.has(a))continue;let d=h.get(a.filePath)||0;if(d>=6)continue;let i=f.length;s(f,c(a,f.length),e,b),f.length>i&&(h.set(a.filePath,d+1),g.add(a))}return{lines:f,omittedItems:i.filter(a=>!g.has(a)),omitted:e.omitted}}function v(a,b,c,d=!1){let e=d?[]:[...new Set(a.textEvidence.flatMap(a=>m(a.content).split("\n").filter(Boolean)))],g=b?Math.floor(.6*b):void 0,h=e,l=0;if(g&&h.join("\n").length>g){let a=(0,i.Cr)(h,a=>(0,i.Ox)(a),{maxChars:g},"t0-fact-lines");l=a.dropped.length,h=a.selected}let o=h.length?`【关键事实层——来自绑定材料的数值、参数与标准编号,正文必须原样落位,不得改写、不得编造层内没有的数值】
26
88
  ${h.map(a=>`- ${a}`).join("\n")}${l>0?`
27
89
  (事实行总量超出预算上限,已按重要性保留前 ${h.length} 行)`:""}`:"",p=b?b-o.length:void 0;void 0!==p&&void 0!==b&&p<Math.min(2e3,b)&&(p=Math.min(2e3,b));let q=u(a.resources,p?Math.floor(.35*p):void 0,(a,b)=>[`- 资料:${j(a,b)}`,` 资料类型:${a.kind}`,` 正文用途:${a.contentUse}`,a.relatedFacts.length?` 可用事实方向:${a.relatedFacts.join("、")}`:"",a.snippets.length?` 可用内容:${a.snippets.map(k).filter(Boolean).join(" / ")}`:""].filter(Boolean).join("\n"),a=>a.score),r=u(a.textEvidence,p?Math.floor(.65*p):void 0,(a,b)=>{let c=k(a.content),d=c.length>1200?n(c,1200):c;return`${j(a,b)}
@@ -31,37 +93,23 @@ ${h.map(a=>`- ${a}`).join("\n")}${l>0?`
31
93
  ${d}`},a=>t(a,c)),s=[];q.lines.length&&s.push(`结构化资料:
32
94
  ${q.lines.join("\n")}`),r.lines.length&&s.push(`文本/附件片段:
33
95
  ${r.lines.join("\n\n---\n\n")}`);let w=s.join("\n\n"),x=[...q.omittedItems,...r.omittedItems],y=x.map((a,b)=>(function(a,b){let c=k("content"in a?a.content:a.snippets[0]||"").split("\n").map(a=>a.trim()).filter(Boolean)[0]||"",d=c.length>60?`${c.slice(0,60)}…`:c;return`- [${b}] ${j(a)}${d?`|${d}`:""}`})(a,b)),z=y.length?`【证据目录——未全文注入的片段索引(正文写作不使用目录内容;目录供覆盖检索与修复追溯,完整片段仍参与后续检索与质量校验)】
34
- ${y.join("\n")}`:"",A=x.reduce((a,b)=>a+("content"in b?b.content.length:(b.snippets[0]||"").length),0),B={t0Chars:o.length,t1Chars:w.length,t2Lines:y.length,t2Chars:z.length,omittedChars:A,omittedCount:x.length};return{t0Text:o,t1Text:w,t2Text:z,omittedNote:B.omittedCount>0?`提示:完整证据池仍保留 ${a.textEvidence.length} 条文本片段、${a.resources.length} 个结构化材料;本次已注入关键事实层 ${B.t0Chars} 字(数值参数全量)与高相关片段 ${B.t1Chars} 字,另有 ${B.omittedCount} 条片段(${B.omittedChars} 字)仅以目录索引呈现,将在章节/小节相关检索和质量校验中继续参与。`:"",stats:B}}function w(a,b={}){let c=v(a,Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,b.requiredFacts||[],!!b.skipT0);if(b.diagnostics){let a=b.diagnostics.evidence;a.t0Chars+=c.stats.t0Chars,a.t1Chars+=c.stats.t1Chars,a.t2Lines+=c.stats.t2Lines,a.omittedChars+=c.stats.omittedChars}return[a.summary,c.omittedNote,c.t0Text,c.t1Text,c.t2Text].filter(Boolean).join("\n\n")}},70963:(a,b,c)=>{c.d(b,{C:()=>s,i:()=>r});var d=c(73024),e=c(76760),f=c(95734),g=c(22157),h=c(80439);function i(a){return a.map(a=>`${a.filePath}
96
+ ${y.join("\n")}`:"",A=x.reduce((a,b)=>a+("content"in b?b.content.length:(b.snippets[0]||"").length),0),B={t0Chars:o.length,t1Chars:w.length,t2Lines:y.length,t2Chars:z.length,omittedChars:A,omittedCount:x.length};return{t0Text:o,t1Text:w,t2Text:z,omittedNote:B.omittedCount>0?`提示:完整证据池仍保留 ${a.textEvidence.length} 条文本片段、${a.resources.length} 个结构化材料;本次已注入关键事实层 ${B.t0Chars} 字(数值参数全量)与高相关片段 ${B.t1Chars} 字,另有 ${B.omittedCount} 条片段(${B.omittedChars} 字)仅以目录索引呈现,将在章节/小节相关检索和质量校验中继续参与。`:"",stats:B}}function w(a,b={}){let c=v(a,Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,b.requiredFacts||[],!!b.skipT0);if(b.diagnostics){let a=b.diagnostics.evidence;a.t0Chars+=c.stats.t0Chars,a.t1Chars+=c.stats.t1Chars,a.t2Lines+=c.stats.t2Lines,a.omittedChars+=c.stats.omittedChars}return[a.summary,c.omittedNote,c.t0Text,c.t1Text,c.t2Text].filter(Boolean).join("\n\n")}},70963:(a,b,c)=>{c.d(b,{C:()=>t,i:()=>s});var d=c(73024),e=c(76760),f=c(95734),g=c(22157),h=c(80439),i=c(61373);function j(a){return a.map(a=>`${a.filePath}
35
97
  ${a.sectionTitle||""}
36
- ${a.content}`).join("\n")}let j={scope:{title:"项目基本信息、工程范围、主要工程内容",pattern:/项目名称|工程名称|招标范围|施工范围|建设内容|建设规模|建筑面积|工程概况|清单|图纸/u,guidance:"重点填充 works、requirements。必须识别项目名称、建设地点、建设规模、招标范围、工程内容;有来源才写。"},methods:{title:"关键施工方法与专业工序",pattern:/施工方法|施工工艺|工序|流程|专项|装饰|装修|加固|电气|给排水|消防|智能化|暖通|屋面|外墙/u,guidance:"重点填充 methods,并关联 applicableWorks。步骤必须来自资料或由资料中的专业工程内容直接归纳。"},resources:{title:"材料、设备、劳动力、工程量资源",pattern:/材料|设备|机械|劳动力|工程量|清单|规格|型号|数量|单位|暂估|主材/u,guidance:"重点填充 resources。材料设备和工程量能确认多少写多少,数量和单位不得编造。"},scheduleStandards:{title:"工期节点、质量目标、标准规范、验收要求",pattern:/工期|日历天|开工|竣工|节点|进度|质量|验收|标准|规范|合格|创优/u,guidance:"重点填充 schedule、standards。必须优先抽取总工期、质量标准、验收标准和关键节点。"},risksSite:{title:"现场条件、重难点、风险与约束",pattern:/现场|周边|交通|既有|营业|拆除|保护|安全|文明|扬尘|噪声|风险|难点|危大/u,guidance:"重点填充 risks、siteConditions。风险必须给出资料支撑的原因和控制方向。"},requirementsAddendum:{title:"招标管理要求、补疑澄清与修正",pattern:/招标|投标|合同|要求|承包|分包|保修|补疑|澄清|答疑|修正|变更|编制/u,guidance:"重点填充 requirements、addendumChanges。补疑澄清必须写 original、revised、sourceFile。评标办法、评分细则、分值构成、评审内容项属商务程序性内容,对施工组织设计编制无用,一律不抽取、不进图谱。无法确认原文时不要编造。"}};function k(a,b,c=8){return[...new Set(a.filter(a=>b.test(a.content)||b.test(a.sectionTitle||"")||b.test(a.filePath)).map(a=>a.filePath))].slice(0,c)}function l(a){return a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length}function m(a){let b=e.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,g.c6)(a||"default"));return d.mkdirSync(b,{recursive:!0}),b}function n(a,b,c){let f=m(a);f&&c&&d.writeFileSync(e.join(f,`project-graph-${b}.json`),JSON.stringify(c,null,2))}function o(a,b){if(!a)return{ok:!1,reasons:["LLM 未返回可解析的 ProjectGraph JSON"]};let c=[],d=l(a),e=i(b);0===d&&c.push("ProjectGraph 全部节点为空"),/招标范围|施工范围|建设内容|工程名称|项目名称|工程量|清单|图纸/u.test(e)&&0===a.works.length&&c.push("缺少工程范围/主要工程内容 works"),/工期|日历天|进度/u.test(e)&&0===a.schedule.length&&c.push("资料包含工期信息但 schedule 为空"),/质量|验收|标准|规范/u.test(e)&&0===a.standards.length&&c.push("资料包含质量/验收/标准信息但 standards 为空"),/材料|设备|机械|劳动力|工程量|清单/u.test(e)&&0===a.resources.length&&c.push("资料包含资源或工程量信息但 resources 为空");let f=[...a.works,...a.methods,...a.resources,...a.schedule,...a.standards,...a.risks,...a.requirements,...a.siteConditions].filter(a=>(a.sourceFiles||[]).length>0).length+a.addendumChanges.filter(a=>a.sourceFile).length;return d>0&&0===f&&c.push("图谱节点缺少来源文件"),{ok:0===c.length,reasons:c}}function p(a,b=!1){let c=a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length;return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:`${b?"复用缓存:":""}${a.works.length}工程 ${a.methods.length}工法 ${a.resources.length}资源 ${a.schedule.length}节点 ${a.standards.length}标准 ${a.risks.length}风险 ${a.requirements.length}要求 ${a.siteConditions.length}条件 ${a.addendumChanges.length}修正${a.gaps.length?` ${a.gaps.length}缺口`:""}(${c}项)`,details:[...a.works.slice(0,3).map(a=>a.name),...a.resources.slice(0,3).map(a=>a.name),...a.gaps.slice(0,3)]},{subtitle:"项目图谱分析"})}function q(a){return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"failed",message:`项目图谱分析失败:${a.slice(0,3).join(";")}`,details:a.slice(0,8)},{subtitle:"项目图谱分析"})}async function r(a){var b;if((0,g.Te)(a.signal),0===a.evidence.length)return{stage:q(["未检索到项目证据,无法生成可信 LLM 项目图谱"])};let c=(b={evidence:a.evidence,requirement:a.requirement,templateId:a.templateId,projectRoot:a.projectRoot},(0,g.c6)({version:"project-graph-v5-short-timeout-single-pass",requirement:b.requirement||"",templateId:b.templateId||"",evidence:b.evidence.map(a=>({filePath:a.filePath,fileSig:function(a,b){if(!a)return;let c=e.isAbsolute(b)?b:e.join(a,b);try{let a=d.statSync(c);return{mtimeMs:a.mtimeMs,size:a.size}}catch{return}}(b.projectRoot,a.filePath),sectionTitle:a.sectionTitle,contentHash:(0,g.c6)({length:a.content.length,head:a.content.slice(0,8e3),tail:a.content.slice(-8e3)})})).sort((a,b)=>`${a.filePath}${a.sectionTitle}`.localeCompare(`${b.filePath}${b.sectionTitle}`))})),h=function(a,b){let c=m(a);if(c)try{let a=JSON.parse(d.readFileSync(e.join(c,`project-graph-${b}.json`),"utf8"));return a&&Array.isArray(a.works)?a:void 0}catch{return}}(a.projectRoot,c),r=h?o(h,a.evidence):void 0;if(h&&r?.ok)return{graph:h,stage:p(h,!0)};let s=[...a.evidence].sort((a,b)=>b.score-a.score),t=function(a){let b=i(a),c=(a,c)=>{let d=function(a,b){let c=a.match(b);return c?.[1]?.replace(/\s+/gu," ").trim().slice(0,500)||""}(b,c);return d?`${a}:${d}`:""};return[c("项目名称",/(?:招标项目名称|项目名称|工程名称)[::\s]*([^。;\n]{3,120})/u),c("建设地点",/(?:建设地点|项目地点|实施地点)[::\s]*([^。;\n]{3,160})/u),c("建设规模",/(?:建设规模|建筑面积|总建筑面积)[::\s]*([^。;\n]{3,120})/u),c("计划工期",/(?:计划工期|总工期|工期要求|工期总日历天数)[::\s]*([^。;\n]{2,80})/u),c("质量标准",/(?:质量标准|质量要求|质量目标)[::\s]*([^。;\n]{2,120})/u),c("招标范围",/(?:招标范围|工程承包范围|施工范围|建设内容)[::\s]*([\s\S]{20,700}?)(?=\n#{1,4}\s|\n\d+[.、]\s|质量|工期|$)/u),k(a,/补疑|澄清|答疑|修正/u).length?`补疑澄清文件:${k(a,/补疑|澄清|答疑|修正/u).join("、")}`:""].filter(Boolean)}(s),u=[];async function v(b,c=[]){let d=function(a,b,c=52e3){let d=j[b],e=[...a].sort((a,b)=>{let c=+!!d.pattern.test(`${a.filePath}${a.sectionTitle||""}${a.content}`);return!!d.pattern.test(`${b.filePath}${b.sectionTitle||""}${b.content}`)-c||b.score-a.score}),f=[],g=0;for(let a of e){let b={...a,content:a.content.replace(/\s+/gu," ").trim().slice(0,5e3)};if((!(g+b.content.length>c)||!(f.length>=8))&&(f.push(b),(g+=b.content.length)>=c||f.length>=18))break}return f}(s,b,c.length?64e3:52e3),h=await (0,f.bb)(`通读以下项目资料(招标文件、工程量清单、图纸设计说明、补疑文件等),
37
- 输出一个 JSON 对象,描述你对该项目的完整理解。
38
-
39
- JSON 字段(全部为数组,无相关信息时返回空数组):
40
- works: [{name, scope, sourceFiles, relatedItems}]
41
- methods: [{name, steps, applicableWorks, sourceFiles}]
42
- resources: [{name, type:"material"|"equipment"|"labor", spec, quantity, unit, sourceFiles}]
43
- schedule: [{milestone, duration, startDate, endDate, sourceFiles}]
44
- standards: [{code, description, sourceFiles}]
45
- risks: [{risk, level:"high|medium|low", mitigation, sourceFiles}]
46
- requirements: [{category, detail, sourceFiles}]
47
- siteConditions: [{condition, impact, sourceFiles}]
48
- addendumChanges: [{originalPath, original, revised, sourceFile}]
49
- gaps: [string] 仅记录资料中确实缺失且影响施工组织设计编制的事实;证据中已出现的内容不得声称「未提供/未找到」
50
-
51
- 只基于资料内容,不编造。每个条目标注来源文件。只返回 JSON。
52
-
53
- 当前只抽取分域:${j[b].title}。其他字段可以返回空数组,但本分域相关字段必须尽最大能力从证据中抽取。${c.length?`
54
- 本次定向修复原因:${c.join(";")}`:""}`,function(a,b,c){let d=j[b];return[`请抽取项目图谱分域:${d.title}`,d.guidance,"确定性线索仅用于帮助定位原文,不得作为最终图谱事实直接照抄;最终 JSON 必须由资料证据支撑。",c.length?`定位线索:
98
+ ${a.content}`).join("\n")}let k={scope:{title:"项目基本信息、工程范围、主要工程内容",pattern:/项目名称|工程名称|招标范围|施工范围|建设内容|建设规模|建筑面积|工程概况|清单|图纸/u,guidance:"重点填充 works、requirements。必须识别项目名称、建设地点、建设规模、招标范围、工程内容;有来源才写。"},methods:{title:"关键施工方法与专业工序",pattern:/施工方法|施工工艺|工序|流程|专项|装饰|装修|加固|电气|给排水|消防|智能化|暖通|屋面|外墙/u,guidance:"重点填充 methods,并关联 applicableWorks。步骤必须来自资料或由资料中的专业工程内容直接归纳。"},resources:{title:"材料、设备、劳动力、工程量资源",pattern:/材料|设备|机械|劳动力|工程量|清单|规格|型号|数量|单位|暂估|主材/u,guidance:"重点填充 resources。材料设备和工程量能确认多少写多少,数量和单位不得编造。"},scheduleStandards:{title:"工期节点、质量目标、标准规范、验收要求",pattern:/工期|日历天|开工|竣工|节点|进度|质量|验收|标准|规范|合格|创优/u,guidance:"重点填充 schedule、standards。必须优先抽取总工期、质量标准、验收标准和关键节点。"},risksSite:{title:"现场条件、重难点、风险与约束",pattern:/现场|周边|交通|既有|营业|拆除|保护|安全|文明|扬尘|噪声|风险|难点|危大/u,guidance:"重点填充 risks、siteConditions。风险必须给出资料支撑的原因和控制方向。"},requirementsAddendum:{title:"招标管理要求、补疑澄清与修正",pattern:/招标|投标|合同|要求|承包|分包|保修|补疑|澄清|答疑|修正|变更|编制/u,guidance:"重点填充 requirements、addendumChanges。补疑澄清必须写 original、revised、sourceFile。评标办法、评分细则、分值构成、评审内容项属商务程序性内容,对施工组织设计编制无用,一律不抽取、不进图谱。无法确认原文时不要编造。"}};function l(a,b,c=8){return[...new Set(a.filter(a=>b.test(a.content)||b.test(a.sectionTitle||"")||b.test(a.filePath)).map(a=>a.filePath))].slice(0,c)}function m(a){return a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length}function n(a){let b=e.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,g.c6)(a||"default"));return d.mkdirSync(b,{recursive:!0}),b}function o(a,b,c){let f=n(a);f&&c&&d.writeFileSync(e.join(f,`project-graph-${b}.json`),JSON.stringify(c,null,2))}function p(a,b){if(!a)return{ok:!1,reasons:["LLM 未返回可解析的 ProjectGraph JSON"]};let c=[],d=m(a),e=j(b);0===d&&c.push("ProjectGraph 全部节点为空"),/招标范围|施工范围|建设内容|工程名称|项目名称|工程量|清单|图纸/u.test(e)&&0===a.works.length&&c.push("缺少工程范围/主要工程内容 works"),/工期|日历天|进度/u.test(e)&&0===a.schedule.length&&c.push("资料包含工期信息但 schedule 为空"),/质量|验收|标准|规范/u.test(e)&&0===a.standards.length&&c.push("资料包含质量/验收/标准信息但 standards 为空"),/材料|设备|机械|劳动力|工程量|清单/u.test(e)&&0===a.resources.length&&c.push("资料包含资源或工程量信息但 resources 为空");let f=[...a.works,...a.methods,...a.resources,...a.schedule,...a.standards,...a.risks,...a.requirements,...a.siteConditions].filter(a=>(a.sourceFiles||[]).length>0).length+a.addendumChanges.filter(a=>a.sourceFile).length;return d>0&&0===f&&c.push("图谱节点缺少来源文件"),{ok:0===c.length,reasons:c}}function q(a,b=!1){let c=a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length;return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:`${b?"复用缓存:":""}${a.works.length}工程 ${a.methods.length}工法 ${a.resources.length}资源 ${a.schedule.length}节点 ${a.standards.length}标准 ${a.risks.length}风险 ${a.requirements.length}要求 ${a.siteConditions.length}条件 ${a.addendumChanges.length}修正${a.gaps.length?` ${a.gaps.length}缺口`:""}(${c}项)`,details:[...a.works.slice(0,3).map(a=>a.name),...a.resources.slice(0,3).map(a=>a.name),...a.gaps.slice(0,3)]},{subtitle:"项目图谱分析"})}function r(a){return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"failed",message:`项目图谱分析失败:${a.slice(0,3).join(";")}`,details:a.slice(0,8)},{subtitle:"项目图谱分析"})}async function s(a){var b;if((0,g.Te)(a.signal),0===a.evidence.length)return{stage:r(["未检索到项目证据,无法生成可信 LLM 项目图谱"])};let c=(b={evidence:a.evidence,requirement:a.requirement,templateId:a.templateId,projectRoot:a.projectRoot},(0,g.c6)({version:"project-graph-v5-short-timeout-single-pass",requirement:b.requirement||"",templateId:b.templateId||"",evidence:b.evidence.map(a=>({filePath:a.filePath,fileSig:function(a,b){if(!a)return;let c=e.isAbsolute(b)?b:e.join(a,b);try{let a=d.statSync(c);return{mtimeMs:a.mtimeMs,size:a.size}}catch{return}}(b.projectRoot,a.filePath),sectionTitle:a.sectionTitle,contentHash:(0,g.c6)({length:a.content.length,head:a.content.slice(0,8e3),tail:a.content.slice(-8e3)})})).sort((a,b)=>`${a.filePath}${a.sectionTitle}`.localeCompare(`${b.filePath}${b.sectionTitle}`))})),h=function(a,b){let c=n(a);if(c)try{let a=JSON.parse(d.readFileSync(e.join(c,`project-graph-${b}.json`),"utf8"));return a&&Array.isArray(a.works)?a:void 0}catch{return}}(a.projectRoot,c),s=h?p(h,a.evidence):void 0;if(h&&s?.ok)return{graph:h,stage:q(h,!0)};let t=[...a.evidence].sort((a,b)=>b.score-a.score),u=function(a){let b=j(a),c=(a,c)=>{let d=function(a,b){let c=a.match(b);return c?.[1]?.replace(/\s+/gu," ").trim().slice(0,500)||""}(b,c);return d?`${a}:${d}`:""};return[c("项目名称",/(?:招标项目名称|项目名称|工程名称)[::\s]*([^。;\n]{3,120})/u),c("建设地点",/(?:建设地点|项目地点|实施地点)[::\s]*([^。;\n]{3,160})/u),c("建设规模",/(?:建设规模|建筑面积|总建筑面积)[::\s]*([^。;\n]{3,120})/u),c("计划工期",/(?:计划工期|总工期|工期要求|工期总日历天数)[::\s]*([^。;\n]{2,80})/u),c("质量标准",/(?:质量标准|质量要求|质量目标)[::\s]*([^。;\n]{2,120})/u),c("招标范围",/(?:招标范围|工程承包范围|施工范围|建设内容)[::\s]*([\s\S]{20,700}?)(?=\n#{1,4}\s|\n\d+[.、]\s|质量|工期|$)/u),l(a,/补疑|澄清|答疑|修正/u).length?`补疑澄清文件:${l(a,/补疑|澄清|答疑|修正/u).join("、")}`:""].filter(Boolean)}(t),v=[];async function w(b,c=[]){let d=function(a,b,c=52e3){let d=k[b],e=[...a].sort((a,b)=>{let c=+!!d.pattern.test(`${a.filePath}${a.sectionTitle||""}${a.content}`);return!!d.pattern.test(`${b.filePath}${b.sectionTitle||""}${b.content}`)-c||b.score-a.score}),f=[],g=0;for(let a of e){let b={...a,content:a.content.replace(/\s+/gu," ").trim().slice(0,5e3)};if((!(g+b.content.length>c)||!(f.length>=8))&&(f.push(b),(g+=b.content.length)>=c||f.length>=18))break}return f}(t,b,c.length?64e3:52e3),h=await (0,f.bb)(`${(0,i.y4)('通读以下项目资料(招标文件、工程量清单、图纸设计说明、补疑文件等),\n输出一个 JSON 对象,描述你对该项目的完整理解。\n\nJSON 字段(全部为数组,无相关信息时返回空数组):\n works: [{name, scope, sourceFiles, relatedItems}]\n methods: [{name, steps, applicableWorks, sourceFiles}]\n resources: [{name, type:"material"|"equipment"|"labor", spec, quantity, unit, sourceFiles}]\n schedule: [{milestone, duration, startDate, endDate, sourceFiles}]\n standards: [{code, description, sourceFiles}]\n risks: [{risk, level:"high|medium|low", mitigation, sourceFiles}]\n requirements: [{category, detail, sourceFiles}]\n siteConditions: [{condition, impact, sourceFiles}]\n addendumChanges: [{originalPath, original, revised, sourceFile}]\n gaps: [string] 仅记录资料中确实缺失且影响施工组织设计编制的事实;证据中已出现的内容不得声称「未提供/未找到」\n\n只基于资料内容,不编造。每个条目标注来源文件。只返回 JSON。')}
99
+
100
+ 当前只抽取分域:${k[b].title}。其他字段可以返回空数组,但本分域相关字段必须尽最大能力从证据中抽取。${c.length?`
101
+ 本次定向修复原因:${c.join(";")}`:""}`,function(a,b,c){let d=k[b];return[`请抽取项目图谱分域:${d.title}`,d.guidance,"确定性线索仅用于帮助定位原文,不得作为最终图谱事实直接照抄;最终 JSON 必须由资料证据支撑。",c.length?`定位线索:
55
102
  ${c.map(a=>`- ${a}`).join("\n")}`:"",function(a){let b=a.map((a,b)=>{let c=`[${b+1}] ${a.filePath}`,d=a.sectionTitle?` / ${a.sectionTitle}`:"";return`${c}${d}
56
103
  ${a.content.replace(/\s+/gu," ").trim()}`}).join("\n\n---\n\n");return`请从以下项目资料中提取结构化理解:
57
104
 
58
105
  ${b}
59
106
 
60
- 返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,t),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});(0,g.Te)(a.signal);if(!h)return;let i=new Set(d.map(a=>a.filePath)),k=a=>"string"==typeof a&&(i.has(a)||d.some(b=>e.basename(b.filePath)===e.basename(a))),l=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",m=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(h.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:l(a.name,200),scope:l(a.scope,500),sourceFiles:m(a.sourceFiles,10).filter(k),relatedItems:m(a.relatedItems,20)})),methods:(h.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),steps:m(a.steps,12),applicableWorks:m(a.applicableWorks,10),sourceFiles:m(a.sourceFiles,10).filter(k)})),resources:(h.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:l(a.spec,200),quantity:l(a.quantity,50),unit:l(a.unit,20),sourceFiles:m(a.sourceFiles,5).filter(k)})),schedule:(h.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:l(a.milestone,200),duration:l(a.duration,100),startDate:l(a.startDate,50),endDate:l(a.endDate,50),sourceFiles:m(a.sourceFiles,5).filter(k)})),standards:(h.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:l(a.code,100),description:l(a.description,300),sourceFiles:m(a.sourceFiles,5).filter(k)})),risks:(h.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:l(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:l(a.mitigation,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),requirements:(h.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:l(a.category,100),detail:l(a.detail,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),siteConditions:(h.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:l(a.condition,300),impact:l(a.impact,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),addendumChanges:(h.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:l(a.originalPath,300),original:l(a.original,300),revised:l(a.revised,500),sourceFile:l(a.sourceFile,200)})),gaps:m(h.gaps,20),generatedAt:Date.now()}}async function w(b=[]){let c=Object.keys(j),d=(await (0,g.l$)(c,async c=>{try{let a=await v(c,b);if(a&&l(a)>0)return a;u.push(`${j[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;u.push(`${j[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:Number(process.env.DOCUMENT_PROJECT_GRAPH_DOMAIN_CONCURRENCY||2)})).filter(a=>!!a);return d.length?function(a){let b={w:new Set,m:new Set,r:new Set,sc:new Set,st:new Set,ri:new Set,rq:new Set,si:new Set,a:new Set};return{works:a.flatMap(a=>a.works).filter(a=>{let c=a.name+a.scope;return!b.w.has(c)&&(b.w.add(c),!0)}),methods:a.flatMap(a=>a.methods).filter(a=>{let c=a.name;return!b.m.has(c)&&(b.m.add(c),!0)}),resources:a.flatMap(a=>a.resources).filter(a=>{let c=a.name+a.spec+a.type;return!b.r.has(c)&&(b.r.add(c),!0)}),schedule:a.flatMap(a=>a.schedule).filter(a=>{let c=a.milestone;return!b.sc.has(c)&&(b.sc.add(c),!0)}),standards:a.flatMap(a=>a.standards).filter(a=>{let c=a.code+a.description;return!b.st.has(c)&&(b.st.add(c),!0)}),risks:a.flatMap(a=>a.risks).filter(a=>{let c=a.risk;return!b.ri.has(c)&&(b.ri.add(c),!0)}),requirements:a.flatMap(a=>a.requirements).filter(a=>{let c=a.category+a.detail;return!b.rq.has(c)&&(b.rq.add(c),!0)}),siteConditions:a.flatMap(a=>a.siteConditions).filter(a=>{let c=a.condition;return!b.si.has(c)&&(b.si.add(c),!0)}),addendumChanges:a.flatMap(a=>a.addendumChanges).filter(a=>{let c=a.original+a.revised;return!b.a.has(c)&&(b.a.add(c),!0)}),gaps:[...new Set(a.flatMap(a=>a.gaps))],generatedAt:Date.now()}}(d):void 0}try{let b=await w(),d=o(b,s);if(d.ok&&b||b&&l(b)>0)return n(a.projectRoot,c,b),{graph:b,stage:p(b)};let e=await w([...d.reasons,...u]);if(e&&l(e)>0)return n(a.projectRoot,c,e),{graph:e,stage:p(e)};return{stage:q([...d.reasons,...u])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:q([b instanceof Error?b.message:String(b),...u])}}}function s(a){let b=["## 项目资料图谱分析结果",""];for(let c of a.works)2===b.length&&b.push("### 主要工程内容"),b.push(`- **${c.name}**:${c.scope}`);for(let c of(a.works.length&&b.push(""),a.methods))b.includes("### 关键施工方法与工艺")||b.push("### 关键施工方法与工艺"),b.push(`- **${c.name}**:${c.steps.filter(Boolean).join(" → ")}`);for(let c of(a.methods.length&&b.push(""),a.resources)){b.includes("### 资源需求")||b.push("### 资源需求");let a={material:"材料",equipment:"设备",labor:"劳动力"}[c.type]||"资源";b.push(`- [${a}] ${c.name}${c.spec?`(${c.spec})`:""}${c.quantity?` ${c.quantity}${c.unit}`:""}`)}for(let c of(a.resources.length&&b.push(""),a.schedule))b.includes("### 工期与关键节点")||b.push("### 工期与关键节点"),b.push(`- ${c.milestone}:${c.duration}(${c.startDate} ~ ${c.endDate})`);for(let c of(a.schedule.length&&b.push(""),a.standards))b.includes("### 技术标准与验收要求")||b.push("### 技术标准与验收要求"),b.push(`- **${c.code}**:${c.description}`);for(let c of(a.standards.length&&b.push(""),a.risks))b.includes("### 重点难点与风险")||b.push("### 重点难点与风险"),b.push(`- **[${c.level}] ${c.risk}**:${c.mitigation}`);for(let c of(a.risks.length&&b.push(""),a.requirements))b.includes("### 特定要求")||b.push("### 特定要求"),b.push(`- [${c.category}] ${c.detail}`);for(let c of(a.requirements.length&&b.push(""),a.siteConditions))b.includes("### 现场条件与约束")||b.push("### 现场条件与约束"),b.push(`- ${c.condition}:${c.impact}`);for(let c of(a.siteConditions.length&&b.push(""),a.addendumChanges))b.includes("### 补疑修正")||b.push("### 补疑修正"),b.push(`- "${c.original}" → "${c.revised}"`);for(let c of(a.addendumChanges.length&&b.push(""),a.gaps))b.includes("### 资料缺口")||b.push("### 资料缺口"),b.push(`- ${c}`);return a.gaps.length&&b.push(""),b.join("\n")}},71001:(a,b,c)=>{c.d(b,{EN:()=>h,Kg:()=>z,My:()=>w,SP:()=>y,av:()=>i,c_:()=>t,detectPromptRuleConflicts:()=>A,el:()=>u,k2:()=>x,kw:()=>m,nz:()=>j,tQ:()=>l});var d=c(70933),e=c(95734),f=c(70208);let g=(0,c(23021).aw)();function h(a){let b=a.replace(/(.*?)(.{2,4})\2$/u,"$1$2");return g[b]||b}function i(a,b){let c=`${a} ${b}`,d=[/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/u.test(c)?"必须说明施工组织逻辑、施工段/专业接口、资源进场和管理闭环。":"",/进度|工期/u.test(c)?"必须围绕总工期、关键线路、资源保障、穿插施工和纠偏机制展开。":"",/质量/u.test(c)?"必须覆盖材料验收复验、过程检查、隐蔽验收、整改复验和质量资料归档。":"",/安全|文明|风险|危大/u.test(c)?"必须覆盖风险识别、人员设备、临电消防、现场文明、检查整改和应急响应。":"",/资源|材料|设备|劳动力/u.test(c)?"必须说明资源配置依据、进场验收、保管调配,并与工期和质量目标一致。":"",/施工|工艺|技术|方案/u.test(c)?"必须写清施工准备、工艺流程、关键控制点、验收要求和资料依据;每个分项工程方案必须落位至少 4 个工艺参数(mm、MPa、间距、偏差、坡度、养护天数、试验压力、搭接长度等),参数来自绑定资料或行业通用规范值,不得编造;纯设备配置型内容必须写型号、规格、容量、数量参数。工序顺序表达:工艺流程必须有明确的工序顺序表达,形式由模型根据内容自然选择,不做统一要求——可用顺序词叙述(先进行基层清理,再放线定位,随后分层摊铺,然后碾压,最后压实度检测并验收)、编号步骤、有序/无序列表或箭头链,每个含方法叙述的三级小节方法段正文至少 1 处不少于 4 个环节的工序顺序表达,不得只在单独的流程行出现。":"",/流程|顺序|工序|穿插|闭环|整改|演练|转运|三检|隐蔽|排查/u.test(c)?"流程/顺序型叙述必须有明确的工序顺序表达,形式由模型根据内容自然选择、不做统一要求(顺序词叙述、编号步骤、有序/无序列表或箭头链均可),每条序列不少于 3 个环节,把纯文字流程描述改写成顺序清晰的表达(如先发现问题并登记建档,再分析原因,随后整改落实,最后复查销号),正文中至少 2 处工序顺序表达。":""].filter(Boolean),e=d.find(a=>a.includes("工序顺序表达"));return["【小节专业任务卡】",`任务对象:${b}`,...d.length?d:["必须结合本项目资料明确事实说明对象范围、实施方法、控制要点、验收要求和资料闭环,避免泛化套话。"],...e?["工序顺序表达是硬性格式要求:正文成稿必须实际出现工序顺序表达(顺序词叙述/编号步骤/有序无序列表/箭头链任一形式,形式由模型自然选择),评审将核验,未达标会被退回重写。"]:[],"禁止套话:不得使用“本小节围绕……展开”“结合绑定项目资料、施工组织安排和现场实施条件”“交底覆盖率按100%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似。"].join("\n")}function j(a){return(0,f.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function k(a){let b=j(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)}function l(a,b){let c=j(a),d=j(b);if(c.length<4||c.length>60||c===d||k(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c))return!0;let e=d.match(/[\p{L}\p{N}]{2,6}$/u)?.[0]||"";return!(!(e.length>=2&&/^.{2,8}\p{L}$/u.test(c)&&c.endsWith(e.slice(-1)))||c.includes(e))}function m(a,b){let c=j(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=j(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function n(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function o(a,b=""){let c=n(b);return Array.from(new Set(a.map(j).filter(a=>!(a.length<2||a.length>30||k(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function p(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function q(a){let b=new Set;for(let c of[/(?:关键词|核心要点|必含关键词|必须包含的关键词)[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须)包含(?:以下|如下)?(?:关键词|核心词|术语)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of p(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function r(a){let b=new Set;for(let c of[/(?:禁用词|禁止词|不得使用词|禁用表达|禁止表达)[::]\s*([^。;;\n]+)/gu,/(?:禁止|不得|严禁|杜绝)出现(?:以下|如下)?(?:词语|用词|表达|话术)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of p(d[1]||""))b.add(a);return[...b].slice(0,40)}function s(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function t(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),d=function(a){let b=a.replace(/\\n/gu,"\n"),c=new Set;for(let a of(/全文必须输出[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||/必须输出(?:的)?表格[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||"").split(/[、,,]/u)){let b=/([\p{Script=Han}A-Za-z0-9()()]{2,30}表)$/u.exec(a.trim())?.[1];b&&b.length>=4&&b.length<=30&&c.add(b)}/项目基本信息表/u.test(b)&&c.add("项目基本信息表");let d=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"];/杜绝(?:套话|空话)|禁止(?:套话|空话)|不得(?:套话|空话)|严禁(?:套话|空话)/u.test(b)&&d.push("高度重视","重中之重"),/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(b)&&d.push("报价明细表");let e=v(b,"封面"),f=v(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:q(b),forbiddenPatterns:r(b)}}(c),e=[...new Set([...d.requiredTables,...function(a){let b=new Set;for(let c of[/(?:必须|应当|需要|全文必须|至少)输出(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须|至少)包含(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:表格清单|表格要求)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of(d[1]||"").split(/[、,,//及和与]/u)){let c=/([\p{Script=Han}A-Za-z0-9()()《》<>]{2,40}表)/u.exec(a.trim())?.[1];c&&b.add(c.replace(/[<>《》]/gu,""))}for(let c of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,40}表)(?:必须|应当|需要|不得缺失|不可缺失)/gu))b.add(c[1]);return/项目基本信息表/u.test(a)&&b.add("项目基本信息表"),[...b]}(c)])],f=q(c),g=r(c),h=function(a){let b=[];for(let c of(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u)){let a=c.replace(/^\s*(?:\d+[.、.]|[-*])\s*/u,"").trim();a.length>=2&&a.length<=80&&!k(a)&&b.push(a)}return[...new Set(b)]}(c),i=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],j=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],l=[],m=function(a){let b=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return Math.floor(c*(b[2]?1e4:1))}(c),n=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:s(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:s(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),o=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:s(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:s(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:s(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),p=[d.coverPolicy&&"unspecified"!==d.coverPolicy?`已识别封面规则:${"required"===d.coverPolicy?"要求生成":"禁止生成"}`:"",d.tocPolicy&&"unspecified"!==d.tocPolicy?`已识别目录规则:${"required"===d.tocPolicy?"要求生成":"禁止生成"}`:"",h.length?`已识别一级章节固定规则 ${h.length} 条`:"",l.length?`已识别禁用主体表达:${l.join("、")}`:"",d.forbiddenTerms.length?`已识别禁用词 ${d.forbiddenTerms.length} 个`:"",e.length?`已识别必需表格:${e.join("、")}`:"",f.length?`已识别必含关键词:${f.join("、")}`:"",g.length?`已识别禁止出现内容:${g.join("、")}`:"",m?`已识别最低字数要求:${m} 字`:"",o.length?`已抽取角色执行规则 ${o.length} 组`:""].filter(Boolean),t=[],u={},w=(a,c,d,e)=>{let f=function(a,b,c){for(let d of a)if(d.content.includes(b))return{promptId:d.promptId,roleId:d.roleId,pattern:c};return{promptId:"system:generation-control",roleId:"generation-control",pattern:c}}(b,d,e);u[a]||(u[a]=[]),u[a].length<24&&u[a].push({...f,matchedText:d}),t.length<60&&t.push({rule:c,source:f,matchedText:d})};for(let a of(d.coverPolicy&&"unspecified"!==d.coverPolicy&&w("coverPolicy",`已识别封面规则:${d.coverPolicy}`,"封面",/封面|cover/u.source),d.tocPolicy&&"unspecified"!==d.tocPolicy&&w("tocPolicy",`已识别目录规则:${d.tocPolicy}`,"目录",/目录|toc/u.source),e))w("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of f)w("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of g)w("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of h)w("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return m&&w("minWords",`最低字数:${m}`,String(m),/\d{3,}\s*字/u.source),{...d,requiredTables:e,requiredKeywords:f,forbiddenPatterns:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(c),exactHeadings:h,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||h.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:l,backendTerms:i,commercialTerms:j,forbiddenTerms:[...new Set([...d.forbiddenTerms,...i,...j,...l])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:m,minChars:m,chapterRules:n,roleRules:o,executionSummary:p,ruleSources:Object.keys(u).length>0?u:void 0,extractionTrace:t.length>0?t:void 0}}function u(a){let b=[`运行时规则版本:${a.sourceHash}`,"required"===a.coverPolicy?"用户要求输出封面时必须保留封面;未要求时不得由系统擅自决定。":"","required"===a.tocPolicy?"用户要求输出目录时必须保留目录,并确保目录只来自最终合法正文标题。":"",a.forbidCover?"用户明确禁止输出封面。":"",a.forbidToc?"用户明确禁止输出目录、目录说明或导航页。":"",a.exactHeadings.length?`一级章节必须严格使用:${a.exactHeadings.join(";")}`:"",a.forbidExtraHeadings?"不得新增、删除、合并或改名一级章节。":"",a.requiredSubjects.length?`正文主体优先使用:${a.requiredSubjects.join("、")}`:"",a.forbiddenSubjects.length?`禁止主体表达:${a.forbiddenSubjects.join("、")}`:"",a.forbidFabrication?"不得编造系统暂未从知识库确认的项目事实、工程实体参数、人名、联系方式或品牌;应通过扩大检索、事实补抽或落位修复解决。":"",a.requireEvidenceForQuantities?"涉及数量、工期、质量标准目标、规格型号等项目专属参数时必须以绑定资料中的明确事实为准;通用标准规范编号与法规名称可依据现行有效版本直接引用。":"",a.commercialTerms.length?`禁止输出商务敏感内容:${a.commercialTerms.join("、")}`:"",a.backendTerms.length?`禁止输出系统内部话术:${a.backendTerms.join("、")}`:"",a.requiredTables.length?`必须输出以下正式 Markdown 表格:${a.requiredTables.join("、")}。表格必须包含表名、表头、分隔线和数据行。`:"",a.requiredKeywords?.length?`正文必须覆盖以下关键词或要点:${a.requiredKeywords.join("、")}。`:"",a.forbiddenPatterns?.length?`正文禁止出现以下内容:${a.forbiddenPatterns.join("、")}。`:"",a.minWords?`全文不少于 ${a.minWords} 字。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
61
- ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`}function v(a,b){let c=RegExp(`(?:生成|包含|输出|需要|保留|设置|编制|制作)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:必须|应当|需要|保留|生成|输出|包含)`,"u").test(a);return RegExp(`(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)`,"u").test(a)?"forbidden":c?"required":"unspecified"}function w(a,b){let c=a.replace(/\\n/gu,"\n"),d=new Map,e=[...c.matchAll(/第([一二两三四五六七八九十\d]+)章[^\n。;;]{0,80}(?:强制|必须|挂靠|小节|排序|最先|之后|之前)/gu)];for(let a of e){let b=function(a){let b={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if(/^\d+$/u.test(a))return Number(a);if(void 0!==b[a])return b[a];if("十"===a)return 10;let c=/^(?:(一|二|两|三|四|五|六|七|八|九)?)十(?:(一|二|两|三|四|五|六|七|八|九))?$/u.exec(a);if(c)return 10*(c[1]?b[c[1]]:1)+(c[2]?b[c[2]]:0)}(a[1]);if(!b)continue;let f=Math.max(0,a.index||0),g=e.find(a=>(a.index||0)>f)?.index,h=c.slice(f,Math.min(c.length,g??f+1400));if(n(h)&&!/(强制小节|必须小节|以下小节设置和排序|必须设置独立的|必须包含独立的)/u.test(h))continue;let i=function(a){let b=/(?:以下小节设置和排序|强制小节|必须小节)[::]\s*([\s\S]*?)(?:\n\s*#{2,6}\s|\n\s*第[一二两三四五六七八九十\d]+章|$)/u.exec(a)?.[1];if(b){let c=o([...b.matchAll(/(?:^|\n)\s*\d+[..、]\s*([^——\-—::。;;\n]{2,30})(?:[——\-—::]|,|,|。|;|;|\n|$)/gu)].map(a=>a[1]),a);if(c.length>0)return c}let c=[];for(let b of a.matchAll(/第[一二两三四五六七八九十\d]+章[^。;;\n]{0,50}(?:强制)?(?:包含|设置|输出|排序|挂靠)[^::。;;\n]{0,20}[::]\s*([^。;;\n]{2,120})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);for(let b of a.matchAll(/[“"]([^”"]{2,30})[”"]\s*(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,30})(?:——|—|-|:|:)\s*(?:独立的)?(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/(?:必须|应当|需|需要|包含|设置|输出)[^。;;\n]{0,30}(?:独立的)?(?:二级)?小节[::]\s*([^。;;\n]{2,80})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);return o(c,a)}(h);if(0===i.length)continue;let j=d.get(b)||{blocks:[],titles:[]};for(let a of(j.blocks.push(h),i))j.titles.some(b=>m(b,a))||j.titles.push(a);d.set(b,j)}return[...d.entries()].map(([a,c])=>{let d=b?.[a-1];return{chapterIndex:a-1,chapterTitle:d?.title,source:c.blocks[0]?.split("\n").find(a=>a.trim())?.trim().slice(0,120),requiredSections:c.titles.map((a,b)=>({title:a,order:b+1,required:!0,source:c.blocks[0]?.slice(0,240)}))}})}function x(a=[],b){let c=[];for(let d of a){let a=h(j(d));!(!a||l(a,b))&&(c.some(b=>m(b,a))||c.push(a))}return c}async function y(a){var b,c,f;let g=(0,d.ks)((0,d.QO)(a.chapter,a.evidence),{maxChars:(0,d.Pc)(a.targetWords,5e3,12e3),diagnostics:a.diagnostics}),i=(b=a.structuralRules,c=a.chapter,f=a.chapterIndex,(b||[]).filter(a=>!!(void 0!==a.chapterIndex&&void 0!==f&&a.chapterIndex===f||a.chapterTitle&&m(a.chapterTitle,c.title)))),k=i.flatMap(a=>a.requiredSections).sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title),n=function(a,b,c,d){let e=a.title,f=/质量|安全|工期|进度|物资|材料|机械|设备|劳动力|危大|专项|文明|总平面|施工方法|施工方案/u.test(e),g=b>=14e3?6:b>=8e3?5:b>=5e3||b>=3e3?4:3;f&&(g=Math.max(g,4));let h=new Set((c.map(a=>`${a.sectionTitle||""}
62
- ${a.content}`).join("\n").slice(0,3e4).match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+/giu)||[]).map(a=>a.replace(/\s+/gu,""))).size;return h>=20?g=Math.max(g,5):h>=10&&(g=Math.max(g,4)),Math.max(g,d)}(a.chapter,a.targetWords,a.evidence,k.length),o=Math.max(n,Math.min(7,a.targetWords>=8e3?7:6)),p=0===a.chapterIndex||/编制说明|工程概况|项目概况/u.test(a.chapter.title),q=async b=>{var c;let d=await (0,e.bb)(["你是专业文档结构规划专家。",'只根据用户提示词、章节标题和真实绑定资料规划本章二级小节;不得使用"目标与范围、资料依据、实施内容、质量控制"等通用占位小节凑数。',"施工组织、技术措施、资源配置、质量、安全、工期、材料、设备、劳动力、危大工程等核心章节必须拆成足够的专业工作面,不得只输出两个泛化小节。",'不得把提示词条件句或短语碎片作为小节标题,例如"判断是否涉、是否涉及、如涉及、雨季、冬季、高温、台风、大风等特殊气候"。','小节标题必须直接属于本章主题域:例如"人材机保障/资源配置"章只允许劳动力、材料、机械设备、周转类标题;投标/评标纪律、评标办法、商务报价、投标程序、评审澄清、中标公示类标题一律禁止(施工组织设计正文不写评标程序内容)。',p?'本章是全文第一章:若规划出"编制说明与工程概况"类小节,必须置于小节清单第一位,不得排在任何其他小节之后。':"","只返回 JSON。"].filter(Boolean).join("\n"),[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!l(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
63
- ${a.projectContext}`:"",a.roleContext,a.promptTexts?`配置写作主控提示词:
64
- ${a.promptTexts}`:"",k.length?`系统已从提示词解析出本章强制二级小节,必须按此顺序置于本章小节最前,不得删除、改名或重排:${k.join("、")}`:"",g?`真实绑定资料:
65
- ${g}`:"",`请输出 ${n}-${o} 个适合直接成稿的二级小节标题。标题必须具体、业务相关、能承载真实资料;每个标题控制在 16 个汉字以内,避免多个小节表达同一内容。核心章节不得只输出"总体部署与责任分工、实施流程与关键控制"两个泛化小节。`,b,'JSON 格式:{"sections":["小节标题1","小节标题2"]}'].filter(Boolean).join("\n\n"),{maxTokens:1600,temperature:.1,signal:a.signal,diagnostics:a.diagnostics}),f=Array.from(new Set(function(a){let b=j(a),c=[],d=/体系|措施|管理|保障|方案|要求|计划|控制|配置/u,e=a=>{let b=/^(.*?)([^与和及、,,;;]+(?:[与和及][^与和及、,,;;]+)+)(的.+)$/u.exec(a);if(!b)return!1;let d=b[1]||"",e=b[3]||"";for(let a of b[2].split(/[与和及]/u))c.push(j(`${d}${a}${e}`));return!0},f=a=>{let b=a.split(/[、,,]/u).map(j).filter(Boolean);if(b.length>1&&b.every(a=>a.length>=4&&d.test(a))){for(let a of b)e(a)||c.push(a);return!0}let f=/^(.*?)([^、,,;;]+(?:[、,,][^、,,;;]+)+)(的.+)$/u.exec(a);if(!f)return!1;let g=f[1]||"",h=f[3]||"";for(let a of f[2].split(/[、,,]/u))c.push(j(`${g}${a}${h}`));return!0};for(let a of b.split(/[;;]/u)){if(f(a)||e(a))continue;let d=j(a);d&&d!==b&&c.push(d)}return Array.from(new Set(c)).filter(c=>c.length>=4&&c.length<=60&&c!==b&&!l(c,a))}(a.chapter.title)));for(let b of(d?.sections||[]).map(a=>h(j(a))).filter(b=>!l(b,a.chapter.title)))f.some(a=>a.includes(b)||b.includes(a))||f.push(b);for(let b of[...[a.chapter.title,...a.chapter.requiredFacts||[],...a.chapter.queries||[]].flatMap(a=>String(a||"").split(/[;;。\n]/u)).map(j).filter(b=>!l(b,a.chapter.title)),...(c=a.chapter.title,/质量/u.test(c)?["质量目标与质量管理体系","关键工序质量控制措施","材料设备进场验收与检验","质量检查试验与验收程序","质量通病防治与整改闭环","成品保护与资料管理"]:/安全/u.test(c)?["安全生产管理体系","危险源辨识与分级管控","现场安全防护措施","临时用电与机械设备安全管理","应急处置与安全检查整改","安全教育培训与交底"]:/工期|进度/u.test(c)?["总工期目标与节点安排","施工进度计划编制原则","关键线路与工序穿插安排","资源投入与工期保障措施","进度偏差纠偏与动态调整","工期风险识别与应对措施"]:/物资|材料/u.test(c)?["主要材料设备需求分析","材料采购与进场计划","材料验收复试与保管","周转材料配置与使用管理","材料供应风险与保障措施"]:/机械|设备/u.test(c)?["主要机械设备配置原则","机械设备进退场计划","机械设备调度与运行管理","机械设备维护保养与安全检查","关键设备保障措施"]:/劳动力/u.test(c)?["劳动力配置原则","各阶段劳动力投入计划","专业工种与特种作业人员配置","劳动力动态调配措施","劳务管理与教育交底"]:/文明|环保/u.test(c)?["现场封闭与场容场貌管理","环境保护与污染防治措施","材料设备定置化管理","职业健康与消防文明管理","文明施工检查与整改"]:/总平面|平面布置/u.test(c)?["施工总平面布置原则","临时道路与材料堆场布置","临时用水用电及排水布置","办公生活与加工区域布置","总平面动态调整与管理"]:/危大|专项/u.test(c)?["危大工程识别与清单管理","专项施工方案编制与审批","专家论证与技术交底","现场实施监测与旁站管理","应急处置与验收销项"]:/施工方法|施工方案|主要/u.test(c)?["总体施工部署与流程安排","主要分部分项施工方法","关键工序技术控制要点","资源配置与穿插组织","质量安全与成品保护措施"]:["总体部署与责任分工","实施流程与关键控制","资源配置与资料依据","质量安全与风险控制","检查验收与闭环管理","资料记录与成果移交"]).filter(b=>!l(b,a.chapter.title))]){if(f.length>=n)break;f.some(a=>a.includes(b)||b.includes(a))||f.push(b)}return(function(a,b,c){let d=x(c.flatMap(a=>a.requiredSections).sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title),b);for(let c of x(a,b))d.some(a=>m(a,c))||d.push(c);return d})(f,a.chapter.title,i).slice(0,Math.max(o,k.length))},r=await q("");if(!p)return r;let s=r.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));if(s<=0)return r;let t=await q(`上一轮规划位置错误:小节"${r[s]}"必须是本章小节清单的第一位(第一章首节),不得排在"${r.slice(0,s).join("、")}"等小节之后;请重新输出完整小节清单,将该项置于第一位,其余小节顺序可保持不变。`),u=t.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));return u>0&&console.error(`[plan] 章节小节顺序核验未通过(重规划后"${t[u]}"仍不在首位):${a.chapter.title},保留 LLM 规划顺序交由下游审校处理`),t}function z(a){let b=t({promptTexts:a});return{recognized:b.executionSummary.length>0,summary:b.executionSummary,requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}function A(a){let b=[],c=a.map(a=>({prompt:a,rules:t({promptTexts:a.content})})).filter(a=>a.rules.executionSummary.length>0);if(c.length<2)return b;for(let a=0;a<c.length;a++)for(let d=a+1;d<c.length;d++){let e=c[a],f=c[d],g=`${e.prompt.name}(${e.prompt.roleId})`,h=`${f.prompt.name}(${f.prompt.roleId})`,i=[];for(let a of e.rules.requiredKeywords||[])for(let b of[...f.rules.forbiddenTerms||[],...f.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${g})但被禁止(${h}:${b})`);for(let a of f.rules.requiredKeywords||[])for(let b of[...e.rules.forbiddenTerms||[],...e.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${h})但被禁止(${g}:${b})`);for(let a of[...new Set(i)].slice(0,4))b.push({level:"warning",message:a});let j=e.rules.exactHeadings||[],k=f.rules.exactHeadings||[];if(j.length>0&&k.length>0){let a=new Set(k),c=new Set(j),d=[...new Set([...j.filter(b=>!a.has(b)),...k.filter(a=>!c.has(a))])];d.length>0&&b.push({level:"warning",message:`固定一级章节列表不一致:${g} 要求 ${j.length} 章,${h} 要求 ${k.length} 章(差异:${d.slice(0,3).join("、")})。生成时将合并去重。`})}for(let a of["coverPolicy","tocPolicy"]){let c=e.rules[a],d=f.rules[a];c&&d&&"unspecified"!==c&&"unspecified"!==d&&c!==d&&b.push({level:"warning",message:`${"coverPolicy"===a?"封面":"目录"}策略冲突:${g} 要求「${"required"===c?"生成":"禁止"}」,${h} 要求「${"required"===d?"生成":"禁止"}」。生成时以禁止优先。`})}e.rules.minWords&&f.rules.minWords&&e.rules.minWords!==f.rules.minWords&&b.push({level:"warning",message:`最低字数要求不一致:${g} ${e.rules.minWords} 字 vs ${h} ${f.rules.minWords} 字。生成时将取最大值 ${Math.max(e.rules.minWords,f.rules.minWords)} 字。`})}return b}},80439:(a,b,c)=>{function d(a){return a?({"knowledge-base":"知识库","document-readiness":"生成准备度检查","quality-repair":"质量补写","export-gate":"导出门禁","final-format":"正式排版","llm-json":"LLM 事实抽取","llm-review":"LLM 审查","document-workflow":"最终规范校验"})[a]:void 0}function e(a,b={}){let c={executionVersion:2,title:function(a,b){if("llm_review"===a){if(b?.startsWith("agent-reviewer"))return"LLM 审查";if(b?.startsWith("agent-repairer"))return"LLM 优化"}return({role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",asset_generation:"生成资源处理",llm_review:"LLM 审查优化",validation:"内容优化与质量校验",formatting:"正式排版整理",export_ready:"导出就绪检查",reference:"资料增强"})[a]}(a.type,a.roleId),group:a.type,...a,...b};return{...c,roleName:c.roleName||d(c.roleId),subtitle:c.subtitle||c.roleName||d(c.roleId)}}function f(a,b){let c=a=>"chapter_generation"===a.type||/^agent-(?:reviewer|repairer|chapter-task|final-gate-repair)-/u.test(a.roleId||"")?[a.type,a.roleId||"",a.promptId||"",a.subtitle||"",a.order??""].join("::"):[a.type,a.roleId||"",a.promptId||""].join("::"),d=c(b),e=a.findIndex(a=>c(a)===d);return e>=0?(a[e]={...b,order:a[e]?.order??b.order},e):(a.push(b),a.length-1)}function g(a,b){return`${a},耗时 ${Math.round((Date.now()-b)/1e3)} 秒`}c.d(b,{AQ:()=>g,X5:()=>e,fx:()=>f})},85441:(a,b,c)=>{c.d(b,{F:()=>u,P:()=>s});var d=c(76760),e=c(44533),f=c(92808);let g=["project_overview","requirement_document","structured_data","scope_description"],h=["project_overview","requirement_document","addendum","structured_data","budget_cost","design_specification","resource_recommendation","schedule_quality_safety","scope_description","technical_specification","risk_constraints"];function i(a){let b=[];for(let c of a)for(let a of c.relativePath.split(/[\\/]/gu))a&&b.push(a);return b}function j(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function k(a){return m(a).replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").replace(/^(?:延期到\d+(?:\.\d+)?[-_—–\s]*)+/u,"").trim()}function l(a){let b=new Set,c=[];for(let d of a)!d||b.has(d)||(b.add(d),c.push(d));return c}function m(a){return a.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"").trim()}function n(a){let b=new Set,c=[];for(let d of i(a)){let a=k(d);!(!/项目|任务|文档|合同|计划|方案|工程/iu.test(a)||a.length<6||b.has(a))&&(!j(a)||/\.\w+$/u.test(d))&&(b.add(a),c.push(a))}return c}function o(a,b){return 0===a.length?b:a.map(a=>m(a.fileName)).join("、")}function p(a,b,c){b.lastIndex=0;let d=new Set,e=[];for(let f of a.matchAll(b)){let a=(f[c]||"").trim();!a||d.has(a)||(d.add(a),e.push(a))}return b.lastIndex=0,e}function q(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function r(a){let b=q(a).split("/").filter(Boolean);return b.length>1?b[0]:void 0}function s(a,b){let c=(0,e.Yy)(a),m=function(a,b){let c=a.filter(a=>"error"!==a.status),d=new Set((b?.boundFilePaths||[]).map(q)),e=c.filter(a=>d.has(q(a.relativePath)));if(e.length>0){let a=[...new Set(e.map(a=>r(a.relativePath)).filter(Boolean))],b=1===a.length?a[0]:void 0;return{files:e,reason:b?`模板绑定文件定位到资料组:${b}`:"使用模板显式绑定文件作为资料范围",ambiguous:!1}}let f=(b?.requirement||"").trim();if(f){let a=new Map;for(let b of c){let c=r(b.relativePath);if(!c)continue;let d=function(a,b){let c=0;for(let d of a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,)+/u)){let a=d.trim();a.length>=2&&b.includes(a)&&(c+=1)}return c}(c,f);d>0&&a.set(c,(a.get(c)||0)+d)}let b=[...a.entries()].sort((a,b)=>b[1]-a[1])[0];if(b)return{files:c.filter(a=>r(a.relativePath)===b[0]),reason:`需求描述定位到资料组:${b[0]}`,ambiguous:!1}}let g=[...new Set(c.map(a=>r(a.relativePath)).filter(Boolean))];return 1===g.length?{files:c.filter(a=>r(a.relativePath)===g[0]),reason:`知识库单一资料组:${g[0]}`,ambiguous:!1}:{files:c,reason:g.length>1?`未指定资料组,检测到 ${g.length} 个资料组,已阻断生成避免跨项目污染`:"未检测到资料组,使用全部资料",ambiguous:g.length>1}}(c,b),s=m.files,t=function(){let a={};for(let b of h)a[b]=[];return a}(),u=new Map((b?.boundFileRoles||[]).map(a=>[q(a.filePath),a.roles]));for(let a of s){let b=q(a.relativePath),c=[...u.entries()].filter(([a])=>b.endsWith(a)||a.endsWith(b)).flatMap(([,a])=>a);for(let b of[...new Set([...function(a){let b=new Set((0,f.t0)(a,f.hW));return b.add("project_overview"),[...b]}(a.relativePath),...c])])t[b].push({filePath:a.relativePath,fileName:d.basename(a.relativePath),role:b,chunkCount:a.chunkCount})}let v=function(a){let b,c;for(let d of i(a)){let a=k(d);if(/项目|工程/iu.test(a)&&!(a.length<6)){if(/\.\w+$/u.test(d)){b||=a;continue}if(j(a)){c||=a.split(/--/u).filter(a=>/项目|工程/u.test(a)).sort((a,b)=>a.length-b.length)[0]||a;continue}return a}}return b||c||"当前知识库项目"}(s),w=function(a){for(let b of a){let a=b.relativePath.match(/\b\d{4}[A-Z]{2,}\d{4,}\b/u)?.[0];if(a)return a}}(s),x=function(a,b){let c=n(a),d=n(b),e=l(a.map(a=>a.relativePath).join("\n").match(/\b\d{4}[A-Z]{2,}\d{4,}\b/gu)||[]),f=l(a.map(a=>r(a.relativePath)).filter(Boolean)),g=[c.length>0,e.length>0,1===f.length];return{fingerprint:{projectNames:c,documentNos:e,fileGroups:f,confidence:g.filter(Boolean).length/g.length},contaminationCandidates:d.filter(a=>!c.includes(a))}}(s,c),y=function(a){let b=function(a){let b="";for(let c of a)b+=`${c.relativePath}
107
+ 返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,u),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});(0,g.Te)(a.signal);if(!h)return;let j=new Set(d.map(a=>a.filePath)),l=a=>"string"==typeof a&&(j.has(a)||d.some(b=>e.basename(b.filePath)===e.basename(a))),m=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",n=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(h.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:m(a.name,200),scope:m(a.scope,500),sourceFiles:n(a.sourceFiles,10).filter(l),relatedItems:n(a.relatedItems,20)})),methods:(h.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:m(a.name,200),steps:n(a.steps,12),applicableWorks:n(a.applicableWorks,10),sourceFiles:n(a.sourceFiles,10).filter(l)})),resources:(h.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:m(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:m(a.spec,200),quantity:m(a.quantity,50),unit:m(a.unit,20),sourceFiles:n(a.sourceFiles,5).filter(l)})),schedule:(h.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:m(a.milestone,200),duration:m(a.duration,100),startDate:m(a.startDate,50),endDate:m(a.endDate,50),sourceFiles:n(a.sourceFiles,5).filter(l)})),standards:(h.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:m(a.code,100),description:m(a.description,300),sourceFiles:n(a.sourceFiles,5).filter(l)})),risks:(h.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:m(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:m(a.mitigation,500),sourceFiles:n(a.sourceFiles,5).filter(l)})),requirements:(h.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:m(a.category,100),detail:m(a.detail,500),sourceFiles:n(a.sourceFiles,5).filter(l)})),siteConditions:(h.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:m(a.condition,300),impact:m(a.impact,500),sourceFiles:n(a.sourceFiles,5).filter(l)})),addendumChanges:(h.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:m(a.originalPath,300),original:m(a.original,300),revised:m(a.revised,500),sourceFile:m(a.sourceFile,200)})),gaps:n(h.gaps,20),generatedAt:Date.now()}}async function x(b=[]){let c=Object.keys(k),d=(await (0,g.l$)(c,async c=>{try{let a=await w(c,b);if(a&&m(a)>0)return a;v.push(`${k[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;v.push(`${k[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:Number(process.env.DOCUMENT_PROJECT_GRAPH_DOMAIN_CONCURRENCY||2)})).filter(a=>!!a);return d.length?function(a){let b={w:new Set,m:new Set,r:new Set,sc:new Set,st:new Set,ri:new Set,rq:new Set,si:new Set,a:new Set};return{works:a.flatMap(a=>a.works).filter(a=>{let c=a.name+a.scope;return!b.w.has(c)&&(b.w.add(c),!0)}),methods:a.flatMap(a=>a.methods).filter(a=>{let c=a.name;return!b.m.has(c)&&(b.m.add(c),!0)}),resources:a.flatMap(a=>a.resources).filter(a=>{let c=a.name+a.spec+a.type;return!b.r.has(c)&&(b.r.add(c),!0)}),schedule:a.flatMap(a=>a.schedule).filter(a=>{let c=a.milestone;return!b.sc.has(c)&&(b.sc.add(c),!0)}),standards:a.flatMap(a=>a.standards).filter(a=>{let c=a.code+a.description;return!b.st.has(c)&&(b.st.add(c),!0)}),risks:a.flatMap(a=>a.risks).filter(a=>{let c=a.risk;return!b.ri.has(c)&&(b.ri.add(c),!0)}),requirements:a.flatMap(a=>a.requirements).filter(a=>{let c=a.category+a.detail;return!b.rq.has(c)&&(b.rq.add(c),!0)}),siteConditions:a.flatMap(a=>a.siteConditions).filter(a=>{let c=a.condition;return!b.si.has(c)&&(b.si.add(c),!0)}),addendumChanges:a.flatMap(a=>a.addendumChanges).filter(a=>{let c=a.original+a.revised;return!b.a.has(c)&&(b.a.add(c),!0)}),gaps:[...new Set(a.flatMap(a=>a.gaps))],generatedAt:Date.now()}}(d):void 0}try{let b=await x(),d=p(b,t);if(d.ok&&b||b&&m(b)>0)return o(a.projectRoot,c,b),{graph:b,stage:q(b)};let e=await x([...d.reasons,...v]);if(e&&m(e)>0)return o(a.projectRoot,c,e),{graph:e,stage:q(e)};return{stage:r([...d.reasons,...v])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:r([b instanceof Error?b.message:String(b),...v])}}}function t(a){let b=["## 项目资料图谱分析结果",""];for(let c of a.works)2===b.length&&b.push("### 主要工程内容"),b.push(`- **${c.name}**:${c.scope}`);for(let c of(a.works.length&&b.push(""),a.methods))b.includes("### 关键施工方法与工艺")||b.push("### 关键施工方法与工艺"),b.push(`- **${c.name}**:${c.steps.filter(Boolean).join(" → ")}`);for(let c of(a.methods.length&&b.push(""),a.resources)){b.includes("### 资源需求")||b.push("### 资源需求");let a={material:"材料",equipment:"设备",labor:"劳动力"}[c.type]||"资源";b.push(`- [${a}] ${c.name}${c.spec?`(${c.spec})`:""}${c.quantity?` ${c.quantity}${c.unit}`:""}`)}for(let c of(a.resources.length&&b.push(""),a.schedule))b.includes("### 工期与关键节点")||b.push("### 工期与关键节点"),b.push(`- ${c.milestone}:${c.duration}(${c.startDate} ~ ${c.endDate})`);for(let c of(a.schedule.length&&b.push(""),a.standards))b.includes("### 技术标准与验收要求")||b.push("### 技术标准与验收要求"),b.push(`- **${c.code}**:${c.description}`);for(let c of(a.standards.length&&b.push(""),a.risks))b.includes("### 重点难点与风险")||b.push("### 重点难点与风险"),b.push(`- **[${c.level}] ${c.risk}**:${c.mitigation}`);for(let c of(a.risks.length&&b.push(""),a.requirements))b.includes("### 特定要求")||b.push("### 特定要求"),b.push(`- [${c.category}] ${c.detail}`);for(let c of(a.requirements.length&&b.push(""),a.siteConditions))b.includes("### 现场条件与约束")||b.push("### 现场条件与约束"),b.push(`- ${c.condition}:${c.impact}`);for(let c of(a.siteConditions.length&&b.push(""),a.addendumChanges))b.includes("### 补疑修正")||b.push("### 补疑修正"),b.push(`- "${c.original}" → "${c.revised}"`);for(let c of(a.addendumChanges.length&&b.push(""),a.gaps))b.includes("### 资料缺口")||b.push("### 资料缺口"),b.push(`- ${c}`);return a.gaps.length&&b.push(""),b.join("\n")}},78217:(a,b,c)=>{function d(a,b){return Math.ceil(e(a)/f(b))}function e(a){return a.replace(/<[^>]+>/gu,"").replace(/\s+/gu,"").length}function f(a){let b=Number(String(a&&"typography"in a&&a.typography?.bodySize||"").replace(/[^\d.]/gu,""))||14,c=Number(String(a&&"typography"in a&&a.typography?.lineHeight||"").replace(/[^\d.]/gu,""))||22;return b>=14&&c>=22?900:1050}function g(a){let b=a.trim();if(/^\d+(?:\.\d+)?$/u.test(b))return Number(b);let c={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if("十"===b)return 10;let d=/^([一二两三四五六七八九])?十([一二三四五六七八九])?$/u.exec(b);if(d)return(d[1]?c[d[1]]:1)*10+(d[2]?c[d[2]]:0)}function h(a="",b=""){let c=`${a}${b}`;return/不少于|至少|不低于|以上|起码/u.test(c)?"minimum":/约|大概|左右|大约|约为|附近/u.test(c)?"approximate":"exact"}function i(a){let b=a.replace(/\s+/gu," "),c=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(?:页|頁)\s*(以上|左右|以内|以下)?/gu)],d=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(万)?\s*(?:字|字符)\s*(以上|左右|以内|以下)?/gu)],e=c.map(a=>{let b=g(a[2]||"");return Number.isFinite(b)?{value:b,mode:h(a[1],a[3])}:void 0}).filter(a=>!!a).at(-1),f=d.map(a=>{let b=g(a[2]||"");return b?{value:Math.round(b*(a[3]?1e4:1)),mode:h(a[1],a[4])}:void 0}).filter(a=>!!a).at(-1);return{targetPages:e?.value,pageMode:e?.mode,targetChars:f?.value,charMode:f?.mode}}function j(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?1.3:/概况|结语|附录/u.test(b)?.75:1}function k(a){let b=a.template.generationSettings||a.template.exportSettings,c=f(a.template.exportSettings||a.template.generationSettings),d=i(a.requirement||""),e=i(a.promptTexts||""),g=d.targetChars||d.targetPages?d:e,h=!!(g.targetChars||g.targetPages),k=h?void 0:b?.targetPages?.target||b?.targetPages?.min,l=g.targetPages?g.targetPages*c:void 0,m=g.targetPages||k,n=h?"explicit":k?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",o=h?Math.max(g.targetChars||0,l||0)||void 0:Math.max((k?k*c:void 0)||0)||void 0,p=g.pageMode||"exact",q=g.charMode||p,r=h&&"approximate"===q,s=h&&"minimum"===q,t=h?m?Math.floor(m*(s?1:.9)):void 0:b?.targetPages?.min||(m?Math.floor(.95*m):void 0),u=h&&m&&!s?Math.ceil(m*(r?1.15:1.08)):b?.targetPages?.max,v=o?Math.floor(o*(s?1:.9)):t?t*c:void 0,w=o&&!s?Math.ceil(o*(r?1.15:1.08)):u?u*c:void 0,x=a.chapters.length>0?a.chapters:a.template.chapters,y=x.reduce((a,b)=>a+j(b),0)||1,z=new Map,A=x.map(a=>({chapter:a,target:o?Math.round(o*j(a)/y):0})),B=x.reduce((b,c)=>b+Math.max(a.spec?.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0,o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200),0),C=o&&B>.92*o?Math.max(.45,.92*o/B):1;for(let{chapter:b,target:c}of A){let d=Math.floor(Math.max(Math.max(a.spec?.chapterRules.find(a=>a.id===b.id||a.title===b.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0),o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200)*C);z.set(b.id,Math.max(d,c))}let D=!!(h&&(s||"exact"===q)&&(o||v||0)>=4e4);return{targetPages:m,minPages:t,maxPages:u,targetChars:o,minChars:v,maxChars:w,charsPerPage:c,chapterTargets:z,source:n,mode:q,longformStrict:D}}function l(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function m(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars&&f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}),a.minPages&&d<a.minPages&&f.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${d} 页,目标不少于 ${a.minPages} 页`,suggestion:"建议继续扩写正文,或根据实际导出版式调整目标页数。"}),a.maxPages&&d>a.maxPages&&f.push({level:"warning",message:`正文篇幅超过目标页数区间:预计约 ${d} 页,建议不超过 ${a.maxPages} 页`,suggestion:"建议压缩过度展开内容或调整目标页数。"}),f}c.d(b,{Cv:()=>d,PE:()=>l,V7:()=>e,py:()=>i,q6:()=>f,tF:()=>k,ty:()=>m})},80439:(a,b,c)=>{function d(a){return a?({"knowledge-base":"知识库","document-readiness":"生成准备度检查","quality-repair":"质量补写","export-gate":"导出门禁","final-format":"正式排版","llm-json":"LLM 事实抽取","llm-review":"LLM 审查","document-workflow":"最终规范校验"})[a]:void 0}function e(a,b={}){let c={executionVersion:2,title:function(a,b){if("llm_review"===a){if(b?.startsWith("agent-reviewer"))return"LLM 审查";if(b?.startsWith("agent-repairer"))return"LLM 优化"}return({role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",asset_generation:"生成资源处理",llm_review:"LLM 审查优化",validation:"内容优化与质量校验",formatting:"正式排版整理",export_ready:"导出就绪检查",reference:"资料增强"})[a]}(a.type,a.roleId),group:a.type,...a,...b};return{...c,roleName:c.roleName||d(c.roleId),subtitle:c.subtitle||c.roleName||d(c.roleId)}}function f(a,b){let c=a=>"chapter_generation"===a.type||/^agent-(?:reviewer|repairer|chapter-task|final-gate-repair)-/u.test(a.roleId||"")?[a.type,a.roleId||"",a.promptId||"",a.subtitle||"",a.order??""].join("::"):[a.type,a.roleId||"",a.promptId||""].join("::"),d=c(b),e=a.findIndex(a=>c(a)===d);return e>=0?(a[e]={...b,order:a[e]?.order??b.order},e):(a.push(b),a.length-1)}function g(a,b){return`${a},耗时 ${Math.round((Date.now()-b)/1e3)} 秒`}c.d(b,{AQ:()=>g,X5:()=>e,fx:()=>f})},85441:(a,b,c)=>{c.d(b,{F:()=>u,P:()=>s});var d=c(76760),e=c(44533),f=c(92808);let g=["project_overview","requirement_document","structured_data","scope_description"],h=["project_overview","requirement_document","addendum","structured_data","budget_cost","design_specification","resource_recommendation","schedule_quality_safety","scope_description","technical_specification","risk_constraints"];function i(a){let b=[];for(let c of a)for(let a of c.relativePath.split(/[\\/]/gu))a&&b.push(a);return b}function j(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function k(a){return m(a).replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").replace(/^(?:延期到\d+(?:\.\d+)?[-_—–\s]*)+/u,"").trim()}function l(a){let b=new Set,c=[];for(let d of a)!d||b.has(d)||(b.add(d),c.push(d));return c}function m(a){return a.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"").trim()}function n(a){let b=new Set,c=[];for(let d of i(a)){let a=k(d);!(!/项目|任务|文档|合同|计划|方案|工程/iu.test(a)||a.length<6||b.has(a))&&(!j(a)||/\.\w+$/u.test(d))&&(b.add(a),c.push(a))}return c}function o(a,b){return 0===a.length?b:a.map(a=>m(a.fileName)).join("、")}function p(a,b,c){b.lastIndex=0;let d=new Set,e=[];for(let f of a.matchAll(b)){let a=(f[c]||"").trim();!a||d.has(a)||(d.add(a),e.push(a))}return b.lastIndex=0,e}function q(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function r(a){let b=q(a).split("/").filter(Boolean);return b.length>1?b[0]:void 0}function s(a,b){let c=(0,e.Yy)(a),m=function(a,b){let c=a.filter(a=>"error"!==a.status),d=new Set((b?.boundFilePaths||[]).map(q)),e=c.filter(a=>d.has(q(a.relativePath)));if(e.length>0){let a=[...new Set(e.map(a=>r(a.relativePath)).filter(Boolean))],b=1===a.length?a[0]:void 0;return{files:e,reason:b?`模板绑定文件定位到资料组:${b}`:"使用模板显式绑定文件作为资料范围",ambiguous:!1}}let f=(b?.requirement||"").trim();if(f){let a=new Map;for(let b of c){let c=r(b.relativePath);if(!c)continue;let d=function(a,b){let c=0;for(let d of a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,)+/u)){let a=d.trim();a.length>=2&&b.includes(a)&&(c+=1)}return c}(c,f);d>0&&a.set(c,(a.get(c)||0)+d)}let b=[...a.entries()].sort((a,b)=>b[1]-a[1])[0];if(b)return{files:c.filter(a=>r(a.relativePath)===b[0]),reason:`需求描述定位到资料组:${b[0]}`,ambiguous:!1}}let g=[...new Set(c.map(a=>r(a.relativePath)).filter(Boolean))];return 1===g.length?{files:c.filter(a=>r(a.relativePath)===g[0]),reason:`知识库单一资料组:${g[0]}`,ambiguous:!1}:{files:c,reason:g.length>1?`未指定资料组,检测到 ${g.length} 个资料组,已阻断生成避免跨项目污染`:"未检测到资料组,使用全部资料",ambiguous:g.length>1}}(c,b),s=m.files,t=function(){let a={};for(let b of h)a[b]=[];return a}(),u=new Map((b?.boundFileRoles||[]).map(a=>[q(a.filePath),a.roles]));for(let a of s){let b=q(a.relativePath),c=[...u.entries()].filter(([a])=>b.endsWith(a)||a.endsWith(b)).flatMap(([,a])=>a);for(let b of[...new Set([...function(a){let b=new Set((0,f.t0)(a,f.hW));return b.add("project_overview"),[...b]}(a.relativePath),...c])])t[b].push({filePath:a.relativePath,fileName:d.basename(a.relativePath),role:b,chunkCount:a.chunkCount})}let v=function(a){let b,c;for(let d of i(a)){let a=k(d);if(/项目|工程/iu.test(a)&&!(a.length<6)){if(/\.\w+$/u.test(d)){b||=a;continue}if(j(a)){c||=a.split(/--/u).filter(a=>/项目|工程/u.test(a)).sort((a,b)=>a.length-b.length)[0]||a;continue}return a}}return b||c||"当前知识库项目"}(s),w=function(a){for(let b of a){let a=b.relativePath.match(/\b\d{4}[A-Z]{2,}\d{4,}\b/u)?.[0];if(a)return a}}(s),x=function(a,b){let c=n(a),d=n(b),e=l(a.map(a=>a.relativePath).join("\n").match(/\b\d{4}[A-Z]{2,}\d{4,}\b/gu)||[]),f=l(a.map(a=>r(a.relativePath)).filter(Boolean)),g=[c.length>0,e.length>0,1===f.length];return{fingerprint:{projectNames:c,documentNos:e,fileGroups:f,confidence:g.filter(Boolean).length/g.length},contaminationCandidates:d.filter(a=>!c.includes(a))}}(s,c),y=function(a){let b=function(a){let b="";for(let c of a)b+=`${c.relativePath}
66
108
  `;return b}(a);return{ownerNames:p(b,/(?:责任主体|委托人|客户|甲方|乙方|需求方|服务方|执行方|负责人)[::]?([^\\/\n,,。;;]{2,40})/gu,1),locationNames:p(b,/(?:项目地点|实施地点|服务地点|交付地点|项目地址|执行地点)[::]?([^\\/\n,,。;;]{2,50})/gu,1),scheduleValues:p(b,/(\d+\s*(?:天|周|个月|月|年|小时)|(?:周期|期限|交付|完成)[^\\/\n,,。;;]{0,30})/gu,1),qualityTargets:p(b,/(?:质量(?:标准|目标|要求)?[::]?[^\\/\n,,。;;]{2,40}|合格|优良)/gu,0)}}(s),z=function(a){let b=new Set(g);for(let c of["design_specification","schedule_quality_safety","risk_constraints","resource_recommendation","technical_specification","budget_cost","addendum"])a[c].length>0&&b.add(c);return[...b]}(t),A=z.filter(a=>t[a].length>0),B=z.filter(a=>0===t[a].length);return{projectId:v.replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/gu,"-").slice(0,80)||"current-project",projectName:v,generatedAt:Date.now(),fingerprint:x.fingerprint,contaminationCandidates:x.contaminationCandidates,source:{totalFiles:c.length,selectedFiles:s.length,selectionReason:m.reason,ambiguous:m.ambiguous},facts:{projectName:v,documentNo:w,scopeDescriptions:t.scope_description.map(a=>a.fileName.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"")),professionalScopes:[...new Set(t.scope_description.concat(t.design_specification,t.structured_data).map(a=>a.fileName.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"")))],scheduleRequirement:t.schedule_quality_safety.length?"已识别周期、质量、安全或合规相关资料,生成时应以需求文件、变更说明和技术要求为准。":void 0,qualityRequirement:t.schedule_quality_safety.length?"已识别质量或评价相关资料。":void 0,safetyRequirement:t.schedule_quality_safety.length?"已识别安全或合规相关资料。":void 0,materialBrandRequirement:t.resource_recommendation.length?"已识别资源、材料、设备或品牌相关资料。":void 0,ownerNames:y.ownerNames,locationNames:y.locationNames,scheduleValues:y.scheduleValues,qualityTargets:y.qualityTargets},materialInventory:t,extractedSections:{projectOverview:`绑定材料组:${v}${w?`,文档/任务编号:${w}`:""}。`,scopeSummary:`范围资料:${o(t.scope_description,"未识别到明确范围资料")}。`,designSummary:`设计/方案/说明资料:${o(t.design_specification,"未识别到设计、方案或说明资料")}。`,structuredDataSummary:`结构化数据资料:${o(t.structured_data,"未识别到表格、列表或明细资料")}。`,scheduleQualitySafetySummary:`周期质量安全资料:${o(t.schedule_quality_safety,"未识别到周期、质量或安全专项资料")}。`,constraintsAndRisks:`约束和风险资料:${o(t.risk_constraints,"未识别到重点难点或约束资料")}。`},coverage:{requiredRoles:z,satisfiedRoles:A,missingRoles:B}}}function t(a){return a.replace(/OCR|识别错误|乱码/giu,"资料文字不清").replace(/知识库|提示词|后台|绑定片段|兜底/gu,"项目资料").replace(/PDF|DWG|Excel|XLSX?|DOCX?/giu,"资料文件")}function u(a,b={}){return b.publicSafe?["## 项目资料事实边界",t(a.extractedSections.projectOverview),`明确事实:责任主体 ${a.facts.ownerNames?.join("、")||"资料未明确"};地点 ${a.facts.locationNames?.join("、")||"资料未明确"};周期 ${a.facts.scheduleValues?.join("、")||"资料未明确"};质量 ${a.facts.qualityTargets?.join("、")||"资料未明确"}。`,t(a.extractedSections.scopeSummary),t(a.extractedSections.structuredDataSummary),t(a.extractedSections.designSummary),t(a.extractedSections.scheduleQualitySafetySummary),t(a.extractedSections.constraintsAndRisks),"仅使用资料中明确、可信的事实;资料未明确的工程实体事实不得推导,允许推导的计划配置类数据须明确标注为计划配置值。"].filter(Boolean).join("\n"):["## 后台绑定材料摘要",a.extractedSections.projectOverview,`材料指纹:对象名候选 ${a.fingerprint.projectNames.join("、")||"无"};编号 ${a.fingerprint.documentNos.join("、")||"无"};资料组 ${a.fingerprint.fileGroups.join("、")||"无"}。`,`内容级事实候选:责任主体 ${a.facts.ownerNames?.join("、")||"无"};地点 ${a.facts.locationNames?.join("、")||"无"};周期 ${a.facts.scheduleValues?.join("、")||"无"};质量 ${a.facts.qualityTargets?.join("、")||"无"}。`,a.extractedSections.scopeSummary,a.extractedSections.structuredDataSummary,a.extractedSections.designSummary,a.extractedSections.scheduleQualitySafetySummary,a.extractedSections.constraintsAndRisks].join("\n")}},91977:(a,b,c)=>{c.d(b,{I2:()=>g,Lk:()=>e,Uy:()=>f});var d=c(70208);function e(a,b){let c=`${a.filePath}
67
- ${a.content}`;return(function(a){let b=a.replace(/要求|计划|目标|标准|内容|信息|事实|依据|参数|范围|要点/gu,"");return[a,b].filter(Boolean)})(b).some(a=>c.includes(a))}function f(a,b){let c=(0,d.effectiveTemplateChapters)(a,b).flatMap(a=>a.requiredFacts).map(a=>({id:a,name:a,required:!0,sourceRoleIds:[],extractionHint:""})),e=b?.factFields.map(a=>({id:a.id,name:a.name,required:a.required,sourceRoleIds:a.sourceRoleIds||[],extractionHint:a.extractionHint||""}))||[],f=new Map;for(let a of[...c,...e])f.set(a.id,{...f.get(a.id)||a,...a,required:a.required||f.get(a.id)?.required||!1});return[...f.values()]}function g(a,b){return(!b.sourceRoleIds?.length||!!(a.roleId&&b.sourceRoleIds.includes(a.roleId)))&&e(a,b.name)}},92808:(a,b,c)=>{c.d(b,{NT:()=>e,Ny:()=>f,hW:()=>g,nt:()=>d,rs:()=>i,t0:()=>h});let d=[{id:"report",label:"报告",patterns:[/报告|调研|分析|评估|研究|复盘|总结/iu],output:["报告"]},{id:"plan",label:"实施方案",patterns:[/方案|规划|计划|预案|路径|路线图/iu],output:["实施方案"]},{id:"standard",label:"规范说明",patterns:[/规范|标准|制度|规则|指南|手册/iu],output:["规范说明"]},{id:"proposal",label:"建议方案",patterns:[/建议|提案|需求|响应|说明书/iu],output:["建议方案"]}],e=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|约束|响应|澄清|变更/iu],output:["需求约束","规则要求","变更说明"]},{id:"scope",label:"范围资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["实施范围","对象范围"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["结构化数据范围","参数规格范围"]},{id:"quality",label:"质量评价资料",patterns:[/质量|验收|审核|评审|评价|标准|规范|指标/iu],output:["质量要求","评价标准"]},{id:"schedule",label:"时间进度资料",patterns:[/周期|期限|进度|计划|节点|里程碑|时间|日期/iu],output:["周期要求","进度节点要求"]},{id:"safety",label:"安全合规资料",patterns:[/安全|合规|风险|应急|环保|隐私|审计|控制/iu],output:["安全合规要求","风险控制要求"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"analysis",label:"分析结论",patterns:[/报告|调研|分析|评估|研究|建议|结论/iu],output:["背景依据","分析结论","风险建议"]}],f=[{id:"overview",label:"概况章节",patterns:[/概况|背景|理解|说明|总则|摘要/iu],output:["对象名称","材料范围","实施范围"]},{id:"implementation",label:"实施章节",patterns:[/方法|部署|实施|范围|组织|流程|步骤/iu],output:["实施范围","对象范围","结构化数据范围"]},{id:"controls",label:"控制章节",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价/iu],output:["质量要求","周期要求","安全合规要求"]},{id:"resources",label:"资源章节",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"risk",label:"风险章节",patterns:[/风险|重点|难点|约束|应急|合规/iu],output:["风险控制要求","风险建议"]}],g=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|响应|requirement|rule/iu],output:["requirement_document"]},{id:"change",label:"变更澄清资料",patterns:[/补充|澄清|变更|修订|addendum|change/iu],output:["addendum"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["structured_data"]},{id:"budget",label:"预算费用资料",patterns:[/预算|费用|金额|报价|限价|成本|price|cost|budget/iu],output:["budget_cost"]},{id:"design",label:"设计方案资料",patterns:[/设计|方案|说明|图像|地图|附件|drawing|image|map|design/iu],output:["design_specification"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["resource_recommendation"]},{id:"schedule-quality-safety",label:"进度质量合规资料",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价|环保|应急/iu],output:["schedule_quality_safety"]},{id:"scope",label:"范围任务资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["scope_description"]},{id:"technical",label:"技术标准资料",patterns:[/技术|规范|标准|规程|指南|手册|参数|spec|standard/iu],output:["technical_specification"]},{id:"risk",label:"风险约束资料",patterns:[/风险|重点|难点|约束|限制|现场|条件|应急/iu],output:["risk_constraints"]}];function h(a,b){let c=new Set;for(let d of b)for(let b of d.patterns)if(b.lastIndex=0,b.test(a)){for(let a of d.output)c.add(a);break}return[...c]}function i(a,b){for(let c of b)for(let b of c.patterns)if(b.lastIndex=0,b.test(a))return c.output[0]}}};
109
+ ${a.content}`;return(function(a){let b=a.replace(/要求|计划|目标|标准|内容|信息|事实|依据|参数|范围|要点/gu,"");return[a,b].filter(Boolean)})(b).some(a=>c.includes(a))}function f(a,b){let c=(0,d.effectiveTemplateChapters)(a,b).flatMap(a=>a.requiredFacts).map(a=>({id:a,name:a,required:!0,sourceRoleIds:[],extractionHint:""})),e=b?.factFields.map(a=>({id:a.id,name:a.name,required:a.required,sourceRoleIds:a.sourceRoleIds||[],extractionHint:a.extractionHint||""}))||[],f=new Map;for(let a of[...c,...e])f.set(a.id,{...f.get(a.id)||a,...a,required:a.required||f.get(a.id)?.required||!1});return[...f.values()]}function g(a,b){return(!b.sourceRoleIds?.length||!!(a.roleId&&b.sourceRoleIds.includes(a.roleId)))&&e(a,b.name)}},92808:(a,b,c)=>{c.d(b,{NT:()=>e,Ny:()=>f,hW:()=>g,nt:()=>d,rs:()=>i,t0:()=>h});let d=[{id:"report",label:"报告",patterns:[/报告|调研|分析|评估|研究|复盘|总结/iu],output:["报告"]},{id:"plan",label:"实施方案",patterns:[/方案|规划|计划|预案|路径|路线图/iu],output:["实施方案"]},{id:"standard",label:"规范说明",patterns:[/规范|标准|制度|规则|指南|手册/iu],output:["规范说明"]},{id:"proposal",label:"建议方案",patterns:[/建议|提案|需求|响应|说明书/iu],output:["建议方案"]}],e=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|约束|响应|澄清|变更/iu],output:["需求约束","规则要求","变更说明"]},{id:"scope",label:"范围资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["实施范围","对象范围"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["结构化数据范围","参数规格范围"]},{id:"quality",label:"质量评价资料",patterns:[/质量|验收|审核|评审|评价|标准|规范|指标/iu],output:["质量要求","评价标准"]},{id:"schedule",label:"时间进度资料",patterns:[/周期|期限|进度|计划|节点|里程碑|时间|日期/iu],output:["周期要求","进度节点要求"]},{id:"safety",label:"安全合规资料",patterns:[/安全|合规|风险|应急|环保|隐私|审计|控制/iu],output:["安全合规要求","风险控制要求"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"analysis",label:"分析结论",patterns:[/报告|调研|分析|评估|研究|建议|结论/iu],output:["背景依据","分析结论","风险建议"]}],f=[{id:"overview",label:"概况章节",patterns:[/概况|背景|理解|说明|总则|摘要/iu],output:["对象名称","材料范围","实施范围"]},{id:"implementation",label:"实施章节",patterns:[/方法|部署|实施|范围|组织|流程|步骤/iu],output:["实施范围","对象范围","结构化数据范围"]},{id:"controls",label:"控制章节",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价/iu],output:["质量要求","周期要求","安全合规要求"]},{id:"resources",label:"资源章节",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"risk",label:"风险章节",patterns:[/风险|重点|难点|约束|应急|合规/iu],output:["风险控制要求","风险建议"]}],g=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|响应|requirement|rule/iu],output:["requirement_document"]},{id:"change",label:"变更澄清资料",patterns:[/补充|澄清|变更|修订|addendum|change/iu],output:["addendum"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["structured_data"]},{id:"budget",label:"预算费用资料",patterns:[/预算|费用|金额|报价|限价|成本|price|cost|budget/iu],output:["budget_cost"]},{id:"design",label:"设计方案资料",patterns:[/设计|方案|说明|图像|地图|附件|drawing|image|map|design/iu],output:["design_specification"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["resource_recommendation"]},{id:"schedule-quality-safety",label:"进度质量合规资料",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价|环保|应急/iu],output:["schedule_quality_safety"]},{id:"scope",label:"范围任务资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["scope_description"]},{id:"technical",label:"技术标准资料",patterns:[/技术|规范|标准|规程|指南|手册|参数|spec|standard/iu],output:["technical_specification"]},{id:"risk",label:"风险约束资料",patterns:[/风险|重点|难点|约束|限制|现场|条件|应急/iu],output:["risk_constraints"]}];function h(a,b){let c=new Set;for(let d of b)for(let b of d.patterns)if(b.lastIndex=0,b.test(a)){for(let a of d.output)c.add(a);break}return[...c]}function i(a,b){for(let c of b)for(let b of c.patterns)if(b.lastIndex=0,b.test(a))return c.output[0]}},95734:(a,b,c)=>{c.d(b,{$y:()=>x,CX:()=>y,Qf:()=>m,Sq:()=>v,bU:()=>u,bb:()=>E,nz:()=>w,rI:()=>z,t5:()=>n});var d=c(95393),e=c(96770),f=c(29281),g=c(22157);let h=new Map,i=0,j=Number(process.env.DOCUMENT_LLM_MAX_CONCURRENCY),k=Number.isFinite(j)?0===j?1/0:j>0?Math.floor(j):void 0:void 0,l=k??1/0;function m(a){return l}function n(a){return l=k??1/0}let o=0,p=[];function q(){i=Math.max(0,i-1);let a=p.shift();a&&!a.settled&&(a.settled=!0,i+=1,a.resolve(q))}let r=[],s=null,t=(()=>{let a=Number(process.env.DOCUMENT_PREFIX_SCHEDULE_WINDOW_MS);return Number.isFinite(a)&&a>=0?Math.floor(a):120})();function u(a){return a?.llm?.failureStreak??o}function v(){return l}function w(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/maximum context length|context ?length|context ?window|too many tokens|input.{0,24}too long|prompt.{0,24}too long|请求.{0,16}(超长|过长|超出)|上下文.{0,16}(超长|超出|过长|窗口)/iu.test(b)||/400/u.test(b)&&/context|too ?long|token|length|上下文/iu.test(b)||/JSON.{0,10}被截断|JSON.{0,10}未闭合/iu.test(b)}function x(){let a=(0,f.I)().load(),b=a.models.reasoning.active||a.models.action.active||a.models.reader.active,c=[...a.models.reasoning.list,...a.models.action.list,...a.models.reader.list].find(a=>a.name===b);if(!c)return;let d=a.providers[c.provider];if(d)return{model:c,provider:d}}function y(a){return a.filter(a=>!!a).reduce((a,b)=>a+b.length,0)}async function z(a,b,c=!1,f={}){var j;if(f.diagnostics)if(f.diagnostics.llm.calls+=1,f.diagnostics.llm.inputChars=(f.diagnostics.llm.inputChars||0)+a.length+b.length,f.contextLayers){let a=f.diagnostics.llm.layerChars??(f.diagnostics.llm.layerChars={l0:0,l1:0,l2:0,l3:0});a.l0+=f.contextLayers.l0||0,a.l1+=f.contextLayers.l1||0,a.l2+=f.contextLayers.l2||0,a.l3+=f.contextLayers.l3||0}else f.diagnostics.llm.unlayeredChars=(f.diagnostics.llm.unlayeredChars||0)+a.length+b.length;let k=await (j=f.signal,new Promise((a,b)=>{if(i<l){i+=1,a(q);return}let c={resolve:a,reject:b,settled:!1};p.push(c);let d=()=>{if(c.settled)return;c.settled=!0;let a=p.indexOf(c);a>=0&&p.splice(a,1),b(Error("用户中止"))};if(j){if(j.aborted)return void d();j.addEventListener("abort",d,{once:!0})}}));f.diagnostics&&(f.diagnostics.llm.maxActive=Math.max(f.diagnostics.llm.maxActive,i));try{let i,j=x();if(!j)return;let{model:k,provider:l}=j,m=(0,g.c6)({provider:k.provider,model:k.name,baseUrl:l.baseUrl,directEndpoint:l.directEndpoint,protocol:l.protocol,apiKeyHash:l.apiKey?(0,g.c6)(l.apiKey):""}),n=h.get(m);n||(n=(0,d.createProvider)(function(a,b){let c=(0,e.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":/deepseek/iu.test(a)?"deepseek":"openai"}(k.provider,l),{baseUrl:l.baseUrl,apiKey:l.apiKey,modelName:k.name,directEndpoint:l.directEndpoint}),h.set(m,n));let p=k.name.toLowerCase(),q=function(a,b,c){let e=(0,d.thinkingCapabilityForModel)(b);return"disabled"===c?e&&"unsupported"!==e.disable?{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:e?.budgetPolicy==="shared"?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),已忽略“强制关闭思考”配置;建议切换 deepseek 或 gpt 系列模型`}:"enabled"!==c&&"structuredGeneration"===a&&e?"unsupported"===e.disable?{disableThinking:!1,budgetMode:"shared"===e.budgetPolicy?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),生成耗时受限;建议切换 deepseek 或 gpt 系列模型`}:{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:"compact"}}(f.taskKind??"structuredGeneration",p,k.thinking);q.warning&&f.diagnostics&&!f.diagnostics.llm.thinkingWarning&&(f.diagnostics.llm.thinkingWarning=q.warning);let u=n.capabilities?.maxOutputTokens||8192,v=/deepseek/iu.test(p)?Math.min(u,8192):u,w="relaxed"===q.budgetMode&&f.maxTokens?Math.min(Math.ceil(6*f.maxTokens),v):f.maxTokens,y=Symbol("empty-content"),z=async(d,e=!1)=>{if(f.signal?.aborted)throw Error("用户中止");let h=(0,g.c6)(`${a}
110
+ ${b.slice(0,2e3)}`),i=await new Promise((g,i)=>{!function(a,b){if(t<=0)return b();r.push({fingerprint:a,launch:b}),s||(s=setTimeout(()=>{s=null;let a=r;for(let b of(r=[],a.sort((a,b)=>a.fingerprint<b.fingerprint?-1:+(a.fingerprint>b.fingerprint)),a))b.launch()},t))}(h,()=>{if(f.signal?.aborted)return void i(Error("用户中止"));n.chat([{role:"system",content:c?`${a}
111
+ 只返回 JSON,不要返回 markdown。`:a},{role:"user",content:e?`${b}
112
+
113
+ (重要:缩短思考过程,直接给出最终结论。)`:b}],{temperature:f.temperature??.3*!c,maxTokens:d,signal:f.signal,disableThinking:q.disableThinking}).then(g).catch(a=>i(a instanceof Error?a:Error(String(a))))})}),j=i.content?.trim()??"";if(j){if(f.diagnostics&&i.usage){let a=f.diagnostics.llm;a.inputTokens=(a.inputTokens||0)+i.usage.promptTokens,a.outputTokens=(a.outputTokens||0)+i.usage.completionTokens,a.promptCacheHitTokens=(a.promptCacheHitTokens||0)+(i.usage.promptCacheHitTokens||0),a.promptCacheMissTokens=(a.promptCacheMissTokens||0)+(i.usage.promptCacheMissTokens||0)}return j}throw y};for(let a=0;a<=1;a+=1){if(f.signal?.aborted)throw Error("用户中止");try{let b=1===a&&i===y,c=await z(w,b);return o=0,f.diagnostics&&(f.diagnostics.llm.failureStreak=0),c}catch(b){if(i=b,f.signal?.aborted)throw Error("用户中止",{cause:b});if(b!==y&&!function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/connection error|econnrefused|econnreset|fetch failed|network|socket|eai_again|enotfound|etimedout|429|502|503|504|rate ?limit|too many requests|overloaded|服务繁忙|连接失败|abort|timeout|timed ?out/iu.test(b)}(b)||a>=1)break;f.diagnostics&&(f.diagnostics.llm.retries+=1),await new Promise(a=>{setTimeout(a,1200+Math.floor(800*Math.random()))})}}o+=1,f.diagnostics&&(f.diagnostics.llm.failures+=1,f.diagnostics.llm.failureStreak=(f.diagnostics.llm.failureStreak||0)+1,f.diagnostics.llm.lastError=i instanceof Error?i.message:i===y?"空响应(思考阶段耗尽输出预算)":String(i));return}finally{k()}}function A(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim();if(c)return c;let d=b.indexOf("{"),e=b.lastIndexOf("}"),f=b.indexOf("["),g=b.lastIndexOf("]"),h=d>=0&&e>d?b.slice(d,e+1):"",i=f>=0&&g>f?b.slice(f,g+1):"";return h&&(!i||d<=f)?h:i||b}function B(a,b){if("object"!=typeof a||null===a||Array.isArray(a))return[`根节点类型错误(期望 object,得到 ${null===a?"null":Array.isArray(a)?"array":typeof a})`];let c=[];for(let d of b.required||[])d in a||c.push(`缺失字段 $.${d}`);for(let[d,e]of Object.entries(b.properties)){let b=a[d];if(void 0===b){e.required&&c.push(`缺失字段 $.${d}`);continue}c.push(...function a(b,c,d){let e=Array.isArray(b)?"array":null===b?"null":typeof b;if(e!==c.type)return[`字段 ${d} 类型错误(期望 ${c.type},得到 ${e})`];let f=[];if("string"===c.type)void 0!==c.minLength&&b.length<c.minLength&&f.push(`字段 ${d} 长度不足(期望 ≥${c.minLength},得到 ${b.length})`),void 0!==c.maxLength&&b.length>c.maxLength&&f.push(`字段 ${d} 长度超限(期望 ≤${c.maxLength},得到 ${b.length})`);else if("array"===c.type)void 0!==c.minItems&&b.length<c.minItems&&f.push(`字段 ${d} 条数不足(期望 ≥${c.minItems},得到 ${b.length})`),void 0!==c.maxItems&&b.length>c.maxItems&&f.push(`字段 ${d} 条数超限(期望 ≤${c.maxItems},得到 ${b.length})`),c.items&&b.forEach((b,e)=>f.push(...a(b,c.items,`${d}[${e}]`)));else if("object"===c.type&&c.properties)for(let[e,g]of Object.entries(c.properties)){let c=b[e];if(void 0===c){g.required&&f.push(`缺失字段 ${d}.${e}`);continue}f.push(...a(c,g,`${d}.${e}`))}return f}(b,e,`$.${d}`))}return c.slice(0,6)}function C(a,b){a&&(a.llm.schemaFailures=(a.llm.schemaFailures||0)+1,a.llm.lastError=b)}async function D(a,b,c={},d){let e,f=c.maxTokens,g=d??((a,b)=>z(a,b,!0,{maxTokens:f,temperature:c.temperature,signal:c.signal,diagnostics:c.diagnostics,disableThinkingBoost:c.disableThinkingBoost,taskKind:c.taskKind,contextLayers:c.contextLayers}));for(let d=0;d<=2&&!c.signal?.aborted;d+=1){let h=0===d?b:`${b}
114
+
115
+ (重试修正:上一次输出未通过——${e??"输出无效"}。请重新输出完整合法的 JSON,只返回 JSON。)`,i=await g(a,h);if(!i){c.outFailure&&c.diagnostics?.llm.lastError&&(c.outFailure.value=c.diagnostics.llm.lastError);break}let j=A(i);try{let a=JSON.parse(j);if(c.schema){let b=B(a,c.schema);if(b.length>0){let a=`JSON Schema 校验失败:${b.join(";")}`;if(e=a,C(c.diagnostics,a),d>=2){c.outFailure&&(c.outFailure.value=a);return}continue}}return a}catch{let a=function(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim()??b,d=c.indexOf("{"),e=c.indexOf("["),f=d<0?e:e<0?d:Math.min(d,e);if(f<0)return;let g=c.slice(f),h=[],i=!1,j=!1,k=[];for(let a=0;a<g.length;a+=1){let b=g[a];if(i){j?j=!1:"\\"===b?j=!0:'"'===b&&(i=!1);continue}if('"'===b){i=!0;continue}if("{"===b||"["===b){h.push("{"===b?"object":"array");continue}if("}"===b||"]"===b){h.pop();continue}","===b&&(k[h.length-1]=a)}if(0===h.length)return;let l=-1;for(let a=h.length-1;a>=0;a-=1)if(void 0!==k[a]){l=a;break}if(l<0)return;let m=k[l],n=g.slice(0,m),o=[];for(let a=l;a>=0;a-=1)o.push("object"===h[a]?"}":"]");let p=`${n}${o.join("")}`;try{return JSON.parse(p),p}catch{return}}(i);if(a)try{let b=JSON.parse(a);if(c.schema){let a=B(b,c.schema);if(0===a.length)return b;let f=`JSON Schema 校验失败:${a.join(";")}`;if(e=f,C(c.diagnostics,f),d>=2){c.outFailure&&(c.outFailure.value=f);return}continue}return b}catch{}let b=`JSON 解析失败:${function(a){let b=A(a),c=(b.match(/\{/gu)||[]).length-(b.match(/\}/gu)||[]).length,d=(b.match(/\[/gu)||[]).length-(b.match(/\]/gu)||[]).length,e=b.slice(-80).replace(/\s+/gu," ");return c>0||d>0?`JSON 被截断({ 未闭合 ${c} 个、[ 未闭合 ${d} 个),截断位置响应末段:${e}`:`JSON 语法错误,出错位置响应末段:${e}`}(j)}`;if(e=b,/JSON 被截断/u.test(b)&&(f=Math.ceil(1.5*(f||2e3))),C(c.diagnostics,b),d>=2){c.outFailure&&(c.outFailure.value=b);return}continue}}}async function E(a,b,c={}){return D(a,b,c)}},98632:(a,b,c)=>{c.d(b,{BH:()=>o,QX:()=>i,tf:()=>p});var d=c(1358),e=c(78217),f=c(37047),g=c(52922);let h=["精心组织","科学统筹","科学管理","精益求精","全力保障","高效推进","力争优质","力争一流","一流水平","完善体系","最大限度","显著提升","大力落实","严格把控","充分确保","竭力打造","现代化管理","加强管理","提高意识","强化监督","持续完善","及时处理","全方位","常态化","提质增效","高标准","统筹推进"],i=[...h,"定期检查","系统性"],j=["危险性较大的分部分项工程安全管理","扬尘污染防治措施","建筑工人实名制管理","农民工工资专用账户与工资支付保障","生产安全事故应急预案与应急演练","绿色施工与四节一环保措施"],k=["危险源辨识与风险识别评估","编制专项施工方案","组织专家论证并履行审批程序","对作业人员进行安全技术交底","施工过程监测与监控量测","分部分项工程验收","三级配电系统","两级漏电保护装置","漏电保护器与接地保护","实名制考勤与人员管理","农民工工资专用账户银行代发","应急预案编制与响应","绿色施工措施与评价"],l=/目录|层级|编号|表格|表头|分隔线|跨章|数据一致|数值口径|页码|空小节|缺少|缺失|缺节/u;function m(a){return a.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").replace(/\s+/gu,"").trim()}async function n(a,b){let{blocks:c,completeBlocks:d}=await (0,g.Pm)(a);return Math.round((.7*Math.min(1,d/Math.max(6,Math.ceil(b??(0,e.V7)(a)/1500)))+.3*(c?d/c:0))*100)}async function o(a,b){let c=await (0,g.Bt)(a,b),d=(0,g.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,h=await (0,g.gE)(a,b),i=(0,g.nY)(a);return{level:h.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:i,difficultyCountermeasureRatio:h.ratio,difficultyBothCount:h.bothCount,difficultyCountermeasures:h.countermeasures,difficultyHeavyTemplated:h.heavyTemplated}}async function p(a){var b;let c=a.markdown.split(/\n{2,}/u).filter(a=>a.trim().length>=30),e=await (0,f.Mv)(c,[...j,...k],a.embedDocuments),i=a=>c.some(b=>e(b,a)>=f.Eh),o=await (0,g.Bt)(a.markdown,a.embedDocuments);return{completeness:function(a,b,c,d){let e=[...a.matchAll(/^#{1,3}\s+(.+)$/gmu)].map(a=>m(a[1]||"")).filter(a=>a.length>=2),f=1,g=c?.chapters||[];if(g.length>0){let a=g.map(a=>m(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(m(a.title))||m(a.title).includes(b))).length/b.length);return Math.round((.55*f+.45*(j.filter(d).length/j.length))*100)}(a.markdown,a.chapters,a.template,i),specificity:function(a,b,c){let e=c.filter(d.O7),f=e.filter(a=>"used"===a.status),g=e.length?f.length/e.length:1,h=f.map(a=>String(a.value||"").replace(/\s+/gu," ").trim()).filter(a=>a.length>=4&&a.length<=60),i=b.map(a=>(a.content||"").replace(/\s+/gu," ")),j=h.filter(a=>i.filter(b=>b.includes(a)).length>=2).length;return Math.round((.55*g+.45*(h.length?j/h.length:1))*100)}(a.markdown,a.chapters,a.factTraces),compliance:function(a,b){let c=k.filter(b).length/k.length,d=(0,g.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,g.bH)(a).coverage)*100)}(a.markdown,i),executability:await n(a.markdown,a.referenceCompleteBlocks),normalization:Math.max(0,100-8*(b=a.issues).filter(a=>"error"===a.level&&l.test(a.message)).length-Math.min(3*b.filter(a=>"warning"===a.level&&l.test(a.message)).length,30)),uniqueness:function(a,b){let c=h.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,o)}}}};