@customize-agent/server 4.12.4 → 4.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +20 -20
  3. package/.next/package.json +1 -0
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/chunks/208.js +7 -7
  6. package/.next/server/chunks/4680.js +7 -7
  7. package/.next/server/chunks/5284.js +2 -2
  8. package/.next/server/chunks/8661.js +1 -1
  9. package/.next/server/chunks/{5321.js → 8965.js} +46 -44
  10. package/.next/server/middleware-build-manifest.js +1 -1
  11. package/.next/server/pages/404.html +1 -1
  12. package/.next/server/pages/500.html +1 -1
  13. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  14. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  15. package/.next/server/pages/api/assets/generated.js +1 -1
  16. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  17. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  18. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  19. package/.next/server/pages/api/documents/export.js +1 -1
  20. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  21. package/.next/server/pages/api/documents/generate.js +2 -2
  22. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  23. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  24. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  25. package/.next/server/pages/api/documents/generated.js +1 -1
  26. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  27. package/.next/server/pages/api/documents/templates.js +1 -1
  28. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  29. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  30. package/.next/server/pages/api/kb/intelligence.js +1 -1
  31. package/.next/server/pages/api/kb/reindex.js +1 -1
  32. package/.next/server/pages/api/kb/upload/complete.js +1 -1
  33. package/.next/server/pages/api/kb/upload.js +1 -1
  34. package/.next/server/pages/asset-library.html +1 -1
  35. package/.next/server/pages/document-roles.html +1 -1
  36. package/.next/server/pages/documents.html +1 -1
  37. package/.next/server/pages/guide.html +1 -1
  38. package/.next/server/pages/index.html +1 -1
  39. package/.next/server/pages/knowledge/file-detail.html +1 -1
  40. package/.next/server/pages/knowledge/files.html +1 -1
  41. package/.next/server/pages/knowledge/manage.html +1 -1
  42. package/.next/server/pages/knowledge.html +1 -1
  43. package/.next/server/pages/models.html +1 -1
  44. package/.next/server/pages/overview.html +1 -1
  45. package/.next/server/pages/prompt.html +1 -1
  46. package/.next/server/pages/settings.html +1 -1
  47. package/.next/server/pages/system/logs.html +1 -1
  48. package/.next/server/pages/template-references.html +1 -1
  49. package/.next/server/pages-manifest.json +28 -28
  50. package/.next/static/{jmjW6n6sEDweVYIA6m2SL → HaikfE5rpgEkYBHwciw3R}/_buildManifest.js +1 -1
  51. package/.next/static/chunks/{224-0415408fff1d1c8b.js → 224-790cf01fcf6820ee.js} +1 -1
  52. package/.next/static/chunks/260-244c94eacd903620.js +1 -0
  53. package/.next/static/chunks/{289-fc1b25371e004552.js → 289-42781fb699646699.js} +1 -1
  54. package/.next/static/chunks/788-e98701da4d6ca319.js +1 -0
  55. package/.next/static/chunks/pages/documents-185ab225628d4705.js +1 -0
  56. package/.next/static/chunks/pages/knowledge/files-3ba329d8e6335929.js +1 -0
  57. package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +1 -0
  58. package/.next/static/chunks/pages/prompt-839287c514595765.js +1 -0
  59. package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +1 -0
  60. package/package.json +10 -9
  61. package/.next/static/chunks/260-580088826d643423.js +0 -1
  62. package/.next/static/chunks/788-dca0d550ad6bd8b2.js +0 -1
  63. package/.next/static/chunks/pages/documents-66057ee3c8ffff6d.js +0 -1
  64. package/.next/static/chunks/pages/knowledge/files-45b40149a6f4a9d5.js +0 -1
  65. package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +0 -1
  66. package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +0 -1
  67. package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +0 -1
  68. /package/.next/static/{jmjW6n6sEDweVYIA6m2SL → HaikfE5rpgEkYBHwciw3R}/_ssgManifest.js +0 -0
