@customize-agent/server 4.56.6 → 4.58.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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +20 -20
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/208.js +5 -5
- package/.next/server/chunks/4435.js +57 -56
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +26 -26
- package/.next/static/{es9Sh_JJlOsf_N_OSbqQa → 2vWd2mBe-maL25SFytCur}/_buildManifest.js +1 -1
- package/.next/static/chunks/{289-12dfcb3abec1c4b4.js → 289-35ac595388bbd018.js} +1 -1
- package/.next/static/chunks/563-b12f299d34bb9e44.js +1 -0
- package/.next/static/chunks/788-3afeb069ed706ac0.js +1 -0
- package/.next/static/chunks/pages/documents-d60a47643f5bd6b4.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-8e25066889a85834.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-d0d0e0716e9d705b.js +1 -0
- package/.next/static/chunks/pages/prompt-5e1fb81efc656866.js +1 -0
- package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/563-2b116a2500a97dba.js +0 -1
- package/.next/static/chunks/788-961761f5858f9189.js +0 -1
- package/.next/static/chunks/pages/documents-8e1a30170e9311b0.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-7b78e962e432d199.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-7535b873ab505397.js +0 -1
- package/.next/static/chunks/pages/prompt-2c242e541f2e77a9.js +0 -1
- package/.next/static/chunks/pages/system/logs-c5a8920c6506a7e8.js +0 -1
- /package/.next/static/{es9Sh_JJlOsf_N_OSbqQa → 2vWd2mBe-maL25SFytCur}/_ssgManifest.js +0 -0
|
@@ -14,7 +14,7 @@ ${d}`;return{chunk:a,index:b,score:.8*e.filter(a=>f.includes(a)).length+ +!!/\d+
|
|
|
14
14
|
章节内容建议:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
|
|
15
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,Rz:()=>n,WL:()=>o,_W:()=>d,aX:()=>h,c5:()=>m,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m2|m3|m³|m²|㎡|平方米|m|km|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)(?![\w\u00B2\u00B3])|(?<![\d.])\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+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:地径|胸径|苗高|蓬径|冠丛高|株高|株距|行距|种植深度|覆土厚度|土球直径)\s*[≥≤<>=]?\s*[DΦφd]?\s*\d+(?:\.\d+)?|(?:养护期|养护周期)\s*(?:为|不少于|不低于)?\s*[一二三四五六七八九十两\d]+(?:个)?(?:月|年)|(?:成活率|保存率|苗木覆盖率)\s*[≥≤<>=]?\s*\d+(?:\.\d+)?\s*%|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{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,k="mm|cm|m2|m3|m\xb3|m\xb2|㎡|平方米|m|km|kg|g|t|吨|l|ml|mpa|kpa|kn|kw|kv|℃|%|台|套|个|项|批|次|份|人|h|d|min|天|周|月|年|万元|元",l=`(?:[1-9]\\d*\\.\\d+(?:${k})?|(?:[1-9]\\d*|0\\.\\d+)\\s*(?:${k}))`,m=RegExp(`^[A-Za-zΦφΔ][\\w./-]*\\d${l}$`,"iu"),n=RegExp(`^\\d+${l}$`,"u"),o=/(?:DN|De|HRB|HPB|Φ|φ)/iu},22157:(a,b,c)=>{c.d(b,{DI:()=>P,H1:()=>n,Jb:()=>F,Kd:()=>N,LH:()=>g,Ld:()=>o,Me:()=>u,SQ:()=>h,Sw:()=>m,TP:()=>M,Te:()=>L,V:()=>f,W6:()=>v,Ww:()=>I,Xl:()=>D,Z1:()=>j,az:()=>l,c6:()=>J,dY:()=>y,hh:()=>O,jM:()=>C,jf:()=>S,l$:()=>R,lG:()=>K,lX:()=>Q,se:()=>k,ty:()=>t,wq:()=>w,wx:()=>x,zm:()=>i});var d=c(77598),e=c(78217);let f=/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u,g=/《[^》]*》/gu;function h(a){let b=a.replace(/《[^》]*》/gu,"");return/(?:办理|缴纳|参保|缴费|投保).{0,8}工伤保险|工伤保险.{0,8}(?:办理|缴纳|参保|缴费|投保)/u.test(b)}function i(a){let b={markdown:a,fixedCount:0,details:[]};if(h(a)||!/(?:劳务|农民工|工资)/u.test(a.replace(g,"")))return b;let c=/(办理|缴纳|投保|购买)意外伤害保险/u;if(c.test(a))return{markdown:a.replace(c,"$1工伤保险(按建设项目参保)及意外伤害保险"),fixedCount:1,details:["工伤保险表述改写:“意外伤害保险”→“工伤保险(按建设项目参保)及意外伤害保险”"]};let d=/^(#{2,6}[^\n]*工伤保险[^\n]*)$/mu;return d.test(a)?{markdown:a.replace(d,`$1
|
|
16
16
|
|
|
17
|
-
项目部按规定为全体作业人员办理工伤保险(按建设项目参保),保险费用由企业承担。`),fixedCount:1,details:["工伤保险表述补写:在「工伤保险」小节插入参保表述"]}:b}function j(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,60}?顺序|依次|先后|先.{0,40}?(?:后|再|随后|然后|最后)|顺序施工|流水顺序/u.test(a)||/([\u4e00-\u9fa5]{2,6})前[^。;;!?\n]{0,80}?\1后/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 k(a){let b=/(?:施工)?(?:概况|范围)[::]\s*\S|工程量|作业对象|部位|总量|共\s*\d|\d+(?:\.\d+)?\s*(?:km|㎡|m²|m2|m3|m³|座|套|处|盏|株|棵|延米|吨)(?![\dA-Za-z])|\d+(?:\.\d+)?\s*m(?![\dA-Za-z])/u.test(a);return{scope:b,process:/工艺流程|施工流程/u.test(a)||/(?:施工)?(?:流程|工序|顺序)[::]\s*\S/u.test(a)||j(a),method:/(?:施工)?方法(?:[::]\s*\S|(?:采用|为|按|以|包括|如下))|工艺参数|验收标准|检测|试验|记录|检查(?!井)|巡查|检验|整改|复查|销项|养护|台账|核对|复核|计量|MU\s*\d+|C\d
|
|
17
|
+
项目部按规定为全体作业人员办理工伤保险(按建设项目参保),保险费用由企业承担。`),fixedCount:1,details:["工伤保险表述补写:在「工伤保险」小节插入参保表述"]}:b}function j(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,60}?顺序|依次|先后|先.{0,40}?(?:后|再|随后|然后|最后)|顺序施工|流水顺序/u.test(a)||/([\u4e00-\u9fa5]{2,6})前[^。;;!?\n]{0,80}?\1后/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)||/按[^。;\n]{2,40}(?:、[^。;\n]{2,40}){2,}[^。;\n]{0,8}(?:顺序|先后|步骤|流程|组织|推进|安排|施工程序|作业程序)/u.test(a))}function k(a){let b=/(?:施工)?(?:概况|范围)[::]\s*\S|工程量|作业对象|部位|总量|共\s*\d|\d+(?:\.\d+)?\s*(?:km|㎡|m²|m2|m3|m³|座|套|处|盏|株|棵|延米|吨)(?![\dA-Za-z])|\d+(?:\.\d+)?\s*m(?![\dA-Za-z])|(?:包括|涵盖|覆盖|含)[^。;\n]{2,60}等[^。;\n]{0,10}(?:内容|项目|工程|分项|专业|部位)/u.test(a);return{scope:b,process:/工艺流程|施工流程/u.test(a)||/(?:施工)?(?:流程|工序|顺序)[::]\s*\S/u.test(a)||j(a),method:/(?:施工)?方法(?:[::]\s*\S|(?:采用|为|按|以|包括|如下))|工艺参数|验收标准|检测|试验|记录|检查(?!井)|巡查|检验|整改|复查|销项|养护|台账|核对|复核|计量|MU\s*\d+|C\d+|抗压强度|抗折强度|强度等级|配合比|坍落度|工序卡|操作规程|作业指导书|技术交底|搭接长度|双面施焊|三面施焊|满焊|焊缝|焊脚|坡口|焊接工艺参数/u.test(a)}}function l(a){let b=k(a);return b.scope&&b.process&&b.method}function m(a){return a.replace(/^\d+(?:\.\d+)+(?![##])\s*[..、))]?\s*/u,"").replace(/^\d+(?=[\s..、))])\s*[..、))]?\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"").replace(/工程$/u,"")}function n(a){let b=new Set,c=[];for(let d of a){if(!b.has(d.id)){b.add(d.id),c.push(d);continue}let a=2,e=`${d.id}-dup${a}`;for(;b.has(e);)a+=1,e=`${d.id}-dup${a}`;b.add(e),c.push({...d,id:e})}return c}function o(a){return/化粪池|给排水|采暖|燃气|管网|管道|阀门|水泵|水箱|水表|消防|喷淋|强电|弱电|电气|照明|防雷|接地|通风|空调|电梯/u.test(a)?"机电安装工程":/装饰|装修|门窗|屋面|防水|楼地面|墙柱面|天棚|吊顶|抹灰|油漆|涂料|栏杆|幕墙|零星/u.test(a)?"装饰装修工程":/土石方|土方|石方|基础|垫层|砌筑|砌体|混凝土|钢筋|模板|支护|降水|桩基/u.test(a)?"结构与基础工程":/道路|路基|路面|广场|铺装|绿化|景观|亮化|清淤|围墙|大门|停车|步道|边坡/u.test(a)?"室外市政工程":/脚手|围挡|安全防护|冬雨|临时|监测/u.test(a)?"措施工程":"专项工程"}function p(a,b){return a.replace(/工程/gu,"")===b.replace(/工程/gu,"")}let q=/[0-90-9冬夏春秋汛台寒冻暑热旱涝雨雪]/u,r=/[设施系统工程系统项目技术管理措施方案服务配套专项建设]/u;function s(a,b){if(a.length<4||a.length>=b.length)return!1;let c=new Set(b.split("")),d=new Set(a.split(""));for(let a of d)if(!c.has(a))return!1;let e=[...c].filter(a=>!d.has(a));return 0!==e.length&&!(e.length>2)&&e.every(a=>r.test(a))}function t(a,b){let c=Math.max(a.length,b.length),d=c>=12?2:+(c>=8);if(0===d&&!s(a,b)&&!s(b,a))return!1;let e=new Set(a.split("")),f=new Set(b.split(""));for(let a of e)if(!f.has(a)&&q.test(a))return!1;for(let a of f)if(!e.has(a)&&q.test(a))return!1;return!!(s(a,b)||s(b,a))||function(a,b,c){if(a===b)return!0;if(Math.abs(a.length-b.length)>c)return!1;let d=Array.from({length:b.length+1},(a,b)=>b);for(let e=1;e<=a.length;e+=1){let f=[e],g=e;for(let c=1;c<=b.length;c+=1){let h=d[c-1]+ +(a[e-1]!==b[c-1]),i=Math.min(d[c]+1,f[c-1]+1,h);f.push(i),i<g&&(g=i)}if(g>c)return!1;d=f}return d[b.length]<=c}(a,b,d)}function u(a,b){let c=[...new Set(b.filter(Boolean))].map(a=>({title:a,normalized:m(a)})).filter(a=>a.normalized);if(0===c.length)return{markdown:a,aligned:[]};let d=a.split("\n").map(a=>m(a)).filter(Boolean),e=new Set(c.filter(a=>d.some(b=>b.includes(a.normalized))).map(a=>a.title)),f=new Set,g=[];return{markdown:a.split("\n").map(a=>{let b=/^(\s*####\s+)(.+)$/u.exec(a);if(!b)return a;let d=b[2].trim(),h=m(d);if(!h||c.some(a=>h.includes(a.normalized)))return a;let i=c.find(a=>!e.has(a.title)&&!f.has(a.title)&&t(h,a.normalized));return i?(f.add(i.title),g.push(`${d}→${i.title}`),`${b[1]}${i.title}`):a}).join("\n"),aligned:g}}function v(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}::${m(b[2].trim())}`;if(!g)continue;let h=(d.get(g)||0)+1;d.set(g,h),h>=2&&e.push(b[2].trim())}return e}function w(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}::${m(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 x(a,b,c,d,e=[]){let f=m(b),g=new Set(c.map(m).filter(Boolean)),h=new Set(d.map(m).filter(Boolean)),i=new Set(e.map(m).filter(Boolean)),j=[];for(let b of a.split(/\r?\n/u)){let a=/^(#{3,4})\s+(.+)$/u.exec(b.trim());if(!a)continue;let c=a[2].trim(),d=m(c);if(d){if(3===a[1].length){d===f||p(d,f)||j.push(c);continue}!h.has(d)&&(g.has(d)||i.has(d))||j.push(c)}}return j}function y(a,b,c,d=[]){let e=m(b),f=new Set(c.map(m).filter(Boolean)),g=new Set(d.map(m).filter(Boolean)),h=[];for(let b of a.split(/\r?\n/u)){let a=/^(#{3,4})\s+(.+)$/u.exec(b.trim());if(a){let c=m(a[2].trim());if(3===a[1].length){(c===e||p(c,e))&&h.push(b);continue}if(c&&!f.has(c)&&!g.has(c))continue}h.push(b)}let i=h.join("\n");return/^###\s+\S+/mu.test(i.trim())?i:`### ${b}
|
|
18
18
|
|
|
19
19
|
${i}`.trim()}let z=new Set(["施工准备","施工要点","质量控制","质量要求","质量保证措施","质量控制措施","质量通病防治","安全措施","安全要求","安全管理措施","安全技术交底","技术交底","注意事项","验收要求","验收标准","成品保护","环境保护","文明施工","进度控制","工期保障","材料管理","机械管理","人员管理","组织管理","应急预案","应急措施","劳动力配置","机械设备配置","施工概况","施工流程","施工方法"]),A=/^(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)[、..\s::-]/u,B=/主要分部分项工程施工方案|项目主要施工内容/u;function C(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1)/^##\s+/u.test(b[a].trim())&&c.push(a);if(0===c.length)return a;let d=new Set;for(let a=0;a<c.length;a+=1){let e=c[a],f=c[a+1]??b.length,g=new Set,h=[],i="";for(let a=e;a<f;a+=1){let c=/^(#{3,4})\s+(.+)$/u.exec(b[a].trim());if(!c)continue;let d=c[2].trim(),e=m(d);e&&(3===c[1].length?(g.add(e),i=e):h.push({line:a,name:e,rawTitle:d,parentH3:i}))}let j=Array(f-e);{let a=f;for(let c=f-1;c>=e;c-=1)j[c-e]=a,/^#{2,4}\s+/u.test(b[c].trim())&&(a=c)}let k=new Map,l=new Set;for(let a of h){let c=b.slice(a.line+1,j[a.line-e]).join("").replace(/\s+/gu,""),f=l.has(a.name);f||k.set(a.name,c),l.add(a.name);let h=A.test(a.rawTitle),i=B.test(a.parentH3),m=g.has(a.name)&&!h&&!i,n=z.has(a.name),o=f&&(0===c.length||c===k.get(a.name));if(!(m||!n&&o))continue;let p=j[a.line-e];for(let b=a.line;b<p;b+=1)d.add(b)}}return 0===d.size?a:b.filter((a,b)=>!d.has(b)).join("\n")}function D(a,b,c={}){if(!c.fuzzy){let c=E(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||E(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=F(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=F(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||H(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 E(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 F(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function G(a){return F(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function H(a,b){let c=G(a),d=G(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function I(a,b,c,d){let e=[...new Set(b.filter(Boolean))];if(0===e.length)return a;let f=3===c?/^\s*###\s+/u:4===c?/^\s*####\s+/u:/^\s*#{3,4}\s+/u,g=new Set,h=a.split("\n").map(a=>{if(!f.test(a))return a;let b=F(a);if(!b)return a;let c=e.find(a=>!g.has(a)&&H(b,a));if(!c||c===b)return a;let d=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return d?(g.add(c),`${d}${c}`):a});if(!d?.nearMatch)return h.join("\n");let i=e.map(a=>({title:a,normalized:m(a)})).filter(a=>a.normalized);if(0===i.length)return h.join("\n");let j=h.filter(a=>f.test(a)).map(a=>m(F(a))).filter(Boolean),k=new Set(i.filter(a=>j.some(b=>b.includes(a.normalized))).map(a=>a.title)),l=new Set;return h.map(a=>{if(!f.test(a))return a;let b=m(F(a));if(!b||i.some(a=>b.includes(a.normalized)))return a;let c=i.find(a=>!k.has(a.title)&&!l.has(a.title)&&t(b,a.normalized));if(!c)return a;let d=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return d?(l.add(c.title),`${d}${c.title}`):a}).join("\n")}function J(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function K(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 L(a){if(a?.aborted)throw Error("用户中止")}function M(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let N=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标","异常低价","评标基准价"];function O(a){return!!(N.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}function P(a){return!!(/否决[^。;\n]{0,8}投标|废标(?!准)|无效投标|投标无效|不予评审|取消[^。;\n]{0,6}投标资格/u.test(a)||/评审因素|评分因素|分值评分|详细评审标准|≤F≤/u.test(a))||/得\s*\d+(?:\.\d+)?\s*(?:-\s*\d+(?:\.\d+)?\s*)?分/u.test(a)}function Q(a){return a.filter(a=>!O(`${a.key||""} ${String(a.value)}`))}async function R(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 S{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:()=>E,N6:()=>R,h0:()=>N,bV:()=>O,QJ:()=>G,jG:()=>F,dU:()=>D,Bh:()=>H,zY:()=>U,xm:()=>J,J5:()=>M,C1:()=>Q});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(32434),q=c(78217),r=c(22157),s=c(80572),t=c(70208);function u(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function v(){return e.join(u(),"document-templates.json")}function w(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 x(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?(0,r.H1)(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 y(){try{let a=v();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(x)}catch{try{let a=v();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function z(a){d.writeFileSync(v(),JSON.stringify(a.map(x),null,2),"utf-8")}function A(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function B(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function C(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(u(),"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 D(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=C(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:A(a.content),contentPreview:B(a.content)})}return b}function E(a){let b=S(a),c=(0,i.XB)("prompt"),d=U(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=T(d),h=[];for(let a of g){let d=C(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:A(d.content),contentPreview:B(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 F(){let a=(0,j.V)().templates,b=y().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function G(a){return F().find(b=>b.id===a)}function H(a){let b,c,d=x(a),e=y().find(a=>a.id===d.id),f=Date.now();if(e&&w(e)!==w(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=y().filter(a=>a.id!==d.id);return h.push(g),z(h),g}let I=/^(?:施工组织设计|技术标|投标文件|施工方案|技术方案)$/u;async function J(a,b=(0,h.aY)(),d={}){let f,g,j,r=G(a),u=[];if(!r)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let v=r.chapters||[],w=(0,i.XB)("prompt"),x=R(r),y=S(r);x||u.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),x&&!y&&u.push({level:"error",message:`项目角色配置不存在或已删除:${x}`}),r.promptIds?.length&&u.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),r.promptBindings?.length&&u.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let z=U(r),A=(0,o.qp)(r);y&&0===y.promptRoles.length&&u.push({level:"error",message:"项目角色配置未配置提示词角色。"}),y&&y.promptRoles.length>0&&0===z.length&&u.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let B=e.resolve(b),C=(0,h.Yy)(B),E=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=>b.relativePath.startsWith(`${a}/`)&&(0,p.PZ)(b)).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(A,C);if(0===A.length?u.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===E.length&&u.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),E.length>0){let a=new Map,b=new Map;for(let c of E){let{kind:d}=(0,o.O)(c);a.set(d,(a.get(d)??0)+1);let f=b.get(d)??[];f.length<3&&f.push(e.basename(c)),b.set(d,f)}let c=c=>{let d=a.get(c)??0;return d>0?`${d} 份(${(b.get(c)??[]).join("、")}${d>3?" 等":""})`:"**缺失**"},d=`招标 ${c("tender_document")}|清单 ${c("bill_of_quantities")}|图纸 ${c("drawing")}|补疑 ${c("addendum")}`;for(let b of[{kind:"tender_document",label:"招标文件",hint:"缺招标文件则编制规格、评审要求与响应锚点无从提取,要求实体响应(权重 0.30)无判定对象"},{kind:"bill_of_quantities",label:"工程量清单",hint:"缺清单则工程量/规格/资源计划类权威值全部不可推导,蓝图不可用"},{kind:"drawing",label:"图纸/设计资料",hint:"缺图纸则施工方法、专业接口与构造做法无依据,针对性章无法成稿"}].filter(b=>(a.get(b.kind)??0)===0))u.push({level:"error",message:`资料不齐备:未识别到${b.label}。${b.hint}。请补充后重新索引再生成。(当前资料构成:${d})`});(a.get("addendum")??0)===0&&u.push({level:"warning",message:`未识别到补疑/答疑澄清资料(若本项目确无答疑可忽略)。当前资料构成:${d}`})}if(r&&(f=(0,l.P)(B,{requirement:d.requirement,boundFilePaths:E}),0===A.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=u.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&u.splice(a,1)}let F=new Map(C.map(a=>[a.relativePath,a])),H=[],K=E.map(a=>{let b=F.get(a);return b||u.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&H.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&u.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&u.push({level:"warning",message:`知识库文件暂无可检索内容切片:${a}`}),{filePath:a,roleId:"project_material",roleName:"项目资料包",exists:!!b,indexed:!!(b&&b.indexedAt>0&&"disk"!==b.status),chunkCount:b?.chunkCount??0,vectorReady:!!(b&&b.chunkCount>0)}}),L=K.filter(a=>a.exists).length,M=K.filter(a=>a.exists&&!a.indexed).length;L>0&&M===L?u.push({level:"error",message:`模板绑定的项目资料包(${L} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):u.push(...H);let N=D(z),O=[{text:d.requirement||"",source:"用户需求"},{text:N.map(a=>a.content).join("\n"),source:"提示词角色"}],P=(0,t.cs)(O.map(a=>({...a,strict:!0}))),Q=P.length>=2;!Q&&v.length<2?u.push({level:"error",message:`模板章节结构不足且未提供显式大纲:当前 ${v.length} 章。请在模板中补充章节(至少 2 章,如「编制依据」+ 各类措施章),或在用户需求/提示词中给出显式大纲(章数 ≥ 2)。`}):!Q&&v.every(a=>(a.sections?.length??0)===0&&I.test((a.title||"").trim()))&&u.push({level:"error",message:"模板全部章节均为占位容器且未提供显式大纲(无小节且标题为文档类型名);请补充章节与小节,或在用户需求/提示词中给出显式大纲。"}),Q&&v.length<2&&u.push({level:"warning",message:`模板章节将被显式大纲覆盖:模板 ${v.length} 章 → 大纲 ${P.length} 章(大纲来源:用户需求或写作/章节提示词角色)`});let T=new Set(y?.promptRoles.map(a=>a.roleId)||[]);for(let a of y?.promptRoles||[]){let b=w.find(b=>b.id===a.roleId);if(!b){u.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&u.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let V=z.map(a=>{let b=w.find(b=>b.id===a.roleId),c=N.find(b=>b.id===a.promptId);return b||u.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),T.has(a.roleId)||u.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||u.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&u.push({level:"warning",message:`提示词为空:${c.name}`}),{...a,roleName:b?.name,promptTitle:c?.name,promptSource:c?.source,contentLength:c?.content.length??0,contentHash:c?.contentHash,contentPreview:c?.contentPreview,exists:!!c}}),W=(y?.promptRoles||[]).map(a=>{let b=w.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=z.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(N.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(N.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))u.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(r){let a=f||(0,l.P)(B,{requirement:d.requirement,boundFilePaths:E}),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?"必需资料角色缺失":"可选资料角色缺失"}})}(r,a);for(let c of(g=(0,n.$)({template:r,spec:(0,k.x)(r).spec,summary:a,resolvedRoles:b})).blockingIssues)u.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)u.push({level:"warning",message:a})}try{let a=(0,k.x)(r).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(r,a),f=r.generationSettings||r.exportSettings,g=(0,q.q6)(r.exportSettings||r.generationSettings),h=(0,q.py)(d.requirement||""),i=(0,q.py)(N.map(a=>a.content).join("\n")),l=h.targetChars||h.targetPages?h:i,m=f?.targetPages?.target||f?.targetPages?.min,n=l.targetChars||(l.targetPages?l.targetPages*g:void 0)||(m?m*g:void 0),o=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),p=Math.round(n||o||1200*e.length),t=E.reduce((a,b)=>a+(F.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:u}=await c.e(4435).then(c.bind(c,79227));j=u({template:r,chapters:e,requirement:d.requirement,materialFileCount:E.length,evidenceCount:t,targetWords:p,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:(0,s.z)().chapterConcurrency||0})}catch{}return{templateId:a,projectRoleConfigId:x,configName:y?.name,fileDiagnostics:K,promptDiagnostics:V,roleDiagnostics:W,readiness:g,issues:u,strategyPreview:j}}let K=new Map,L=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function M(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=G(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=K.get(i);if(j&&Date.now()-j.at<L)return j.result;let k=await J(a,d,c);return K.set(i,{at:Date.now(),result:k}),k}function N(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");z(y().filter(b=>b.id!==a))}function O(a){let b=G(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=x({...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=y();return e.push(d),z(e),d}function P(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function Q(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=>P(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>P(a,b)))}function R(a){return a.projectRoleConfigId||void 0}function S(a){let b=R(a);return b?(0,i.Mu)(b):void 0}function T(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 U(a){let b=S(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 T(d)}},28366:(a,b,c)=>{c.d(b,{TG:()=>j,bC:()=>i,ip:()=>g});var d=c(73024),e=c(76760),f=c(22157);let g={factGovernance:{thresholdComparison:"不低于|不少于|不高于|不超过|不得少于|不得高于|不得小于|不小于|不大于|大于等于|小于等于|≥|≤|≧|≦|以上|及以上|以内|之内",amendmentContext:"修正|调整|变更|更改|更正|改为|澄清|更新|修订",aspirationalPrefix:"拟|规划|目标|力争|预计|期望|远期|未来|设想|建议|预期|争取|拟建|规划建设",addendumSource:"补疑|答疑|澄清|补充|更正|修改",weakAnchorGapThreshold:9},writingSpec:{criticalSectionAnchors:["主要施工内容","工程概况","项目概况","重点难点","危大工程","应急预案","施工部署","总平面","主要分部分项工程施工方案","主要分部分项施工方案","主要施工方法"],majorContentSection:"项目主要施工\\s*内容|主要施工\\s*内容",divisionSection:"主要分部分项工程施工方案|主要分部分项施工方案|主要施工方法",divisionProcessLabel:"工艺流程|施工流程",criticalDeepSections:["项目特点.*重点.*难点|重点.*难点.*分析","项目主要施工\\s*内容|主要施工\\s*内容","主要分部分项工程施工方案|主要施工方法","危大工程专项施工方案审批流程","原材料进场复试|见证取样"],blockerMinChars:{emergency:650,majorContent:1800,division:1200,focus:1500},divisionQuality:{blockerMinPackages:3,minPackages:5,minParamsPerPackage:4,minPackageChars:150,balanceRatio:1/3},writeRules:{majorContent:"【项目主要施工内容专项结构】只能根据绑定材料中的当前项目事实识别施工对象和工作包;不得套用固定行业模板,不得复述完整工程概况,不得写“以图纸清单为准”式空话;不得使用 Markdown 表格。必须按专业工程/分部分项工程逐项展开,每个专业工程单独一个“#### 工作包名称”三级小节(不得把所有专业工程合并成一个小节),内容覆盖三方面要素:①作业对象与工程量(什么部位、什么规模)、②工序安排(先后顺序清晰)、③施工方法(怎么干、用什么参数验收)。呈现形式要求:三方面要素必须融入连贯散文叙述,禁止以“施工概况/施工流程/施工方法”等结构标签充当小节标题或段落开头引导(不得出现“施工概况:……”式标签行),标签词只是后台结构概念、不得入题入文。工作包小节必须与上下文“主要施工工作包”列表一一对应,每个工作包只允许展开一次;严禁把同一个工作包以“X工程”“X工作包”两种口径重复写成两个小节,也不得新增图谱之外的工作包小节。作业对象与工程量要素必须写该工作包对应的本项目作业对象、部位、规模/工程量、材料设备或系统边界,写成连贯叙述,避免“xxx|工程量”式清单原文罗列;工程量数值必须与工程量清单汇总值一致(只写项目总量,禁止写分部小计、单村分表量或估算值)。工序要素必须有明确的工序顺序表达(相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每个工作包至少 1 处不少于 4 个环节的工序顺序表达,不得只把工序顺序局限在一处标签段;施工方法要素写成连贯叙述,落到具体工具机具、测量/检测方法、工艺参数、材料规格、穿插关系、质量验收、复试检测和资料闭环,每个工作包施工方法宜落位至少 3 个具体工艺参数(厚度、间距、偏差、含水率、饱满度、坡度、压实度等),参数来自绑定材料或行业通用规范值,禁止“按规范施工”“结合实际执行”式空话,严禁把工程量清单条目原样罗列成“xxx:2台;xxx:1台;”式参数堆砌。严禁出现工程量清单计价表内部口径词:分部小计、本页小计、合计、小计、按实、暂估、综合单价、措施项目费、规费、税金(这些是清单计价表专用标记,正式正文一律不得出现;“措施项目”作为专业工程类别名称可用,但不得与“清单/计价/费”连用)。施工方法写法要求:按“怎么做/用什么/参数多少/怎么验收”四要素落位,逐项写出具体做法;句式自然多样,严禁套用固定句式模板或段落间同句式复读。至少形成 5 个施工工作包,工作包必须来自绑定材料证据。本小节正文总量不少于 2200 字(每个工作包小节按 300 字以上展开,写足三要素、工序细节与验收要求,防止内容深度不足触发导出阻断)。",division:"【主要分部分项工程施工方案专项要求】每个“#### 分项工程方案”三级小节内容需覆盖三方面要素:①作业对象与工程量(本项目作业对象、部位、工程量)、②工序安排(先后顺序清晰)、③施工方法(工具机具、材料规格、工艺参数、验收标准)。呈现形式要求:三方面要素必须融入连贯散文叙述,禁止以“施工概况/施工流程/施工方法”等结构标签充当小节标题或段落开头引导(不得使用结构标签词作为分项小节名),标签词只是后台结构概念、不得入题入文。严禁用“**分项名**”粗体行代替“#### 分项名”小节标题,也不得把多个分项合并写在一个段落里。工程量数值必须与工程量清单汇总值一致(只写项目总量,禁止写分部小计、单村分表量或估算值),严禁出现工程量清单计价表内部口径词:分部小计、本页小计、合计、小计、按实、暂估、综合单价、措施项目费、规费、税金。工序要素必须有明确的工序顺序表达(相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每个分项方案至少 1 处不少于 4 个环节的工序顺序表达,不得只把工序顺序局限在一处标签段;每个分项方案正文必须落位至少 4 个工艺参数(mm、MPa、间距、偏差、坡度、养护天数、试验压力、搭接长度等),参数来自绑定材料或行业通用规范值,不得编造;纯设备配置型小节必须写型号、规格、容量、数量参数;不得写“按规范施工”“结合实际执行”式空话。分项间深度必须均衡:门窗维修、立面修补、设备安装等小分项同样要写足作业对象、工序与工艺参数(每个分项不少于 150 字),不得一句话带过;严禁写“其他专业工序引用相应章节内容”“详见相关章节”等自我消解语,工序安排只能在本分项方案内展开,不得另行拆节复述。",labor:"【劳动力配置专项写作规则】工种构成表必须且只能使用锚点“工种构成”:各工种人数与合计(=劳动力峰值)与锚点完全一致,不得改写、不得自设其他工种构成;分阶段劳动力投入表各阶段人数必须与锚点“分阶段劳动力投入”一致,最大值等于劳动力峰值,任何阶段不得超过峰值;正文叙述与表格数值口径一致;规划了表格的小节必须输出正式 Markdown 表格;禁止将各工种人数相加推导峰值、禁止按定额自行估算劳动力数值。",material:"【材料配置专项写作规则】主要材料表必须且只能引用锚点“主要材料”清单:材料名称、型号、规格(混凝土强度等级、管径、功率、厚度、尺寸等)、数量与锚点完全一致;清单条目中明确给出的材料型号与参数是事实数据,必须原样引用,不得编造、改写或省略;锚点未列出的材料不得自行添加型号规格。施工方法与工艺叙述中提及的材料型号、规格、参数同样必须以清单特征原文或锚点清单为准。"},threeSourceRules:"【写作三源规则】正文中的每一个数字与事实只有三种合法来源,三源之外一律不得写入:\nF\xb7项目事实源:来自绑定材料、工程量清单、图纸与权威锚点的项目专属事实(工程量、规格、数量、工期、金额、地点、单位名称),一律原样引用,数值、单位、口径与源完全一致,不得改写、拆分或近似。\nD\xb7系统推导源:劳动力分配、工种构成、分阶段投入、机械台数、进度时间安排、材料进场时间、试验计划、检验批划分等计划类数值,已由蓝图统一推导并写入权威锚点,一律原样引用;严禁基于工程量、工期、定额或经验重新估算、换算或另设数值,锚点给出多少就写多少。\nP\xb7公共规范源:法律法规、标准规范(GB/JGJ/CJJ/DB 系列)与通用施工工艺参数可引用现行有效版本,规范必须带编号,不得虚构编号或引用已废止版本。\n三源均无依据时不得编造凑数:不得留空、不得写“另行确定”“按需配置”“根据进度灵活调配”“依据定额计算”等回避话术,也不得用行业先验数字冒充项目数据;此时只写已有三源事实、工艺细节与适用边界。"}},h=new Map;function i(a){let b=h.get(a);if(b)return b;let c=g,f=function(a){if(a)return e.join(a,".customize-agent","workflow-rules.json")}(a);if(f&&d.existsSync(f))try{let a=JSON.parse(d.readFileSync(f,"utf8"));c=function(a,b){if(!b)return a;let c={...a.factGovernance,...b.factGovernance||{}},d={...a.writingSpec.blockerMinChars,...b.writingSpec?.blockerMinChars||{}},e={...a.writingSpec.divisionQuality,...b.writingSpec?.divisionQuality||{}},f={...a.writingSpec.writeRules,...b.writingSpec?.writeRules||{}};return{factGovernance:c,writingSpec:{...a.writingSpec,...b.writingSpec||{},blockerMinChars:d,divisionQuality:e,writeRules:f}}}(g,a)}catch{}return h.set(a,c),c}function j(a){return(0,f.c6)(i(a))}},29055:(a,b,c)=>{c.d(b,{s:()=>e,y:()=>f});var d=c(70208);let e=[{type:"municipal",pattern:/市政|道路|管网|雨污|污水|给水|沟槽|交通导|沥青|水稳|检查井/u},{type:"renovation",pattern:/老旧小区|小区改造|改造|修缮|飞线|居民|雨污分流/u},{type:"decoration",pattern:/装饰|装修|精装|吊顶|墙地面|乳胶漆|瓷砖|石材|室内/u},{type:"building",pattern:/房建|住宅|办公楼|厂房|主体结构|基础|屋面|二次结构|塔吊|建筑/u}];function f(a){var b;let c=(b=`${a.materialText||""} ${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`,(0,d.GQ)(b).replace(/\s+/gu,"").toLowerCase()),f=e.filter(a=>a.pattern.test(c)).map(a=>a.type);return f.length?[...new Set(f)]:["general"]}},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}},31129:(a,b,c)=>{c.d(b,{$R:()=>i,F$:()=>l,Hp:()=>j,bs:()=>m,gJ:()=>k});var d=c(73024),e=c(48161),f=c(76760),g=c(70208);function h(){return f.join(process.env.CUSTOMIZE_AGENT_HOME?f.join(process.env.CUSTOMIZE_AGENT_HOME,".customize-agent"):f.join(e.homedir(),".customize-agent"),"section-fingerprints.json")}function i(){let a=h();if(!d.existsSync(a))return{version:1,entries:[]};try{let b=JSON.parse(d.readFileSync(a,"utf8")),c=Array.isArray(b?.entries)?b.entries.filter(a=>!!a&&"object"==typeof a&&"string"==typeof a.documentId):[];return{version:1,entries:c}}catch{return{version:1,entries:[]}}}function j(a){try{let b=i();for(b.entries=b.entries.filter(b=>b.documentId!==a.documentId),b.entries.push(a);b.entries.length>200;)b.entries.shift();let c=h();d.mkdirSync(f.dirname(c),{recursive:!0}),d.writeFileSync(c,JSON.stringify(b,null,2),"utf8")}catch(a){console.error(`[fingerprint] 指纹池写入失败(不阻断生成):${a instanceof Error?a.message:String(a)}`)}}function k(a,b){let c=String(a||"").trim(),d=String(b||"").trim();if(!c||!d)return!1;if(c===d)return!0;let e=(0,g.nz)(c).replace(/\s+/gu,""),f=(0,g.nz)(d).replace(/\s+/gu,"");if(!e||!f)return!1;if(e===f)return!0;let h=new Set(f);if([...new Set(e)].filter(a=>h.has(a)).length<3)return!1;let i=function(a,b){let c=0,d=Array(b.length+1).fill(0);for(let e=1;e<=a.length;e+=1){let f=0;for(let g=1;g<=b.length;g+=1){let h=d[g];d[g]=a[e-1]===b[g-1]?f+1:0,d[g]>c&&(c=d[g]),f=h}}return c}(e,f);return!(i<3)&&i/Math.min(e.length,f.length)>=.4}function l(a,b,c={}){let d=[],e=[];for(let a of b.entries)if(!c.excludeDocumentId||a.documentId!==c.excludeDocumentId)for(let b of[...a.h3||[],...a.h4||[]])"string"==typeof b&&b.trim()&&e.push({title:b,documentId:a.documentId});if(0===e.length)return d;for(let b of a){if(!b||!String(b).trim())continue;let a=e.find(a=>k(b,a.title));a&&d.push({title:b,collidedWith:a.title,documentId:a.documentId})}return d}function m(a){let b=[],c=[];for(let d of String(a||"").split(/\r?\n/u)){let a=d.trim(),e=/^(#{3,4})\s+(.+)$/u.exec(a);if(!e)continue;let f=e[2].replace(/#+\s*$/u,"").trim();f&&(3===e[1].length?b:c).push(f)}return{h3:b,h4:c}}},31920:(a,b,c)=>{c.d(b,{Nf:()=>g,St:()=>A,W:()=>h,eI:()=>z,rA:()=>j,vG:()=>o});var d=c(95294);let e=/[,。;:、·||,;:()()【】《》[\]{}<>「」'"“”\s]/gu,f=/^\s*[\d.]+\s*(?:[A-Za-z%℃²³]+|平方米|立方米|平方|立方|米|天|年|月|日|周|小时|分钟|元|万元|台|套|个|项|批|次|人|份|页|处|座|根|块|组|件|孔|盏|樘|扇|片)*\s*$/u;function g(a){let b=a.trim();if(!b||/^#{1,6}\s/u.test(b)||/^\|/u.test(b))return!1;if(/^(?:答|答复|回复|答疑)\s*[::]/u.test(b))return!0;if(b.length<30)return!1;for(let a of b.split(e)){if(a.length<25)continue;let b=(a.match(/[0-9]/gu)||[]).length,c=(a.match(/[+\-*/×@%·..,≤≥~~$]/gu)||[]).length;if(!((a.match(/[一-龥]/gu)||[]).length/a.length>.3)&&(b+c)/a.length>=.45)return!0}let c=b.split(/[、,,;;]/u).map(a=>a.trim()).filter(Boolean);return!!(c.length>=15)&&!!(c.filter(a=>f.test(a)).length/c.length>=.6)||!1}function h(a){return a?a.split(/\r?\n/u).map(a=>g(a)?"":a).join("\n").replace(/\n{3,}/gu,"\n\n"):a}let i=/(?:现澄清为如下|澄清为如下|澄清如下)[::][^。;\n]*/gu;function j(a){if(!a)return{text:a,removed:0};let b=0,c=a.replace(i,()=>(b+=1,"")),e=(0,d.r1)(c);return c=e.text,b+=e.removed,{text:c=c.replace(/[::,,;;]\s*(?=[。;;])/gu,""),removed:b}}let k=/[^。;\n]{0,30}(?:澄清|答疑|补遗)(?:文件)?[^。;\n]{0,10}(?:明确|载明|规定|说明)[^。;\n]{0,60}/gu,l=/[^。;\n]{0,20}原[^。;\n]{0,24}?(?:现|变更为|调整为|修改为)[^。;\n]{0,24}/gu,m=/[^。;\n,,]{0,20}(?:招标|原招标|原合同|原计划)[^。;\n]{0,20}?(?:现|已|均|将)?(?:澄清|变更|调整|修改|更正)为[^。;\n,,]{0,24}[,,]?/gu,n=/(?:经|根据)[^。;\n,,]{0,8}(?:澄清|答疑|补遗)(?:文件)?[^。;\n]{0,16}?(?:调整为|变更为|修改为|更正为)[^。;\n,,]{0,24}[,,]?/gu;function o(a){if(!a)return{text:a,removed:0};let b=0,c=String(a).replace(k,()=>(b+=1,""));return{text:(c=(c=(c=c.replace(l,a=>/原因|原则|原始|原本|原状|原地|原材料/.test(a)?a:(b+=1,""))).replace(m,()=>(b+=1,""))).replace(n,()=>(b+=1,""))).replace(/[,,;;]\s*(?=[。;])/gu,""),removed:b}}let p="(?:《[^》]{2,40}》|<[^<>]{2,40}>)",q=/(?:法|条例|办法|规定|规则|决定|细则|条文|标准|规范|规程|导则|准则|通则|技术要求|技术条件)$/u,r=/^\s*[((]?\s*[A-Z]{2,6}(?:\s*\/\s*[A-Z]{1,6})?\s*\d/u,s=[`(?:具体)?(?:做法|详见|参见|见|按|依据|参照)[^,,、;;。!?\\n]{0,6}(?:[,,]\\s*(?:具体)?(?:做法|详见|参见|见|依据|参照))?[^,,、;;。!?\\n]{0,8}?(${p})(?:[((][^))]{0,24}[))])?(?:[0-9A-Za-z//.\\-]{1,16})?(?:页|张)?`],t=[`(?:具体)?(?:做法|详见|参见|见|按|依据|参照)[^,,、;;\\n]{0,12}?(${p})[^,,、;;\\n]{0,12}`,`(?:参见|详见|参照|按|依照)[^,,、;;\\n]{0,6}?(?:(${p}))?[^,,、;;\\n]{0,6}?(?:[皖烷京沪苏浙粤鲁豫鄂湘川渝陕冀晋蒙辽吉黑闽赣桂黔滇甘青宁新藏]\\s?\\d{4}|\\d{2})\\s?[A-Z]{1,2}\\s?\\d{2,4}(?:[//]\\d{1,3})?[^,,、;;\\n]{0,10}`],u=[...t,`(?:详见|参见|见)[^,,、;;\\n]{0,16}?(?:大样图|详图|节点图|工艺图|做法表)`],v=[`按(?:设计)?(?:施工)?图纸(?:控制|计量|要求|施工|确定|执行|进行|处理|设置|选用|计算|调整)?`,`以(?:设计)?图纸为准`,`(?:资料|图纸|清单|设计文件)(?:中)?未(?:提供|明确|给出|注明)[^,,、;;\\n]{0,12}(?:参数|数据|做法|要求|规格)?`,`(?:具体(?:参数|做法|数值))?待(?:补充|确认|核实|明确)`],w=s.map(a=>RegExp(a,"u"));function x(a,b){return!!q.test(a.slice(1,-1))||r.test(b)}function y(a){if(!a)return{text:a,hits:[]};let b=[],c=[];for(let d of String(a).split(/(?<=[。;])/u)){if(!d.trim()){c.push(d);continue}let a=function(a){let b=a,c=[];for(let a of w)b=b.replace(RegExp(a.source,"gu"),(a,b)=>{if(void 0!==b){let c=a.slice(a.lastIndexOf(b)+b.length);if(x(b,c))return a}return c.push({sample:a.trim(),family:"atlas"}),""});return{text:b,hits:c}}(d);b.push(...a.hits);let e=a.text.split(/([,,、;;])/u),f=[];for(let a=0;a<e.length;a+=2){let c=e[a]??"",d=c.trim()?function(a){for(let b of t)for(let c of a.matchAll(RegExp(b,"gu"))){let a=c[1];if(void 0===a)return"atlas";let b=c[0].slice(c[0].lastIndexOf(a)+a.length);if(!x(a,b))return"atlas"}return u.slice(t.length).some(b=>RegExp(b,"u").test(a))?"atlas":v.some(b=>RegExp(b,"u").test(a))?"drawing":null}(c):null;if(d){b.push({sample:c.trim().slice(0,60),family:d});continue}f.push(c);let g=e[a+1];g&&a+2<e.length&&f.push(g)}let g=f.join("").replace(/^[,,、]+/u,"").replace(/[,,、]+$/u,"");g.replace(/[。;;\s]/gu,"")&&c.push(g)}return{text:c.join("").replace(/[,,、;;]{2,}/gu,",").replace(/[,,、;;]\s*(?=[。;])/gu,"").replace(/\n{3,}/gu,"\n\n"),hits:b}}function z(a){let b=y(a);return{text:b.text,removed:b.hits.length}}function A(a){return y(a).hits.filter(a=>"atlas"===a.family).map(a=>a.sample)}},32434:(a,b,c)=>{c.d(b,{IA:()=>y,PZ:()=>m,Qu:()=>v,SU:()=>x,US:()=>o,ZR:()=>p,cN:()=>w,hw:()=>q,rj:()=>u});var d=c(76760),e=c(19898),f=c(44533),g=c(40299),h=c(80439),i=c(22157);function j(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function k(a){let b=j(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function l(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function m(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function n(a,b){let c=new Set((0,e.materialRootsOfFiles)(b));return(0,e.materialRootsOfScopeRoots)(a).filter(a=>c.has(a))}function o(a){let b=new Set;for(let c of a)for(let a of c.relativePath.match(/\b\d{4}[A-Z]{2,}\d{4,}\b/gu)||[])b.add(a);return[...b]}function p(a,b,c=""){let d=(0,f.Yy)(a).filter(m),e=(b.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:j(a.materialRootPath)})).map(a=>a.materialRootPath).filter(Boolean),g=e.length?d.filter(a=>e.some(b=>j(a.relativePath)===b||j(a.relativePath).startsWith(`${b}/`))):d,h=function(a){let b=new Map;for(let c of a){let a=k(c.relativePath);b.set(a,[...b.get(a)||[],c])}return b}(g),q=c.trim(),r=[...h.keys()];if(q){let a=[...h.entries()].map(([a,b])=>({root:a,files:b,score:function(a,b){let c=l(a),d=l(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,q)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);if(1===a.length||a.length>1&&a[0].score>a[1].score){let b=[a[0].root],c=a[0].files.map(a=>a.relativePath),e=o(a[0].files);return e.length>=2?{selectedRoots:[],selectedMaterialRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`资料组「${a[0].root}」内检测到 ${e.length} 个不同项目编号(${e.join("、")}),疑似多份项目资料混放,已阻断生成避免跨项目污染`,rejectedRoots:r,scopeHash:(0,i.c6)({ambiguous:!0,mixedProjectNos:e})}:{selectedRoots:b,selectedMaterialRoots:n(b,c),selectedFiles:c,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`用户需求唯一匹配资料组:${a[0].root}`,rejectedRoots:r.filter(a=>!b.includes(a)),scopeHash:(0,i.c6)({selectedRoots:b,selectedFiles:c})}}if(a.length>1){let b=a.filter(b=>b.score===a[0].score).map(a=>a.root);return{selectedRoots:[],selectedMaterialRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`用户需求同时匹配多个资料组:${b.join("、")}`,rejectedRoots:r,scopeHash:(0,i.c6)({ambiguous:!0,selectedRoots:b})}}}if(1===e.length){let a=g.map(a=>a.relativePath),b=o(g);return b.length>=2?{selectedRoots:[],selectedMaterialRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`模板绑定资料组「${e[0]}」内检测到 ${b.length} 个不同项目编号(${b.join("、")}),疑似多份项目资料混放,已阻断生成避免跨项目污染`,rejectedRoots:r,scopeHash:(0,i.c6)({ambiguous:!0,mixedProjectNos:b})}:{selectedRoots:e,selectedMaterialRoots:n(e,a),selectedFiles:a,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`模板绑定唯一资料组:${e[0]}`,rejectedRoots:r.filter(a=>!e.includes(a)),scopeHash:(0,i.c6)({selectedRoots:e,selectedFiles:a})}}return{selectedRoots:[],selectedMaterialRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:e.length>1?`模板绑定多个资料组但需求未唯一指定:${e.join("、")}`:"未绑定资料组且需求未唯一指定资料范围,禁止回退全量资料",rejectedRoots:r,scopeHash:(0,i.c6)({ambiguous:!0,boundRoots:e,requirement:c})}}function q(a,b){let c=new Map((0,f.Yy)(a).map(a=>[a.relativePath,a])),e=b.selectedFiles.map(a=>{let b=c.get(a),e=Number(b?.chunkCount||0);return{path:a,root:k(a),fileName:d.basename(a),chunkCount:e,indexedAt:b?.indexedAt,status:b?.status,hash:(0,i.c6)({filePath:a,chunkCount:e,indexedAt:b?.indexedAt,status:b?.status})}});return{files:e,totalFiles:e.length,totalChunks:e.reduce((a,b)=>a+b.chunkCount,0),roots:[...new Set(e.map(a=>a.root))],createdAt:Date.now(),snapshotHash:(0,i.c6)(e.map(a=>({path:a.path,hash:a.hash})))}}function r(a,b){return a.filter(a=>b.test(`${a.fieldId||""} ${a.fieldName||""} ${a.key} ${(0,i.lG)(a.value)}`))}function s(a){return(0,i.lG)(a.value).replace(/\s+/gu," ").trim()}let t=new Set(["资料文件","资料组","资料角色","章节意图候选","项目名称候选"]);function u(a){let b=a.facts.filter(a=>!t.has(a.key)&&s(a)),c=r(b,/项目名称|工程名称|招标项目名称|建设地点|建设规模|招标范围|施工范围|建设内容/u),d=r(b,/工期|日历天|进度|开工|竣工/u),e=r(b,/质量|验收|合格|标准|规范/u),f=r(b,/清单|工程量|材料|设备|机械|劳动力|资源/u),g=r(b,/安全|文明|环保|危大|风险/u),h=c.slice(0,8).map(a=>`${a.key}:${s(a)}`).join(";");return{works:h?[{name:a.materialSnapshot.roots[0]||"当前项目",scope:h,sourceFiles:[...new Set(c.map(a=>a.sourceFile).filter(Boolean))],relatedItems:f.slice(0,8).map(a=>s(a))}]:[],methods:[],resources:f.slice(0,30).map(a=>({name:a.key,type:"material",spec:s(a),quantity:"",unit:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),schedule:d.slice(0,10).map(a=>({milestone:a.key,duration:s(a),startDate:"",endDate:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),standards:e.slice(0,16).map(a=>({code:a.key,description:s(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),risks:g.slice(0,16).map(a=>({risk:s(a),level:"medium",mitigation:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),requirements:r(b,/招标|投标|合同|承包|响应|要求|补疑|澄清|答疑/u).slice(0,20).map(a=>({category:a.key,detail:s(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),siteConditions:r(b,/现场|周边|交通|既有|保护|场地/u).slice(0,12).map(a=>({condition:s(a),impact:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),addendumChanges:[],gaps:[],generatedAt:Date.now()}}function v(a){let b=a.materialScope||p(a.projectRoot,a.template,a.requirement||"");if(b.ambiguous||!b.locked||0===b.selectedFiles.length)throw Error(`资料范围未锁定:${b.reason}`);let c=q(a.projectRoot,b),d=a.projectGraph||u({facts:a.facts,materialSnapshot:c,requirement:a.requirement}),e=a.projectGraph?"project-graph":"project-graph-runtime",f=a.projectGraph?"预处理完整项目图谱":"运行期项目图谱草案",g=Date.now();return{runId:`run-${g}-${(0,i.c6)({templateId:a.template.id,requirement:a.requirement||"",scopeHash:b.scopeHash}).slice(0,8)}`,templateId:a.template.id,requirement:a.requirement||"",projectRoot:a.projectRoot,materialScope:b,materialSnapshot:c,nodes:[{id:"material-scope",type:"material_scope",status:"completed",startedAt:g,completedAt:g,outputSummary:b.reason,metrics:{selectedFiles:b.selectedFiles.length,rejectedRoots:b.rejectedRoots.length}},{id:"material-snapshot",type:"material_snapshot",status:"completed",startedAt:g,completedAt:g,outputSummary:`${c.totalFiles} 份资料,${c.totalChunks} 个切片`,metrics:{totalFiles:c.totalFiles,totalChunks:c.totalChunks}},{id:e,type:"project_graph",status:"completed",startedAt:g,completedAt:g,outputSummary:`${f}:${d.works.length}工程 ${d.resources.length}资源 ${d.schedule.length}工期 ${d.standards.length}标准`,metrics:{facts:a.facts.length,precomputed:!!a.projectGraph,source:a.projectGraphSource||"runtime"}}],facts:a.facts,baseProjectGraph:d,issues:[],createdAt:g}}function w(a,b=200,c=50){if(a.nodes.length<=b)return;let d=a.nodes.slice(-c),e=a.nodes.slice(0,a.nodes.length-c),f=e.filter(a=>"project_graph"!==a.type&&("completed"===a.status||"failed"===a.status||"skipped"===a.status)),g=e.filter(a=>!f.includes(a));if(0===f.length)return;let h={id:`nodes-archive-${Date.now()}`,type:"summary",status:"completed",startedAt:f[0].startedAt,completedAt:f[f.length-1].completedAt||Date.now(),outputSummary:`已归档 ${f.length} 个历史节点(${[...new Set(f.map(a=>a.type))].join("、")})`,metrics:{archivedNodes:f.length}};a.nodes.splice(0,a.nodes.length,...g,h,...d)}function x(a){let b=a.nodes.find(a=>"project_graph"===a.type),c=!!b?.metrics?.precomputed,d=[(0,h.X5)({type:"validation",roleId:"agent-material-scope",status:"success",message:`资料范围已锁定:${a.materialScope.selectedRoots.join("、")}`,details:[`${a.materialScope.reason}`,`入选资料:${a.materialScope.selectedFiles.length}/${a.materialScope.totalAvailableFiles}`,`已排除资料组:${a.materialScope.rejectedRoots.slice(0,8).join("、")||"无"}`]},{subtitle:"Agent 资料范围锁定"}),(0,h.X5)({type:"knowledge_retrieval",roleId:"agent-material-snapshot",status:"success",message:`资料快照已固定:${a.materialSnapshot.totalFiles} 份资料、${a.materialSnapshot.totalChunks} 个切片`,details:a.materialSnapshot.files.slice(0,10).map(a=>`${a.root}|${a.fileName}|${a.chunkCount}切片`)},{subtitle:"Agent 资料快照"})];return c||d.push((0,h.X5)({type:"file_understanding",roleId:"agent-project-graph-runtime",status:"success",message:`运行期项目图谱草案已建立:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`,details:["缓存缺失时用于资料范围和 Planner 预备分析;正式完整项目图谱会随后由 LLM 构建",`事实数:${a.facts.length}`]},{subtitle:"Agent 项目图谱预备分析"})),d}function y(a){let b=a.split(/\r?\n/u),c=[];return b.forEach((a,b)=>{g.Rg.test(a)&&c.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现后台或兜底话术:第 ${b+1} 行`,suggestion:"必须改为有事实依据的正式表达;非必填缺失字段应删除,必填事实缺失应阻断生成。"})}),[...c,...(0,g.bx)(a),...(0,g.uv)(a),...(0,g.nP)(a)].slice(0,20)}},33409:(a,b,c)=>{c.d(b,{Ik:()=>i,M2:()=>f});let d={top:"项目经理",second:["技术负责人","质量负责人","安全负责人","施工负责人","材料负责人","资料负责人"],third:["土建施工班组","钢结构安装班组","安装专业班组","装饰装修班组","试验与检测组"]},e={schedule:["工序","持续天数","起止天序","线路性质","依据"],tempLand:["设施","面积(平方米)","位置","使用时长","说明"],orgChart:["层级","岗位/班组","直接上级"]};function f(a){let b=String(a||"").replace(/\s+/gu,"");if(b){if(/项目管理机构|机构图|组织架构/.test(b))return`| ${[...e.orgChart].join(" | ")} |`;if(/横道图|网络图|进度计划|总进度/.test(b))return`| ${[...e.schedule].join(" | ")} |`;if(/总平面|平面布置/.test(b))return`| ${[...e.tempLand].join(" | ")} |`}}let g=/^(?:—+|--+|-|\/|待定|待补充|待确认|待查|暂无|无数据|无|若干|N\/A|n\/a|略)$/u;function h(a,b){let c=b.filter(b=>b.length===a.length&&b.every(a=>{let b=String(a??"").trim();return b.length>0&&!g.test(b)}));if(0!==c.length)return[`| ${a.join(" | ")} |`,`| ${a.map(()=>"---").join(" | ")} |`,...c.map(a=>`| ${a.join(" | ")} |`)]}function i(a,b){let c=String(b||"").replace(/\s+/gu,"");if(c){if(/项目管理机构|机构图|组织架构/.test(c)){let a=[["第一层",d.top,"公司管理层"],...d.second.map(a=>["第二层",a,d.top]),...d.third.map(a=>["第三层",a,"各专业负责人"])];return h([...e.orgChart],a)}if(a){if(/横道图|网络图|进度计划|总进度/.test(c)){let b=a.schedule||[];if(0===b.length)return;let c=b.map(a=>[a.label,Number.isFinite(a.duration)?String(a.duration):"",`第${a.startDay}~${a.endDay}天`,a.critical?"关键线路":"非关键线路",a.basis||""]);return h([...e.schedule],c)}if(/总平面|平面布置/.test(c)){let b=a.tempLand||[];if(0===b.length)return;let c=b.map(a=>[a.purpose,"number"==typeof a.area&&Number.isFinite(a.area)?String(a.area):"",a.location||"",a.duration||"",a.note||""]);return h([...e.tempLand],c)}}}}},36366:(a,b,c)=>{c.d(b,{TD:()=>h,a1:()=>o,u:()=>n,y$:()=>l});var d=c(73024),e=c(48161),f=c(76760),g=c(22157);let h=.85,i=[{name:"工序主线",prompt:"以施工先后工序为主线组织内容,小节按施工流程推进顺序展开"},{name:"专业系统",prompt:"以专业系统构成为主线,按各专业分系统独立成节"},{name:"空间区段",prompt:"以施工区段、单体与平面分区为主线,按空间单元组织小节"},{name:"资源要素",prompt:"以人材机等生产要素配置为主线,按资源要素组织小节"},{name:"目标管控",prompt:"以质量、安全、工期等管控目标为主线,按目标维度组织小节"},{name:"接口协同",prompt:"以专业接口与协同配合为主线,按接口关系与穿插顺序组织小节"}],j=[{name:"直述事务",prompt:"小节标题采用惯例事务名词直述(如「编制说明与工程概况」)"},{name:"目标牵引",prompt:"小节标题以目标与结果词收尾(如「工期目标与进度保障」)"},{name:"流程管控",prompt:"小节标题突出流程与衔接(如「施工流程与工序衔接」)"},{name:"要素配置",prompt:"小节标题突出要素与资源配置(如「劳动力配置与组织」)"},{name:"系统专业",prompt:"小节标题突出系统构成与专业对象(如「测量控制网建立」)"}];function k(a){return`${Math.floor(a/j.length)}-${a%j.length}`}function l(a,b=[]){let c=i.length*j.length,d=Number.parseInt((0,g.c6)(String(a||"default-document")).slice(0,8),16)%c,e=new Set(b.filter(Boolean)),f=d;for(let a=0;a<c;a+=1){let b=(d+a)%c;if(!e.has(k(b))){f=b;break}}let h=i[Math.floor(f/j.length)],m=j[f%j.length];return{id:k(f),perspective:h.name,style:m.name,prompt:`本次文档系统性差异化设定(全文一以贯之,除非与模板锁定小节冲突):
|
|
20
20
|
- 组织主线:${h.prompt}。
|
|
@@ -53,10 +53,10 @@ ${c.slice(a).trimStart()}`}return`${f}
|
|
|
53
53
|
|
|
54
54
|
<div class="page-break"></div>
|
|
55
55
|
|
|
56
|
-
${c}`}(e,h):as(e,h)))),c.promptRules,c.bodyTableForbidden);return{markdown:c.bodyTableForbidden?i:(0,k.
|
|
56
|
+
${c}`}(e,h):as(e,h)))),c.promptRules,c.bodyTableForbidden);return{markdown:c.bodyTableForbidden?i:(0,k.gA)(i),chapters:h}}function aK(a,b={}){let c=a.chapters.map(a=>({...a,sections:an(a.sections||[])})),d=c.map((a,b)=>(function(a,b){let c=`## ${(0,g.tb)(b,a.title)}`,d=W(a.content);var e=/^##\s+.+$/mu.test(d)?d.replace(/^##\s+.+$/mu,c):`${c}
|
|
57
57
|
|
|
58
|
-
${d}`,f=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(ac(e,c))return!i&&(i=!0,!0);if(b>0&&ac(e,f))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&ac(d,f))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()})(a,b)),e=d.filter(Boolean).join("\n\n"),f=c.map((a,b)=>{if(a.sections?.length)return a;let c=as(d[b]||"",[a]),e=aj(c);return e.length?{...a,sections:an(e),content:c}:{...a,content:c}});return aJ([(0,h.nd)(a.title,a.facts),'\n<div class="page-break"></div>\n',ao(f),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}[Z,"你是施工组织设计文档写作专家。",X,Y].join("\n\n")},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}}},43378:(a,b,c)=>{c.d(b,{BL:()=>w,CG:()=>y,F4:()=>ab,K9:()=>O,T4:()=>M,TG:()=>G,Xi:()=>K,Xj:()=>A,Y$:()=>Q,aH:()=>$,c$:()=>P,cA:()=>aa,cR:()=>_,iv:()=>J,lR:()=>h,lj:()=>B,n7:()=>x,nn:()=>i});var d=c(33409);function e(a){return a.replace(/\s+/gu,"").toLowerCase()}function f(a){return[...new Set(a)]}function g(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(e(b)),f=[...c(e(a))];return 0===f.length?0:f.filter(a=>d.has(a)).length/f.length}function h(a){if("forbidden"===a.bodyTablePolicy)return{chapters:a.chapters,unattachedRequiredTables:[]};let b=new Map,c=(a,c)=>{let d=c.title.trim();if(!d)return;let e=b.get(a)||[];e.some(a=>a.title===d||a.title.includes(d)||d.includes(a.title))||(e.push({id:`planned-table-${a}-${e.length+1}`,title:d,chapterTitle:"",section:c.section||"",required:c.required,reason:c.reason,fields:c.fields.filter(Boolean).map(a=>({name:a})).slice(0,12)}),b.set(a,e))};for(let b of a.chapters)for(let d of a.plannedTables.get(b.id)||[])c(b.id,{title:d.title,fields:d.fields,required:!1,reason:"本章小节规划产出的表格需求(按章按节规划)。"});let d=[];for(let b of a.requiredTables||[]){let f,h=b.trim();if(!h)continue;let i=0;for(let b of a.chapters){let a=function(a,b){let c=e(a).replace(/表$/u,"");if(!c)return 0;let d=0;for(let a of[b.title,...b.sections||[]]){let b=e(a);if(b){if(b.includes(c)||c.includes(b)){d=Math.max(d,1);continue}d=Math.max(d,g(c,b))}}return d}(h,b);a>i&&(i=a,f=b)}if(!f||i<.3){d.push(h);continue}c(f.id,{title:h,fields:[],required:!0,reason:"用户提示词声明的必需表格。"})}return{chapters:a.chapters.map(a=>{let c=b.get(a.id);return c?.length?{...a,tableSections:f([...a.tableSections||[],...c.map(a=>a.title)]),tableRequirements:f([...a.tableRequirements||[],...c.filter(a=>a.required).map(a=>`${a.title}:用户提示词声明的必需表格,必须真实输出为 markdown 表格,表头与行数据必须与本章内容一致。`)]),tablePlans:c.map(b=>({...b,chapterTitle:a.title}))}:a}),unattachedRequiredTables:d}}function i(a,b){let c=a.tablePlans||[];return 0===c.length?[]:c.filter(c=>!b.some(b=>(function(a,b){let c=a.tablePlans||[];if(0===c.length)return[];let d=e(b||"");return d?c.filter(a=>{let b=e(a.section||"");if(b&&(d.includes(b)||b.includes(d)))return!0;let c=e(a.title);if(c&&(d.includes(c)||c.includes(d)))return!0;let f=c.replace(/表$/u,"");return!!(f&&(d.includes(f)||f.includes(d))||f&&g(d,f)>=.6)}):c})(a,b).some(a=>a.id===c.id)))}let j=RegExp(`^.{2,36}?表`,"u"),k=/(详见|参见|参照|如[下上]|如下|如上|[下上]表|所示|附表|后表)[::。]?$/u,l=/详见下表|参见下表|参照下表|按[下上]表|如下表所示|如下表|见下表|如上表|如下所示|如下所列|列举如下|列表如下|如下[::]/u,m=/(表|计划|清单|台账|汇总|统计|安排|措施|要求|标准|参数|要点|记录|配置|情况|指标|一览|明细|方案)$/u,n=/(?:编制|建立|形成|汇总|列出|统计|整理|绘制|制定)([^,。;;::]{2,28}?(?:表|台账|清单|一览表))/u,o=/(汇总|计划|记录|清单|台账|一览|配置|控制|检查|要点|情况|措施|方案|安排|表)/gu,p=/^表\s*[\d一二三四五六七八九十]+(?:[--..—]\s*[\d一二三四五六七八九十]+)?\s*[::、..]?\s/u;function q(a){return a.replace(p,"").trim()}let r=/^表\s*[\d一二三四五六七八九十]+\s*[-—–-..]\s*(?=[^\d\s])/u,s={一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};function t(a){if(/^\d+$/u.test(a))return Number(a);let b=0,c=0;for(let d of a)"十"===d?(b+=10*(c||1),c=0):"百"===d?(b+=100*(c||1),c=0):s[d]&&(c=s[d]);return b+c}function u(a){return a.length>=3&&a.length<=30&&m.test(a)&&/^[\u4e00-\u9fa5A-Za-z0-9()()、与及的]+$/u.test(a)}function v(a,b){let c=b-1,d=(a[c]||"").trim().replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(a=>a.trim()).filter(Boolean);if(0===d.length)return;let e=d[0]||"";if(d.length>=3&&e.length>=3&&e.length<=20&&/表$/u.test(e))return{headerIndex:c,dividerIndex:b,kind:"headerCell",rawTitle:e,headerCells:d.slice(1)};for(let e=b-2;e>=0&&b-e<=8;e-=1){let f=(a[e]||"").trim();if(!f)continue;if(f.includes("|"))break;if(f.startsWith("#")){let a=f.replace(/^#{1,6}\s+/u,"").replace(/^\d+(?:\.\d+)*[、..\s]*/u,"").trim();if(/表$/u.test(a)&&a.length>=2&&a.length<=30)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"leadIn",rawTitle:a,headerCells:d};break}let g=/^\*\*([^*\n]{2,40})\*\*$/u.exec(f);if(g)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:g[1].trim(),headerCells:d};if(p.test(f))return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:f,headerCells:d};let h=function(a){let b="",c=l.exec(a);if(c){if(c.index<3)return"";b=a.slice(0,c.index);let d=-1;for(let a of b.matchAll(/按/gu)){let c=(a.index||0)+1,e=b.slice(c,c+30),f=e.indexOf("、"),g=e.search(/[,。;::]/u);f>=0&&(g<0||f<g)&&(d=a.index||0)}d>0&&u(b.slice(0,d).replace(/\s+/gu,""))&&(b=b.slice(0,d));let e=Math.max(...["。",";","!","?",",","、",":",":",";"].map(a=>b.lastIndexOf(a)));e>=0&&(b=b.slice(e+1)),b=b.replace(/^(?:现将|兹将|并将|现拟|以下|下面|下列)/u,"").trim()}else{let c=n.exec(a);if(!c)return"";b=(c[1]||"").trim()}return u(b=b.replace(/\s+/gu,""))?b:""}(f);if(h)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"leadIn",rawTitle:h,headerCells:d};let i=j.exec(f)?.[0];if(i&&!/表$/u.test(f)&&!/[下上如附]表$/u.test(i)){let a=f.slice(i.length);if(a.length>=2&&!/^[::;;,,、。]/u.test(a))return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"attached",rawTitle:i,headerCells:d}}if(!(k.test(f)||/[::;;,,、]$/u.test(f)||f.includes("。"))){if(f.length<=40)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:f,headerCells:d};break}}return{headerIndex:c,dividerIndex:b,kind:"none",rawTitle:"",headerCells:d}}function w(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a=1;a<b.length;a+=1){let d=b[a];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=v(b,a);e&&c.push({title:q(e.rawTitle),headerCells:e.headerCells,captioned:p.test(e.rawTitle.trim())})}return c}function x(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a=1;a<b.length;a+=1){let d=b[a];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=v(b,a);if(!e||"none"!==e.kind)continue;let f=[b[e.headerIndex]||"",d];for(let c=a+1;c<b.length&&c-a<=10&&(b[c]||"").trim().startsWith("|");c+=1)f.push(b[c]);c.push({headerIndex:e.headerIndex,headerCells:e.headerCells,blockText:f.join("\n")})}return c}function y(a,b){if(0===b.length)return{markdown:a,completed:0};let c=x(a);if(0===c.length)return{markdown:a,completed:0};let d=[];if(b.forEach((a,b)=>{a.fields.length<3||c.forEach((c,e)=>{let f=I(a.fields,c.headerCells);f>=.6&&d.push({planIndex:b,blockIndex:e,score:f})})}),0===d.length)return{markdown:a,completed:0};d.sort((a,b)=>b.score-a.score);let e=new Set,f=new Set,g=new Map;for(let a of d){if(e.has(a.planIndex)||f.has(a.blockIndex))continue;let d=(b[a.planIndex].title||"").trim();d&&(e.add(a.planIndex),f.add(a.blockIndex),g.set(c[a.blockIndex].headerIndex,d))}if(0===g.size)return{markdown:a,completed:0};let h=a.replace(/\r/gu,"").split("\n"),i=[];for(let a=0;a<h.length;a+=1){let b=g.get(a);b&&i.push(b,""),i.push(h[a])}return{markdown:i.join("\n"),completed:g.size}}function z(a){return a.length<2?"":a.map(a=>a.replace(/\s+/gu,"")).join("\0")}function A(a,b){let c=x(a);if(0===c.length)return{markdown:a,recovered:0,details:[]};let d=function(a){let b=new Map;for(let c of a){let a=(c||"").replace(/\r/gu,"").split("\n");for(let c=1;c<a.length;c+=1){let d=a[c];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=v(a,c);if(!e||"none"===e.kind)continue;let f=q(e.rawTitle).trim();if(!f)continue;let g=z(e.headerCells);if(!g)continue;let h=b.get(g)??new Set;h.add(f),b.set(g,h)}}let c=new Map;for(let[a,d]of b)1===d.size&&c.set(a,[...d][0]);return c}(b);if(0===d.size)return{markdown:a,recovered:0,details:[]};let e=new Map,f=[];for(let a of c){let b=d.get(z(a.headerCells));b&&(e.set(a.headerIndex,b),f.push(`「${b}」`))}if(0===e.size)return{markdown:a,recovered:0,details:[]};let g=a.replace(/\r/gu,"").split("\n"),h=[];for(let a=0;a<g.length;a+=1){let b=e.get(a);b&&h.push(b,""),h.push(g[a])}return{markdown:h.join("\n"),recovered:e.size,details:f}}function B(a){let b=a.replace(/\r/gu,"").split("\n"),c=b.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a)),d=c>=0?c:b.length,e=new Map,f=0,g=0;for(let a=0;a<d;a+=1){let c=/^##\s+(.+?)\s*$/u.exec(b[a]);if(c&&!/^(目录|附表)/u.test(c[1])){let a=/^第\s*([一二三四五六七八九十百\d]+)\s*章/u.exec(c[1]);f=a?t(a[1]):f+1,g=0}let d=b[a];if(a<1||!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let h=v(b,a);if(!h||"none"===h.kind||(g+=1,p.test(h.rawTitle.trim())))continue;let i=h.rawTitle.replace(r,"").trim();if(!i)continue;let j=`表${f}-${g} ${i}`;if("headerCell"===h.kind){let a=`| ${h.headerCells.join(" | ")} |`;e.set(h.headerIndex,[j,"",a]);continue}let k=h.titleIndex;if("line"===h.kind){e.set(k,[j]);continue}if("leadIn"===h.kind){e.set(k,[b[k]||"","",j]);continue}let l=(b[k]||"").trim().slice(h.rawTitle.length).trim();e.set(k,l?[j,"",l]:[j])}if(0===e.size)return a;let h=[];for(let a=0;a<b.length;a+=1){let c=e.get(a);c?h.push(...c):h.push(b[a])}return h.join("\n")}let C=/(上述|前述|相关|该项|该表|本表|该计划|此项|本项|据此|为此)/u;function D(a){return u(a)&&!/[。;!?,,.;!?]/u.test(a)}let E=/^(?:上述|前述|相关|该项|该表|本表|该计划|此项|本项|据此|为此)/u;function F(a){return a.replace(/[—–-]/gu,"-")}function G(a){let b=function(a){let b=a.replace(/\r/gu,"").split("\n"),c=[],d=0;for(;d<b.length;){let a=(b[d]||"").trim(),e=/^表\s*\d+(?:[-—–-]\d+)?\s+(\S.*)$/u.exec(a),f=function(a,b,c){if(!c||!D(c))return null;let d=b+1;for(;d<a.length&&!(a[d]||"").trim();)d+=1;let e=d<a.length?(a[d]||"").trim():"";if(!e||!E.test(e)||e.length<8||/^(?:[#|>]|[-*]\s|\d+[.、)])/u.test(e))return null;let f=d+1;for(;f<a.length&&!(a[f]||"").trim();)f+=1;if(f>=a.length||!/^\s*\|/u.test(a[f]||""))return null;let g=f+1;for(;g<a.length&&!(a[g]||"").trim();)g+=1;let h=g<a.length?(a[g]||"").trim():"";if(!(/^\s*\|?\s*:?-{3,}:?/u.test(h)&&h.includes("|")))return null;let i=g+1;for(;i<a.length&&(a[i]||"").trim().startsWith("|");)i+=1;return{followIndex:d,nextTableStart:f,tableEnd:i}}(b,d,e?e[1].trim():"");if(!f){c.push(b[d]),d+=1;continue}let g=f.nextTableStart,h=f.tableEnd;c.push(b[d]);for(let a=d+1;a<f.followIndex;a+=1)c.push(b[a]);for(let a=g;a<h;a+=1)c.push(b[a]);c.push("",(b[f.followIndex]||"").trim()),d=h}return c.join("\n")}(function(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a of b){let b=a.trim(),d=/^表\s*(\d+(?:[-—–]\d+)?)\s+(\S.*)$/u.exec(b);if(!d){let d=function(a){if(!a||a.startsWith("#")||a.includes("|"))return null;let b=[...a.matchAll(/表\s*(\d+)\s*[-—–-..]\s*(\d+)\s*[::]?\s*(?=\S)/gu)];for(let c=b.length-1;c>=0;c-=1){let d=b[c],e=d.index??0,f=a.slice(0,e).trimEnd();if(!/[。;!?::]$/u.test(f))continue;let g=a.slice(e+d[0].length).trim();if(D(g))return{body:f,caption:`表${d[1]}-${d[2]} ${g}`}}return null}(b);if(d){c.push(d.body,"",d.caption);continue}c.push(a);continue}let e=d[2],f=-1,g="",h=j.exec(e)?.[0];if(h&&D(h)&&e.slice(h.length).length>=8&&(f=h.length,g=h),f<0){let a=C.exec(e);if(a&&a.index>=3){let b=e.slice(0,a.index).trim();D(b)&&e.slice(a.index).length>=8&&(f=a.index,g=b)}}if(f<0){c.push(a);continue}c.push(`表${d[1]} ${g}`,"",e.slice(f).trim())}return c.join("\n")}(a)),c=b.replace(/\r/gu,"").split("\n"),d=c.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a)),e=d>=0?d:c.length,f=[],g=0;for(let a=0;a<e;a+=1){let b=/^##\s+(.+?)\s*$/u.exec(c[a]);if(b&&!/^(目录|附表)/u.test(b[1])){let a=/^第\s*([一二三四五六七八九十百\d]+)\s*章/u.exec(b[1]);g=a?t(a[1]):g+1}if(g<1)continue;let d=(c[a]||"").trim(),e=/^表\s*(\d+(?:[-—–-]\d+)?)\s+(\S.*)$/u.exec(d);if(!e)continue;let h=e[2].trim();((function(a,b){let c=b+1;for(;c<a.length&&!(a[c]||"").trim();)c+=1;return c<a.length&&/^\s*\|/u.test(a[c]||"")})(c,a)||D(h))&&f.push({index:a,chapterNo:g,oldKey:F(e[1]),name:h})}let h=new Map;for(let a of f){let b=h.get(a.oldKey)??[];b.push(a),h.set(a.oldKey,b)}let i=new Set,k=new Set;for(let[a,b]of h)if(!(b.length<=1))for(let c of(k.add(a),b))i.add(c.chapterNo);if(0===i.size)return b;let l=new Map,m=new Map;for(let a of i)f.filter(b=>b.chapterNo===a).sort((a,b)=>a.index-b.index).forEach((b,c)=>{let d=`${a}-${c+1}`;d!==b.oldKey&&(l.set(b.index,`表${d} ${b.name}`),k.has(b.oldKey)||m.set(b.oldKey,d))});if(0===l.size&&0===m.size)return b;let n=[];for(let a=0;a<c.length;a+=1){let b=l.get(a);if(b){n.push(b);continue}if(a>=e||0===m.size){n.push(c[a]);continue}n.push((c[a]||"").replace(/(?<!附)表\s*(\d+(?:[-—–-]\d+)?)\s*(?![份个张条页行列项次台套人天年月日])/gu,(a,b)=>{let c=m.get(F(b));return c?`表${c}`:a}))}return n.join("\n")}function H(a){return e(a).replace(/[((][^))]*[))]/gu,"").replace(/表$/u,"")}function I(a,b){if(0===a.length||0===b.length)return 0;let c=b.map(a=>e(a)).filter(Boolean);if(0===c.length)return 0;let d=0;for(let b of a){let a=e(b.name).replace(/[((][^))]*[))]?/gu,"");a&&c.some(b=>b.includes(a)||a.includes(b))&&(d+=1)}return d/a.length}function J(a,b){if(0===a.length)return[];let c=w(b);if(0===c.length)return[...a];let d=[];a.forEach(a=>{c.forEach((b,c)=>{let e=function(a,b){let c=H(a.title),d=H(a.title).replace(o,"");return c&&g(c,b.title)>=.5?.9:d&&g(d,b.title)>=.5?.7:.5*(I(a.fields,b.headerCells)>=.5)}(a,b);e>0&&d.push({plan:a,index:c,score:e})})}),d.sort((a,b)=>b.score-a.score);let e=new Set,f=new Set;for(let a of d)e.has(a.plan.id)||f.has(a.index)||(e.add(a.plan.id),f.add(a.index));return a.filter(a=>!e.has(a.id))}function K(a,b){let c=[];for(let d of a){let a=d.tablePlans||[];if(0===a.length)continue;let e=b.find(a=>a.title===d.title)||b.find(a=>d.title.includes(a.title)||a.title.includes(d.title));if(!e)continue;let f=J(a,e.content);0!==f.length&&c.push({chapterTitle:d.title,planned:a.length,actual:function(a){let b=0;for(let c of a.split(/\r?\n/u))/^\s*\|?\s*:?-{3,}:?/u.test(c)&&c.includes("|")&&(b+=1);return b}(e.content),plans:f})}return c}let L=["【表格排版硬约束】每个表格的表名必须独立成行写在表格上方(表题,如“劳动力动态投入计划表”单独一行),不得并入表头首格、不得顶替首列名;表头行必须以“|”开头单独占一行,下一行紧跟“|---|”分隔行,数据行逐行以“|”开头;严禁把表头接在正文段落同一行(如“正文……。| 表头1 | 表头2 |”),输出表格前必须先换行。","每个表格前必须写 1~2 句引导叙述(说明该表的作用、数据口径与关键结论),表格不能替代所在小节全部正文;表格输出后还应围绕表中关键节点、责任分工与纠偏措施展开至少一段实施性正文。","只输出表格/清单本体和用户提示词明确要求的文字;不得输出系统来源说明、后台溯源列、固定表前后说明或占位话术。","【字段填写约束】项目特有数字、日期、工程量、规格必须来自项目资料或项目图谱,不得编造;人数、台班、进度时间等计划类数值必须原样引用蓝图权威锚点(劳动力峰值、工种构成、分阶段投入、机械台数、总工期节点),不得基于工程量或定额自行推算另设,不得留空、不得写“按需配置”“根据进度灵活调配”等空话。","【空话禁令】下列写法在表格单元格中一律禁止(视同留空,终检阻断):“按清单工程量”“按设计标高/按图纸/按设计”“按规范”“按方案”“符合设计要求/规范要求”“根据现场情况”“相关人员及时处理”“加强管理”“严格控制”。工程量列必须写**清单原值(数值+单位)**(如 12792.800m3、1200m2),规格/净距列必须写**图纸或清单给出的具体数值**;资料未给出该字段值的,写具体来源与判定依据(如“按施工图结施-03 基础平面图”),不得用“按……”搪塞。"];function M(a){let b=a.tablePlans||[];return 0===b.length?"":["【本章表格/清单结构化生成要求(硬性验收项)】","以下表格来自用户提示词声明与本章小节规划,不得按数量机械增减;每个应输出的表格都必须真实输出为 markdown 表格;输出后按本清单逐表自检,缺失即视为正文不足。",...L,...b.map((a,b)=>[`${b+1}. ${a.required?"必写":"应写"}:${a.title}`,a.fields.length?` - 表头必须为:${a.fields.map(a=>a.name).join(" | ")}(不得擅自改字段、删字段或增加后台溯源列)`:"",a.section?` - 归属小节:${a.section}`:"",` - 来源:${a.reason}`].filter(Boolean).join("\n"))].filter(Boolean).join("\n")}let N=[{pattern:/横道图|甘特图/u,instruction:"以表格式时间轴呈现(阶段与节点、起止时间、与工期目标的关系);表中时间节点必须与总工期及开工竣工日期一致"},{pattern:/网络图|关键线路/u,instruction:"以文字框图呈现(工作节点、先后衔接关系、关键线路标注),节点划分必须与本工程施工组织一致"},{pattern:/组织机构图|组织框图|机构框图|机构图/u,instruction:"以文字框图呈现组织机构层级(部门或岗位、隶属关系)"},{pattern:/平面布置图|布置图/u,instruction:"以分区布置的文字框图或布置要点表呈现(分区、布置内容、管控要求)"},{pattern:/流程图|工艺流程图/u,instruction:"以文字框图呈现流程步骤与衔接关系"}];function O(a){let b=[],c=new Set;for(let d of a){let a=`${d.text}
|
|
59
|
-
${d.coreTerms.join(" ")}`;for(let e of
|
|
58
|
+
${d}`,f=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(ac(e,c))return!i&&(i=!0,!0);if(b>0&&ac(e,f))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&ac(d,f))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()})(a,b)),e=d.filter(Boolean).join("\n\n"),f=c.map((a,b)=>{if(a.sections?.length)return a;let c=as(d[b]||"",[a]),e=aj(c);return e.length?{...a,sections:an(e),content:c}:{...a,content:c}});return aJ([(0,h.nd)(a.title,a.facts),'\n<div class="page-break"></div>\n',ao(f),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}[Z,"你是施工组织设计文档写作专家。",X,Y].join("\n\n")},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}}},43378:(a,b,c)=>{c.d(b,{BL:()=>y,CG:()=>A,F4:()=>ak,K9:()=>X,T4:()=>V,Xi:()=>T,Xj:()=>C,Y$:()=>Z,aH:()=>ah,c$:()=>Y,cA:()=>aj,cR:()=>ai,gA:()=>P,iv:()=>S,l9:()=>O,lR:()=>h,n7:()=>z,nn:()=>i});var d=c(33409);function e(a){return a.replace(/\s+/gu,"").toLowerCase()}function f(a){return[...new Set(a)]}function g(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(e(b)),f=[...c(e(a))];return 0===f.length?0:f.filter(a=>d.has(a)).length/f.length}function h(a){if("forbidden"===a.bodyTablePolicy)return{chapters:a.chapters,unattachedRequiredTables:[]};let b=new Map,c=(a,c)=>{let d=c.title.trim();if(!d)return;let e=b.get(a)||[];e.some(a=>a.title===d||a.title.includes(d)||d.includes(a.title))||(e.push({id:`planned-table-${a}-${e.length+1}`,title:d,chapterTitle:"",section:c.section||"",required:c.required,reason:c.reason,fields:c.fields.filter(Boolean).map(a=>({name:a})).slice(0,12)}),b.set(a,e))};for(let b of a.chapters)for(let d of a.plannedTables.get(b.id)||[])c(b.id,{title:d.title,fields:d.fields,required:!1,reason:"本章小节规划产出的表格需求(按章按节规划)。"});let d=[];for(let b of a.requiredTables||[]){let f,h=b.trim();if(!h)continue;let i=0;for(let b of a.chapters){let a=function(a,b){let c=e(a).replace(/表$/u,"");if(!c)return 0;let d=0;for(let a of[b.title,...b.sections||[]]){let b=e(a);if(b){if(b.includes(c)||c.includes(b)){d=Math.max(d,1);continue}d=Math.max(d,g(c,b))}}return d}(h,b);a>i&&(i=a,f=b)}if(!f||i<.3){d.push(h);continue}c(f.id,{title:h,fields:[],required:!0,reason:"用户提示词声明的必需表格。"})}return{chapters:a.chapters.map(a=>{let c=b.get(a.id);return c?.length?{...a,tableSections:f([...a.tableSections||[],...c.map(a=>a.title)]),tableRequirements:f([...a.tableRequirements||[],...c.filter(a=>a.required).map(a=>`${a.title}:用户提示词声明的必需表格,必须真实输出为 markdown 表格,表头与行数据必须与本章内容一致。`)]),tablePlans:c.map(b=>({...b,chapterTitle:a.title}))}:a}),unattachedRequiredTables:d}}function i(a,b){let c=a.tablePlans||[];return 0===c.length?[]:c.filter(c=>!b.some(b=>(function(a,b){let c=a.tablePlans||[];if(0===c.length)return[];let d=e(b||"");return d?c.filter(a=>{let b=e(a.section||"");if(b&&(d.includes(b)||b.includes(d)))return!0;let c=e(a.title);if(c&&(d.includes(c)||c.includes(d)))return!0;let f=c.replace(/表$/u,"");return!!(f&&(d.includes(f)||f.includes(d))||f&&g(d,f)>=.6)}):c})(a,b).some(a=>a.id===c.id)))}let j=RegExp(`^.{2,36}?表`,"u"),k=/(详见|参见|参照|如[下上]|如下|如上|[下上]表|所示|附表|后表)[::。]?$/u,l=/详见下表|参见下表|参照下表|按[下上]表|如下表所示|如下表|见下表|如上表|如下所示|如下所列|列举如下|列表如下|如下[::]/u,m=/(表|计划|清单|台账|汇总|统计|安排|措施|要求|标准|参数|要点|记录|配置|情况|指标|一览|明细|方案)$/u,n=/(?:编制|建立|形成|汇总|列出|统计|整理|绘制|制定)([^,。;;::]{2,28}?(?:表|台账|清单|一览表))/u,o=/(汇总|计划|记录|清单|台账|一览|配置|控制|检查|要点|情况|措施|方案|安排|表)/gu,p="[\\d一二三四五六七八九十]+",q="[::、..]?",r=RegExp(`^表\\s*${p}(?:[--..—]\\s*${p})?\\s*${q}\\s`,"u");function s(a){return a.replace(r,"").trim()}let t=RegExp(`^表\\s*${p}\\s*[-—–-..]\\s*(?=[^\\d\\s])`,"u"),u={一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};function v(a){if(/^\d+$/u.test(a))return Number(a);let b=0,c=0;for(let d of a)"十"===d?(b+=10*(c||1),c=0):"百"===d?(b+=100*(c||1),c=0):u[d]&&(c=u[d]);return b+c}function w(a){return a.length>=3&&a.length<=30&&m.test(a)&&/^[\u4e00-\u9fa5A-Za-z0-9()()、与及的]+$/u.test(a)}function x(a,b){let c=b-1,d=(a[c]||"").trim().replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(a=>a.trim()).filter(Boolean);if(0===d.length)return;let e=d[0]||"";if(d.length>=3&&e.length>=3&&e.length<=20&&/表$/u.test(e))return{headerIndex:c,dividerIndex:b,kind:"headerCell",rawTitle:e,headerCells:d.slice(1)};for(let e=b-2;e>=0&&b-e<=8;e-=1){let f=(a[e]||"").trim();if(!f)continue;if(f.includes("|"))break;if(f.startsWith("#")){let a=f.replace(/^#{1,6}\s+/u,"").replace(/^\d+(?:\.\d+)*[、..\s]*/u,"").trim();if(/表$/u.test(a)&&a.length>=2&&a.length<=30)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"leadIn",rawTitle:a,headerCells:d};break}let g=/^\*\*([^*\n]{2,40})\*\*$/u.exec(f);if(g)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:g[1].trim(),headerCells:d};if(r.test(f))return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:f,headerCells:d};let h=function(a){let b="",c=l.exec(a);if(c){if(c.index<3)return"";b=a.slice(0,c.index);let d=-1;for(let a of b.matchAll(/按/gu)){let c=(a.index||0)+1,e=b.slice(c,c+30),f=e.indexOf("、"),g=e.search(/[,。;::]/u);f>=0&&(g<0||f<g)&&(d=a.index||0)}d>0&&w(b.slice(0,d).replace(/\s+/gu,""))&&(b=b.slice(0,d));let e=Math.max(...["。",";","!","?",",","、",":",":",";"].map(a=>b.lastIndexOf(a)));e>=0&&(b=b.slice(e+1)),b=b.replace(/^(?:现将|兹将|并将|现拟|以下|下面|下列)/u,"").trim()}else{let c=n.exec(a);if(!c)return"";b=(c[1]||"").trim()}return w(b=b.replace(/\s+/gu,""))?b:""}(f);if(h)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"leadIn",rawTitle:h,headerCells:d};let i=j.exec(f)?.[0];if(i&&!/表$/u.test(f)&&!/[下上如附]表$/u.test(i)){let a=f.slice(i.length);if(a.length>=2&&!/^[::;;,,、。]/u.test(a))return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"attached",rawTitle:i,headerCells:d}}if(!(k.test(f)||/[::;;,,、]$/u.test(f)||f.includes("。"))){if(f.length<=40)return{headerIndex:c,dividerIndex:b,titleIndex:e,kind:"line",rawTitle:f,headerCells:d};break}}return{headerIndex:c,dividerIndex:b,kind:"none",rawTitle:"",headerCells:d}}function y(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a=1;a<b.length;a+=1){let d=b[a];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=x(b,a);e&&c.push({title:s(e.rawTitle),headerCells:e.headerCells,captioned:r.test(e.rawTitle.trim())})}return c}function z(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a=1;a<b.length;a+=1){let d=b[a];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=x(b,a);if(!e||"none"!==e.kind)continue;let f=[b[e.headerIndex]||"",d];for(let c=a+1;c<b.length&&c-a<=10&&(b[c]||"").trim().startsWith("|");c+=1)f.push(b[c]);c.push({headerIndex:e.headerIndex,headerCells:e.headerCells,blockText:f.join("\n")})}return c}function A(a,b){if(0===b.length)return{markdown:a,completed:0};let c=z(a);if(0===c.length)return{markdown:a,completed:0};let d=[];if(b.forEach((a,b)=>{a.fields.length<3||c.forEach((c,e)=>{let f=R(a.fields,c.headerCells);f>=.6&&d.push({planIndex:b,blockIndex:e,score:f})})}),0===d.length)return{markdown:a,completed:0};d.sort((a,b)=>b.score-a.score);let e=new Set,f=new Set,g=new Map;for(let a of d){if(e.has(a.planIndex)||f.has(a.blockIndex))continue;let d=(b[a.planIndex].title||"").trim();d&&(e.add(a.planIndex),f.add(a.blockIndex),g.set(c[a.blockIndex].headerIndex,d))}if(0===g.size)return{markdown:a,completed:0};let h=a.replace(/\r/gu,"").split("\n"),i=[];for(let a=0;a<h.length;a+=1){let b=g.get(a);b&&i.push(b,""),i.push(h[a])}return{markdown:i.join("\n"),completed:g.size}}function B(a){return a.length<2?"":a.map(a=>a.replace(/\s+/gu,"")).join("\0")}function C(a,b){let c=z(a);if(0===c.length)return{markdown:a,recovered:0,details:[]};let d=function(a){let b=new Map;for(let c of a){let a=(c||"").replace(/\r/gu,"").split("\n");for(let c=1;c<a.length;c+=1){let d=a[c];if(!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let e=x(a,c);if(!e||"none"===e.kind)continue;let f=s(e.rawTitle).trim();if(!f)continue;let g=B(e.headerCells);if(!g)continue;let h=b.get(g)??new Set;h.add(f),b.set(g,h)}}let c=new Map;for(let[a,d]of b)1===d.size&&c.set(a,[...d][0]);return c}(b);if(0===d.size)return{markdown:a,recovered:0,details:[]};let e=new Map,f=[];for(let a of c){let b=d.get(B(a.headerCells));b&&(e.set(a.headerIndex,b),f.push(`「${b}」`))}if(0===e.size)return{markdown:a,recovered:0,details:[]};let g=a.replace(/\r/gu,"").split("\n"),h=[];for(let a=0;a<g.length;a+=1){let b=e.get(a);b&&h.push(b,""),h.push(g[a])}return{markdown:h.join("\n"),recovered:e.size,details:f}}let D=/(上述|前述|相关|该项|该表|本表|该计划|此项|本项|据此|为此)/u;function E(a){return w(a)&&!/[。;!?,,.;!?]/u.test(a)}function F(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a of b){let b=a.trim(),d=/^表\s*(\d+(?:[-—–]\d+)?)\s+(\S.*)$/u.exec(b);if(!d){let d=function(a){if(!a||a.startsWith("#")||a.includes("|"))return null;let b=[...a.matchAll(/表\s*(\d+)\s*[-—–-..]\s*(\d+)\s*[::]?\s*(?=\S)/gu)];for(let c=b.length-1;c>=0;c-=1){let d=b[c],e=d.index??0,f=a.slice(0,e).trimEnd();if(!/[。;!?::]$/u.test(f))continue;let g=a.slice(e+d[0].length).trim();if(E(g))return{body:f,caption:`表${d[1]}-${d[2]} ${g}`}}return null}(b);if(d){c.push(d.body,"",d.caption);continue}c.push(a);continue}let e=d[2],f=-1,g="",h=j.exec(e)?.[0];if(h&&E(h)&&e.slice(h.length).length>=8&&(f=h.length,g=h),f<0){let a=D.exec(e);if(a&&a.index>=3){let b=e.slice(0,a.index).trim();E(b)&&e.slice(a.index).length>=8&&(f=a.index,g=b)}}if(f<0){c.push(a);continue}c.push(`表${d[1]} ${g}`,"",e.slice(f).trim())}return c.join("\n")}let G=/^(?:上述|前述|相关|该项|该表|本表|该计划|此项|本项|据此|为此)/u;function H(a){let b=a.replace(/\r/gu,"").split("\n"),c=[],d=0;for(;d<b.length;){let a=(b[d]||"").trim(),e=/^表\s*\d+(?:[-—–-]\d+)?\s+(\S.*)$/u.exec(a),f=function(a,b,c){if(!c||!E(c))return null;let d=b+1;for(;d<a.length&&!(a[d]||"").trim();)d+=1;let e=d<a.length?(a[d]||"").trim():"";if(!e||!G.test(e)||e.length<8||/^(?:[#|>]|[-*]\s|\d+[.、)])/u.test(e))return null;let f=d+1;for(;f<a.length&&!(a[f]||"").trim();)f+=1;if(f>=a.length||!/^\s*\|/u.test(a[f]||""))return null;let g=f+1;for(;g<a.length&&!(a[g]||"").trim();)g+=1;let h=g<a.length?(a[g]||"").trim():"";if(!(/^\s*\|?\s*:?-{3,}:?/u.test(h)&&h.includes("|")))return null;let i=g+1;for(;i<a.length&&(a[i]||"").trim().startsWith("|");)i+=1;return{followIndex:d,nextTableStart:f,tableEnd:i}}(b,d,e?e[1].trim():"");if(!f){c.push(b[d]),d+=1;continue}let g=f.nextTableStart,h=f.tableEnd;c.push(b[d]);for(let a=d+1;a<f.followIndex;a+=1)c.push(b[a]);for(let a=g;a<h;a+=1)c.push(b[a]);c.push("",(b[f.followIndex]||"").trim()),d=h}return c.join("\n")}function I(a,b){let c=b+1;for(;c<a.length&&!(a[c]||"").trim();)c+=1;return c<a.length&&/^\s*\|/u.test(a[c]||"")}function J(a){return a.replace(/[—–-]/gu,"-")}let K=`表\\s*${p}(?:\\s*[--..—]\\s*${p})*\\s*${q}\\s*`,L=RegExp(`^${K}\\S`,"u");function M(a){return L.test((a||"").trim())}let N=RegExp(`^${K}`,"u"),O="表格题注(表名行)不要写「表X-Y」编号前缀,只写表名本身(如「主要施工机械设备配置表」)——题注编号由系统在成稿后按章内表序机械生成;正文引用表时用表名指代(如「见主要施工机械设备配置表」),不要写编号。";function P(a){let{markdown:b,stripped:c}=function(a){let b=a.replace(/\r/gu,"").split("\n"),c=b.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a)),d=c>=0?c:b.length,e=0;for(let a=0;a<d;a+=1){let c=b[a]||"";if(!M(c)||!I(b,a))continue;let d=c.trim();for(let a=0;a<3&&N.test(d);a+=1)d=d.replace(N,"").trim();E(d)&&(b[a]=d,e+=1)}return 0===e?{markdown:a,stripped:e}:{markdown:b.join("\n"),stripped:e}}(H(F(function(a){let b=a.replace(/\r/gu,"").split("\n"),c=new Set;for(let a=0;a<b.length;a+=1){if(!M(b[a]||""))continue;let d=a;for(;d+1<b.length&&M(b[d+1]||"");)d+=1;if(d===a)continue;let e=d+1;for(;e<b.length&&""===(b[e]||"").trim();)e+=1;if(!/^\s*\|/u.test(b[e]||"")){a=d;continue}for(let b=a+1;b<=d;b+=1)c.add(b);a=d}return 0===c.size?a:b.filter((a,b)=>!c.has(b)).join("\n")}(function(a){let b=a.replace(/\r/gu,"").split("\n"),c=[];for(let a=0;a<b.length;a+=1){if(!M(b[a]||""))continue;let d=a+1,e=0,f=-1;for(;d<b.length;){let a=(b[d]||"").trim();if(""===a){d+=1;continue}if(/^\s*\|/u.test(b[d]||"")){f=d;break}if(/^#{1,6}\s/u.test(a)||M(a)||(e+=1)>2)break;d+=1}f<0||0===e||c.push({from:a,to:f})}if(0===c.length)return a;c.map(a=>[a.from,a.to]);let d=new Set(c.map(a=>a.from)),e=new Map;for(let a of c){let c=e.get(a.to)||[];c.push(b[a.from]||""),e.set(a.to,c)}let f=[];for(let a=0;a<b.length;a+=1){let c=e.get(a);c&&f.push(...c),d.has(a)||f.push(b[a])}return f.join("\n")}(a)))));return c>0&&console.warn(`[table-caption] 4.59 R-B3 剥离模型自写题注编号 ${c} 处(编号改由注入器按章内表序机械分配)`),function(a){let b=H(F(a)),c=b.replace(/\r/gu,"").split("\n"),d=c.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a)),e=d>=0?d:c.length,f=[],g=0;for(let a=0;a<e;a+=1){let b=/^##\s+(.+?)\s*$/u.exec(c[a]);if(b&&!/^(目录|附表)/u.test(b[1])){let a=/^第\s*([一二三四五六七八九十百\d]+)\s*章/u.exec(b[1]);g=a?v(a[1]):g+1}if(g<1)continue;let d=(c[a]||"").trim(),e=/^表\s*(\d+(?:[-—–-]\d+)?)\s+(\S.*)$/u.exec(d);if(!e)continue;let h=e[2].trim();(I(c,a)||E(h))&&f.push({index:a,chapterNo:g,oldKey:J(e[1]),name:h})}let h=new Map;for(let a of f){let b=h.get(a.oldKey)??[];b.push(a),h.set(a.oldKey,b)}let i=new Set,j=new Set;for(let[a,b]of h)if(!(b.length<=1))for(let c of(j.add(a),b))i.add(c.chapterNo);if(0===i.size)return b;let k=new Map,l=new Map;for(let a of i)f.filter(b=>b.chapterNo===a).sort((a,b)=>a.index-b.index).forEach((b,c)=>{let d=`${a}-${c+1}`;d!==b.oldKey&&(k.set(b.index,`表${d} ${b.name}`),j.has(b.oldKey)||l.set(b.oldKey,d))});if(0===k.size&&0===l.size)return b;let m=[];for(let a=0;a<c.length;a+=1){let b=k.get(a);if(b){m.push(b);continue}if(a>=e||0===l.size){m.push(c[a]);continue}m.push((c[a]||"").replace(/(?<!附)表\s*(\d+(?:[-—–-]\d+)?)\s*(?![份个张条页行列项次台套人天年月日])/gu,(a,b)=>{let c=l.get(J(b));return c?`表${c}`:a}))}return m.join("\n")}(function(a){let b=a.replace(/\r/gu,"").split("\n"),c=b.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a)),d=c>=0?c:b.length,e=new Map,f=0,g=0;for(let a=0;a<d;a+=1){let c=/^##\s+(.+?)\s*$/u.exec(b[a]);if(c&&!/^(目录|附表)/u.test(c[1])){let a=/^第\s*([一二三四五六七八九十百\d]+)\s*章/u.exec(c[1]);f=a?v(a[1]):f+1,g=0}let d=b[a];if(a<1||!(/^\s*\|?\s*:?-{3,}:?/u.test(d)&&d.includes("|")))continue;let h=x(b,a);if(!h||"none"===h.kind||(g+=1,r.test(h.rawTitle.trim())))continue;let i=h.rawTitle.replace(t,"").trim();if(!i)continue;let j=`表${f}-${g} ${i}`;if("headerCell"===h.kind){let a=`| ${h.headerCells.join(" | ")} |`;e.set(h.headerIndex,[j,"",a]);continue}let k=h.titleIndex;if("line"===h.kind){e.set(k,[j]);continue}if("leadIn"===h.kind){e.set(k,[b[k]||"","",j]);continue}let l=(b[k]||"").trim().slice(h.rawTitle.length).trim();e.set(k,l?[j,"",l]:[j])}if(0===e.size)return a;let h=[];for(let a=0;a<b.length;a+=1){let c=e.get(a);c?h.push(...c):h.push(b[a])}return h.join("\n")}(b))}function Q(a){return e(a).replace(/[((][^))]*[))]/gu,"").replace(/表$/u,"")}function R(a,b){if(0===a.length||0===b.length)return 0;let c=b.map(a=>e(a)).filter(Boolean);if(0===c.length)return 0;let d=0;for(let b of a){let a=e(b.name).replace(/[((][^))]*[))]?/gu,"");a&&c.some(b=>b.includes(a)||a.includes(b))&&(d+=1)}return d/a.length}function S(a,b){if(0===a.length)return[];let c=y(b);if(0===c.length)return[...a];let d=[];a.forEach(a=>{c.forEach((b,c)=>{let e=function(a,b){let c=Q(a.title),d=Q(a.title).replace(o,"");return c&&g(c,b.title)>=.5?.9:d&&g(d,b.title)>=.5?.7:.5*(R(a.fields,b.headerCells)>=.5)}(a,b);e>0&&d.push({plan:a,index:c,score:e})})}),d.sort((a,b)=>b.score-a.score);let e=new Set,f=new Set;for(let a of d)e.has(a.plan.id)||f.has(a.index)||(e.add(a.plan.id),f.add(a.index));return a.filter(a=>!e.has(a.id))}function T(a,b){let c=[];for(let d of a){let a=d.tablePlans||[];if(0===a.length)continue;let e=b.find(a=>a.title===d.title)||b.find(a=>d.title.includes(a.title)||a.title.includes(d.title));if(!e)continue;let f=S(a,e.content);0!==f.length&&c.push({chapterTitle:d.title,planned:a.length,actual:function(a){let b=0;for(let c of a.split(/\r?\n/u))/^\s*\|?\s*:?-{3,}:?/u.test(c)&&c.includes("|")&&(b+=1);return b}(e.content),plans:f})}return c}let U=["【表格排版硬约束】每个表格的表名必须独立成行写在表格上方(表题,如“劳动力动态投入计划表”单独一行),不得并入表头首格、不得顶替首列名;表头行必须以“|”开头单独占一行,下一行紧跟“|---|”分隔行,数据行逐行以“|”开头;严禁把表头接在正文段落同一行(如“正文……。| 表头1 | 表头2 |”),输出表格前必须先换行。","每个表格前必须写 1~2 句引导叙述(说明该表的作用、数据口径与关键结论),表格不能替代所在小节全部正文;表格输出后还应围绕表中关键节点、责任分工与纠偏措施展开至少一段实施性正文。","只输出表格/清单本体和用户提示词明确要求的文字;不得输出系统来源说明、后台溯源列、固定表前后说明或占位话术。","【字段填写约束】项目特有数字、日期、工程量、规格必须来自项目资料或项目图谱,不得编造;人数、台班、进度时间等计划类数值必须原样引用蓝图权威锚点(劳动力峰值、工种构成、分阶段投入、机械台数、总工期节点),不得基于工程量或定额自行推算另设,不得留空、不得写“按需配置”“根据进度灵活调配”等空话。","【空话禁令】下列写法在表格单元格中一律禁止(视同留空,终检阻断):“按清单工程量”“按设计标高/按图纸/按设计”“按规范”“按方案”“符合设计要求/规范要求”“根据现场情况”“相关人员及时处理”“加强管理”“严格控制”。工程量列必须写**清单原值(数值+单位)**(如 12792.800m3、1200m2),规格/净距列必须写**图纸或清单给出的具体数值**;资料未给出该字段值的,写具体来源与判定依据(如“按施工图结施-03 基础平面图”),不得用“按……”搪塞。"];function V(a){let b=a.tablePlans||[];return 0===b.length?"":["【本章表格/清单结构化生成要求(硬性验收项)】","以下表格来自用户提示词声明与本章小节规划,不得按数量机械增减;每个应输出的表格都必须真实输出为 markdown 表格;输出后按本清单逐表自检,缺失即视为正文不足。",...U,...b.map((a,b)=>[`${b+1}. ${a.required?"必写":"应写"}:${a.title}`,a.fields.length?` - 表头必须为:${a.fields.map(a=>a.name).join(" | ")}(不得擅自改字段、删字段或增加后台溯源列)`:"",a.section?` - 归属小节:${a.section}`:"",` - 来源:${a.reason}`].filter(Boolean).join("\n"))].filter(Boolean).join("\n")}let W=[{pattern:/横道图|甘特图/u,instruction:"以表格式时间轴呈现(阶段与节点、起止时间、与工期目标的关系);表中时间节点必须与总工期及开工竣工日期一致"},{pattern:/网络图|关键线路/u,instruction:"以文字框图呈现(工作节点、先后衔接关系、关键线路标注),节点划分必须与本工程施工组织一致"},{pattern:/组织机构图|组织框图|机构框图|机构图/u,instruction:"以文字框图呈现组织机构层级(部门或岗位、隶属关系)"},{pattern:/平面布置图|布置图/u,instruction:"以分区布置的文字框图或布置要点表呈现(分区、布置内容、管控要求)"},{pattern:/流程图|工艺流程图/u,instruction:"以文字框图呈现流程步骤与衔接关系"}];function X(a){let b=[],c=new Set;for(let d of a){let a=`${d.text}
|
|
59
|
+
${d.coreTerms.join(" ")}`;for(let e of W){let f=e.pattern.exec(a);!f||c.has(f[0])||(c.add(f[0]),b.push({name:f[0],instruction:e.instruction,source:d.text}))}}return b}function Y(a,b,c,d=.45){if(0===b.length||0===a.length)return{chapters:a,unattached:[]};let e=new Map,g=[];for(let f of b){let b=-1,h=0;if(a.forEach((a,d)=>{let e=c(f.source,a.title);e>h&&(h=e,b=d)}),b<0||h<d){g.push(f);continue}let i=e.get(b)||[];i.push(`「${f.name}」${f.instruction}(招标要求原文:「${f.source.length>80?`${f.source.slice(0,80)}…`:f.source}」)`),e.set(b,i)}return{chapters:a.map((a,b)=>{let c=e.get(b);return c?.length?{...a,diagramRequirements:f([...a.diagramRequirements||[],...c])}:a}),unattached:g}}function Z(a){let b=a.diagramRequirements||[];return 0===b.length?"":["【本章图表化呈现要求(硬性验收项)】","以下要素必须以 Markdown 数据表(表头字段 + 数据行,数据取自资料,禁止编造)或结构化的「文字框图」「表格式时间轴」在正文中实际呈现(≥3 行要点);每项呈现内容结束处另起一行输出规范图题行(格式「图 X-X 图名」,X-X 为章序号与本章图序号,图名即要素名),图题行独立成行、不附加任何说明文字;不得引用未在正文出现的其他图号,不得编造图中数据;**只输出图题行而无数据表/框图内容视为该项未落实**:",...b.map((a,b)=>`${b+1}. ${a}`)].join("\n")}let $=/^图\s*(\d+(?:[-—–-]\d+)?)\s+(\S.*)$/u,_=/^图\s+(\S.*)$/u,aa=/(图|图表)$/u,ab=/(计划|机构|布置|流程|示意|系统|架构|组织|网络|横道|曲线|关系|框图|简图|大样|剖面|平面|立面|结构|工艺|路线|流向|时序|方案|安排)$/u;function ac(a){let b=(a||"").trim();return!b||aa.test(b)?b:ab.test(b)?`${b}图`:b}function ad(a){let b=a.replace(/[((][^))]*[))]/gu,"").trim();return!(b.length<2||b.length>36||!aa.test(b)||/[。;!?,,.;!?::]/u.test(a))&&/^[\u4e00-\u9fa5A-Za-z0-9()()、与及\-—-]+$/u.test(a)}function ae(a){return e(a).replace(/[((][^))]*[))]/gu,"").replace(/[图表]+$/u,"")}function af(a,b){let c=ae(a),d=ae(b);return!(c.length<2)&&!(d.length<2)&&(c.includes(d)||d.includes(c))}function ag(a){let b=a.trim(),c=$.exec(b);if(c){let a=c[2].trim();return ad(a)?{name:a,oldKey:J(c[1])}:null}let d=_.exec(b);if(!d)return null;let e=d[1].trim();return ad(e)?{name:e,oldKey:""}:null}function ah(a,b,c={}){let d=a.replace(/\r/gu,"").split("\n"),f=/^图\s*\d+(?:[-—–-]\d+)?\s+\S/u,g=a=>!!ag(a)||f.test(a.trim()),h=function(a){let b=a.findIndex(a=>/^##\s+附表\s*[一二三四五六七八九十\d]{1,3}/u.test(a));return b>=0?b:a.length}(d),i=[],j=new Set,k=(a,b)=>{if(!b||0===b.length)return;let c=`${a}|${b[0]||""}`;if(!j.has(c))return j.add(c),b},l=new Map,m=new Set;for(let a=0;a<h;a+=1){let h=(d[a]||"").trim();if(!g(h))continue;let j=ag(h),n=j?.name||h.replace(f,"").trim()||h,o=j?.name||"",p=o?b.find(a=>af(o,ac(a.name))):void 0;p&&m.add(p.name);let q=k(e(function(a,b){for(let c=b;c>=0;c-=1){let b=/^##\s+(.+?)\s*$/u.exec((a[c]||"").trim());if(b)return b[1]}return""}(d,a)),c.substituteTable?.(o||n));q&&l.set(a,q),i.push(`移除图题「${n.slice(0,24)}」${q?"改为等效数据表":"(无对应数据,仅移除)"}`)}let n=b.filter(a=>!m.has(a.name)),o=a=>{let b=e(a),c=[];for(let a=0;a<h;a+=1){let b=/^##\s+(.+?)\s*$/u.exec(d[a]||"");b&&!/^(目录|附表)/u.test(b[1])&&c.push(a)}if(!b)return h;for(let a=0;a<c.length;a+=1){let f=e((d[c[a]]||"").replace(/^##\s+/u,""));if(f.includes(b)||b.includes(f))return a+1<c.length?c[a+1]:h}return h},p=new Map;for(let b of n){let d=o(b.chapterTitle),f=c.substituteTable?.(ac(b.name));if(!f||0===f.length||a.includes(f[0]||"")||!k(e(b.chapterTitle),f))continue;let g=p.get(d)||[];g.push("",...f,""),p.set(d,g),i.push(`${b.chapterTitle}:图类要求「${b.name}」以数据表落实`)}if(0===i.length)return{markdown:a,inserted:[]};let q=[];for(let a=0;a<d.length;a+=1){let b=l.get(a);if(b){q.push("",...b,"");continue}if(g(d[a]||""))continue;let c=p.get(a);c&&q.push(...c),q.push(d[a])}let r=p.get(d.length);return r&&q.push(...r),{markdown:q.join("\n"),inserted:i}}function ai(a,b){let c=[...a];for(let a of b){if("diagram"!==a.form&&"org_chart"!==a.form)continue;let b=(a.element||"").trim();b&&(c.some(a=>af(a.name,b))||c.push({name:b,instruction:"org_chart"===a.form?"以文字框图呈现组织机构层级(部门或岗位、隶属关系)":"以文字框图或表格式时间轴呈现(内容要点完整)",source:a.sourceText}))}return c}function aj(a){let b=[],c=(a,c)=>{let d=(a||"").trim(),e=ac((c||"").trim());d&&e&&!(e.length>60)&&(b.some(a=>a.chapterTitle===d&&af(a.name,e))||b.push({chapterTitle:d,name:e}))};for(let b of a.structureItems||[])("diagram"===b.form||"org_chart"===b.form)&&c(b.chapterTitle,b.element);for(let b of a.chapters||[])for(let a of b.diagramRequirements||[]){let d=/^「([^」]+)」/u.exec(a)?.[1];d&&c(b.title,d)}return b}function ak(a,b){if(0===a.length)return{total:0,covered:0,missing:[]};let c=[],e=0;for(let f of a){let a=(0,d.M2)(ac(f.name));a&&b.includes(a)?e+=1:c.push(f)}return{total:a.length,covered:e,missing:c}}},44533:(a,b,c)=>{c.d(b,{NW:()=>j,Qh:()=>k,VS:()=>o,Yy:()=>n,a2:()=>i,aY:()=>m});var d=c(19898),e=c(33873),f=c(21820),g=c(29021);let h=null;function i(){return e.join(f.homedir(),".customize-agent")}function j(a){return(0,d.getProjectKbPath)(e.resolve(a))}function k(){return h||(h=new d.MultiProjectManager(i())),h}function l(a){let b=e.resolve(a),c=e.resolve(e.join(f.homedir(),".customize-agent"));return!(g.existsSync(e.join(b,"pnpm-workspace.yaml"))&&g.existsSync(e.join(b,"apps","server")))&&(b===c||b.includes(`${e.sep}.customize-agent${e.sep}`)||b.endsWith(`${e.sep}apps${e.sep}server`)||b.endsWith(`${e.sep}apps${e.sep}cli`))}function m(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&g.existsSync(a)&&!l(a))return e.resolve(a);let b=function(){let a=e.join(i(),"projects","registry.db");if(!g.existsSync(a))return[];let b=new((0,d.loadBetterSqlite3)())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>e.resolve(a.project_root)).filter(a=>!l(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!l(process.env.INIT_CWD)?process.env.INIT_CWD:e.resolve(process.cwd(),"../..")}function n(a,b={}){let c=new Map;for(let b of function(a){let b=e.join(f.homedir(),".customize-agent","projects",(0,d.computeProjectId)(e.resolve(a)),"kb.db");if(!g.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=j(a);if(!g.existsSync(b))return[];let c=[],d=a=>{for(let f of g.readdirSync(a,{withFileTypes:!0})){let h=e.join(a,f.name);if(f.isDirectory()){d(h);continue}if(f.name.endsWith(".source.txt"))continue;let i=g.statSync(h),j=e.relative(b,h).split(e.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:e.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:i.size,mtime:i.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function o(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=n(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
|
|
60
60
|
${a.category}
|
|
61
61
|
${a.format}
|
|
62
62
|
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await k().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}c.d(b,{C:()=>d,O:()=>e})},54185:(a,b,c)=>{c.d(b,{C4:()=>v,D9:()=>k,G9:()=>$,Lw:()=>R,P_:()=>H,Q1:()=>ac,Q9:()=>u,RM:()=>ab,T9:()=>_,TN:()=>O,V0:()=>n,be:()=>N,ch:()=>j,cq:()=>h,gn:()=>q,o0:()=>G,p5:()=>P,p_:()=>l,sO:()=>I,uj:()=>Y,uw:()=>X,vL:()=>L,v_:()=>r,y9:()=>K,yF:()=>E,yp:()=>Q,z9:()=>C,zd:()=>aa});var d=c(78217),e=c(22157);let f=/^(?:主要施工|施工)?(?:工艺流程|概况|概述|流程|工序|工艺|方法|方案|步骤|顺序|做法|安排|要点|内容)(?:要点|概述|简介|说明)?$/u,g=new Set(["主要施工方法","主要施工内容","项目主要施工内容"]);function h(a){let b=(0,e.Sw)(a);return!(!b||g.has(b))&&f.test(b)}let i=/^(\s*(?:[-*•]\s+)?)\*{0,2}(?:施工概况|施工概述|施工流程|工艺流程|施工工艺|施工工序|施工方法|施工步骤|施工顺序|施工做法|施工安排|施工要点)\*{0,2}[::]\s*/u,j="正文禁止以“施工概况/施工流程/施工方法/工艺流程/施工步骤”等结构标签充当小节标题或段落开头引导(不得出现“施工概况:本项目……”式标签行),要素内容直接融入连贯段落叙述。";function k(a){let b=[],c=[],d=0,e=[],f=0;for(let b of a.split(/\r?\n/u)){let a=b.trim();if(!a)continue;let g=/^(#{3,6})\s+(.+?)\s*$/u.exec(a);if(g){h(g[2])&&(d+=1,c.length<5&&c.push(`${g[1]} ${g[2]}`));continue}i.test(b)&&(f+=1,e.length<5&&e.push(a.slice(0,24)))}return d>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文存在结构标签充当小节标题 ${d} 处:“${c.join("”、“")}”`,suggestion:"结构标签(施工概况/施工流程/施工方法/工艺流程等)不得独立成题;确定性修复器已接入删除标签标题行(正文保留),要素内容融入上级小节连贯叙述。"}),f>0&&b.push({level:"error",severity:"blocker",category:"structure",owner:"system",repairability:"local_deterministic",message:`正文段首结构标签前缀 ${f} 处:“${e.join("”、“")}…”`,suggestion:"禁止“施工概况:……”“施工流程:……”式段首标签引导;确定性修复器已接入剥离标签前缀(正文保留),要素直接以连贯段落表述。"}),b}function l(a){let b=a.split(/\r?\n/u),c=[],d=0,f=0,g=0,j=new Map;for(let a=0;a<b.length;a+=1){let c=/^(#{3,6})\s+(.+?)\s*$/u.exec(b[a].trim());if(!c)continue;let d=(0,e.Sw)(c[2]);d&&!j.has(d)&&j.set(d,a)}for(let a=0;a<b.length;a+=1){let k=b[a],l=k.trim();if(!l){c.push(k);continue}let m=/^(#{4,6})\s+(.+?)\s*$/u.exec(l);if(m){if(h(m[2])){d+=1,a+1<b.length&&""===b[a+1].trim()&&(a+=1);continue}c.push(k);continue}if(/^#{1,6}\s/u.test(l)){c.push(k);continue}if(/^[\u4e00-\u9fa5A-Za-z0-9]{2,24}$/u.test(l)){let d=(0,e.Sw)(l),f=d?j.get(d):void 0;if(d&&void 0!==f&&a>f){g+=1,a+1<b.length&&!b[a+1].trim()&&c.length>0&&!c[c.length-1].trim()&&(a+=1);continue}}let n=i.exec(k);if(n){let a=k.slice(n[0].length);f+=1,a.trim()&&c.push(a);continue}c.push(k)}let k=d+f+g;if(0===k)return{markdown:a,fixedCount:0,details:[]};let l=[];return d>0&&l.push(`结构标签标题删除 ${d} 行(正文保留)`),f>0&&l.push(`段首标签前缀剥离 ${f} 处`),g>0&&l.push(`正文孤立小节标题行删除 ${g} 行`),{markdown:c.join("\n"),fixedCount:k,details:l}}let m=["顺序词叙述","编号步骤","有序列表","箭头链"];function n(a){let b=m.length;return m[(a%b+b)%b]}function o(a){let b=m.indexOf(a);return m[(b+1)%m.length]}let p={顺序词叙述:"用顺序词连贯叙述工序先后(衔接词按语境自然变化,不得与相邻小节复用同一连接词序列)",编号步骤:"用编号步骤分行列出工序(每行一个步骤,行首连续编号)",有序列表:"用要点列表分行列出工序(每行一个步骤,行首列表符)",箭头链:"用箭头链表达工序先后(工序元素按先后顺序用箭头连接)"};function q(a){let b=n(a);return`【工序顺序表达形式指定】本块的工序顺序表达使用「${b}」形式:${p[b]};本章相邻小节已分别指定其他形式,禁止通篇使用同一形式,不得用“施工流程:”等结构标签引导。`}function r(a){let b;if(!(0,e.Z1)(a))return;let c=function(a){let b=(a.match(/→|->|=>/gu)||[]).length,c=(a.match(/(?:^|\n)\s*(?:\d+[.、))]|[((]\d+[))]|[一二三四五六七八九十]{1,3}[、.]|第[一二三四五六七八九十]{1,3}步)/gu)||[]).length,d=(a.match(/(?:^|\n)\s*[-*•]\s+\S/gu)||[]).length;return{箭头链:b,编号步骤:c>=2?c:0,有序列表:d>=2?d:0,顺序词叙述:(a.match(/先[^。;!?\n]{0,24}(?:再|然后|随后|接着|最后|后)|依次|先后|按[^。;!?\n]{0,12}顺序|顺序施工|流水施工/gu)||[]).length}}(a),d=0;for(let a of m)c[a]>d&&(b=a,d=c[a]);return b}function s(a){return a.split(/^##\s+/gmu).slice(1).map(a=>{let b=a.indexOf("\n");return b<0?{title:a.trim(),body:""}:{title:a.slice(0,b).trim(),body:a.slice(b+1)}})}function t(a){let b,c=[];for(let d of a.split(/\r?\n/u)){let a=/^###\s+(.+?)\s*$/u.exec(d.trim());a?(b&&c.push({title:b.title,text:b.lines.join("\n")}),b={title:a[1],lines:[]}):b&&b.lines.push(d)}return b&&c.push({title:b.title,text:b.lines.join("\n")}),c}function u(a){let b=[];for(let c of s(a)){if(!e.V.test(c.title))continue;let a=t(c.body);if(a.length<2)continue;let d=a.map(a=>r(a.text));for(let e=1;e<a.length;e+=1){let f=d[e-1],g=d[e];if(f&&g&&f===g&&(b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`工序顺序表达形式模板化:「${c.title}」章相邻小节「${a[e-1].title}」与「${a[e].title}」同为【${g}】形式`,suggestion:`将「${a[e].title}」的工序顺序表达改写为其他形式(建议【${o(g)}】),内容与数值保持不变;分项块之间必须轮换形式,禁止通篇同一形式。`}),b.length>=6))return b}}return b}function v(a){let b=new Map;for(let c of s(a)){if(!e.V.test(c.title))continue;let a=t(c.body);if(a.length<2)continue;let d=a.map(a=>r(a.text));for(let e=1;e<a.length;e+=1){let f=d[e];if(!f||f!==d[e-1])continue;let g=`${c.title}\u0000${a[e].title}`;b.has(g)||b.set(g,{chapterTitle:c.title,blockTitle:a[e].title,currentForm:f,targetForm:o(f)})}}return[...b.values()].slice(0,12)}let w=/先([^。;\n]{2,200}?)[,,、]\s*最后([^。;\n,,]{2,60}?)([。;])/gu,x=/[,,、]\s*(?:再|接着|随后|然后|继而)\s*/u,y=/[。;:!?\n]/u,z=/[^\s→,。;:、!?“”‘’《》〈〉()\n]+(?:(?:→|->|=>)[^\s→,。;:、!?“”‘’《》〈〉()\n]+){1,7}/gu,A=["再","随后","然后","接着"];function B(a,b,c){let d;if("顺序词叙述"===b&&"编号步骤"===c?d=function(a){let b=!1,c=a.replace(w,(c,d,e,f,g)=>{let h=g;for(;h>0&&!y.test(a[h-1]);)h-=1;if(""!==a.slice(h,g).trim())return c;let i=d.split(x).concat(e.split(x)).map(a=>a.trim()).filter(Boolean);if(i.length<3)return c;b=!0;let j=i.map((a,b)=>`${b+1}. ${a}${b===i.length-1?f:";"}`);return`
|
|
@@ -96,7 +96,7 @@ ${a.content.replace(/\s+/gu," ").trim()}`}).join("\n\n---\n\n");return`请从以
|
|
|
96
96
|
|
|
97
97
|
${b}
|
|
98
98
|
|
|
99
|
-
返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,v),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});return(0,g.Te)(a.signal),function(a,b){if(!a)return;let c=new Set(b.map(a=>a.filePath)),d=new Map;for(let a of b){let b=e.basename(a.filePath);d.has(b)||d.set(b,a.filePath)}let f=a=>{if("string"==typeof a&&a)return c.has(a)?a:d.get(e.basename(a))},g=(a,b)=>(Array.isArray(a)?[...new Set(a.map(f).filter(a=>!!a))]:[]).slice(0,b),h=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",i=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(a.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:h(a.name,200),scope:h(a.scope,500),sourceFiles:g(a.sourceFiles,10),relatedItems:i(a.relatedItems,20)})),methods:(a.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:h(a.name,200),steps:i(a.steps,12),applicableWorks:i(a.applicableWorks,10),sourceFiles:g(a.sourceFiles,10)})),resources:(a.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:h(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:h(a.spec,200),quantity:h(a.quantity,50),unit:h(a.unit,20),sourceFiles:g(a.sourceFiles,5)})),schedule:(a.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:h(a.milestone,200),duration:h(a.duration,100),startDate:h(a.startDate,50),endDate:h(a.endDate,50),sourceFiles:g(a.sourceFiles,5)})),standards:(a.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:h(a.code,100),description:h(a.description,300),sourceFiles:g(a.sourceFiles,5)})),risks:(a.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:h(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:h(a.mitigation,500),sourceFiles:g(a.sourceFiles,5)})),requirements:(a.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:h(a.category,100),detail:h(a.detail,500),sourceFiles:g(a.sourceFiles,5)})),siteConditions:(a.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:h(a.condition,300),impact:h(a.impact,500),sourceFiles:g(a.sourceFiles,5)})),addendumChanges:(a.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:h(a.originalPath,300),original:h(a.original,300),revised:h(a.revised,500),sourceFile:f(a.sourceFile)||""})),gaps:i(a.gaps,20),generatedAt:Date.now()}}(h,d)}async function y(b=[]){let c=Object.keys(l),d=(await (0,g.l$)(c,async c=>{try{let a=await x(c,b);if(a&&n(a)>0)return a;w.push(`${l[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;w.push(`${l[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:(0,j.z)().projectGraphDomainConcurrency||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 y(),d=q(b,u);if(d.ok&&b||b&&n(b)>0)return p(a.projectRoot,c,b),{graph:b,stage:r(b)};let e=await y([...d.reasons,...w]);if(e&&n(e)>0)return p(a.projectRoot,c,e),{graph:e,stage:r(e)};return{stage:s([...d.reasons,...w])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:s([b instanceof Error?b.message:String(b),...w])}}}function u(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:()=>m,Kg:()=>F,My:()=>B,SP:()=>D,av:()=>n,c_:()=>y,detectPromptRuleConflicts:()=>G,eB:()=>t,el:()=>z,k2:()=>C,kw:()=>q,tQ:()=>p});var d=c(78217),e=c(70933),f=c(95734),g=c(70208),h=c(40299),i=c(54185),j=c(38115),k=c(31129),l=c(36366);function m(a){return a.replace(/(.*?)(.{2,4})\2$/u,"$1$2")}function n(a,b){let c=`${a} ${b}`,d=[/项目主要施工内容/u.test(c)?"每个施工工作包(#### 工作包名)必须逐包覆盖三方面要素:①作业对象与工程量(本项目部位、规模、系统边界,工程量数值与工程量清单汇总值一致)、②工序顺序(先后清晰,至少 1 处不少于 4 个环节的工序顺序表达)、③施工方法(工具机具、工艺参数、验收闭环);只写流程不写概况、或只列方法不写流程的工作包会被退回重写;每个专业工程单独一个小节,不得把所有专业工程合并;不得以表格代替叙述(正文表格须来自系统表格计划,不得自设),严禁出现“分部小计/本页小计/合计/按实/暂估/综合单价/措施项目费/规费/税金”等清单计价表内部口径词(“措施项目”作为专业工程类别名称可用,不得与“清单/计价/费”连用)。":"",/劳动力/u.test(a)&&/资源配置/u.test(b)?"本节是劳动力章内的资源配置计划:只写劳动力资源,不得写机械设备、材料物资(由物资/机械章承担)——必须展开①工种结构与人数(钢筋工/木工/瓦工/普工等各工种人数,来自绑定资料,无资料时按本项目工程量与总工期推导并写明推导依据)②分阶段劳动力投入计划(施工准备/主体/收尾各阶段进退场人数与班组数,可用表格)③作业面/施工段配员与班组划分④劳动力来源、组织与工资保障措施。每个数值必须可溯源(资料事实或推导说明),禁止只写“合理配置劳动力”“满足施工需要”等空泛表述。":"",/工程特点|施工条件|重难点|难点/u.test(c)?"必须写出本工程的重难点分析:每条重难点按“名称+形成原因(归因)+影响范围+专项措施+量化控制目标(数值+单位,如控制率%/偏差mm/频次每日1次)”展开,可附「重难点识别表」(表头:重难点|形成原因|影响范围|专项措施|责任岗位,数据行至少3条,每条必须写形成原因);禁止只写“本项目存在XX难点”而不写原因与对策。":"",/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/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%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似;每个句子必须携带至少一个信息载体(数值、部位、材料、工序、岗位、时限其一),无信息载体的空泛句不得出现(如“加强过程管控”应改为“施工员每日检查不少于2次,发现问题当日整改销项”)。"].join("\n")}function o(a){let b=(0,g.nz)(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)/u.test(b)}function p(a,b){let c=(0,g.nz)(a),d=(0,g.nz)(b);if(c.length<4||c.length>60||c===d||o(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||(0,i.cq)(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c)||(0,j.qL)(c)||(0,g.Fe)(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 q(a,b){let c=(0,g.nz)(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=(0,g.nz)(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function r(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function s(a,b=""){let c=r(b);return Array.from(new Set(a.map(g.nz).filter(a=>!(a.length<2||a.length>30||o(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function t(a){let b=a.replace(/\\n/gu,"\n").replace(/\r/gu,"");if(!/(?:除文字表述外)?可附下列图表|图表及格式要求附后|附下列图表|附表.{0,12}附后/u.test(b))return{titles:[],attachedAtEnd:!1};let c=[],d=new Set;for(let a of b.matchAll(/附表\s*([一二三四五六七八九十\d]{1,3})\s*[::]?\s*([^\n。;;::]{2,40}(?:表|图))/gu)){let b=(a[1]||"").trim(),e=(a[2]||"").replace(/\s+/gu," ").replace(/([\u3400-\u9fff\u3000-\u303f\uff00-\uffef])[ \u3000]+(?=[\u3400-\u9fff\u3000-\u303f\uff00-\uffef])/gu,"$1").trim();b&&e&&!(e.length<3)&&(d.has(b)||(d.add(b),c.push(`附表${b} ${e}`)))}return{titles:c,attachedAtEnd:c.length>=2}}function u(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function v(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 u(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function w(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 u(d[1]||""))b.add(a);return[...b].slice(0,40)}function x(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function y(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),e=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=A(b,"封面"),f=A(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:v(b),forbiddenPatterns:w(b)}}(c),f=[...new Set([...e.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)])],g=t(c),h=v(c),i=w(c),j=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&&!o(a)&&b.push(a)}return[...new Set(b)]}(c),k=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],l=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],m=[],n=function(a){let b=(0,d.py)(a);if(b.targetChars&&b.targetChars>0)return b.targetChars;let c=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!c)return;let e=Number(c[1]);if(Number.isFinite(e)&&!(e<=0))return Math.floor(e*(c[2]?1e4:1))}(c),p=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:x(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:x(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),q=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:x(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:x(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:x(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),r=[e.coverPolicy&&"unspecified"!==e.coverPolicy?`已识别封面规则:${"required"===e.coverPolicy?"要求生成":"禁止生成"}`:"",e.tocPolicy&&"unspecified"!==e.tocPolicy?`已识别目录规则:${"required"===e.tocPolicy?"要求生成":"禁止生成"}`:"",j.length?`已识别一级章节固定规则 ${j.length} 条`:"",m.length?`已识别禁用主体表达:${m.join("、")}`:"",e.forbiddenTerms.length?`已识别禁用词 ${e.forbiddenTerms.length} 个`:"",f.length?`已识别必需表格:${f.join("、")}`:"",g.titles.length?`已识别招标附表清单(文末附列):${g.titles.join("、")}`:"",h.length?`已识别必含关键词:${h.join("、")}`:"",i.length?`已识别禁止出现内容:${i.join("、")}`:"",n?`已识别目标字数要求:${n} 字`:"",q.length?`已抽取角色执行规则 ${q.length} 组`:""].filter(Boolean),s=[],u={},y=(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}),s.length<60&&s.push({rule:c,source:f,matchedText:d})};for(let a of(e.coverPolicy&&"unspecified"!==e.coverPolicy&&y("coverPolicy",`已识别封面规则:${e.coverPolicy}`,"封面",/封面|cover/u.source),e.tocPolicy&&"unspecified"!==e.tocPolicy&&y("tocPolicy",`已识别目录规则:${e.tocPolicy}`,"目录",/目录|toc/u.source),f))y("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of h)y("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of i)y("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of j)y("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return n&&y("minWords",`最低字数:${n}`,String(n),/\d{3,}\s*字/u.source),{...e,requiredTables:f,requiredKeywords:h,forbiddenPatterns:i,appendixTableTitles:g.titles.length>0?g.titles:void 0,appendixAttachedAtEnd:g.attachedAtEnd||void 0,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:j,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||j.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:m,backendTerms:k,commercialTerms:l,forbiddenTerms:[...new Set([...e.forbiddenTerms,...k,...l,...m])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:n,minChars:n,chapterRules:p,roleRules:q,executionSummary:r,ruleSources:Object.keys(u).length>0?u:void 0,extractionTrace:s.length>0?s:void 0}}function z(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("、")}。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
|
|
99
|
+
返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,v),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});return(0,g.Te)(a.signal),function(a,b){if(!a)return;let c=new Set(b.map(a=>a.filePath)),d=new Map;for(let a of b){let b=e.basename(a.filePath);d.has(b)||d.set(b,a.filePath)}let f=a=>{if("string"==typeof a&&a)return c.has(a)?a:d.get(e.basename(a))},g=(a,b)=>(Array.isArray(a)?[...new Set(a.map(f).filter(a=>!!a))]:[]).slice(0,b),h=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",i=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(a.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:h(a.name,200),scope:h(a.scope,500),sourceFiles:g(a.sourceFiles,10),relatedItems:i(a.relatedItems,20)})),methods:(a.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:h(a.name,200),steps:i(a.steps,12),applicableWorks:i(a.applicableWorks,10),sourceFiles:g(a.sourceFiles,10)})),resources:(a.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:h(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:h(a.spec,200),quantity:h(a.quantity,50),unit:h(a.unit,20),sourceFiles:g(a.sourceFiles,5)})),schedule:(a.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:h(a.milestone,200),duration:h(a.duration,100),startDate:h(a.startDate,50),endDate:h(a.endDate,50),sourceFiles:g(a.sourceFiles,5)})),standards:(a.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:h(a.code,100),description:h(a.description,300),sourceFiles:g(a.sourceFiles,5)})),risks:(a.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:h(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:h(a.mitigation,500),sourceFiles:g(a.sourceFiles,5)})),requirements:(a.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:h(a.category,100),detail:h(a.detail,500),sourceFiles:g(a.sourceFiles,5)})),siteConditions:(a.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:h(a.condition,300),impact:h(a.impact,500),sourceFiles:g(a.sourceFiles,5)})),addendumChanges:(a.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:h(a.originalPath,300),original:h(a.original,300),revised:h(a.revised,500),sourceFile:f(a.sourceFile)||""})),gaps:i(a.gaps,20),generatedAt:Date.now()}}(h,d)}async function y(b=[]){let c=Object.keys(l),d=(await (0,g.l$)(c,async c=>{try{let a=await x(c,b);if(a&&n(a)>0)return a;w.push(`${l[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;w.push(`${l[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:(0,j.z)().projectGraphDomainConcurrency||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 y(),d=q(b,u);if(d.ok&&b||b&&n(b)>0)return p(a.projectRoot,c,b),{graph:b,stage:r(b)};let e=await y([...d.reasons,...w]);if(e&&n(e)>0)return p(a.projectRoot,c,e),{graph:e,stage:r(e)};return{stage:s([...d.reasons,...w])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:s([b instanceof Error?b.message:String(b),...w])}}}function u(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:()=>m,Kg:()=>F,My:()=>B,SP:()=>D,av:()=>n,c_:()=>y,detectPromptRuleConflicts:()=>G,eB:()=>t,el:()=>z,k2:()=>C,kw:()=>q,tQ:()=>p});var d=c(78217),e=c(70933),f=c(95734),g=c(70208),h=c(40299),i=c(54185),j=c(38115),k=c(31129),l=c(36366);function m(a){return a.replace(/(.*?)(.{2,4})\2$/u,"$1$2")}function n(a,b){let c=`${a} ${b}`,d=[/项目主要施工内容/u.test(c)?"每个施工工作包(#### 工作包名)必须逐包覆盖三方面要素:①作业对象与工程量(本项目部位、规模、系统边界,工程量数值与工程量清单汇总值一致)、②工序顺序(先后清晰,至少 1 处不少于 4 个环节的工序顺序表达)、③施工方法(工具机具、工艺参数、验收闭环);只写流程不写概况、或只列方法不写流程的工作包会被退回重写;每个专业工程单独一个小节,不得把所有专业工程合并;不得以表格代替叙述(正文表格须来自系统表格计划,不得自设),严禁出现“分部小计/本页小计/合计/按实/暂估/综合单价/措施项目费/规费/税金”等清单计价表内部口径词(“措施项目”作为专业工程类别名称可用,不得与“清单/计价/费”连用)。":"",/劳动力/u.test(a)&&/资源配置/u.test(b)?"本节是劳动力章内的资源配置计划:只写劳动力资源,不得写机械设备、材料物资(由物资/机械章承担)——必须展开①工种结构与人数(钢筋工/木工/瓦工/普工等各工种人数,来自绑定资料,无资料时按本项目工程量与总工期推导并写明推导依据)②分阶段劳动力投入计划(施工准备/主体/收尾各阶段进退场人数与班组数,可用表格)③作业面/施工段配员与班组划分④劳动力来源、组织与工资保障措施。每个数值必须可溯源(资料事实或推导说明),禁止只写“合理配置劳动力”“满足施工需要”等空泛表述。":"",/工程特点|施工条件|重难点|难点/u.test(c)?"必须写出本工程的重难点分析:每条重难点按“名称+形成原因(归因)+影响范围+专项措施+量化控制目标(数值+单位,如控制率%/偏差mm/频次每日1次)”展开,可附「重难点识别表」(表头:重难点|形成原因|影响范围|专项措施|责任岗位,数据行至少3条,每条必须写形成原因);禁止只写“本项目存在XX难点”而不写原因与对策。":"",/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/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%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似;每个句子必须携带至少一个信息载体(数值、部位、材料、工序、岗位、时限其一),无信息载体的空泛句不得出现(如“加强过程管控”应改为“施工员每日检查不少于2次,发现问题当日整改销项”)。"].join("\n")}function o(a){let b=(0,g.nz)(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)/u.test(b)}function p(a,b){let c=(0,g.nz)(a),d=(0,g.nz)(b);if(c.length<4||c.length>60||c===d||o(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||(0,i.cq)(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c)||(0,j.qL)(c)||(0,g.Fe)(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 q(a,b){let c=(0,g.nz)(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=(0,g.nz)(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function r(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function s(a,b=""){let c=r(b);return Array.from(new Set(a.map(g.nz).filter(a=>!(a.length<2||a.length>30||o(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function t(a){let b=a.replace(/\\n/gu,"\n").replace(/\r/gu,"");if(!/(?:除文字表述外)?可附下列图表|图表及格式要求附后|附下列图表|附表.{0,12}附后/u.test(b))return{titles:[],attachedAtEnd:!1};let c=[],d=new Set;for(let a of b.matchAll(/附表\s*([一二三四五六七八九十\d]{1,3})\s*[::]?\s*([^\n。;;::]{2,40}(?:表|图))/gu)){let b=(a[1]||"").trim(),e=(a[2]||"").replace(/\s+/gu," ").replace(/([\u3400-\u9fff\u3000-\u303f\uff00-\uffef])[ \u3000]+(?=[\u3400-\u9fff\u3000-\u303f\uff00-\uffef])/gu,"$1").trim();b&&e&&!(e.length<3)&&(d.has(b)||(d.add(b),c.push(`附表${b} ${e}`)))}return{titles:c,attachedAtEnd:c.length>=2}}function u(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function v(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 u(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function w(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 u(d[1]||""))b.add(a);return[...b].slice(0,40)}function x(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function y(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),e=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=A(b,"封面"),f=A(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:v(b),forbiddenPatterns:w(b)}}(c),f=[...new Set([...e.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)])],g=t(c),h=v(c),i=w(c),j=function(a){let b=[],c=(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u).map(a=>a.trim()).filter(Boolean),d=c.some(a=>/^\s*\d+\s*[.、.]\s*(?!\s*\d)/u.test(a));for(let a of c){if(d&&/^\s*\d+\s*[.、.]\s*\d+/u.test(a))continue;let c=a.replace(/^\s*(?:\d+(?:[.、.]\d+)*[.、.]?|[-*])\s*/u,"").trim();c.length>=2&&c.length<=80&&!o(c)&&b.push(c)}return[...new Set(b)]}(c),k=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],l=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],m=[],n=function(a){let b=(0,d.py)(a);if(b.targetChars&&b.targetChars>0)return b.targetChars;let c=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!c)return;let e=Number(c[1]);if(Number.isFinite(e)&&!(e<=0))return Math.floor(e*(c[2]?1e4:1))}(c),p=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:x(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:x(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),q=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:x(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:x(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:x(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),r=[e.coverPolicy&&"unspecified"!==e.coverPolicy?`已识别封面规则:${"required"===e.coverPolicy?"要求生成":"禁止生成"}`:"",e.tocPolicy&&"unspecified"!==e.tocPolicy?`已识别目录规则:${"required"===e.tocPolicy?"要求生成":"禁止生成"}`:"",j.length?`已识别一级章节固定规则 ${j.length} 条`:"",m.length?`已识别禁用主体表达:${m.join("、")}`:"",e.forbiddenTerms.length?`已识别禁用词 ${e.forbiddenTerms.length} 个`:"",f.length?`已识别必需表格:${f.join("、")}`:"",g.titles.length?`已识别招标附表清单(文末附列):${g.titles.join("、")}`:"",h.length?`已识别必含关键词:${h.join("、")}`:"",i.length?`已识别禁止出现内容:${i.join("、")}`:"",n?`已识别目标字数要求:${n} 字`:"",q.length?`已抽取角色执行规则 ${q.length} 组`:""].filter(Boolean),s=[],u={},y=(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}),s.length<60&&s.push({rule:c,source:f,matchedText:d})};for(let a of(e.coverPolicy&&"unspecified"!==e.coverPolicy&&y("coverPolicy",`已识别封面规则:${e.coverPolicy}`,"封面",/封面|cover/u.source),e.tocPolicy&&"unspecified"!==e.tocPolicy&&y("tocPolicy",`已识别目录规则:${e.tocPolicy}`,"目录",/目录|toc/u.source),f))y("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of h)y("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of i)y("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of j)y("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return n&&y("minWords",`最低字数:${n}`,String(n),/\d{3,}\s*字/u.source),{...e,requiredTables:f,requiredKeywords:h,forbiddenPatterns:i,appendixTableTitles:g.titles.length>0?g.titles:void 0,appendixAttachedAtEnd:g.attachedAtEnd||void 0,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:j,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||j.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:m,backendTerms:k,commercialTerms:l,forbiddenTerms:[...new Set([...e.forbiddenTerms,...k,...l,...m])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:n,minChars:n,chapterRules:p,roleRules:q,executionSummary:r,ruleSources:Object.keys(u).length>0?u:void 0,extractionTrace:s.length>0?s:void 0}}function z(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("、")}。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
|
|
100
100
|
${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`}function A(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 B(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(r(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=s([...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 s(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=>q(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 C(a=[],b){let c=[];for(let d of a){let a=m((0,g.nz)(d));!(!a||p(a,b))&&(c.some(b=>q(b,a))||c.push(a))}return c}async function D(a){let b,c=C(a.lockedSections||[],a.chapter.title),d=(0,e.ks)((0,e.QO)(a.chapter,a.evidence),{maxChars:(0,e.Pc)(a.targetWords,5e3,12e3),diagnostics:a.diagnostics}),i=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||""}
|
|
101
101
|
${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,c.length),j=Math.max(i,Math.min(7,a.targetWords>=8e3?7:6)),k=0===a.chapterIndex||/编制说明|工程概况|项目概况/u.test(a.chapter.title),n=async()=>{let b=await (0,f.bb)([(0,h.y4)("你是专业文档结构规划专家。"),"只根据用户提示词、章节标题和真实绑定资料规划本章二级小节。","施工组织、技术措施、资源配置、质量、安全、工期、材料、设备、劳动力、危大工程等核心章节必须拆成足够的专业工作面,不得只输出两个泛化小节。","危大工程判定、危险性分级、专家论证要求等危大内容只允许落位在危大工程专项章节或基坑支护相关小节,其他章节不得规划危大清单/危大判定类小节,避免分级结论散落多处产生口径矛盾;危大清单表格只列资料参数确认达到判定阈值的类别,不得列入正文声明“本工程无/未涉及”的类别,防止清单与排除声明自相矛盾。","小节标题必须直接属于本章主题域:例如“人材机保障/资源配置”章只允许劳动力、材料、机械设备、周转类标题;不得规划本章主题域之外的内容小节。",c.length?`本章锁定二级小节(提示词强制要求/模板或 OUTLINE 已提供,必须按此顺序置于小节清单最前,不得删除、改名或重排):${c.join("、")}`:"",k?"本章是全文第一章:若规划出“编制说明与工程概况”类小节,必须置于小节清单第一位,不得排在任何其他小节之后。":"",a.diversity?.directive||"","只返回 JSON。"].filter(Boolean).join("\n"),[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!p(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
|
|
102
102
|
${a.projectContext}`:"",a.projectGraphSummary?`本项目专业工程与资源图谱:
|