@customize-agent/server 4.55.17 → 4.55.18
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 +1 -1
- package/.next/server/chunks/3145.js +4 -4
- 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 +28 -28
- package/.next/static/{FjhiWw2QL_GzJobgS-Y3g → VWdBJBFzhYY3wIU_sTUae}/_buildManifest.js +1 -1
- package/.next/static/chunks/{289-35ac595388bbd018.js → 289-12dfcb3abec1c4b4.js} +1 -1
- package/.next/static/chunks/563-2b116a2500a97dba.js +1 -0
- package/.next/static/chunks/788-961761f5858f9189.js +1 -0
- package/.next/static/chunks/pages/documents-8f11998e3b73d6fa.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-7b78e962e432d199.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-7535b873ab505397.js +1 -0
- package/.next/static/chunks/pages/prompt-2c242e541f2e77a9.js +1 -0
- package/.next/static/chunks/pages/system/logs-c5a8920c6506a7e8.js +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/563-b12f299d34bb9e44.js +0 -1
- package/.next/static/chunks/788-3afeb069ed706ac0.js +0 -1
- package/.next/static/chunks/pages/documents-2316c4fa9582b510.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-8e25066889a85834.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-d0d0e0716e9d705b.js +0 -1
- package/.next/static/chunks/pages/prompt-5e1fb81efc656866.js +0 -1
- package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +0 -1
- /package/.next/static/{FjhiWw2QL_GzJobgS-Y3g → VWdBJBFzhYY3wIU_sTUae}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
VWdBJBFzhYY3wIU_sTUae
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/VWdBJBFzhYY3wIU_sTUae/_buildManifest.js",
|
|
9
|
+
"static/VWdBJBFzhYY3wIU_sTUae/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [],
|
|
12
12
|
"rootMainFilesTree": {},
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"static/chunks/717-743b697a417dd5ee.js",
|
|
40
40
|
"static/chunks/883-506cbca959974997.js",
|
|
41
41
|
"static/chunks/665-88e20299084b9e73.js",
|
|
42
|
-
"static/chunks/563-
|
|
42
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
43
43
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
44
|
-
"static/chunks/289-
|
|
44
|
+
"static/chunks/289-12dfcb3abec1c4b4.js",
|
|
45
45
|
"static/chunks/994-241f87efc61005b8.js",
|
|
46
46
|
"static/chunks/pages/asset-library-a1047694e888e655.js"
|
|
47
47
|
],
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"static/chunks/883-506cbca959974997.js",
|
|
54
54
|
"static/chunks/665-88e20299084b9e73.js",
|
|
55
55
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
56
|
-
"static/chunks/563-
|
|
56
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
57
57
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
58
|
-
"static/chunks/289-
|
|
58
|
+
"static/chunks/289-12dfcb3abec1c4b4.js",
|
|
59
59
|
"static/chunks/787-c18af810af3433f6.js",
|
|
60
60
|
"static/chunks/195-2c0168eacab722d2.js",
|
|
61
61
|
"static/chunks/455-e1b41ac4946d2b6f.js",
|
|
@@ -69,14 +69,14 @@
|
|
|
69
69
|
"static/chunks/883-506cbca959974997.js",
|
|
70
70
|
"static/chunks/665-88e20299084b9e73.js",
|
|
71
71
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
72
|
-
"static/chunks/563-
|
|
72
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
73
73
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
74
74
|
"static/chunks/787-c18af810af3433f6.js",
|
|
75
75
|
"static/chunks/195-2c0168eacab722d2.js",
|
|
76
76
|
"static/chunks/455-e1b41ac4946d2b6f.js",
|
|
77
77
|
"static/chunks/506-93f730bc149d0dce.js",
|
|
78
78
|
"static/chunks/760-f8bb8e969c5e0d57.js",
|
|
79
|
-
"static/chunks/pages/documents-
|
|
79
|
+
"static/chunks/pages/documents-8f11998e3b73d6fa.js"
|
|
80
80
|
],
|
|
81
81
|
"/guide": [
|
|
82
82
|
"static/chunks/webpack-4224e970a97a4a86.js",
|
|
@@ -102,9 +102,9 @@
|
|
|
102
102
|
"static/chunks/883-506cbca959974997.js",
|
|
103
103
|
"static/chunks/665-88e20299084b9e73.js",
|
|
104
104
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
105
|
-
"static/chunks/563-
|
|
105
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
106
106
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
107
|
-
"static/chunks/289-
|
|
107
|
+
"static/chunks/289-12dfcb3abec1c4b4.js",
|
|
108
108
|
"static/chunks/787-c18af810af3433f6.js",
|
|
109
109
|
"static/chunks/506-93f730bc149d0dce.js",
|
|
110
110
|
"static/chunks/850-0f48354694fc6b3e.js",
|
|
@@ -119,11 +119,11 @@
|
|
|
119
119
|
"static/chunks/883-506cbca959974997.js",
|
|
120
120
|
"static/chunks/665-88e20299084b9e73.js",
|
|
121
121
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
122
|
-
"static/chunks/563-
|
|
122
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
123
123
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
124
|
-
"static/chunks/289-
|
|
124
|
+
"static/chunks/289-12dfcb3abec1c4b4.js",
|
|
125
125
|
"static/css/ad5a592c79d1448b.css",
|
|
126
|
-
"static/chunks/pages/knowledge/files-
|
|
126
|
+
"static/chunks/pages/knowledge/files-7b78e962e432d199.js"
|
|
127
127
|
],
|
|
128
128
|
"/knowledge/manage": [
|
|
129
129
|
"static/chunks/webpack-4224e970a97a4a86.js",
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
"static/chunks/665-88e20299084b9e73.js",
|
|
135
135
|
"static/chunks/787-c18af810af3433f6.js",
|
|
136
136
|
"static/chunks/506-93f730bc149d0dce.js",
|
|
137
|
-
"static/chunks/788-
|
|
138
|
-
"static/chunks/pages/knowledge/manage-
|
|
137
|
+
"static/chunks/788-961761f5858f9189.js",
|
|
138
|
+
"static/chunks/pages/knowledge/manage-7535b873ab505397.js"
|
|
139
139
|
],
|
|
140
140
|
"/models": [
|
|
141
141
|
"static/chunks/webpack-4224e970a97a4a86.js",
|
|
@@ -164,10 +164,10 @@
|
|
|
164
164
|
"static/chunks/717-743b697a417dd5ee.js",
|
|
165
165
|
"static/chunks/883-506cbca959974997.js",
|
|
166
166
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
167
|
-
"static/chunks/563-
|
|
167
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
168
168
|
"static/chunks/195-2c0168eacab722d2.js",
|
|
169
169
|
"static/chunks/81-c3a7f04d96ea3f7d.js",
|
|
170
|
-
"static/chunks/pages/prompt-
|
|
170
|
+
"static/chunks/pages/prompt-2c242e541f2e77a9.js"
|
|
171
171
|
],
|
|
172
172
|
"/settings": [
|
|
173
173
|
"static/chunks/webpack-4224e970a97a4a86.js",
|
|
@@ -183,11 +183,11 @@
|
|
|
183
183
|
"static/chunks/883-506cbca959974997.js",
|
|
184
184
|
"static/chunks/665-88e20299084b9e73.js",
|
|
185
185
|
"static/chunks/44-d3545eedd5c75ef1.js",
|
|
186
|
-
"static/chunks/563-
|
|
186
|
+
"static/chunks/563-2b116a2500a97dba.js",
|
|
187
187
|
"static/chunks/7-20bcc985742a9ae1.js",
|
|
188
|
-
"static/chunks/289-
|
|
188
|
+
"static/chunks/289-12dfcb3abec1c4b4.js",
|
|
189
189
|
"static/chunks/195-2c0168eacab722d2.js",
|
|
190
|
-
"static/chunks/pages/system/logs-
|
|
190
|
+
"static/chunks/pages/system/logs-c5a8920c6506a7e8.js"
|
|
191
191
|
]
|
|
192
192
|
},
|
|
193
193
|
"ampFirstPages": []
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "d8287bf8e01f35a3c7ebdf19b3464df8",
|
|
7
|
+
"previewModeSigningKey": "5f830ef118bf4c8a7c230e78e4209ac837d96a9a7860be17f67f1e1ccf845339",
|
|
8
|
+
"previewModeEncryptionKey": "1d27173ebfe2c2437ceda6cec0ce1970280c466e195bdb2c76ce0f7ebf9d6224"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -114,7 +114,7 @@ ${c.map(a=>`- ${a}`).join("\n")}
|
|
|
114
114
|
历史撞名对照(本次 ↔ 历史文档):
|
|
115
115
|
${a.collisions.map(a=>`「${a.title}」↔「${a.collidedWith}」`).join("\n")}
|
|
116
116
|
|
|
117
|
-
JSON 格式:{"renames":{"原标题":"新标题"}}(只包含需要改名的标题)`,{maxTokens:600,temperature:l.TD,signal:a.signal,diagnostics:a.diagnostics});b=e?.renames&&"object"==typeof e.renames?e.renames:{}}catch(b){return console.warn(`[plan] 撞名局部改名调用失败(保留原名):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),{sections:c,renamed:0}}let e=0;for(let[f,h]of Object.entries(b)){let b=(0,j.JG)(f);if(!b||!d.some(a=>(0,j.JG)(a)===b))continue;let i=c.findIndex(a=>(0,j.JG)(a)===b);if(i<0)continue;let l=(0,g.nz)(String(h||""));!(!l||l.length>24||(0,j.qL)(l)||p(l,a.chapter.title)||c.some((a,b)=>b!==i&&(0,k.gJ)(a,l)))&&(a.overlapCheck&&a.overlapCheck([l]).length>0||(c[i]=l,e+=1))}return{sections:c,renamed:e}}function F(a){let b=y({promptTexts:a}),c=B(a).filter(a=>a.requiredSections.length>0).map(a=>`第${(a.chapterIndex??0)+1}章${a.chapterTitle?`(${a.chapterTitle})`:""}强制小节(按序锁定):${a.requiredSections.slice().sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title).join("、")}`);return{recognized:b.executionSummary.length>0||c.length>0,summary:[...b.executionSummary,...c],requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}function G(a){let b=[],c=a.map(a=>({prompt:a,rules:y({promptTexts:a.content})})).filter(a=>a.rules.executionSummary.length>0);if(c.length<2)return b;for(let a=0;a<c.length;a++)for(let d=a+1;d<c.length;d++){let e=c[a],f=c[d],g=`${e.prompt.name}(${e.prompt.roleId})`,h=`${f.prompt.name}(${f.prompt.roleId})`,i=[];for(let a of e.rules.requiredKeywords||[])for(let b of[...f.rules.forbiddenTerms||[],...f.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${g})但被禁止(${h}:${b})`);for(let a of f.rules.requiredKeywords||[])for(let b of[...e.rules.forbiddenTerms||[],...e.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${h})但被禁止(${g}:${b})`);for(let a of[...new Set(i)].slice(0,4))b.push({level:"warning",message:a});let j=e.rules.exactHeadings||[],k=f.rules.exactHeadings||[];if(j.length>0&&k.length>0){let a=new Set(k),c=new Set(j),d=[...new Set([...j.filter(b=>!a.has(b)),...k.filter(a=>!c.has(a))])];d.length>0&&b.push({level:"warning",message:`固定一级章节列表不一致:${g} 要求 ${j.length} 章,${h} 要求 ${k.length} 章(差异:${d.slice(0,3).join("、")})。生成时将合并去重。`})}for(let a of["coverPolicy","tocPolicy"]){let c=e.rules[a],d=f.rules[a];c&&d&&"unspecified"!==c&&"unspecified"!==d&&c!==d&&b.push({level:"warning",message:`${"coverPolicy"===a?"封面":"目录"}策略冲突:${g} 要求「${"required"===c?"生成":"禁止"}」,${h} 要求「${"required"===d?"生成":"禁止"}」。生成时以禁止优先。`})}e.rules.minWords&&f.rules.minWords&&e.rules.minWords!==f.rules.minWords&&b.push({level:"warning",message:`最低字数要求不一致:${g} ${e.rules.minWords} 字 vs ${h} ${f.rules.minWords} 字。生成时将取最大值 ${Math.max(e.rules.minWords,f.rules.minWords)} 字。`})}return b}},78217:(a,b,c)=>{function d(a,b){return Math.ceil(e(a)/f(b))}function e(a){return a.replace(/<[^>]+>/gu,"").replace(/\s+/gu,"").length}function f(a){let b=Number(String(a&&"typography"in a&&a.typography?.bodySize||"").replace(/[^\d.]/gu,""))||14,c=Number(String(a&&"typography"in a&&a.typography?.lineHeight||"").replace(/[^\d.]/gu,""))||22;return b>=14&&c>=22?900:1050}function g(a){let b=a.trim();if(/^\d+(?:\.\d+)?$/u.test(b))return Number(b);let c={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if("十"===b)return 10;let d=/^([一二两三四五六七八九])?十([一二三四五六七八九])?$/u.exec(b);if(d)return(d[1]?c[d[1]]:1)*10+(d[2]?c[d[2]]:0)}function h(a="",b=""){let c=`${a}${b}`;return/不少于|至少|不低于|以上|起码/u.test(c)?"minimum":/约|大概|左右|大约|约为|附近/u.test(c)?"approximate":"exact"}function i(a){let b=a.replace(/\s+/gu," "),c=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(?:页|頁)\s*(以上|左右|以内|以下)?/gu)],d=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(万)?\s*(?:字|字符)\s*(以上|左右|以内|以下)?/gu)],e=c.map(a=>{let b=g(a[2]||"");return Number.isFinite(b)?{value:b,mode:h(a[1],a[3])}:void 0}).filter(a=>!!a).at(-1),f=d.map(a=>{let b=g(a[2]||"");return b?{value:Math.round(b*(a[3]?1e4:1)),mode:h(a[1],a[4])}:void 0}).filter(a=>!!a).at(-1);return{targetPages:e?.value,pageMode:e?.mode,targetChars:f?.value,charMode:f?.mode}}function j(a){if(!a)return a;let b="全文|正文|成文|总字数|篇幅|投标文件|施工组织设计|技术标",c="不得少于|不应少于|不少于|不低于|不得超过|不超过|至少|要求|需要|达到|控制在|约为|约",d="(?:\\d+(?:\\.\\d+)?|[一二两三四五六七八九十百]{1,6})\\s*万?\\s*(?:字|字符)(?:以上|左右|以内|以下)?(?!的)",e=RegExp(`^[ \\t]*(?:\\d+[.、]\\s*)?(?:${b}){0,2}[ \\t]*(?:${c})?[ \\t]*${d}[。;;::]?[ \\t]*$\\n?`,"gmu"),f=RegExp(`(?:${b})[^。;;,,、!??!\\n]{0,12}?(?:${c})?\\s*${d}`,"gu"),g=a.replace(e,"").replace(f,"");return g===a?a:g.replace(/(^|\n)[ \t]*(?:\d+[.、]\s*)?[。;;,,、!??!]+[ \t]*/gu,"$1").replace(/[,,、]{2,}/gu,",").replace(/[,,、][ \t]*(?=[。;;!??!])/gu,"").replace(/([。;;!??!])[ \t]*[,,、]+/gu,"$1").replace(/\n{3,}/gu,"\n\n")}c.d(b,{Cv:()=>d,K1:()=>m,KC:()=>j,KZ:()=>s,PE:()=>o,V7:()=>e,_P:()=>g,py:()=>i,q6:()=>f,tF:()=>n,ty:()=>p,yJ:()=>q});let k={detailed:1.3,standard:1,brief:.75};function l(a,b,c,d){let e=Math.max(0,Math.round(b)),f=new Map;if(0===a.length)return f;let g=a.map(a=>Math.max(1,(a.sections||[]).filter(Boolean).length)*k[function(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?"detailed":/概况|结语|附录/u.test(b)?"brief":"standard"}(a)]),h=a.map(a=>Math.max(800,Math.round(c(a)),Math.round(d?.(a)||0))),i=new Map;for(let b=0;b<=a.length;b+=1){let b=a.map((a,b)=>b).filter(a=>!i.has(a));if(0===b.length)break;let c=e-[...i.values()].reduce((a,b)=>a+b,0),d=b.reduce((a,b)=>a+g[b],0)||b.length,j=b.find(a=>c*g[a]/d<h[a]);if(void 0===j){let h=0;for(let[b,c]of i)f.set(a[b].id,c),h+=c;return b.forEach((i,j)=>{let k=j===b.length-1?Math.max(1,e-h):Math.max(1,Math.round(c*g[i]/d));f.set(a[i].id,k),h+=k}),f}i.set(j,h[j])}let j=h.reduce((a,b)=>a+b,0)||a.length;console.error(`[budget] 篇幅预算不足:目标 ${e} 字不足以覆盖 ${a.length} 章最低预算(下限合计 ${j} 字),按下限比例压缩分配`);let l=0;return a.forEach((b,c)=>{let d=c===a.length-1?Math.max(1,e-l):Math.max(1,Math.round(e*h[c]/j));f.set(b.id,d),l+=d}),f}function m(a){let{chapters:b,targetChars:c,floorOf:d,feasibilityFloorOf:e,currentTargets:f}=a,g=Math.max(0,Math.round(c)),h=b.map(a=>Math.max(0,Math.round(e(a)))),i=b.reduce((a,b,c)=>a+Math.max(800,Math.round(d(b)),h[c]),0),j=i>g;j&&console.error(`[budget] 章预算可行性校准:最低密度预算合计 ${i} 字超出全文目标 ${g} 字,按下限比例压缩(容量密度需求与目标字数冲突,显式暴露不静默)`);let k=l(b,g,d,a=>e(a)),m=[...k.values()].reduce((a,b)=>a+b,0);if(Math.abs(m-g)>Math.max(b.length,Math.floor(.02*g)))throw Error(`章预算可行性校准违约:Σ章预算 ${m} 与目标 ${g} 偏差超出容差(算法回归防御)`);let n=f?b.map(a=>({id:a.id,title:a.title,from:f.get(a.id)||0,to:k.get(a.id)||0})).filter(a=>a.from!==a.to):[];return{chapterTargets:k,adjustments:n,compressed:j}}function n(a){let b,c=a.template.generationSettings||a.template.exportSettings,d=f(a.template.exportSettings||a.template.generationSettings),e=i(a.requirement||""),g=i(a.promptTexts||""),h=e.targetChars||e.targetPages?e:g,j=!!(h.targetChars||h.targetPages),k=j?void 0:c?.targetPages?.target||c?.targetPages?.min,m=h.targetPages?h.targetPages*d:void 0,n=h.targetPages||k,o=j?"explicit":k?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",p=j?Math.max(h.targetChars||0,m||0)||void 0:Math.max((k?k*d:void 0)||0)||void 0,q=h.pageMode||"exact",r=h.charMode||q,s=j&&"approximate"===r,t=j&&"minimum"===r,u=j?n?Math.floor(n*(t?1:.9)):void 0:c?.targetPages?.min||(n?Math.floor(.95*n):void 0),v=j&&n&&!t?Math.ceil(n*(s?1.15:1.08)):c?.targetPages?.max,w=p?Math.floor(p*(t?1:.9)):u?u*d:void 0,x=p&&!t?Math.ceil(p*(s?1.15:1.08)):v?v*d:void 0,y=a.chapters.length>0?a.chapters:a.template.chapters,z=b=>Math.max(a.spec?.chapterRules.find(a=>a.id===b.id||a.title===b.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0);if(p){let a=[...(b=l(y,p,z)).values()].reduce((a,b)=>a+b,0);if(Math.abs(a-p)>Math.max(y.length,Math.floor(.02*p)))throw Error(`篇幅预算契约违约:Σ章预算 ${a} 与目标 ${p} 偏差超出容差(算法回归防御)`)}else b=new Map(y.map(a=>[a.id,Math.max(1200,z(a))]));let A=!!(j&&(t||"exact"===r)&&(p||w||0)>=4e4);return{targetPages:n,minPages:u,maxPages:v,targetChars:p,minChars:w,maxChars:x,charsPerPage:d,chapterTargets:b,source:o,mode:r,longformStrict:A}}function o(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function p(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars?f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.4*a.targetChars)?f.push({level:"error",message:`正文篇幅严重超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%,超过 40% 即阻断)`,suggestion:"按章节完成率定位超产章节,压缩重复段落与过度展开内容(保留全部事实与关键数值),使正文回到目标篇幅附近后重新验收。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.2*a.targetChars)?f.push({level:"warning",message:`正文篇幅明显超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%,超过 40% 将阻断)`,suggestion:"建议压缩重复段落与过度展开内容,使正文接近目标篇幅。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.15*a.targetChars)&&f.push({level:"warning",message:`正文篇幅超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%)`,suggestion:"建议压缩重复段落与过度展开内容,使正文接近目标篇幅。"}),a.minPages&&d<a.minPages&&f.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${d} 页,目标不少于 ${a.minPages} 页`,suggestion:"建议继续扩写正文,或根据实际导出版式调整目标页数。"}),a.maxPages&&d>a.maxPages&&f.push({level:"warning",message:`正文篇幅超过目标页数区间:预计约 ${d} 页,建议不超过 ${a.maxPages} 页`,suggestion:"建议压缩过度展开内容或调整目标页数。"}),f}function q(a,b){if(!a.targetChars||a.targetChars<=0)return;let c=e(b);if(!(c<=Math.ceil(1.2*a.targetChars)))return{currentChars:c,targetChars:a.targetChars,excessRatio:c/a.targetChars-1,aimChars:Math.ceil(1.1*a.targetChars)}}let r={parameter:100,boqRow:60,drawingFact:50,basicFact:30};function s(a){let b=Math.round(a.parameters*r.parameter+a.boqRows*r.boqRow+a.drawingFacts*r.drawingFact+a.basicFacts*r.basicFact),c=Math.max(0,Math.round(a.targetWords)),d=c-b,e=0===c||b>=.8*c,f=e?[]:[`资料可支撑篇幅下界约 ${b} 字,低于目标 ${c} 字的 ${Math.round(80)}% 红线,差额约 ${Math.round(d)} 字。`,`量化参数 ${a.parameters} 个(权重 ${r.parameter}/个)、清单行 ${a.boqRows} 行(${r.boqRow}/行)、图纸事实 ${a.drawingFacts} 条(${r.drawingFact}/条)、基础事实 ${a.basicFacts} 条(${r.basicFact}/条)。`,"补料方向(按缺口从大到小):① 补充工程量清单/ExceL 明细(清单行权重最高且最易补);② 补充施工图纸(DWG/PDF)以提供图纸事实;③ 补充招标文件技术条款与规范引用以增加量化参数;④ 核对资料包绑定是否覆盖项目全部资料。","若资料确实无法补足,请下调目标字数至资料可支撑水平,而不是产出篇幅注水、无依据的文档。"];return{supportableWords:b,targetWords:c,shortfall:d,sufficient:e,sources:{parameters:a.parameters,boqRows:a.boqRows,drawingFacts:a.drawingFacts,basicFacts:a.basicFacts},remediation:f}}},80439:(a,b,c)=>{function d(a){return a?({"knowledge-base":"知识库","document-readiness":"生成准备度检查","llm-json":"LLM 事实抽取"})[a]:void 0}function e(a,b={}){var c;let f={executionVersion:2,title:(c=a.type,a.roleId,({role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",llm_review:"LLM 审查优化",validation:"内容优化与质量校验",reference:"资料增强"})[c]),group:a.type,...a,...b};return{...f,roleName:f.roleName||d(f.roleId),subtitle:f.subtitle||f.roleName||d(f.roleId)}}function f(a,b){let c=a=>"chapter_generation"===a.type||/^agent-chapter-task-/u.test(a.roleId||"")?[a.type,a.roleId||"",a.promptId||"",a.subtitle||"",a.order??""].join("::"):[a.type,a.roleId||"",a.promptId||""].join("::"),d=c(b),e=a.findIndex(a=>c(a)===d);return e>=0?(a[e]={...b,order:a[e]?.order??b.order},e):(a.push(b),a.length-1)}function g(a,b){return`${a},耗时 ${Math.round((Date.now()-b)/1e3)} 秒`}c.d(b,{AQ:()=>g,X5:()=>e,fx:()=>f})},80572:(a,b,c)=>{let d;c.d(b,{z:()=>f});let e=["chapterConcurrency","sectionConcurrency","sectionGroupConcurrency","sectionGroupSize","sectionGroupTaskConcurrency","plannedBlockConcurrency","tableFixConcurrency","llmMaxConcurrency","writingTaskConcurrency","projectGraphDomainConcurrency","writingTaskMaxWords","blockEvidenceChars","chapterPoolChars","evidenceBudgetRatio","evidenceBudgetCeiling","evidenceCatalogMaxLines","factCoverageCap","factExtractionMaxChars","factExtractionMaxItems","outlineEvidenceChars","persistEvidenceMaxItems","persistEvidenceItemChars","repairEvidenceChars","capacityFeasibilityRecalibration","blueprintBlockQuantityCap","blueprintBlockMaterialCap","blueprintBlockSliceCap"];function f(){let a=process.env.DOCUMENT_TUNING_PROFILE;if(d&&d.raw===a)return d.parsed;let b={};if(a)try{let c=JSON.parse(a);for(let a of e){let d=c[a];if("number"==typeof d)b[a]=d;else if("string"==typeof d&&""!==d.trim()){let c=Number(d);Number.isFinite(c)&&(b[a]=c)}}}catch(a){console.warn(`[tuningProfile] DOCUMENT_TUNING_PROFILE 解析失败,按全默认处理:${String(a)}`)}return d={raw:a,parsed:b},b}},81892:(a,b,c)=>{c.d(b,{G0:()=>i,OA:()=>h,uQ:()=>g});var d=c(29055);let e="每条重点难点必须写成「难点事项 | 成因与风险来源 | 应对措施 | 责任岗位 | 检查频次 | 整改闭环要求」式条目,两个半项缺一不可:① **归因**:明确写出成因与风险来源——须用「成因」「风险来源」「风险源于」「致险因素」等字面表述,不得只描述现象;② **量化**:写出量化控制目标(数值+单位或频次,如「开挖深度不超过 3m」「每 200m 划分一段」「压实度不低于 95%」「巡检 1 次日」「导行通道宽度不小于 4m」);重难点以表格呈现时按行逐条判定(检测口径:归因表述 + 数值单位结构,双达标率需 ≥50%)",f=[{pattern:/概况|总体|理解|说明|编制/u,goal:"以项目资料已确认的事实卡片展开工程概况与总体理解,不得空泛概述",mustCover:["工程名称、建设地点、建设规模、计划工期、质量标准等资料已确认事实","现场条件与招标范围边界","编制依据与适用范围(按五类逐项列全:招标文件及补疑补遗、国家法律法规、国家/行业现行规范标准、地方法规规章、企业管理体系;地方法规规章必须结合工程所在地属地的现行地方性法规与政府规章,不得只写笼统一句话)","B5 专业工程清单:资料识别的专业工程逐个展开(不少于 5 个,每个专业工程写明作业对象与工程量、工序顺序、施工方法三方面要素,落到工程量与工艺参数)",`重点难点分析(本类章普遍承载该内容):${e}`]},{pattern:/主要施工内容/u,goal:"按专业工程展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工程量与工艺参数",mustCover:["资料识别的专业工程(不少于5个)","每个专业工程的作业对象与工程量/工序顺序/施工方法三方面要素","工程量、材料设备规格、检测验收与资料闭环"]},{pattern:/主要分部分项工程施工方案|主要施工方法/u,goal:"按分项工程方案展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工艺参数与工序顺序",mustCover:["资料明确的专业工程范围(逐项展开分项工程方案)","每个分项方案的作业对象与工程量/工序顺序/施工方法三方面要素","每个分项方案不少于4个工艺参数与至少1处3环节以上工序顺序表达","工艺参数来自绑定材料或行业通用规范值,不得编造"]},{pattern:/重点|难点/u,goal:"识别项目重点难点并给出针对性对策,每项落到责任岗位与验收节点",mustCover:["重点难点成因与影响范围","对应施工内容与专项措施","责任岗位、检查频次、整改闭环",e]},{pattern:/部署|总体|流水|顺序/u,goal:"明确施工部署逻辑、流水段划分与资源调配机制",mustCover:["施工区段与流水划分","各阶段施工顺序与穿插关系","资源动态调配机制"]},{pattern:/进度|工期/u,goal:"围绕总工期与关键节点展开进度保障",mustCover:["总进度计划与关键节点","周/日计划分解","进度偏差识别与纠偏措施"]},{pattern:/质量/u,goal:"覆盖材料验收、过程控制、隐蔽验收、整改复验的质量闭环",mustCover:["质量目标与验收依据","三检制度与样板引路","隐蔽工程验收与材料复试","见证取样送检、试块养护、分部分项报验等质量保障制度逐项落位","质量通病防治与闭环整改","保修与缺陷责任期承诺"]},{pattern:/安全|危大|风险/u,goal:"覆盖风险识别、危大工程专项方案、检查整改与应急响应",mustCover:["安全目标与量化控制指标(如杜绝重伤及以上事故、轻伤事故频率控制值、安全达标率),须以承诺句式明确写出","危险源辨识与风险分级","危大工程辨识清单逐项完整(按项目实际情况覆盖基坑支护与降水、模板支撑、脚手架、起重吊装、吊篮、拆除等适用项,逐项写明辨识依据,不得遗漏)","B6 危大分级参数—判定绑定(硬要求):每一类危大工程的判定必须写「本项目实际参数 + 判定阈值对照 + 结论」三要素(如「本项目基坑开挖深度 1.75m,对照《危险性较大的分部分项工程安全管理规定》开挖深度超过 3m 属危大工程的阈值,判定本工程基坑不属于危大工程」);**禁止只抄规范阈值**(如只写「开挖深度超过 3m 的沟槽土方开挖工程」而不给本项目实际深度);参数取自资料原文,不得编造","危大工程专项方案编制与审批程序","安全交底与隐患排查闭环","施工现场临时用电三级配电两级保护:总配电箱/分配电箱/开关箱三级配电,两级漏电保护(总箱与开关箱各一级,漏电动作电流与动作时间参数落位),TN-S 接零保护系统,漏电保护器每周试跳 1 次","B5 生产安全事故应急预案与应急演练(八部分结构:总则、组织机构及职责、风险分析与危险源辨识、应急物资设备与通讯保障、专项应急预案、应急响应、后期处置、培训演练):逐部分展开,演练频次量化(如每半年 1 次),物资储备清单化"]},{pattern:/资源|材料|设备|劳动力|人材机/u,goal:"说明资源配置依据、进场验收与保管调配",mustCover:["机械设备投入计划","分阶段劳动力计划","材料进场计划与验收"]},{pattern:/文明|绿色|环保|扬尘|噪声/u,goal:"覆盖扬尘噪声管控、四节一环保与智慧监测",mustCover:["扬尘治理六个百分百逐项落位(施工工地周边 100% 围挡、物料堆放 100% 覆盖、出入车辆 100% 冲洗、施工现场地面 100% 硬化、拆迁工地 100% 湿法作业、渣土车辆 100% 密闭运输;不涉及拆迁的写明豁免理由)","扬尘噪声分时段管控","监测预警与台账","绿色施工与四节一环保措施:绿色施工按《绿色施工评价标准》GB/T 50640 分阶段评价(每阶段不少于 1 次,评价记录归档)","B5 四节一环保量化指标:节水(非传统水源利用率/用水量控制)、节材(材料损耗率/废弃物回收率)、节地(土方平衡率)、节能(能耗指标)各至少 1 项带单位量化指标,附录八基准对照项逐项量化响应"]},{pattern:/应急|预案/u,goal:"覆盖应急组织、物资储备与专项预案",mustCover:["应急组织架构","应急物资储备","专项预案与演练计划"]},{pattern:/竣工|验收|移交|保修/u,goal:"覆盖竣工清理、验收移交与保修响应",mustCover:["竣工清理与垃圾外运","缺陷修补与复查销项","验收移交与保修响应"]},{pattern:/工资|劳务|实名/u,goal:"覆盖劳务实名制与农民工工资保障闭环",mustCover:["建筑工人实名制管理(实名登记率 100%、实名制管理平台考勤)","农民工工资专用账户与银行代发(专用账户开设、按月足额代发、工资保证金)","考勤与工资支付台账","工伤保险办理与参保信息管理(作业人员工伤保险按项目参保、参保信息纳入实名制管理、工伤事故申报处置流程)"]}];function g(a){return f.find(b=>b.pattern.test(a))}let h=["【结构完整性红线】有序列表编号必须从「1.」起连续、不得跳号或重号,小节内列表独立起编、不得继承父级编号;编号后必须紧跟实质内容(禁止孤立编号);禁止双重冒号「::」「;:」「。:」等行尾标点残留;禁止句子中途截断(行尾无终止标点)与整段重复行;每个小节必须有实质正文,禁止只写标题的空小节","【表格规范红线】每张表只允许一个表头行(禁止重复表头),表名必须独立成行(禁止混入表头首格);数据行不得留空单元格;禁止用「—/若干/约/待定/暂无/待补充」等占位或模糊表达代替具体数据(合计行的「—」与规格型号列「机具无型号」的「—」除外);合计行数值必须可由明细行相加推导;列数与表头一致;说明性内容必须用段落承载,禁止用表格单元格堆砌正文","【数据口径红线(宁缺毋假)】同一指标(劳动力总数、机械台数、工期阶段划分、班组人数等)全文档只允许一套口径,禁止在不同章节或表格中并列矛盾数值;禁止自行取平均值、保守值、众数等在多套口径中盲选统一;无法从资料锁定唯一数值时不得写具体数值(改用定性表述或显式标注待核),严禁编造数值或将候选值随手择一写入","【禁止资料堆砌伪段落】禁止以「本项目主要施工内容包括:X的Y量为Z……」「经识别,本项目工程量为:……」式清单罗列句充当正文段落;禁止把资料条目用顿号/分号首尾相接拼成伪句子;每段必须是连贯的施工描述(含施工对象、工序逻辑、工艺做法、参数落位),工程量清单类明细如需呈现应使用规范表格,不得用罗列句复制表格内容","【工期时序与分批口径红线】时间表述必须符合施工时序逻辑:前期准备动作(施工方案编制报审、图纸会审、交底、考察、封样、检测、培训演练、采购调查等)的完成时限必须落在施工准备阶段内,禁止出现「开工令下发后第 N 日内」且 N 达到或超过总工期的写法(等同于把前期动作排到竣工日);机械、设备、劳动力分批进场表述(首批/剩余/补充进场)各批次数量必须能合计推导为进场总数且与资源配置表同口径,禁止分批数量与总数互相矛盾"];function i(a){let b=(0,d.y)({template:{id:"runtime",name:a.templateName||"",outputTitle:"",description:"",category:"",chapters:a.chapters},chapters:a.chapters,requirement:a.requirement}),c=/施工组织设计|施工组织|施组|技术标/u.test(`${a.templateName||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`)||b.length>0,e=Object.values(a.factsModel?.canonical?.byKey||{}).map(a=>`${a.label}=${a.value}`),f=e.filter(a=>/建设规模|建筑面积|占地|用地面积|装配|层数|高度/u.test(a)).slice(0,8),i=["正文必须落到本项目资料已确认的事实,不得使用模板化空话或跨小节复制段落","措施类内容写成“责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项”闭环句式:同一自然段内三要素(责任岗位+检查频次+整改闭环)须同时出现,全文每 1500 字至少 1 段闭环句式;不得以固定句模复读,三要素分散融入叙述(相邻小节不得同句式开头,同一句式全文不得反复使用)","措施类段落必须落位完整五要素链——方案(专项施工方案/技术措施)、流程(施工工序/工艺流程)、责任岗位(项目经理/技术负责人/安全员等)、检查频次(每周/每日不少于 N 次)、验收整改闭环(检查验收/整改/复查/销项)——五个要素词面每 1500 字至少 1 段完整覆盖","【规范术语显性落位】凡涉及强制性管理制度的段落,小节标题与正文首句必须显性使用规范术语原词(如「建筑工人实名制管理」「农民工工资专用账户」「生产安全事故应急预案与应急演练」「危险性较大的分部分项工程」「扬尘污染防治措施」「绿色施工与四节一环保」「施工现场临时用电三级配电两级保护」),禁止只写近义改写(如把“实名制管理”写成“人员考勤登记”、把“应急预案”写成“处置办法”);评审按规范术语原词做语义匹配,术语不显性即判内容缺失","正文每 1000 字至少落位 6 处带单位量化工艺参数(mm/MPa/养护天数/间距/压实度等),施工流程与施工方法须有明确的工序顺序表达(相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每个分部分项方案至少 1 处 3 环节以上工序顺序表达",'专业工程类小节必须覆盖作业对象与工程量、工序顺序、施工方法三方面要素(必须融入连贯段落叙述,禁止以"施工概况/施工流程/施工方法"等结构标签充当标题或段落开头引导),小节标题用专业工程正式名称(如"拆除工程"),禁止使用"工作包"等后台概念命名','质量目标与创优目标必须使用招标文件原文的奖项名称逐字落位,禁止替换、降级或省略为其他奖项名称(如把招标文件指定奖项写成其他奖项);招标文件"确保/达到"类等级要求不得弱化为"争创/争取"',"B5 属地创优目标(属地适配项):招标文件未明确具体奖项时,正文必须提出不低于招标文件要求的属地创优目标(如“争创市级优质工程”“争创市级安全文明标准化工地”,市名须为工程所在地),并在质量与文明施工章节落位","B5 表格数据一致性(实测缺陷:合计行与阶段明细之和不符、班组人数多值并存):表格类内容(劳动力投入、材料配置、机械设备等)合计行数值必须与上方明细行数据一致、可由各行相加推导;各阶段人数与全项目峰值人数必须显式区分口径并保持一致(如写明“阶段高峰人数按阶段分别统计,合计行仅列全项目峰值口径”);同一班组人数在配置表与进退场表中必须同值,不得多值并存",...h,a.clarificationConstraint||""].filter(Boolean),j=a.chapters.map(b=>{let c=g(b.title),d=(a.projectGraph?.works||[]).filter(a=>a.name&&(b.title.includes(a.name.slice(0,2))||/概况|总体|施工内容|方案|施工/u.test(b.title))).slice(0,10),e=(a.projectGraph?.resources||[]).filter(a=>a.quantity&&/概况|资源|总体|施工内容|方案/u.test(b.title)).slice(0,12).map(a=>({itemCode:"",itemName:a.name,quantity:a.quantity,unit:a.unit}));return{chapterId:b.id,chapterTitle:b.title,writingGoal:c?.goal||"结合本章标题与项目资料事实展开专业内容,避免泛化叙述",mustCover:[...c?.mustCover||[],...(b.requiredFacts||[]).slice(0,6)],factDomains:[...b.requiredFacts||[],...d.map(a=>a.name)].slice(0,10),evidenceRefs:b.queries.slice(0,6).map(a=>({filePath:a,kind:"query",priority:"should"})),boqTargets:e,drawingTargets:[],gaps:[]}});return{documentType:c?"施工组织设计":"专业文档",globalWritingFocus:c?[...i,"招标硬性要求必须逐项明确响应:质量标准、计划工期、缺陷责任期与保修、安全文明目标、项目经理及组织机构;工期/质量/保修类承诺可在概况与质量章节落位,不得遗漏",...f.length?[`项目规模事实卡(口径裁决值,正文引用规模数据必须与之一致,不得混淆总占地与建筑总量口径):${f.join(";")}`]:[],...e.length?[`项目可信基础事实(写作时必须优先落位):${e.slice(0,10).join(";")}`]:[]]:i.slice(0,2),chapters:j}}},85441:(a,b,c)=>{c.d(b,{F:()=>u,P:()=>s});var d=c(76760),e=c(44533),f=c(92808);let g=["project_overview","requirement_document","structured_data","scope_description"],h=["project_overview","requirement_document","addendum","structured_data","budget_cost","design_specification","resource_recommendation","schedule_quality_safety","scope_description","technical_specification","risk_constraints"];function i(a){let b=[];for(let c of a)for(let a of c.relativePath.split(/[\\/]/gu))a&&b.push(a);return b}function j(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function k(a){return m(a).replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").replace(/^(?:延期到\d+(?:\.\d+)?[-_—–\s]*)+/u,"").trim()}function l(a){let b=new Set,c=[];for(let d of a)!d||b.has(d)||(b.add(d),c.push(d));return c}function m(a){return a.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"").trim()}function n(a){let b=new Set,c=[];for(let d of i(a)){let a=k(d);!(!/项目|任务|文档|合同|计划|方案|工程/iu.test(a)||a.length<6||b.has(a))&&(!j(a)||/\.\w+$/u.test(d))&&(b.add(a),c.push(a))}return c}function o(a,b){return 0===a.length?b:a.map(a=>m(a.fileName)).join("、")}function p(a,b,c){b.lastIndex=0;let d=new Set,e=[];for(let f of a.matchAll(b)){let a=(f[c]||"").trim();!a||d.has(a)||(d.add(a),e.push(a))}return b.lastIndex=0,e}function q(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function r(a){let b=q(a).split("/").filter(Boolean);return b.length>1?b[0]:void 0}function s(a,b){let c=(0,e.Yy)(a),m=function(a,b){let c=a.filter(a=>"error"!==a.status),d=new Set((b?.boundFilePaths||[]).map(q)),e=c.filter(a=>d.has(q(a.relativePath)));if(e.length>0){let a=[...new Set(e.map(a=>r(a.relativePath)).filter(Boolean))],b=1===a.length?a[0]:void 0;return{files:e,reason:b?`模板绑定文件定位到资料组:${b}`:"使用模板显式绑定文件作为资料范围",ambiguous:!1}}let f=(b?.requirement||"").trim();if(f){let a=new Map;for(let b of c){let c=r(b.relativePath);if(!c)continue;let d=function(a,b){let c=0;for(let d of a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,)+/u)){let a=d.trim();a.length>=2&&b.includes(a)&&(c+=1)}return c}(c,f);d>0&&a.set(c,(a.get(c)||0)+d)}let b=[...a.entries()].sort((a,b)=>b[1]-a[1])[0];if(b)return{files:c.filter(a=>r(a.relativePath)===b[0]),reason:`需求描述定位到资料组:${b[0]}`,ambiguous:!1}}let g=[...new Set(c.map(a=>r(a.relativePath)).filter(Boolean))];return 1===g.length?{files:c.filter(a=>r(a.relativePath)===g[0]),reason:`知识库单一资料组:${g[0]}`,ambiguous:!1}:{files:c,reason:g.length>1?`未指定资料组,检测到 ${g.length} 个资料组,已阻断生成避免跨项目污染`:"未检测到资料组,使用全部资料",ambiguous:g.length>1}}(c,b),s=m.files,t=function(){let a={};for(let b of h)a[b]=[];return a}(),u=new Map((b?.boundFileRoles||[]).map(a=>[q(a.filePath),a.roles]));for(let a of s){let b=q(a.relativePath),c=[...u.entries()].filter(([a])=>b.endsWith(a)||a.endsWith(b)).flatMap(([,a])=>a);for(let b of[...new Set([...function(a){let b=new Set((0,f.t0)(a,f.hW));return b.add("project_overview"),[...b]}(a.relativePath),...c])])t[b].push({filePath:a.relativePath,fileName:d.basename(a.relativePath),role:b,chunkCount:a.chunkCount})}let v=function(a){let b,c;for(let d of i(a)){let a=k(d);if(/项目|工程/iu.test(a)&&!(a.length<6)){if(/\.\w+$/u.test(d)){b||=a;continue}if(j(a)){c||=a.split(/--/u).filter(a=>/项目|工程/u.test(a)).sort((a,b)=>a.length-b.length)[0]||a;continue}return a}}return b||c||"当前知识库项目"}(s),w=function(a){for(let b of a){let a=b.relativePath.match(/\b\d{4}[A-Z]{2,}\d{4,}\b/u)?.[0];if(a)return a}}(s),x=function(a,b){let c=n(a),d=n(b),e=l(a.map(a=>a.relativePath).join("\n").match(/\b\d{4}[A-Z]{2,}\d{4,}\b/gu)||[]),f=l(a.map(a=>r(a.relativePath)).filter(Boolean)),g=[c.length>0,e.length>0,1===f.length];return{fingerprint:{projectNames:c,documentNos:e,fileGroups:f,confidence:g.filter(Boolean).length/g.length},contaminationCandidates:d.filter(a=>!c.includes(a))}}(s,c),y=function(a){let b=function(a){let b="";for(let c of a)b+=`${c.relativePath}
|
|
117
|
+
JSON 格式:{"renames":{"原标题":"新标题"}}(只包含需要改名的标题)`,{maxTokens:600,temperature:l.TD,signal:a.signal,diagnostics:a.diagnostics});b=e?.renames&&"object"==typeof e.renames?e.renames:{}}catch(b){return console.warn(`[plan] 撞名局部改名调用失败(保留原名):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),{sections:c,renamed:0}}let e=0;for(let[f,h]of Object.entries(b)){let b=(0,j.JG)(f);if(!b||!d.some(a=>(0,j.JG)(a)===b))continue;let i=c.findIndex(a=>(0,j.JG)(a)===b);if(i<0)continue;let l=(0,g.nz)(String(h||""));!(!l||l.length>24||(0,j.qL)(l)||p(l,a.chapter.title)||c.some((a,b)=>b!==i&&(0,k.gJ)(a,l)))&&(a.overlapCheck&&a.overlapCheck([l]).length>0||(c[i]=l,e+=1))}return{sections:c,renamed:e}}function F(a){let b=y({promptTexts:a}),c=B(a).filter(a=>a.requiredSections.length>0).map(a=>`第${(a.chapterIndex??0)+1}章${a.chapterTitle?`(${a.chapterTitle})`:""}强制小节(按序锁定):${a.requiredSections.slice().sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title).join("、")}`);return{recognized:b.executionSummary.length>0||c.length>0,summary:[...b.executionSummary,...c],requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}function G(a){let b=[],c=a.map(a=>({prompt:a,rules:y({promptTexts:a.content})})).filter(a=>a.rules.executionSummary.length>0);if(c.length<2)return b;for(let a=0;a<c.length;a++)for(let d=a+1;d<c.length;d++){let e=c[a],f=c[d],g=`${e.prompt.name}(${e.prompt.roleId})`,h=`${f.prompt.name}(${f.prompt.roleId})`,i=[];for(let a of e.rules.requiredKeywords||[])for(let b of[...f.rules.forbiddenTerms||[],...f.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${g})但被禁止(${h}:${b})`);for(let a of f.rules.requiredKeywords||[])for(let b of[...e.rules.forbiddenTerms||[],...e.rules.forbiddenPatterns||[]])(a.includes(b)||b.includes(a))&&i.push(`「${a}」被要求必含(${h})但被禁止(${g}:${b})`);for(let a of[...new Set(i)].slice(0,4))b.push({level:"warning",message:a});let j=e.rules.exactHeadings||[],k=f.rules.exactHeadings||[];if(j.length>0&&k.length>0){let a=new Set(k),c=new Set(j),d=[...new Set([...j.filter(b=>!a.has(b)),...k.filter(a=>!c.has(a))])];d.length>0&&b.push({level:"warning",message:`固定一级章节列表不一致:${g} 要求 ${j.length} 章,${h} 要求 ${k.length} 章(差异:${d.slice(0,3).join("、")})。生成时将合并去重。`})}for(let a of["coverPolicy","tocPolicy"]){let c=e.rules[a],d=f.rules[a];c&&d&&"unspecified"!==c&&"unspecified"!==d&&c!==d&&b.push({level:"warning",message:`${"coverPolicy"===a?"封面":"目录"}策略冲突:${g} 要求「${"required"===c?"生成":"禁止"}」,${h} 要求「${"required"===d?"生成":"禁止"}」。生成时以禁止优先。`})}e.rules.minWords&&f.rules.minWords&&e.rules.minWords!==f.rules.minWords&&b.push({level:"warning",message:`最低字数要求不一致:${g} ${e.rules.minWords} 字 vs ${h} ${f.rules.minWords} 字。生成时将取最大值 ${Math.max(e.rules.minWords,f.rules.minWords)} 字。`})}return b}},78217:(a,b,c)=>{function d(a,b){return Math.ceil(e(a)/f(b))}function e(a){return a.replace(/<[^>]+>/gu,"").replace(/\s+/gu,"").length}function f(a){let b=Number(String(a&&"typography"in a&&a.typography?.bodySize||"").replace(/[^\d.]/gu,""))||14,c=Number(String(a&&"typography"in a&&a.typography?.lineHeight||"").replace(/[^\d.]/gu,""))||22;return b>=14&&c>=22?900:1050}function g(a){let b=a.trim();if(/^\d+(?:\.\d+)?$/u.test(b))return Number(b);let c={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if("十"===b)return 10;let d=/^([一二两三四五六七八九])?十([一二三四五六七八九])?$/u.exec(b);if(d)return(d[1]?c[d[1]]:1)*10+(d[2]?c[d[2]]:0)}function h(a="",b=""){let c=`${a}${b}`;return/不少于|至少|不低于|以上|起码/u.test(c)?"minimum":/约|大概|左右|大约|约为|附近/u.test(c)?"approximate":"exact"}function i(a){let b=a.replace(/\s+/gu," "),c=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(?:页|頁)\s*(以上|左右|以内|以下)?/gu)],d=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(万)?\s*(?:字|字符)\s*(以上|左右|以内|以下)?/gu)],e=c.map(a=>{let b=g(a[2]||"");return Number.isFinite(b)?{value:b,mode:h(a[1],a[3])}:void 0}).filter(a=>!!a).at(-1),f=d.map(a=>{let b=g(a[2]||"");return b?{value:Math.round(b*(a[3]?1e4:1)),mode:h(a[1],a[4])}:void 0}).filter(a=>!!a).at(-1);return{targetPages:e?.value,pageMode:e?.mode,targetChars:f?.value,charMode:f?.mode}}function j(a){if(!a)return a;let b="全文|正文|成文|总字数|篇幅|投标文件|施工组织设计|技术标",c="不得少于|不应少于|不少于|不低于|不得超过|不超过|至少|要求|需要|达到|控制在|约为|约",d="(?:\\d+(?:\\.\\d+)?|[一二两三四五六七八九十百]{1,6})\\s*万?\\s*(?:字|字符)(?:以上|左右|以内|以下)?(?!的)",e=RegExp(`^[ \\t]*(?:\\d+[.、]\\s*)?(?:${b}){0,2}[ \\t]*(?:${c})?[ \\t]*${d}[。;;::]?[ \\t]*$\\n?`,"gmu"),f=RegExp(`(?:${b})[^。;;,,、!??!\\n]{0,12}?(?:${c})?\\s*${d}`,"gu"),g=a.replace(e,"").replace(f,"");return g===a?a:g.replace(/(^|\n)[ \t]*(?:\d+[.、]\s*)?[。;;,,、!??!]+[ \t]*/gu,"$1").replace(/[,,、]{2,}/gu,",").replace(/[,,、][ \t]*(?=[。;;!??!])/gu,"").replace(/([。;;!??!])[ \t]*[,,、]+/gu,"$1").replace(/\n{3,}/gu,"\n\n")}c.d(b,{Cv:()=>d,K1:()=>m,KC:()=>j,KZ:()=>s,PE:()=>o,V7:()=>e,_P:()=>g,py:()=>i,q6:()=>f,tF:()=>n,ty:()=>p,yJ:()=>q});let k={detailed:1.3,standard:1,brief:.75};function l(a,b,c,d){let e=Math.max(0,Math.round(b)),f=new Map;if(0===a.length)return f;let g=a.map(a=>Math.max(1,(a.sections||[]).filter(Boolean).length)*k[function(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?"detailed":/概况|结语|附录/u.test(b)?"brief":"standard"}(a)]),h=a.map(a=>Math.max(800,Math.round(c(a)),Math.round(d?.(a)||0))),i=new Map;for(let b=0;b<=a.length;b+=1){let b=a.map((a,b)=>b).filter(a=>!i.has(a));if(0===b.length)break;let c=e-[...i.values()].reduce((a,b)=>a+b,0),d=b.reduce((a,b)=>a+g[b],0)||b.length,j=b.find(a=>c*g[a]/d<h[a]);if(void 0===j){let h=0;for(let[b,c]of i)f.set(a[b].id,c),h+=c;return b.forEach((i,j)=>{let k=j===b.length-1?Math.max(1,e-h):Math.max(1,Math.round(c*g[i]/d));f.set(a[i].id,k),h+=k}),f}i.set(j,h[j])}let j=h.reduce((a,b)=>a+b,0)||a.length;console.error(`[budget] 篇幅预算不足:目标 ${e} 字不足以覆盖 ${a.length} 章最低预算(下限合计 ${j} 字),按下限比例压缩分配`);let l=0;return a.forEach((b,c)=>{let d=c===a.length-1?Math.max(1,e-l):Math.max(1,Math.round(e*h[c]/j));f.set(b.id,d),l+=d}),f}function m(a){let{chapters:b,targetChars:c,floorOf:d,feasibilityFloorOf:e,currentTargets:f}=a,g=Math.max(0,Math.round(c)),h=b.map(a=>Math.max(0,Math.round(e(a)))),i=b.reduce((a,b,c)=>a+Math.max(800,Math.round(d(b)),h[c]),0),j=i>g;j&&console.error(`[budget] 章预算可行性校准:最低密度预算合计 ${i} 字超出全文目标 ${g} 字,按下限比例压缩(容量密度需求与目标字数冲突,显式暴露不静默)`);let k=l(b,g,d,a=>e(a)),m=[...k.values()].reduce((a,b)=>a+b,0);if(Math.abs(m-g)>Math.max(b.length,Math.floor(.02*g)))throw Error(`章预算可行性校准违约:Σ章预算 ${m} 与目标 ${g} 偏差超出容差(算法回归防御)`);let n=f?b.map(a=>({id:a.id,title:a.title,from:f.get(a.id)||0,to:k.get(a.id)||0})).filter(a=>a.from!==a.to):[];return{chapterTargets:k,adjustments:n,compressed:j}}function n(a){let b,c=a.template.generationSettings||a.template.exportSettings,d=f(a.template.exportSettings||a.template.generationSettings),e=i(a.requirement||""),g=i(a.promptTexts||""),h=e.targetChars||e.targetPages?e:g,j=!!(h.targetChars||h.targetPages),k=j?void 0:c?.targetPages?.target||c?.targetPages?.min,m=h.targetPages?h.targetPages*d:void 0,n=h.targetPages||k,o=j?"explicit":k?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",p=j?Math.max(h.targetChars||0,m||0)||void 0:Math.max((k?k*d:void 0)||0)||void 0,q=h.pageMode||"exact",r=h.charMode||q,s=j&&"approximate"===r,t=j&&"minimum"===r,u=j?n?Math.floor(n*(t?1:.9)):void 0:c?.targetPages?.min||(n?Math.floor(.95*n):void 0),v=j&&n&&!t?Math.ceil(n*(s?1.15:1.08)):c?.targetPages?.max,w=p?Math.floor(p*(t?1:.9)):u?u*d:void 0,x=p&&!t?Math.ceil(p*(s?1.15:1.08)):v?v*d:void 0,y=a.chapters.length>0?a.chapters:a.template.chapters,z=b=>Math.max(a.spec?.chapterRules.find(a=>a.id===b.id||a.title===b.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0);if(p){let a=[...(b=l(y,p,z)).values()].reduce((a,b)=>a+b,0);if(Math.abs(a-p)>Math.max(y.length,Math.floor(.02*p)))throw Error(`篇幅预算契约违约:Σ章预算 ${a} 与目标 ${p} 偏差超出容差(算法回归防御)`)}else b=new Map(y.map(a=>[a.id,Math.max(1200,z(a))]));let A=!!(j&&(t||"exact"===r)&&(p||w||0)>=4e4);return{targetPages:n,minPages:u,maxPages:v,targetChars:p,minChars:w,maxChars:x,charsPerPage:d,chapterTargets:b,source:o,mode:r,longformStrict:A}}function o(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function p(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars?f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.4*a.targetChars)?f.push({level:"error",message:`正文篇幅严重超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%,超过 40% 即阻断)`,suggestion:"按章节完成率定位超产章节,压缩重复段落与过度展开内容(保留全部事实与关键数值),使正文回到目标篇幅附近后重新验收。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.2*a.targetChars)?f.push({level:"warning",message:`正文篇幅明显超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%,超过 40% 将阻断)`,suggestion:"建议压缩重复段落与过度展开内容,使正文接近目标篇幅。"}):"minimum"===a.mode&&a.targetChars&&c>Math.ceil(1.15*a.targetChars)&&f.push({level:"warning",message:`正文篇幅超出目标字数:当前 ${c} 字,目标约 ${a.targetChars} 字(超出 ${Math.round((c/a.targetChars-1)*100)}%)`,suggestion:"建议压缩重复段落与过度展开内容,使正文接近目标篇幅。"}),a.minPages&&d<a.minPages&&f.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${d} 页,目标不少于 ${a.minPages} 页`,suggestion:"建议继续扩写正文,或根据实际导出版式调整目标页数。"}),a.maxPages&&d>a.maxPages&&f.push({level:"warning",message:`正文篇幅超过目标页数区间:预计约 ${d} 页,建议不超过 ${a.maxPages} 页`,suggestion:"建议压缩过度展开内容或调整目标页数。"}),f}function q(a,b){if(!a.targetChars||a.targetChars<=0)return;let c=e(b);if(!(c<=Math.ceil(1.2*a.targetChars)))return{currentChars:c,targetChars:a.targetChars,excessRatio:c/a.targetChars-1,aimChars:Math.ceil(1.1*a.targetChars)}}let r={parameter:100,boqRow:60,drawingFact:50,basicFact:30};function s(a){let b=Math.round(a.parameters*r.parameter+a.boqRows*r.boqRow+a.drawingFacts*r.drawingFact+a.basicFacts*r.basicFact),c=Math.max(0,Math.round(a.targetWords)),d=c-b,e=0===c||b>=.8*c,f=e?[]:[`资料可支撑篇幅下界约 ${b} 字,低于目标 ${c} 字的 ${Math.round(80)}% 红线,差额约 ${Math.round(d)} 字。`,`量化参数 ${a.parameters} 个(权重 ${r.parameter}/个)、清单行 ${a.boqRows} 行(${r.boqRow}/行)、图纸事实 ${a.drawingFacts} 条(${r.drawingFact}/条)、基础事实 ${a.basicFacts} 条(${r.basicFact}/条)。`,"补料方向(按缺口从大到小):① 补充工程量清单/ExceL 明细(清单行权重最高且最易补);② 补充施工图纸(DWG/PDF)以提供图纸事实;③ 补充招标文件技术条款与规范引用以增加量化参数;④ 核对资料包绑定是否覆盖项目全部资料。","若资料确实无法补足,请下调目标字数至资料可支撑水平,而不是产出篇幅注水、无依据的文档。"];return{supportableWords:b,targetWords:c,shortfall:d,sufficient:e,sources:{parameters:a.parameters,boqRows:a.boqRows,drawingFacts:a.drawingFacts,basicFacts:a.basicFacts},remediation:f}}},80439:(a,b,c)=>{function d(a){return a?({"knowledge-base":"知识库","document-readiness":"生成准备度检查","llm-json":"LLM 事实抽取"})[a]:void 0}function e(a,b={}){var c;let f={executionVersion:2,title:(c=a.type,a.roleId,({role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",llm_review:"LLM 审查优化",validation:"内容优化与质量校验",reference:"资料增强"})[c]),group:a.type,...a,...b};return{...f,roleName:f.roleName||d(f.roleId),subtitle:f.subtitle||f.roleName||d(f.roleId)}}function f(a,b){let c=a=>"chapter_generation"===a.type||/^agent-chapter-task-/u.test(a.roleId||"")?[a.type,a.roleId||"",a.promptId||"",a.subtitle||"",a.order??""].join("::"):[a.type,a.roleId||"",a.promptId||""].join("::"),d=c(b),e=a.findIndex(a=>c(a)===d);return e>=0?(a[e]={...b,order:a[e]?.order??b.order},e):(a.push(b),a.length-1)}function g(a,b){return`${a},耗时 ${Math.round((Date.now()-b)/1e3)} 秒`}c.d(b,{AQ:()=>g,X5:()=>e,fx:()=>f})},80572:(a,b,c)=>{let d;c.d(b,{z:()=>f});let e=["chapterConcurrency","sectionConcurrency","sectionGroupConcurrency","sectionGroupSize","sectionGroupTaskConcurrency","plannedBlockConcurrency","tableFixConcurrency","llmMaxConcurrency","writingTaskConcurrency","projectGraphDomainConcurrency","writingTaskMaxWords","blockEvidenceChars","chapterPoolChars","evidenceBudgetRatio","evidenceBudgetCeiling","evidenceCatalogMaxLines","factCoverageCap","factExtractionMaxChars","factExtractionMaxItems","outlineEvidenceChars","persistEvidenceMaxItems","persistEvidenceItemChars","repairEvidenceChars","capacityFeasibilityRecalibration","blueprintBlockQuantityCap","blueprintBlockMaterialCap","blueprintBlockSliceCap"];function f(){let a=process.env.DOCUMENT_TUNING_PROFILE;if(d&&d.raw===a)return d.parsed;let b={};if(a)try{let c=JSON.parse(a);for(let a of e){let d=c[a];if("number"==typeof d)b[a]=d;else if("string"==typeof d&&""!==d.trim()){let c=Number(d);Number.isFinite(c)&&(b[a]=c)}}}catch(a){console.warn(`[tuningProfile] DOCUMENT_TUNING_PROFILE 解析失败,按全默认处理:${String(a)}`)}return d={raw:a,parsed:b},b}},81892:(a,b,c)=>{c.d(b,{G0:()=>i,OA:()=>h,uQ:()=>g});var d=c(29055);let e="每条重点难点必须写成「难点事项 | 成因与风险来源 | 应对措施 | 责任岗位 | 检查频次 | 整改闭环要求」式条目,两个半项缺一不可:① **归因**:明确写出成因与风险来源——须用「成因」「风险来源」「风险源于」「致险因素」等字面表述,不得只描述现象;② **量化**:写出量化控制目标(数值+单位或频次,如「开挖深度不超过 3m」「每 200m 划分一段」「压实度不低于 95%」「巡检 1 次日」「导行通道宽度不小于 4m」);重难点以表格呈现时按行逐条判定(检测口径:归因表述 + 数值单位结构,双达标率需 ≥50%)",f=[{pattern:/概况|总体|理解|说明|编制/u,goal:"以项目资料已确认的事实卡片展开工程概况与总体理解,不得空泛概述",mustCover:["工程名称、建设地点、建设规模、计划工期、质量标准等资料已确认事实","现场条件与招标范围边界","编制依据与适用范围(按五类逐项列全:招标文件及补疑补遗、国家法律法规、国家/行业现行规范标准、地方法规规章、企业管理体系;地方法规规章必须结合工程所在地属地的现行地方性法规与政府规章,不得只写笼统一句话)","B5 专业工程清单:资料识别的专业工程逐个展开(不少于 5 个,每个专业工程写明作业对象与工程量、工序顺序、施工方法三方面要素,落到工程量与工艺参数)",`重点难点分析(本类章普遍承载该内容):${e}`]},{pattern:/主要施工内容/u,goal:"按专业工程展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工程量与工艺参数",mustCover:["资料识别的专业工程(不少于5个)","每个专业工程的作业对象与工程量/工序顺序/施工方法三方面要素","工程量、材料设备规格、检测验收与资料闭环"]},{pattern:/主要分部分项工程施工方案|主要施工方法/u,goal:"按分项工程方案展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工艺参数与工序顺序",mustCover:["资料明确的专业工程范围(逐项展开分项工程方案)","每个分项方案的作业对象与工程量/工序顺序/施工方法三方面要素","每个分项方案不少于4个工艺参数与至少1处3环节以上工序顺序表达","工艺参数来自绑定材料或行业通用规范值,不得编造"]},{pattern:/重点|难点/u,goal:"识别项目重点难点并给出针对性对策,每项落到责任岗位与验收节点",mustCover:["重点难点成因与影响范围","对应施工内容与专项措施","责任岗位、检查频次、整改闭环",e]},{pattern:/部署|总体|流水|顺序/u,goal:"明确施工部署逻辑、流水段划分与资源调配机制",mustCover:["施工区段与流水划分","各阶段施工顺序与穿插关系","资源动态调配机制"]},{pattern:/进度|工期/u,goal:"围绕总工期与关键节点展开进度保障",mustCover:["总进度计划与关键节点","周/日计划分解","进度偏差识别与纠偏措施"]},{pattern:/质量/u,goal:"覆盖材料验收、过程控制、隐蔽验收、整改复验的质量闭环",mustCover:["质量目标与验收依据","三检制度与样板引路","隐蔽工程验收与材料复试","见证取样送检、试块养护、分部分项报验等质量保障制度逐项落位","质量通病防治与闭环整改","保修与缺陷责任期承诺"]},{pattern:/安全|危大|风险/u,goal:"覆盖风险识别、危大工程专项方案、检查整改与应急响应",mustCover:["安全目标与量化控制指标(如杜绝重伤及以上事故、轻伤事故频率控制值、安全达标率),须以承诺句式明确写出","危险源辨识与风险分级","危大工程辨识清单逐项完整(按项目实际情况覆盖基坑支护与降水、模板支撑、脚手架、起重吊装、吊篮、拆除等适用项,逐项写明辨识依据,不得遗漏)","B6 危大分级参数—判定绑定(硬要求):每一类危大工程的判定必须写「本项目实际参数 + 判定阈值对照 + 结论」三要素(如「本项目基坑开挖深度 1.75m,对照《危险性较大的分部分项工程安全管理规定》开挖深度超过 3m 属危大工程的阈值,判定本工程基坑不属于危大工程」);**禁止只抄规范阈值**(如只写「开挖深度超过 3m 的沟槽土方开挖工程」而不给本项目实际深度);参数取自资料原文,不得编造","危大工程专项方案编制与审批程序","安全交底与隐患排查闭环","施工现场临时用电三级配电两级保护:总配电箱/分配电箱/开关箱三级配电,两级漏电保护(总箱与开关箱各一级,漏电动作电流与动作时间参数落位),TN-S 接零保护系统,漏电保护器每周试跳 1 次","B5 生产安全事故应急预案与应急演练(八部分结构:总则、组织机构及职责、风险分析与危险源辨识、应急物资设备与通讯保障、专项应急预案、应急响应、后期处置、培训演练):逐部分展开,演练频次量化(如每半年 1 次),物资储备清单化"]},{pattern:/资源|材料|设备|劳动力|人材机/u,goal:"说明资源配置依据、进场验收与保管调配",mustCover:["机械设备投入计划","分阶段劳动力计划","材料进场计划与验收"]},{pattern:/文明|绿色|环保|扬尘|噪声/u,goal:"覆盖扬尘噪声管控、四节一环保与智慧监测",mustCover:["扬尘治理六个百分百逐项落位(施工工地周边 100% 围挡、物料堆放 100% 覆盖、出入车辆 100% 冲洗、施工现场地面 100% 硬化、拆迁工地 100% 湿法作业、渣土车辆 100% 密闭运输;不涉及拆迁的写明豁免理由)","扬尘噪声分时段管控","监测预警与台账","绿色施工与四节一环保措施:绿色施工按《绿色施工评价标准》GB/T 50640 分阶段评价(每阶段不少于 1 次,评价记录归档)","B5 四节一环保量化指标:节水(非传统水源利用率/用水量控制)、节材(材料损耗率/废弃物回收率)、节地(土方平衡率)、节能(能耗指标)各至少 1 项带单位量化指标,附录八基准对照项逐项量化响应"]},{pattern:/应急|预案/u,goal:"覆盖应急组织、物资储备与专项预案",mustCover:["应急组织架构","应急物资储备","专项预案与演练计划"]},{pattern:/竣工|验收|移交|保修/u,goal:"覆盖竣工清理、验收移交与保修响应",mustCover:["竣工清理与垃圾外运","缺陷修补与复查销项","验收移交与保修响应"]},{pattern:/工资|劳务|实名/u,goal:"覆盖劳务实名制与农民工工资保障闭环",mustCover:["建筑工人实名制管理(实名登记率 100%、实名制管理平台考勤)","农民工工资专用账户与银行代发(专用账户开设、按月足额代发、工资保证金)","考勤与工资支付台账","工伤保险办理与参保信息管理(作业人员工伤保险按项目参保、参保信息纳入实名制管理、工伤事故申报处置流程)"]}];function g(a){return f.find(b=>b.pattern.test(a))}let h=["【结构完整性红线】有序列表编号必须从「1.」起连续、不得跳号或重号,小节内列表独立起编、不得继承父级编号;编号后必须紧跟实质内容(禁止孤立编号);禁止双重冒号「::」「;:」「。:」等行尾标点残留;禁止句子中途截断(行尾无终止标点)与整段重复行;每个小节必须有实质正文,禁止只写标题的空小节","【表格规范红线】每张表只允许一个表头行(禁止重复表头),表名必须独立成行(禁止混入表头首格);数据行不得留空单元格;禁止用「—/若干/约/待定/暂无/待补充」等占位或模糊表达代替具体数据(合计行的「—」与规格型号列「机具无型号」的「—」除外);合计行数值必须可由明细行相加推导;列数与表头一致;说明性内容必须用段落承载,禁止用表格单元格堆砌正文","【数据口径红线(宁缺毋假)】同一指标(劳动力总数、机械台数、工期阶段划分、班组人数等)全文档只允许一套口径,禁止在不同章节或表格中并列矛盾数值;禁止自行取平均值、保守值、众数等在多套口径中盲选统一;无法从资料锁定唯一数值时不得写具体数值(改用定性表述或显式标注待核),严禁编造数值或将候选值随手择一写入","【禁止资料堆砌伪段落】禁止以「本项目主要施工内容包括:X的Y量为Z……」「经识别,本项目工程量为:……」式清单罗列句充当正文段落;禁止把资料条目用顿号/分号首尾相接拼成伪句子;每段必须是连贯的施工描述(含施工对象、工序逻辑、工艺做法、参数落位),工程量清单类明细如需呈现应使用规范表格,不得用罗列句复制表格内容","【工期时序与分批口径红线】时间表述必须符合施工时序逻辑:前期准备动作(施工方案编制报审、图纸会审、交底、考察、封样、检测、培训演练、采购调查等)的完成时限必须落在施工准备阶段内,禁止出现「开工令下发后第 N 日内」且 N 达到或超过总工期的写法(等同于把前期动作排到竣工日);机械、设备、劳动力分批进场表述(首批/剩余/补充进场)各批次数量必须能合计推导为进场总数且与资源配置表同口径,禁止分批数量与总数互相矛盾"];function i(a){let b=(0,d.y)({template:{id:"runtime",name:a.templateName||"",outputTitle:"",description:"",category:"",chapters:a.chapters},chapters:a.chapters,requirement:a.requirement}),c=/施工组织设计|施工组织|施组|技术标/u.test(`${a.templateName||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`)||b.length>0,e=Object.values(a.factsModel?.canonical?.byKey||{}).map(a=>`${a.label}=${a.value}`),f=e.filter(a=>/建设规模|建筑面积|占地|用地面积|装配|层数|高度/u.test(a)).slice(0,8),i=["正文必须落到本项目资料已确认的事实,不得使用模板化空话或跨小节复制段落","措施类内容写成“责任岗位+执行动作+量化标准+检查频次+整改时限+复查销项”闭环句式:同一自然段内三要素(责任岗位+检查频次+整改闭环)须同时出现,全文每 1500 字至少 1 段闭环句式;不得以固定句模复读,三要素分散融入叙述(相邻小节不得同句式开头,同一句式全文不得反复使用)","措施类段落必须落位完整五要素链——方案(专项施工方案/技术措施)、流程(施工工序/工艺流程)、责任岗位(项目经理/技术负责人/安全员等)、检查频次(每周/每日不少于 N 次)、验收整改闭环(检查验收/整改/复查/销项)——五个要素词面每 1500 字至少 1 段完整覆盖","【规范术语显性落位】凡涉及强制性管理制度的段落,小节标题与正文首句必须显性使用规范术语原词(如「建筑工人实名制管理」「农民工工资专用账户」「生产安全事故应急预案与应急演练」「危险性较大的分部分项工程」「扬尘污染防治措施」「绿色施工与四节一环保」「施工现场临时用电三级配电两级保护」),禁止只写近义改写(如把“实名制管理”写成“人员考勤登记”、把“应急预案”写成“处置办法”);评审按规范术语原词做语义匹配,术语不显性即判内容缺失","正文每 1000 字至少落位 6 处带单位量化工艺参数(mm/MPa/养护天数/间距/压实度等),施工流程与施工方法须有明确的工序顺序表达(相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每个分部分项方案至少 1 处 3 环节以上工序顺序表达",'专业工程类小节必须覆盖作业对象与工程量、工序顺序、施工方法三方面要素(必须融入连贯段落叙述,禁止以"施工概况/施工流程/施工方法"等结构标签充当标题或段落开头引导),小节标题用专业工程正式名称(如"拆除工程"),禁止使用"工作包"等后台概念命名','质量目标与创优目标必须使用招标文件原文的奖项名称逐字落位,禁止替换、降级或省略为其他奖项名称(如把招标文件指定奖项写成其他奖项);招标文件"确保/达到"类等级要求不得弱化为"争创/争取"',"B5 属地创优目标(属地适配项):招标文件未明确具体奖项时,正文必须提出不低于招标文件要求的属地创优目标(如“争创市级优质工程”“争创市级安全文明标准化工地”,市名须为工程所在地),并在质量与文明施工章节落位","B5 表格数据一致性(实测缺陷:合计行与阶段明细之和不符、班组人数多值并存):表格类内容(劳动力投入、材料配置、机械设备等)合计行数值必须与上方明细行数据一致、可由各行相加推导;各阶段人数与全项目峰值人数必须显式区分口径并保持一致(如写明“阶段高峰人数按阶段分别统计,合计行仅列全项目峰值口径”);同一班组人数在配置表与进退场表中必须同值,不得多值并存",...h,a.clarificationConstraint||""].filter(Boolean),j=a.chapters.map(b=>{let c=g(b.title),d=(a.projectGraph?.works||[]).filter(a=>a.name&&(b.title.includes(a.name.slice(0,2))||/概况|总体|施工内容|方案|施工/u.test(b.title))).slice(0,10),e=(a.projectGraph?.resources||[]).filter(a=>a.quantity&&/概况|资源|总体|施工内容|方案/u.test(b.title)).slice(0,12).map(a=>({itemCode:"",itemName:a.name,quantity:a.quantity,unit:a.unit}));return{chapterId:b.id,chapterTitle:b.title,writingGoal:c?.goal||"结合本章标题与项目资料事实展开专业内容,避免泛化叙述",mustCover:[...c?.mustCover||[],...(b.requiredFacts||[]).slice(0,6)],factDomains:[...b.requiredFacts||[],...d.map(a=>a.name)].slice(0,10),evidenceRefs:b.queries.slice(0,6).map(a=>({filePath:a,kind:"query",priority:"should"})),boqTargets:e,drawingTargets:[],gaps:[]}});return{documentType:c?"施工组织设计":"专业文档",globalWritingFocus:c?[...i,"招标硬性要求必须逐项明确响应:质量标准、计划工期、缺陷责任期与保修、安全文明目标、项目经理及组织机构;工期/质量/保修类承诺可在概况与质量章节落位,不得遗漏",...f.length?[`项目规模事实卡(口径裁决值,正文引用规模数据必须与之一致,不得混淆总占地与建筑总量口径):${f.join(";")}`]:[],...e.length?[`项目可信基础事实(写作时必须优先落位):${e.slice(0,10).join(";")}`]:[],"B7 蓝图权威值必须写具体数字(实测缺陷:正文 4 处「劳动力峰值按…控制/为口径锁定」全无人数,蓝图裁决的峰值一次未落位):劳动力峰值、机械设备台数、里程碑节点天数等由系统蓝图统一裁决的数值,必须原样写出(如「劳动力峰值 XX 人」「挖掘机 X 台」),不得只写「按总进度计划控制」「按施工部署确定」类控制原则,也不得自行推算另设"]:[...i.slice(0,2),"B7 蓝图权威值必须写具体数字:劳动力峰值、机械设备台数、里程碑节点天数等由系统蓝图统一裁决的数值必须原样写出(如「劳动力峰值 XX 人」),不得只写控制原则"],chapters:j}}},85441:(a,b,c)=>{c.d(b,{F:()=>u,P:()=>s});var d=c(76760),e=c(44533),f=c(92808);let g=["project_overview","requirement_document","structured_data","scope_description"],h=["project_overview","requirement_document","addendum","structured_data","budget_cost","design_specification","resource_recommendation","schedule_quality_safety","scope_description","technical_specification","risk_constraints"];function i(a){let b=[];for(let c of a)for(let a of c.relativePath.split(/[\\/]/gu))a&&b.push(a);return b}function j(a){return/--|延期到|资料|附件|扫描|目录|汇总|打包|备份|\d{1,2}\.\d{1,2}/u.test(a)}function k(a){return m(a).replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").replace(/^(?:延期到\d+(?:\.\d+)?[-_—–\s]*)+/u,"").trim()}function l(a){let b=new Set,c=[];for(let d of a)!d||b.has(d)||(b.add(d),c.push(d));return c}function m(a){return a.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"").trim()}function n(a){let b=new Set,c=[];for(let d of i(a)){let a=k(d);!(!/项目|任务|文档|合同|计划|方案|工程/iu.test(a)||a.length<6||b.has(a))&&(!j(a)||/\.\w+$/u.test(d))&&(b.add(a),c.push(a))}return c}function o(a,b){return 0===a.length?b:a.map(a=>m(a.fileName)).join("、")}function p(a,b,c){b.lastIndex=0;let d=new Set,e=[];for(let f of a.matchAll(b)){let a=(f[c]||"").trim();!a||d.has(a)||(d.add(a),e.push(a))}return b.lastIndex=0,e}function q(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function r(a){let b=q(a).split("/").filter(Boolean);return b.length>1?b[0]:void 0}function s(a,b){let c=(0,e.Yy)(a),m=function(a,b){let c=a.filter(a=>"error"!==a.status),d=new Set((b?.boundFilePaths||[]).map(q)),e=c.filter(a=>d.has(q(a.relativePath)));if(e.length>0){let a=[...new Set(e.map(a=>r(a.relativePath)).filter(Boolean))],b=1===a.length?a[0]:void 0;return{files:e,reason:b?`模板绑定文件定位到资料组:${b}`:"使用模板显式绑定文件作为资料范围",ambiguous:!1}}let f=(b?.requirement||"").trim();if(f){let a=new Map;for(let b of c){let c=r(b.relativePath);if(!c)continue;let d=function(a,b){let c=0;for(let d of a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,)+/u)){let a=d.trim();a.length>=2&&b.includes(a)&&(c+=1)}return c}(c,f);d>0&&a.set(c,(a.get(c)||0)+d)}let b=[...a.entries()].sort((a,b)=>b[1]-a[1])[0];if(b)return{files:c.filter(a=>r(a.relativePath)===b[0]),reason:`需求描述定位到资料组:${b[0]}`,ambiguous:!1}}let g=[...new Set(c.map(a=>r(a.relativePath)).filter(Boolean))];return 1===g.length?{files:c.filter(a=>r(a.relativePath)===g[0]),reason:`知识库单一资料组:${g[0]}`,ambiguous:!1}:{files:c,reason:g.length>1?`未指定资料组,检测到 ${g.length} 个资料组,已阻断生成避免跨项目污染`:"未检测到资料组,使用全部资料",ambiguous:g.length>1}}(c,b),s=m.files,t=function(){let a={};for(let b of h)a[b]=[];return a}(),u=new Map((b?.boundFileRoles||[]).map(a=>[q(a.filePath),a.roles]));for(let a of s){let b=q(a.relativePath),c=[...u.entries()].filter(([a])=>b.endsWith(a)||a.endsWith(b)).flatMap(([,a])=>a);for(let b of[...new Set([...function(a){let b=new Set((0,f.t0)(a,f.hW));return b.add("project_overview"),[...b]}(a.relativePath),...c])])t[b].push({filePath:a.relativePath,fileName:d.basename(a.relativePath),role:b,chunkCount:a.chunkCount})}let v=function(a){let b,c;for(let d of i(a)){let a=k(d);if(/项目|工程/iu.test(a)&&!(a.length<6)){if(/\.\w+$/u.test(d)){b||=a;continue}if(j(a)){c||=a.split(/--/u).filter(a=>/项目|工程/u.test(a)).sort((a,b)=>a.length-b.length)[0]||a;continue}return a}}return b||c||"当前知识库项目"}(s),w=function(a){for(let b of a){let a=b.relativePath.match(/\b\d{4}[A-Z]{2,}\d{4,}\b/u)?.[0];if(a)return a}}(s),x=function(a,b){let c=n(a),d=n(b),e=l(a.map(a=>a.relativePath).join("\n").match(/\b\d{4}[A-Z]{2,}\d{4,}\b/gu)||[]),f=l(a.map(a=>r(a.relativePath)).filter(Boolean)),g=[c.length>0,e.length>0,1===f.length];return{fingerprint:{projectNames:c,documentNos:e,fileGroups:f,confidence:g.filter(Boolean).length/g.length},contaminationCandidates:d.filter(a=>!c.includes(a))}}(s,c),y=function(a){let b=function(a){let b="";for(let c of a)b+=`${c.relativePath}
|
|
118
118
|
`;return b}(a);return{ownerNames:p(b,/(?:责任主体|委托人|客户|甲方|乙方|需求方|服务方|执行方|负责人)[::]?([^\\/\n,,。;;]{2,40})/gu,1),locationNames:p(b,/(?:项目地点|实施地点|服务地点|交付地点|项目地址|执行地点)[::]?([^\\/\n,,。;;]{2,50})/gu,1),scheduleValues:p(b,/(\d+\s*(?:天|周|个月|月|年|小时)|(?:周期|期限|交付|完成)[^\\/\n,,。;;]{0,30})/gu,1),qualityTargets:p(b,/(?:质量(?:标准|目标|要求)?[::]?[^\\/\n,,。;;]{2,40}|合格|优良)/gu,0)}}(s),z=function(a){let b=new Set(g);for(let c of["design_specification","schedule_quality_safety","risk_constraints","resource_recommendation","technical_specification","budget_cost","addendum"])a[c].length>0&&b.add(c);return[...b]}(t),A=z.filter(a=>t[a].length>0),B=z.filter(a=>0===t[a].length);return{projectId:v.replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/gu,"-").slice(0,80)||"current-project",projectName:v,generatedAt:Date.now(),fingerprint:x.fingerprint,contaminationCandidates:x.contaminationCandidates,source:{totalFiles:c.length,selectedFiles:s.length,selectionReason:m.reason,ambiguous:m.ambiguous},facts:{projectName:v,documentNo:w,scopeDescriptions:t.scope_description.map(a=>a.fileName.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"")),professionalScopes:[...new Set(t.scope_description.concat(t.design_specification,t.structured_data).map(a=>a.fileName.replace(/\.(?:pdf|docx?|xlsx?|xls|dwg)$/iu,"")))],scheduleRequirement:t.schedule_quality_safety.length?"已识别周期、质量、安全或合规相关资料,生成时应以需求文件、变更说明和技术要求为准。":void 0,qualityRequirement:t.schedule_quality_safety.length?"已识别质量或评价相关资料。":void 0,safetyRequirement:t.schedule_quality_safety.length?"已识别安全或合规相关资料。":void 0,materialBrandRequirement:t.resource_recommendation.length?"已识别资源、材料、设备或品牌相关资料。":void 0,ownerNames:y.ownerNames,locationNames:y.locationNames,scheduleValues:y.scheduleValues,qualityTargets:y.qualityTargets},materialInventory:t,extractedSections:{projectOverview:`绑定材料组:${v}${w?`,文档/任务编号:${w}`:""}。`,scopeSummary:`范围资料:${o(t.scope_description,"未识别到明确范围资料")}。`,designSummary:`设计/方案/说明资料:${o(t.design_specification,"未识别到设计、方案或说明资料")}。`,structuredDataSummary:`结构化数据资料:${o(t.structured_data,"未识别到表格、列表或明细资料")}。`,scheduleQualitySafetySummary:`周期质量安全资料:${o(t.schedule_quality_safety,"未识别到周期、质量或安全专项资料")}。`,constraintsAndRisks:`约束和风险资料:${o(t.risk_constraints,"未识别到重点难点或约束资料")}。`},coverage:{requiredRoles:z,satisfiedRoles:A,missingRoles:B}}}function t(a){return a.replace(/OCR|识别错误|乱码/giu,"资料文字不清").replace(/知识库|提示词|后台|绑定片段|兜底/gu,"项目资料").replace(/PDF|DWG|Excel|XLSX?|DOCX?/giu,"资料文件")}function u(a,b={}){return b.publicSafe?["## 项目资料事实边界",t(a.extractedSections.projectOverview),`明确事实:责任主体 ${a.facts.ownerNames?.join("、")||"资料未明确"};地点 ${a.facts.locationNames?.join("、")||"资料未明确"};周期 ${a.facts.scheduleValues?.join("、")||"资料未明确"};质量 ${a.facts.qualityTargets?.join("、")||"资料未明确"}。`,t(a.extractedSections.scopeSummary),t(a.extractedSections.structuredDataSummary),t(a.extractedSections.designSummary),t(a.extractedSections.scheduleQualitySafetySummary),t(a.extractedSections.constraintsAndRisks),"仅使用资料中明确、可信的事实;资料未明确的工程实体事实不得推导,允许推导的计划配置类数据须明确标注为计划配置值。"].filter(Boolean).join("\n"):["## 后台绑定材料摘要",a.extractedSections.projectOverview,`材料指纹:对象名候选 ${a.fingerprint.projectNames.join("、")||"无"};编号 ${a.fingerprint.documentNos.join("、")||"无"};资料组 ${a.fingerprint.fileGroups.join("、")||"无"}。`,`内容级事实候选:责任主体 ${a.facts.ownerNames?.join("、")||"无"};地点 ${a.facts.locationNames?.join("、")||"无"};周期 ${a.facts.scheduleValues?.join("、")||"无"};质量 ${a.facts.qualityTargets?.join("、")||"无"}。`,a.extractedSections.scopeSummary,a.extractedSections.structuredDataSummary,a.extractedSections.designSummary,a.extractedSections.scheduleQualitySafetySummary,a.extractedSections.constraintsAndRisks].join("\n")}},91977:(a,b,c)=>{c.d(b,{I2:()=>g,Lk:()=>e,Uy:()=>f});var d=c(70208);function e(a,b){let c=`${a.filePath}
|
|
119
119
|
${a.content}`;return(function(a){let b=a.replace(/要求|计划|目标|标准|内容|信息|事实|依据|参数|范围|要点/gu,"");return[a,b].filter(Boolean)})(b).some(a=>c.includes(a))}function f(a,b){let c=(0,d.effectiveTemplateChapters)(a,b).flatMap(a=>a.requiredFacts).map(a=>({id:a,name:a,required:!0,sourceRoleIds:[],extractionHint:""})),e=b?.factFields.map(a=>({id:a.id,name:a.name,required:a.required,sourceRoleIds:a.sourceRoleIds||[],extractionHint:a.extractionHint||""}))||[],f=new Map;for(let a of[...c,...e])f.set(a.id,{...f.get(a.id)||a,...a,required:a.required||f.get(a.id)?.required||!1});return[...f.values()]}function g(a,b){return(!b.sourceRoleIds?.length||!!(a.roleId&&b.sourceRoleIds.includes(a.roleId)))&&e(a,b.name)}},92808:(a,b,c)=>{c.d(b,{NT:()=>e,Ny:()=>f,hW:()=>g,nt:()=>d,rs:()=>i,t0:()=>h});let d=[{id:"report",label:"报告",patterns:[/报告|调研|分析|评估|研究|复盘|总结/iu],output:["报告"]},{id:"plan",label:"实施方案",patterns:[/方案|规划|计划|预案|路径|路线图/iu],output:["实施方案"]},{id:"standard",label:"规范说明",patterns:[/规范|标准|制度|规则|指南|手册/iu],output:["规范说明"]},{id:"proposal",label:"建议方案",patterns:[/建议|提案|需求|响应|说明书/iu],output:["建议方案"]}],e=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|约束|响应|澄清|变更/iu],output:["需求约束","规则要求","变更说明"]},{id:"scope",label:"范围资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["实施范围","对象范围"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["结构化数据范围","参数规格范围"]},{id:"quality",label:"质量评价资料",patterns:[/质量|验收|审核|评审|评价|标准|规范|指标/iu],output:["质量要求","评价标准"]},{id:"schedule",label:"时间进度资料",patterns:[/周期|期限|进度|计划|节点|里程碑|时间|日期/iu],output:["周期要求","进度节点要求"]},{id:"safety",label:"安全合规资料",patterns:[/安全|合规|风险|应急|环保|隐私|审计|控制/iu],output:["安全合规要求","风险控制要求"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"analysis",label:"分析结论",patterns:[/报告|调研|分析|评估|研究|建议|结论/iu],output:["背景依据","分析结论","风险建议"]}],f=[{id:"overview",label:"概况章节",patterns:[/概况|背景|理解|说明|总则|摘要/iu],output:["对象名称","材料范围","实施范围"]},{id:"implementation",label:"实施章节",patterns:[/方法|部署|实施|范围|组织|流程|步骤/iu],output:["实施范围","对象范围","结构化数据范围"]},{id:"controls",label:"控制章节",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价/iu],output:["质量要求","周期要求","安全合规要求"]},{id:"resources",label:"资源章节",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["资源配置要求"]},{id:"risk",label:"风险章节",patterns:[/风险|重点|难点|约束|应急|合规/iu],output:["风险控制要求","风险建议"]}],g=[{id:"requirement",label:"需求规则资料",patterns:[/需求|要求|规则|条款|响应|requirement|rule/iu],output:["requirement_document"]},{id:"change",label:"变更澄清资料",patterns:[/补充|澄清|变更|修订|addendum|change/iu],output:["addendum"]},{id:"structured-data",label:"结构化数据资料",patterns:[/表格|列表|明细|数量|数据|字段|参数|规格|sheet|table|data/iu],output:["structured_data"]},{id:"budget",label:"预算费用资料",patterns:[/预算|费用|金额|报价|限价|成本|price|cost|budget/iu],output:["budget_cost"]},{id:"design",label:"设计方案资料",patterns:[/设计|方案|说明|图像|地图|附件|drawing|image|map|design/iu],output:["design_specification"]},{id:"resource",label:"资源配置资料",patterns:[/资源|人员|设备|材料|品牌|采购|供应|配置/iu],output:["resource_recommendation"]},{id:"schedule-quality-safety",label:"进度质量合规资料",patterns:[/质量|周期|进度|安全|合规|验收|审核|评价|环保|应急/iu],output:["schedule_quality_safety"]},{id:"scope",label:"范围任务资料",patterns:[/范围|内容|任务|目标|边界|对象|工作内容/iu],output:["scope_description"]},{id:"technical",label:"技术标准资料",patterns:[/技术|规范|标准|规程|指南|手册|参数|spec|standard/iu],output:["technical_specification"]},{id:"risk",label:"风险约束资料",patterns:[/风险|重点|难点|约束|限制|现场|条件|应急/iu],output:["risk_constraints"]}];function h(a,b){let c=new Set;for(let d of b)for(let b of d.patterns)if(b.lastIndex=0,b.test(a)){for(let a of d.output)c.add(a);break}return[...c]}function i(a,b){for(let c of b)for(let b of c.patterns)if(b.lastIndex=0,b.test(a))return c.output[0]}},95622:(a,b,c)=>{function d(a,b){let c=b||{},d=(...a)=>{let b=a.find(a=>!!c[a]);return b?String(c[b]).split("(来源")[0].trim():""},e=d("工程名称","项目名称","工程名"),f=d("建设单位","建设单位名称","发包人"),g=d("施工单位","承包单位","承包人"),h=d("建设地点","工程地点","项目地址"),i=d("建设规模","建筑面积","工程规模"),j=[["工程名称",e||a],["建设单位",f],["编制单位",g||f],["建设地点",h],["建设规模",i],["计划工期",d("计划工期","工期","总工期")],["质量标准",d("质量标准","质量目标","质量等级")]].filter(a=>!!a[1]);return['<div class="document-cover">',`# ${a}`,j.length>0?["","| 项目 | 内容 |","| --- | --- |",...j.map(a=>`| ${a[0]} | ${a[1].replace(/\|/gu,"/")} |`)].join("\n"):"","</div>"].filter(Boolean).join("\n")}c.d(b,{_G:()=>q,cM:()=>t,nd:()=>d,u7:()=>r});let e=/([\u3400-\u9fff\u3000-\u303f\uff00-\uffef])[ \u3000]+(?=[\u3400-\u9fff\u3000-\u303f\uff00-\uffef])/gu;function f(a){return(a||"").replace(/\|/gu,"/").replace(e,"$1").trim()}function g(a,b){return[`| ${a.map(f).join(" | ")} |`,`| ${a.map(()=>"---").join(" | ")} |`,...b.map(a=>`| ${a.map(f).join(" | ")} |`)]}function h(a){if("number"==typeof a.quantity&&a.quantity>0)return String(a.quantity);let{min:b,max:c}=a;return"number"==typeof b&&"number"==typeof c?b===c?String(b):`${b}-${c}`:"number"==typeof b?String(b):"number"==typeof c?String(c):"—"}function i(a,b){return[`> 本表为${b},按招标文件规定的表头格式编制。`,"",...g(a,[])]}let j=["序号","设备名称","型号规格","数量","国别产地","制造年份","额定功率(kW)","生产能力","用于施工部位","备注"],k=["序号","仪器设备名称","型号规格","数量","国别产地","制造年份","已使用台时数","用途","备注"],l=["用途","面积(平方米)","位置","需用时间"],m=["工序","持续天数","起止天序","关键线路","说明"],n=["设施","面积(平方米)","位置","说明"],o=[{pattern:/工种构成唯一口径[::]?按工种工程量区间中值比例收敛[((][^))]*[))]/gu,replace:"按工种工程量比例配置"},{pattern:/阶段条目工程量约\s*[\d.]+\s*[^\s×]*\s*×\s*经验工效区间\s*÷\s*阶段\s*\d+\s*天[((][^))]*封顶[))]/gu,replace:"按本阶段工程量及劳动力需用量测算"},{pattern:/工种工程量约\s*[\d.]+\s*[^\s×]*\s*×\s*经验工效区间\s*÷\s*工期\s*\d+\s*天[((][^))]*[))]/gu,replace:"按工种工程量及劳动力需用量测算"},{pattern:/工种工程量约\s*[\d.]+\s*[^\s×]*\s*×\s*定额工效[^÷]*÷\s*工期\s*\d+\s*天[((][^))]*[))]/gu,replace:"按工种工程量及定额工效测算"},{pattern:/[;;]\s*相关条目工程量合计约\s*[\d.]+\s*\S*/gu,replace:""},{pattern:/[((]清单(?:特征|条目)[))]/gu,replace:""},{pattern:/各工种人数区间之和\s*[\d.]+~[\d.]+\s*人[((][^))]*[))]/gu,replace:"按各工种配置人数合计测算"},{pattern:/[((]定额工效知识不全[^))]*[))]/gu,replace:""},{pattern:/[((]定额知识库命中[))]/gu,replace:""}],p=[{pattern:/[;,,]?\s*相关内容纳入施工组织设计与作业流程管理[^。\n]*。?/gu,replace:""},{pattern:/[;,,]?\s*[^。;\n]{0,40}(?:资料员|测量员|施工员|质检员|安全员|材料员|技术员|试验员|预算员|机械员|监理员)[^。;\n]{0,40}(?:每日|每周|每月|每班|定期)[^。;\n]{0,40}。?/gu,replace:""}];function q(a){let b=a.search(/^##\s*附表/mu);if(b<0)return a;let c=a.slice(0,b),d=a.slice(b);for(let a of(d=d.split("\n").map(a=>/^#{1,6}\s/u.test(a.trim())?a:a.replace(e,"$1")).join("\n"),o))d=d.replace(a.pattern,a.replace);for(let a of p)d=d.replace(a.pattern,a.replace);return c+(d=(d=d.replace(/^>\s*$/gmu,"")).replace(/\n{3,}/gu,`
|
|
120
120
|
|