@@ -12,9 +12,9 @@ ${(0,g.ks)(d,{maxChars:m})}`:""),{maxTokens:a.maxTokens??8e3,temperature:0,signa
12
12
  ${(0,g.ks)(d,{maxChars:3e3})}`),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics})),(0,l.Te)(a.signal);let p=a.chapter.content,q=0;for(let b of Array.isArray(o?.patches)?o.patches:[]){let c=function(a){var b;let c=a.patch.replacement?.trim(),d=(b=a.content,Math.max(2600,Math.min(16e3,Math.ceil(.45*(0,j.V7)(b)))));if(!c||c.length>d||a.forbidDrawingImages&&/!\[[^\]]*\]\([^)]*\)/iu.test(c))return{content:a.content,applied:!1};let e=function(a,b){let c=b.originalText?.trim();if(c&&a.includes(c)&&a.indexOf(c)===a.lastIndexOf(c))return c;let d=b.targetStart?.trim(),e=b.targetEnd?.trim();if(!d||!e)return;let f=a.indexOf(d);if(f<0)return;let g=a.indexOf(e,f+d.length);if(g<0)return;let h=g+e.length,i=a.slice(f,h);return a.indexOf(i)===a.lastIndexOf(i)?i:void 0}(a.content,a.patch);if(!e||e.length>d)return{content:a.content,applied:!1};let f=(0,i.kT)((0,i.FD)(a.content.replace(e,c),a.forbidDrawingImages));return!function(a,b){let c=(a.match(/```/gu)||[]).length,d=b.replace(/^第[一二三四五六七八九十百千万]+章\s*/u,"").trim();return c%2==0&&(!d||a.includes(d))&&!/^\s*$/u.test(a)}(f,a.title)||(0,j.V7)(f)<Math.floor(.65*(0,j.V7)(a.content))?{content:a.content,applied:!1}:{content:f,applied:f!==a.content}}({content:p,patch:b,title:a.chapter.title,forbidDrawingImages:a.forbidDrawingImages});p=c.content,c.applied&&(q+=1)}return{content:p,appliedCount:q,repairType:b}}function q(a,b,c){return function(a,b){let c=e.resolve(a),f=function(a,b){let c=e.resolve(a);if(e.isAbsolute(b))return e.resolve(b);let f=e.resolve(c,"knowledgeBase",b);return d.existsSync(f)?f:e.resolve(c,b)}(c,b);return f===c||f.startsWith(`${c}${e.sep}`)}(a,b)&&c.size>0&&(function(a,b){let c=e.isAbsolute(b)?b:e.join(a,b),d=e.isAbsolute(b)?e.relative(a,b):b;return[b,c,d,e.join(a,d)]})(a,b).some(a=>c.has(a))}function r(a){return a.map(a=>`## [${a.roleId}/${a.category}] ${a.name}
13
13
  ${function(a){let b=a.replace(/```([\s\S]*?)```/gu,(a,b)=>/<OUTLINE>|\|\s*[^\n]+\s*\||#{1,6}\s+|必须|禁止|不得|应当|要求|规则|格式|输出|表格|章节|小节|正文/u.test(b)?`
14
14
  ${b.trim()}
15
- `:"\n【示例代码块已省略:仅作为格式参考,不作为当前文档事实】\n").split(/\r?\n/u),c=[],d=!1,e=!1;for(let a of b){let b=a.trim();if((0,h.bl)(b)&&(e=!0),e){c.push(a),(0,h.Ui)(b)&&(e=!1);continue}let f=/^(?:#+\s*)?(?:示例|样例|范例|例如|参考示例|示例数据|示例正文|示例目录|example|sample)\s*[::]?/iu.test(b),g=/(?:不得|禁止|必须|应当|要求|规则|格式|输出|保留|只返回|不要|表格|章节|小节|正文|目录|封面)/u.test(b);if(f&&!g){c.at(-1)?.includes("示例内容已省略")||c.push("【示例内容已省略:仅作为格式参考,不作为当前文档事实】"),d=!0;continue}if(d){if(!b){d=!1;continue}if(!(/^(?:#+\s*)?(?:规则|要求|输出|格式|禁止|注意|正文|章节|小节|表格|风格|校验)/u.test(b)||/\|\s*[^\n]+\s*\|/u.test(b)))continue;d=!1}c.push(a)}return c.join("\n").replace(/\n{3,}/gu,"\n\n").trim()}(a.content)}`).join("\n\n")}},61373:(a,b,c)=>{c.d(b,{rd:()=>D,KX:()=>E,kt:()=>y,K7:()=>A,V3:()=>aa,r4:()=>I,rs:()=>_,Re:()=>t,z1:()=>x,wi:()=>o,bR:()=>J,UG:()=>Z,CK:()=>X,Ed:()=>Y,Bl:()=>H,FD:()=>h,kT:()=>C,bx:()=>B,dh:()=>K});var d=c(58965),e=c(22157),f=c(70208),g=c(98632);function h(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let i=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\s)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\s)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\s)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\s)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\s)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\s)?/gmu,j=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,k=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,l=/^#{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,m=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u;function n(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 m.test(b)||m.test(c)||(0,f.mq)(b)||(0,f.mq)(c)}function o(a){return a.replace(/PDF\s*第\s*\d+\s*页/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 p=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function q(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|[。;;])${p}\S.+(?:\s|[。;;])${p}\S`,"u");let r=RegExp(`\r?
15
+ `:"\n【示例代码块已省略:仅作为格式参考,不作为当前文档事实】\n").split(/\r?\n/u),c=[],d=!1,e=!1;for(let a of b){let b=a.trim();if((0,h.bl)(b)&&(e=!0),e){c.push(a),(0,h.Ui)(b)&&(e=!1);continue}let f=/^(?:#+\s*)?(?:示例|样例|范例|例如|参考示例|示例数据|示例正文|示例目录|example|sample)\s*[::]?/iu.test(b),g=/(?:不得|禁止|必须|应当|要求|规则|格式|输出|保留|只返回|不要|表格|章节|小节|正文|目录|封面)/u.test(b);if(f&&!g){c.at(-1)?.includes("示例内容已省略")||c.push("【示例内容已省略:仅作为格式参考,不作为当前文档事实】"),d=!0;continue}if(d){if(!b){d=!1;continue}if(!(/^(?:#+\s*)?(?:规则|要求|输出|格式|禁止|注意|正文|章节|小节|表格|风格|校验)/u.test(b)||/\|\s*[^\n]+\s*\|/u.test(b)))continue;d=!1}c.push(a)}return c.join("\n").replace(/\n{3,}/gu,"\n\n").trim()}(a.content)}`).join("\n\n")}},61373:(a,b,c)=>{c.d(b,{rd:()=>G,KX:()=>H,kt:()=>y,K7:()=>A,V3:()=>ad,r4:()=>L,rs:()=>ac,Re:()=>t,z1:()=>x,wi:()=>o,bR:()=>M,UG:()=>aa,CK:()=>$,Ed:()=>_,Bl:()=>K,FD:()=>h,kT:()=>F,nP:()=>E,uv:()=>D,bx:()=>B,dh:()=>N});var d=c(81346),e=c(22157),f=c(70208),g=c(98632);function h(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let i=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\s)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\s)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\s)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\s)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\s)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\s)?/gmu,j=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,k=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,l=/^#{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,m=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u;function n(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 m.test(b)||m.test(c)||(0,f.mq)(b)||(0,f.mq)(c)}function o(a){return a.replace(/PDF\s*第\s*\d+\s*页/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 p=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function q(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|[。;;])${p}\S.+(?:\s|[。;;])${p}\S`,"u");let r=RegExp(`\r?
16
16
  `,"u"),s=RegExp(`
17
- {3,}`,"gu");function t(a){return a.split(r).map(q).join("\n").replace(s,"\n\n")}function u(a){return/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a)}function v(a){let b=a.trim();return/^\|.*\|$/u.test(b)&&b.split("|").length>=3}function w(a){return`| ${Array.from({length:Math.max(2,a)},()=>"---").join(" | ")} |`}function x(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(u(e)){c.push(e);continue}if(!(v(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)),u(f)){c.push(w(g)),d=g,a+=1;continue}!d&&v(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(w(g)),d=g)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}let y=/(?:项目部|本项目|本工程)?(?:根据|依据|结合|按照|以)?(?:本项目|项目|[^。;;\n]{0,30}?)?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单)(?:[、,,及和与\s]*(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单|现行规范|规范)){1,}(?:[^。;;\n]{0,80})?[,,]/u,z=/编制依据|编制说明|法律法规|规范标准|标准依据/u;function A(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=z.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(y,"").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 B(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=z.test(e.replace(/^#{2,4}\s+/u,""));return}!/^\s*\|/u.test(e)&&(y.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)}function C(a){return(function(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){if(!v(b[a])||!u(b[a+1]||"")){c.push(b[a]);continue}let d=[];for(;a<b.length&&v(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?w(c.length):`| ${c.join(" | ")} |`});c.push(...g)}return c.join("\n")})(x(t(o(A(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"))))).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(i,"").replace(/(^|\n)---\s*\n+(?=以上内容已依据)/gu,"$1").replace(/^以上内容已依据[\s\S]*?(?=\n\s*\n)/gmu,"").replace(j,"").replace(k,"").replace(l,"").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&&n(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(/该小节围绕.+进行补充说明/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||n(h))&&!(/[,、;:和与在为对将]$/u.test(h)||/(通过|包括|如下|主要包括)$/u.test(h))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}let D=`以下规则仅用于保障导出格式正确和事实安全,不得覆盖用户在提示词中已明确的要求。
17
+ {3,}`,"gu");function t(a){return a.split(r).map(q).join("\n").replace(s,"\n\n")}function u(a){return/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a)}function v(a){let b=a.trim();return/^\|.*\|$/u.test(b)&&b.split("|").length>=3}function w(a){return`| ${Array.from({length:Math.max(2,a)},()=>"---").join(" | ")} |`}function x(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(u(e)){c.push(e);continue}if(!(v(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)),u(f)){c.push(w(g)),d=g,a+=1;continue}!d&&v(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(w(g)),d=g)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}let y=/(?:项目部|本项目|本工程)?(?:根据|依据|结合|按照|以)?(?:本项目|项目|[^。;;\n]{0,30}?)?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单)(?:[、,,及和与\s]*(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单|现行规范|规范)){1,}(?:[^。;;\n]{0,80})?[,,]/u,z=/编制依据|编制说明|法律法规|规范标准|标准依据/u;function A(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=z.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(y,"").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 B(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=z.test(e.replace(/^#{2,4}\s+/u,""));return}!/^\s*\|/u.test(e)&&(y.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 C=/(?:安全|管理|施工|质量|工期|进度|保障|体系|措施|控制|工程|项目|技术|方案|计划|组织|标准|规范|验收|方法|工艺|文明)/u;function D(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);C.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&&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 E(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 F(a){return(function(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){if(!v(b[a])||!u(b[a+1]||"")){c.push(b[a]);continue}let d=[];for(;a<b.length&&v(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?w(c.length):`| ${c.join(" | ")} |`});c.push(...g)}return c.join("\n")})(x(t(o(A(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(i,"").replace(/(^|\n)---\s*\n+(?=以上内容已依据)/gu,"$1").replace(/^以上内容已依据[\s\S]*?(?=\n\s*\n)/gmu,"").replace(j,"").replace(k,"").replace(l,"").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&&n(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||n(h))&&!(/[,、;:和与在为对将]$/u.test(h)||/(通过|包括|如下|主要包括)$/u.test(h))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}let G=`以下规则仅用于保障导出格式正确和事实安全,不得覆盖用户在提示词中已明确的要求。
18
18
  不得把”知识库、检索、资料类型、提示词角色、规范包、事实字段、缺失项、校验结果、资料未提供、未检索到”等后台流程话术写入正文。
19
19
  严禁使用“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列开头;正文必须直接写项目事实、施工内容、控制措施、验收节点。编制依据类小节除外:该小节可集中罗列编制依据文件清单。
20
20
  禁止模板化空话与流程套话:不同小节必须写各自专属的专业内容,逐节落位本项目工程量、设备规格、工艺参数与验收标准,不得复制相同段落,不得用泛化的流程描述代替专业内容;正文末尾不得输出自我总结或合规声明段落。
@@ -41,7 +41,7 @@ Markdown 表格格式硬约束:凡是输出 Markdown 表格,必须使用标
41
41
  项目名称、项目编号、招标人/业主/建设单位、建设地点、建设规模、计划工期、质量标准、合同估算价等项目基础信息,只能在项目基本信息表中集中输出一次;后续章节如需引用,应写入正文或专业表格的业务字段,不得重复生成项目基础信息键值表。
42
42
  【段落格式】段落之间必须空行(双换行)分隔,不得用单换行连续写大段文字。列表项逐行独占。步骤描述之间加空行。
43
43
  事实来源分级:项目专属事实(工期、金额、工程量、建设规模、人名、公司、品牌、供应商、材料规格、日期节点)必须来自绑定材料,不得编造;公共专业知识(法律法规名称、标准规范编号 GB/JGJ/CJJ/DB 系列、通用施工工艺与行业惯例)可依据现行有效版本和专业经验直接撰写,不要求材料提供,但不得虚构编号或引用已废止版本。
44
- 计划编制类字段边界:劳动力计划人数、机械设备台班、进度时间安排、材料进场时间、检验批划分等属于投标人计划编制成果,资料中不会直接给出,必须基于项目工程量、总工期、工序流水与定额工效推导出具体数值并写入正文,不得因资料未提供而留空或用“另行确定”等话术回避。`,E='只生成当前节及其节内三级小节正文,不生成其他同级节,不重复章节一级标题。\n优先使用当前模板、用户要求、绑定提示词和绑定材料中的事实;项目专属事实(具体数值、时间、规格、人名、品牌、责任主体)缺少依据时不得编造;法律法规名称、标准规范编号等公共专业知识可依据现行有效版本直接引用,无需材料提供。\n禁止编造具体日期:开工日期、竣工日期、具体某月某日只有在绑定材料明确提供时才可写入;材料未提供具体日期时,进度安排一律用相对工期表达(如"开工令下发后第7日""第1日~第7日"),不得写"2026年8月8日"等绝对日期。\n小节应有实质正文;除非用户或模板明确要求纯表格,否则表格只能作为辅助表达,不能整节只有表格。\n不得用通用兜底段落、空泛管理话术或后台缺料说明冒充正文;信息不足时只写已有事实、适用边界和待复核口径。\n不得以“本项目为……”开头复述项目概况段(工程地点、面积、工期、保留商铺等总述信息只在项目概况/工程概况类章节出现);本小节直接写专业内容,需要数据时只引用所需数字。';function F(a){return(0,f.GQ)(a.replace(/^#+\s*/u,"")).replace(/^(?:第)?[一二三四五六七八九十百千万\d]+章\s*/u,"").trim().replace(/\s+/gu,"")}function G(a,b){let c=F(a),d=F(b);return!!(c&&d&&c===d)}function H(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&&!G(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(G(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 I(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=>!n(a)).filter(a=>!/^\d+(?:\.\d+){2,}\s+/u.test(a)))]}function J(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 K(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(`^${U(c)}\\.\\d+\\s+\\S`,"u").test(a)||b.push({level:"warning",message:`三级小节缺少 ${c}.x 编号:${(0,f.GQ)(a)}`,suggestion:"三级小节必须使用“#### 章号.节号.序号 标题”,并作为缩进行纳入目录。"})}}return b}function L(a){let b=a.replace(/\*+/gu,"").trim();if(n(b))return"";let c=(0,f.GQ)(b).replace(/^[-—–]\s*/u,"").trim();return n(c)||/^(?:雨季|冬季|高温|台风|大风)(?:[、,](?:雨季|冬季|高温|台风|大风))*等特殊气候$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风)$/u.test(c)?"":c}function M(a=[]){return[...new Set(a.map(L).filter(a=>a.length>=2))]}function N(a){return["## 目录","",...a.flatMap((a,b)=>{let c=M(a.sections||[]),d=a.content?[...a.content.matchAll(/^####\s+(\d+\.\d+\.\d+\s+\S.+)$/gmu)].map(a=>(0,f.GQ)((a[1]||"").trim())).filter(a=>a.length>=2&&a.length<=80).filter(a=>!n(a)):[];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)}`),...d.map(a=>` ${a}`)]})].join("\n")}function O(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 P(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 Q(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 R(a,b){let c=Q(a);b.forEach((a,b)=>{let d=(0,f.GQ)(a.title),e=RegExp(`^##\\s+(?:第[一二三四五六七八九十百千万\\d]+章\\s*)?${U(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,o=a=>{let c=b[g]?.sections||[],d=W(a);return c.findIndex(a=>W(a)===d)},p=(a,c)=>{let d=L(a);if(!d||n(a)||n(d))return"";let e=o(d),l=b[g]?.sections||[],p=e>=0?e+1:h+1,q=e>=0?W(l[e]):W(d);return m.has(q)?(h=p,j=c||`${g+1}.${h}`,i+=1,`#### ${g+1}.${h}.${i} ${d}`):(h=p,i=0,j=c||`${g+1}.${h}`,k=e>=0?(0,f.GQ)(l[e]):d,m.add(q),`### ${g+1}.${h} ${e>=0?(0,f.GQ)(l[e]):d}`)},q=(a,c)=>{let d=W(a),e=o(a)>=0&&!m.has(d);return!h||c&&c!==j&&(0===(b[g]?.sections||[]).length||e)?p(a,c):(i+=1)<=4?`#### ${g+1}.${h}.${i} ${a}`:`**${a}**`},r=!1;return d.map(a=>{let c=a.trim();if(/^##\s+目录\s*$/u.test(c))return r=!0,a;if(r&&/^<div class="page-break"><\/div>$/u.test(c))return r=!1,a;if(r)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,p(d[1]||"");let n=/^##\s+\d+[..、]\s+(.+)$/u.exec(c);if(g>=0&&n)return l=!0,p(n[1]||"");let s=/^##\s+(\d+)\.(\d+)\s+(.+)$/u.exec(c);if(g>=0&&s)return l=!0,p(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,p(b))}let u=/^###\s+(?:(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(g>=0&&u)return l=!0,p(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=o(a)>=0;return!l&&!c&&(h||d)?p(v[3]||"",`${v[1]}.${v[2]}`):q(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 q((0,f.GQ)(w[4]||""),a)}return a}).filter(a=>""!==a).join("\n")}function S(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(U(a),"u").test(b)).join("\n"));return c}function T(a,b){if(!b)return S(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(U(b),"u").test(a))return a;let c=/项目基本信息/u.test(b)?"":`**${b}**
44
+ 计划编制类字段边界:劳动力计划人数、机械设备台班、进度时间安排、材料进场时间、检验批划分等属于投标人计划编制成果,资料中不会直接给出,必须基于项目工程量、总工期、工序流水与定额工效推导出具体数值并写入正文,不得因资料未提供而留空或用“另行确定”等话术回避。`,H='只生成当前节及其节内三级小节正文,不生成其他同级节,不重复章节一级标题。\n优先使用当前模板、用户要求、绑定提示词和绑定材料中的事实;项目专属事实(具体数值、时间、规格、人名、品牌、责任主体)缺少依据时不得编造;法律法规名称、标准规范编号等公共专业知识可依据现行有效版本直接引用,无需材料提供。\n禁止编造具体日期:开工日期、竣工日期、具体某月某日只有在绑定材料明确提供时才可写入;材料未提供具体日期时,进度安排一律用相对工期表达(如"开工令下发后第7日""第1日~第7日"),不得写"2026年8月8日"等绝对日期。\n小节应有实质正文;除非用户或模板明确要求纯表格,否则表格只能作为辅助表达,不能整节只有表格。\n不得用通用兜底段落、空泛管理话术或后台缺料说明冒充正文;信息不足时只写已有事实、适用边界和待复核口径。\n不得以“本项目为……”开头复述项目概况段(工程地点、面积、工期、保留商铺等总述信息只在项目概况/工程概况类章节出现);本小节直接写专业内容,需要数据时只引用所需数字。';function I(a){return(0,f.GQ)(a.replace(/^#+\s*/u,"")).replace(/^(?:第)?[一二三四五六七八九十百千万\d]+章\s*/u,"").trim().replace(/\s+/gu,"")}function J(a,b){let c=I(a),d=I(b);return!!(c&&d&&c===d)}function K(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&&!J(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(J(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 L(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=>!n(a)).filter(a=>!/^\d+(?:\.\d+){2,}\s+/u.test(a)))]}function M(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 N(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(`^${X(c)}\\.\\d+\\s+\\S`,"u").test(a)||b.push({level:"warning",message:`三级小节缺少 ${c}.x 编号:${(0,f.GQ)(a)}`,suggestion:"三级小节必须使用“#### 章号.节号.序号 标题”,并作为缩进行纳入目录。"})}}return b}function O(a){let b=a.replace(/\*+/gu,"").trim();if(n(b))return"";let c=(0,f.GQ)(b).replace(/^[-—–]\s*/u,"").trim();return n(c)||/^(?:雨季|冬季|高温|台风|大风)(?:[、,](?:雨季|冬季|高温|台风|大风))*等特殊气候$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风)$/u.test(c)?"":c}function P(a=[]){return[...new Set(a.map(O).filter(a=>a.length>=2))]}function Q(a){return["## 目录","",...a.flatMap((a,b)=>{let c=P(a.sections||[]),d=a.content?[...a.content.matchAll(/^####\s+(\d+\.\d+\.\d+\s+\S.+)$/gmu)].map(a=>(0,f.GQ)((a[1]||"").trim())).filter(a=>a.length>=2&&a.length<=80).filter(a=>!n(a)):[];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)}`),...d.map(a=>` ${a}`)]})].join("\n")}function R(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 S(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 T(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 U(a,b){let c=T(a);b.forEach((a,b)=>{let d=(0,f.GQ)(a.title),e=RegExp(`^##\\s+(?:第[一二三四五六七八九十百千万\\d]+章\\s*)?${X(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,o=a=>{let c=b[g]?.sections||[],d=Z(a);return c.findIndex(a=>Z(a)===d)},p=(a,c)=>{let d=O(a);if(!d||n(a)||n(d))return"";let e=o(d),l=b[g]?.sections||[],p=e>=0?e+1:h+1,q=e>=0?Z(l[e]):Z(d);return m.has(q)?(h=p,j=c||`${g+1}.${h}`,i+=1,`#### ${g+1}.${h}.${i} ${d}`):(h=p,i=0,j=c||`${g+1}.${h}`,k=e>=0?(0,f.GQ)(l[e]):d,m.add(q),`### ${g+1}.${h} ${e>=0?(0,f.GQ)(l[e]):d}`)},q=(a,c)=>{let d=Z(a),e=o(a)>=0&&!m.has(d);return!h||c&&c!==j&&(0===(b[g]?.sections||[]).length||e)?p(a,c):(i+=1)<=4?`#### ${g+1}.${h}.${i} ${a}`:`**${a}**`},r=!1;return d.map(a=>{let c=a.trim();if(/^##\s+目录\s*$/u.test(c))return r=!0,a;if(r&&/^<div class="page-break"><\/div>$/u.test(c))return r=!1,a;if(r)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,p(d[1]||"");let n=/^##\s+\d+[..、]\s+(.+)$/u.exec(c);if(g>=0&&n)return l=!0,p(n[1]||"");let s=/^##\s+(\d+)\.(\d+)\s+(.+)$/u.exec(c);if(g>=0&&s)return l=!0,p(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,p(b))}let u=/^###\s+(?:(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(g>=0&&u)return l=!0,p(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=o(a)>=0;return!l&&!c&&(h||d)?p(v[3]||"",`${v[1]}.${v[2]}`):q(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 q((0,f.GQ)(w[4]||""),a)}return a}).filter(a=>""!==a).join("\n")}function V(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(X(a),"u").test(b)).join("\n"));return c}function W(a,b){if(!b)return V(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(X(b),"u").test(a))return a;let c=/项目基本信息/u.test(b)?"":`**${b}**
45
45
 
46
46
  | 控制项目 | 控制内容 | 执行要求 | 复核要求 |
47
47
  |---|---|---|---|
@@ -51,7 +51,7 @@ ${c}`;let g=e.find(a=>(a.index||0)>(f.index||0)),h=g?.index??a.length;return`${a
51
51
 
52
52
  ${c}
53
53
 
54
- ${a.slice(h).trimStart()}`}(c,a);return c}(a,b);for(let a of(b.forbidCover&&(c=O(c)),b.forbidToc&&(c=P(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(U(a.from),"gu"),a.to)}return(c=S(c,b)).replace(/\n{3,}/gu,"\n\n").trim()}function U(a){return a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function V(a){return/\|[^\n]+\|\s*\n\s*\|\s*:?-{3,}:?\s*\|/u.test(a)}function W(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 X(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")}function Y(a,b){if(!b)return[];let c=[],d=[...a.matchAll(l)].map(a=>(a[0]||"").replace(/^#{2,6}\s+/u,"").trim()).filter(Boolean);d.length>0&&c.push({level:"error",message:`正文存在疑似提示词指令标题:${d.slice(0,5).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题。"});let e=/document-cover|^#\s+/mu.test(a),g=/^##\s+目录\s*$/mu.test(a);"required"!==b.coverPolicy||e||c.push({level:"error",message:"正文缺少提示词要求的封面",suggestion:"用户明确要求封面时,应保留封面内容。"}),"required"!==b.tocPolicy||g||c.push({level:"error",message:"正文缺少提示词要求的目录",suggestion:"用户明确要求目录时,应基于最终合法正文标题生成目录。"}),b.forbidCover&&e&&c.push({level:"error",message:"正文残留封面内容",suggestion:"总控提示词禁止封面时,正式正文必须直接进入第一章。"}),b.forbidToc&&g&&c.push({level:"error",message:"正文残留目录内容",suggestion:"总控提示词禁止目录时,正式正文不得生成目录或导航页。"});let h=(b.requiredTables||[]).filter(b=>!RegExp(U(b),"u").test(a)||!function(a,b){let c=a.search(RegExp(U(b),"u"));return!(c<0)&&V(a.slice(c,Math.min(a.length,c+1600)))}(a,b));h.length>0&&c.push({level:"error",message:`正文缺少总控提示词要求的正式表格:${h.join("、")}`,suggestion:"请在对应章节补齐表名、表头、分隔线和数据行,不得只写表名或空表。"});let i=(b.requiredKeywords||[]).filter(b=>b&&!RegExp(U(b),"u").test(a));i.length>0&&c.push({level:"warning",message:`正文缺少提示词要求覆盖的关键词:${i.join("、")}`,suggestion:"请在相关章节自然补齐这些要点,避免堆砌关键词。"});let j=(b.forbiddenPatterns||[]).filter(b=>b&&RegExp(U(b),"u").test(a));j.length>0&&c.push({level:"warning",message:`正文出现提示词禁止内容:${j.join("、")}`,suggestion:"请删除或替换为正式交付表述。"});let k=(b.forbiddenTerms||[]).filter(b=>b&&!/^(?:工程造价|造价|报价|投标报价|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|兜底)$/u.test(b)&&RegExp(U(b),"u").test(a));k.length>0&&c.push({level:"warning",message:`正文残留总控提示词禁止词:${k.join("、")}`,suggestion:"请改为正式交付语言,删除后台话术、第三人称和口号式表达。"});let m=b.exactHeadings||[];if(m.length>0){let d=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>(0,f.GQ)(a[1]||"")).filter(a=>("目录"!==a||"required"!==b.tocPolicy)&&!/^附录/u.test(a)),e=m.map(f.GQ),g=m.filter(a=>!d.includes((0,f.GQ)(a))),h=b.forbidExtraHeadings?d.filter(a=>!e.includes((0,f.GQ)(a))):[];g.length>0&&c.push({level:"error",message:`正文缺少提示词指定一级章节:${g.join("、")}`,suggestion:"请严格按用户提示词 OUTLINE 输出一级章节。"}),h.length>0&&c.push({level:"warning",message:`正文出现提示词未允许的一级章节:${h.join("、")}`,suggestion:"请检查是否为正文内部层级误升;如不影响指定 OUTLINE 完整性,可在后续排版中并入所属章节。"})}let n=(b.forbiddenSubjects||[]).filter(b=>b&&RegExp(U(b),"u").test(a));n.length>0&&c.push({level:"warning",message:`正文残留禁用主体表达:${n.join("、")}`,suggestion:"请统一改为用户提示词指定的表达主体。"});let o=a.replace(/\s/gu,"").length;return b.minChars&&o<Math.floor(.95*b.minChars)&&c.push({level:"warning",message:`正文长度低于提示词要求:当前 ${o} 字,要求不少于 ${b.minChars} 字`,suggestion:"请按章节深度扩写,但不得编造资料外事实。"}),c.map(a=>"warning"===a.level&&/提示词|禁止|禁用|必含关键词|必需表格|主体表达/u.test(a.message)?{...a,level:"error",severity:a.severity||"blocker"}:a)}function Z(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&&!V(e)&&c.push({level:"warning",message:`${d.title} 缺少必要的正式表格`,suggestion:"建议按模板 tableSections/tableRequirements 在对应小节补充正式 Markdown 表格。"})}return c}function $(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 _(a,b,c={}){let d=T(h(a,!!c.forbidDrawingImages),c.promptRules),e=$(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||!G(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}
54
+ ${a.slice(h).trimStart()}`}(c,a);return c}(a,b);for(let a of(b.forbidCover&&(c=R(c)),b.forbidToc&&(c=S(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(X(a.from),"gu"),a.to)}return(c=V(c,b)).replace(/\n{3,}/gu,"\n\n").trim()}function X(a){return a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function Y(a){return/\|[^\n]+\|\s*\n\s*\|\s*:?-{3,}:?\s*\|/u.test(a)}function Z(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 $(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")}function _(a,b){if(!b)return[];let c=[],d=[...a.matchAll(l)].map(a=>(a[0]||"").replace(/^#{2,6}\s+/u,"").trim()).filter(Boolean);d.length>0&&c.push({level:"error",message:`正文存在疑似提示词指令标题:${d.slice(0,5).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题。"});let e=/document-cover|^#\s+/mu.test(a),g=/^##\s+目录\s*$/mu.test(a);"required"!==b.coverPolicy||e||c.push({level:"error",message:"正文缺少提示词要求的封面",suggestion:"用户明确要求封面时,应保留封面内容。"}),"required"!==b.tocPolicy||g||c.push({level:"error",message:"正文缺少提示词要求的目录",suggestion:"用户明确要求目录时,应基于最终合法正文标题生成目录。"}),b.forbidCover&&e&&c.push({level:"error",message:"正文残留封面内容",suggestion:"总控提示词禁止封面时,正式正文必须直接进入第一章。"}),b.forbidToc&&g&&c.push({level:"error",message:"正文残留目录内容",suggestion:"总控提示词禁止目录时,正式正文不得生成目录或导航页。"});let h=(b.requiredTables||[]).filter(b=>!RegExp(X(b),"u").test(a)||!function(a,b){let c=a.search(RegExp(X(b),"u"));return!(c<0)&&Y(a.slice(c,Math.min(a.length,c+1600)))}(a,b));h.length>0&&c.push({level:"error",message:`正文缺少总控提示词要求的正式表格:${h.join("、")}`,suggestion:"请在对应章节补齐表名、表头、分隔线和数据行,不得只写表名或空表。"});let i=(b.requiredKeywords||[]).filter(b=>b&&!RegExp(X(b),"u").test(a));i.length>0&&c.push({level:"warning",message:`正文缺少提示词要求覆盖的关键词:${i.join("、")}`,suggestion:"请在相关章节自然补齐这些要点,避免堆砌关键词。"});let j=(b.forbiddenPatterns||[]).filter(b=>b&&RegExp(X(b),"u").test(a));j.length>0&&c.push({level:"warning",message:`正文出现提示词禁止内容:${j.join("、")}`,suggestion:"请删除或替换为正式交付表述。"});let k=(b.forbiddenTerms||[]).filter(b=>b&&!/^(?:工程造价|造价|报价|投标报价|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|兜底)$/u.test(b)&&RegExp(X(b),"u").test(a));k.length>0&&c.push({level:"warning",message:`正文残留总控提示词禁止词:${k.join("、")}`,suggestion:"请改为正式交付语言,删除后台话术、第三人称和口号式表达。"});let m=b.exactHeadings||[];if(m.length>0){let d=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>(0,f.GQ)(a[1]||"")).filter(a=>("目录"!==a||"required"!==b.tocPolicy)&&!/^附录/u.test(a)),e=m.map(f.GQ),g=m.filter(a=>!d.includes((0,f.GQ)(a))),h=b.forbidExtraHeadings?d.filter(a=>!e.includes((0,f.GQ)(a))):[];g.length>0&&c.push({level:"error",message:`正文缺少提示词指定一级章节:${g.join("、")}`,suggestion:"请严格按用户提示词 OUTLINE 输出一级章节。"}),h.length>0&&c.push({level:"warning",message:`正文出现提示词未允许的一级章节:${h.join("、")}`,suggestion:"请检查是否为正文内部层级误升;如不影响指定 OUTLINE 完整性,可在后续排版中并入所属章节。"})}let n=(b.forbiddenSubjects||[]).filter(b=>b&&RegExp(X(b),"u").test(a));n.length>0&&c.push({level:"warning",message:`正文残留禁用主体表达:${n.join("、")}`,suggestion:"请统一改为用户提示词指定的表达主体。"});let o=a.replace(/\s/gu,"").length;return b.minChars&&o<Math.floor(.95*b.minChars)&&c.push({level:"warning",message:`正文长度低于提示词要求:当前 ${o} 字,要求不少于 ${b.minChars} 字`,suggestion:"请按章节深度扩写,但不得编造资料外事实。"}),c.map(a=>"warning"===a.level&&/提示词|禁止|禁用|必含关键词|必需表格|主体表达/u.test(a.message)?{...a,level:"error",severity:a.severity||"blocker"}:a)}function aa(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&&!Y(e)&&c.push({level:"warning",message:`${d.title} 缺少必要的正式表格`,suggestion:"建议按模板 tableSections/tableRequirements 在对应小节补充正式 Markdown 表格。"})}return c}function ab(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 ac(a,b,c={}){let d=W(h(a,!!c.forbidDrawingImages),c.promptRules),e=ab(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||!J(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}
55
55
 
56
56
  ${0===b&&r?`${r}
57
57
 
@@ -59,7 +59,7 @@ ${0===b&&r?`${r}
59
59
 
60
60
  ${s}
61
61
 
62
- `}return c.replace(/\n{3,}/gu,"\n\n").trim()}(J(C(c.promptRules?"required"===c.promptRules.coverPolicy?"required"===c.promptRules.tocPolicy?d:P(d):"required"===c.promptRules.tocPolicy?O(d):O(P(d)):d)))),g=function(a,b){let c=R(Q(P(a)),b),d=[...c.matchAll(/^##\s+(.+)$/gmu)];return b.map((a,e)=>{let g=(0,f.tb)(e,a.title),h=d.find(b=>G(b[1]||"",a.title)||G(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=>G(a[1]||"",b.title))),j=I(c.slice(h.index,i?.index??c.length));return j.length>0?j:a.sections||[]})}(e,b),i=b.map((a,b)=>({...a,sections:g[b]?.length?g[b]:a.sections||[]}));return{markdown:T($(J(C(c.promptRules?.tocPolicy==="required"?function(a,b){let c=R(a,b),d=P(c),e=[...d.matchAll(/^##\s+(.+)$/gmu)],f=N(b.map(a=>{let c=e.find(b=>G(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=>G(a[1]||"",b.title))),g=d.slice(c.index,f?.index??d.length),h=a.sections?.length?void 0:I(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)}
62
+ `}return c.replace(/\n{3,}/gu,"\n\n").trim()}(M(F(c.promptRules?"required"===c.promptRules.coverPolicy?"required"===c.promptRules.tocPolicy?d:S(d):"required"===c.promptRules.tocPolicy?R(d):R(S(d)):d)))),g=function(a,b){let c=U(T(S(a)),b),d=[...c.matchAll(/^##\s+(.+)$/gmu)];return b.map((a,e)=>{let g=(0,f.tb)(e,a.title),h=d.find(b=>J(b[1]||"",a.title)||J(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=>J(a[1]||"",b.title))),j=L(c.slice(h.index,i?.index??c.length));return j.length>0?j:a.sections||[]})}(e,b),i=b.map((a,b)=>({...a,sections:g[b]?.length?g[b]:a.sections||[]}));return{markdown:W(ab(M(F(c.promptRules?.tocPolicy==="required"?function(a,b){let c=U(a,b),d=S(c),e=[...d.matchAll(/^##\s+(.+)$/gmu)],f=Q(b.map(a=>{let c=e.find(b=>J(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=>J(a[1]||"",b.title))),g=d.slice(c.index,f?.index??d.length),h=a.sections?.length?void 0:L(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)}
63
63
 
64
64
  ${f}
65
65
 
@@ -69,6 +69,6 @@ ${c.slice(a).trimStart()}`}return`${f}
69
69
 
70
70
  <div class="page-break"></div>
71
71
 
72
- ${c}`}(e,i):R(e,i)))),c.promptRules),chapters:i}}function aa(a,b={}){let c=a.chapters.map(a=>({...a,sections:M(a.sections||[])})),d=c.map((a,b)=>(function(a,b){let c=`## ${(0,f.tb)(b,a.title)}`,d=C(a.content);var e=/^##\s+.+$/mu.test(d)?d.replace(/^##\s+.+$/mu,c):`${c}
72
+ ${c}`}(e,i):U(e,i)))),c.promptRules),chapters:i}}function ad(a,b={}){let c=a.chapters.map(a=>({...a,sections:P(a.sections||[])})),d=c.map((a,b)=>(function(a,b){let c=`## ${(0,f.tb)(b,a.title)}`,d=F(a.content);var e=/^##\s+.+$/mu.test(d)?d.replace(/^##\s+.+$/mu,c):`${c}
73
73
 
74
- ${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(G(e,c))return!i&&(i=!0,!0);if(b>0&&G(e,g))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&G(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=R(d[b]||"",[a]),e=I(c);return e.length?{...a,sections:M(e),content:c}:{...a,content:c}});return _([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',N(g),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}},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=(0,g.Ye)(a).reduce((a,b)=>a+b.count,0),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)}}}};
74
+ ${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(J(e,c))return!i&&(i=!0,!0);if(b>0&&J(e,g))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&J(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=U(d[b]||"",[a]),e=L(c);return e.length?{...a,sections:P(e),content:c}:{...a,content:c}});return ac([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',Q(g),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}},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=(0,g.Ye)(a).reduce((a,b)=>a+b.count,0),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)}}}};