@customize-agent/server 4.34.0 → 4.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +20 -20
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/208.js +4 -4
  5. package/.next/server/chunks/{9197.js → 5928.js} +17 -17
  6. package/.next/server/middleware-build-manifest.js +1 -1
  7. package/.next/server/pages/404.html +1 -1
  8. package/.next/server/pages/500.html +1 -1
  9. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  10. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  11. package/.next/server/pages/api/assets/generated.js +1 -1
  12. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  13. package/.next/server/pages/api/documents/export.js +1 -1
  14. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  15. package/.next/server/pages/api/documents/generate.js +1 -1
  16. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  17. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  18. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  19. package/.next/server/pages/api/documents/generated.js +1 -1
  20. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  21. package/.next/server/pages/api/documents/templates.js +1 -1
  22. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  23. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  24. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  25. package/.next/server/pages/api/kb/intelligence.js +1 -1
  26. package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
  27. package/.next/server/pages/api/kb/reindex.js +1 -1
  28. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  29. package/.next/server/pages/api/kb/upload/complete.js +1 -1
  30. package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
  31. package/.next/server/pages/api/kb/upload.js +1 -1
  32. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  33. package/.next/server/pages/api/prompt.js.nft.json +1 -1
  34. package/.next/server/pages/asset-library.html +1 -1
  35. package/.next/server/pages/document-roles.html +1 -1
  36. package/.next/server/pages/documents.html +1 -1
  37. package/.next/server/pages/guide.html +1 -1
  38. package/.next/server/pages/index.html +1 -1
  39. package/.next/server/pages/knowledge/file-detail.html +1 -1
  40. package/.next/server/pages/knowledge/files.html +1 -1
  41. package/.next/server/pages/knowledge/manage.html +1 -1
  42. package/.next/server/pages/knowledge.html +1 -1
  43. package/.next/server/pages/models.html +1 -1
  44. package/.next/server/pages/overview.html +1 -1
  45. package/.next/server/pages/prompt.html +1 -1
  46. package/.next/server/pages/settings.html +1 -1
  47. package/.next/server/pages/system/logs.html +1 -1
  48. package/.next/server/pages-manifest.json +27 -27
  49. package/.next/static/{J468HRVNdevxgPDtRwIUi → P389JcEyBYvt5VDNJWy9j}/_buildManifest.js +1 -1
  50. package/.next/static/chunks/{289-12dfcb3abec1c4b4.js → 289-35ac595388bbd018.js} +1 -1
  51. package/.next/static/chunks/563-b12f299d34bb9e44.js +1 -0
  52. package/.next/static/chunks/788-3afeb069ed706ac0.js +1 -0
  53. package/.next/static/chunks/pages/documents-d796eb8dca722e02.js +1 -0
  54. package/.next/static/chunks/pages/knowledge/files-8e25066889a85834.js +1 -0
  55. package/.next/static/chunks/pages/knowledge/manage-d0d0e0716e9d705b.js +1 -0
  56. package/.next/static/chunks/pages/prompt-5e1fb81efc656866.js +1 -0
  57. package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +1 -0
  58. package/package.json +1 -1
  59. package/.next/static/chunks/563-2b116a2500a97dba.js +0 -1
  60. package/.next/static/chunks/788-961761f5858f9189.js +0 -1
  61. package/.next/static/chunks/pages/documents-0e4216df99b9ec32.js +0 -1
  62. package/.next/static/chunks/pages/knowledge/files-7b78e962e432d199.js +0 -1
  63. package/.next/static/chunks/pages/knowledge/manage-7535b873ab505397.js +0 -1
  64. package/.next/static/chunks/pages/prompt-2c242e541f2e77a9.js +0 -1
  65. package/.next/static/chunks/pages/system/logs-c5a8920c6506a7e8.js +0 -1
  66. /package/.next/static/{J468HRVNdevxgPDtRwIUi → P389JcEyBYvt5VDNJWy9j}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- J468HRVNdevxgPDtRwIUi
1
+ P389JcEyBYvt5VDNJWy9j
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/J468HRVNdevxgPDtRwIUi/_buildManifest.js",
9
- "static/J468HRVNdevxgPDtRwIUi/_ssgManifest.js"
8
+ "static/P389JcEyBYvt5VDNJWy9j/_buildManifest.js",
9
+ "static/P389JcEyBYvt5VDNJWy9j/_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-2b116a2500a97dba.js",
42
+ "static/chunks/563-b12f299d34bb9e44.js",
43
43
  "static/chunks/7-20bcc985742a9ae1.js",
44
- "static/chunks/289-12dfcb3abec1c4b4.js",
44
+ "static/chunks/289-35ac595388bbd018.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-2b116a2500a97dba.js",
56
+ "static/chunks/563-b12f299d34bb9e44.js",
57
57
  "static/chunks/7-20bcc985742a9ae1.js",
58
- "static/chunks/289-12dfcb3abec1c4b4.js",
58
+ "static/chunks/289-35ac595388bbd018.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-2b116a2500a97dba.js",
72
+ "static/chunks/563-b12f299d34bb9e44.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/65-572a80c5a7c83064.js",
79
- "static/chunks/pages/documents-0e4216df99b9ec32.js"
79
+ "static/chunks/pages/documents-d796eb8dca722e02.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-2b116a2500a97dba.js",
105
+ "static/chunks/563-b12f299d34bb9e44.js",
106
106
  "static/chunks/7-20bcc985742a9ae1.js",
107
- "static/chunks/289-12dfcb3abec1c4b4.js",
107
+ "static/chunks/289-35ac595388bbd018.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-2b116a2500a97dba.js",
122
+ "static/chunks/563-b12f299d34bb9e44.js",
123
123
  "static/chunks/7-20bcc985742a9ae1.js",
124
- "static/chunks/289-12dfcb3abec1c4b4.js",
124
+ "static/chunks/289-35ac595388bbd018.js",
125
125
  "static/css/ad5a592c79d1448b.css",
126
- "static/chunks/pages/knowledge/files-7b78e962e432d199.js"
126
+ "static/chunks/pages/knowledge/files-8e25066889a85834.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-961761f5858f9189.js",
138
- "static/chunks/pages/knowledge/manage-7535b873ab505397.js"
137
+ "static/chunks/788-3afeb069ed706ac0.js",
138
+ "static/chunks/pages/knowledge/manage-d0d0e0716e9d705b.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-2b116a2500a97dba.js",
167
+ "static/chunks/563-b12f299d34bb9e44.js",
168
168
  "static/chunks/195-2c0168eacab722d2.js",
169
169
  "static/chunks/81-c3a7f04d96ea3f7d.js",
170
- "static/chunks/pages/prompt-2c242e541f2e77a9.js"
170
+ "static/chunks/pages/prompt-5e1fb81efc656866.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-2b116a2500a97dba.js",
186
+ "static/chunks/563-b12f299d34bb9e44.js",
187
187
  "static/chunks/7-20bcc985742a9ae1.js",
188
- "static/chunks/289-12dfcb3abec1c4b4.js",
188
+ "static/chunks/289-35ac595388bbd018.js",
189
189
  "static/chunks/195-2c0168eacab722d2.js",
190
- "static/chunks/pages/system/logs-c5a8920c6506a7e8.js"
190
+ "static/chunks/pages/system/logs-6f45ef8d862759a2.js"
191
191
  ]
192
192
  },
193
193
  "ampFirstPages": []
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "2164356c6f9ccfa688251e508a2fc4e0",
7
- "previewModeSigningKey": "f9a44cc05ca1a03c5dbb253234d70781a9714ac93c234d4bf54f5717eb5dac61",
8
- "previewModeEncryptionKey": "c0a4f6cd3b7106c6bbca5539ba4d2f6ff1777f68c7b6f284449d6821321b0e67"
6
+ "previewModeId": "d7654293cff78bce98a9c37e129e74c4",
7
+ "previewModeSigningKey": "fb160420b83d32ba372ef61439c8b889fc2a79a558308fe7952d21eb51a694a1",
8
+ "previewModeEncryptionKey": "d878e2366b586dcaddec52b951a3fce3b673f886a9fe0bf30cfaa8422b1e3862"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -12,9 +12,9 @@ ${d}`;return{chunk:a,index:b,score:.8*e.filter(a=>f.includes(a)).length+ +!!/\d+
12
12
  说明:以下内容仅用于事实覆盖、检索命中和质量检查,不得新增、删除、重排用户或模板章节。
13
13
  建议关注事实:${a.factFields.map(a=>a.name).join("、")}
14
14
  章节内容建议:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
15
- 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|(?<![\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+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu},22157:(a,b,c)=>{c.d(b,{DI:()=>H,Jb:()=>j,Kd:()=>F,LH:()=>g,Ld:()=>l,Sw:()=>k,TP:()=>E,Te:()=>D,V:()=>f,W6:()=>n,Ww:()=>A,Xl:()=>v,Z1:()=>h,c6:()=>B,dY:()=>q,hh:()=>G,jM:()=>u,jf:()=>K,l$:()=>J,lG:()=>C,lX:()=>I,se:()=>i,wq:()=>o,wx:()=>p});var d=c(77598),e=c(78217);let f=/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u,g=/《[^》]*》/gu;function h(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,12}顺序|依次|先后|先.{0,12}(?:后|再|然后|最后)|顺序施工|流水顺序/u.test(a)||(a.match(/(?:^|\n)\s*(?:\d+[.、]|[((]\d+[))]|[一二三四五六七八九十]+[、.]|第[一二三四五六七八九十]+步)/gmu)||[]).length>=2||(a.match(/(?:^|\n)\s*(?:[-*•]|\d+\.)\s+\S/gmu)||[]).length>=2||/[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u.test(a))}function i(a){let b=/(?:施工)?(?:概况|范围)[::]\s*\S|工程量|作业对象|部位|总量|共\s*\d/u.test(a);return{scope:b,process:/工艺流程|施工流程/u.test(a)||/(?:施工)?(?:流程|工序|顺序)[::]\s*\S/u.test(a)||h(a),method:/(?:施工)?方法[::]\s*\S|工艺参数|验收标准|检测|试验|记录|检查(?!井)|巡查|检验|整改|复查|销项|养护/u.test(a)}}function j(a){let b=i(a);return b.scope&&b.process&&b.method}function k(a){return a.replace(/^\d+(?:\.\d+)*[..]?\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"").replace(/工程$/u,"")}function l(a){return/化粪池|给排水|采暖|燃气|管网|管道|阀门|水泵|水箱|水表|消防|喷淋|强电|弱电|电气|照明|防雷|接地|通风|空调|电梯/u.test(a)?"机电安装工程":/装饰|装修|门窗|屋面|防水|楼地面|墙柱面|天棚|吊顶|抹灰|油漆|涂料|栏杆|幕墙|零星/u.test(a)?"装饰装修工程":/土石方|土方|石方|基础|垫层|砌筑|砌体|混凝土|钢筋|模板|支护|降水|桩基/u.test(a)?"结构与基础工程":/道路|路基|路面|广场|铺装|绿化|景观|亮化|清淤|围墙|大门|停车|步道|边坡/u.test(a)?"室外市政工程":/脚手|围挡|安全防护|冬雨|临时|监测/u.test(a)?"措施工程":"专项工程"}function m(a,b){return a.replace(/工程/gu,"")===b.replace(/工程/gu,"")}function n(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}::${k(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 o(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}::${k(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 p(a,b,c,d,e=[]){let f=k(b),g=new Set(c.map(k).filter(Boolean)),h=new Set(d.map(k).filter(Boolean)),i=new Set(e.map(k).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=k(c);if(d){if(3===a[1].length){d===f||m(d,f)||j.push(c);continue}!h.has(d)&&(g.has(d)||i.has(d))||j.push(c)}}return j}function q(a,b,c,d=[]){let e=k(b),f=new Set(c.map(k).filter(Boolean)),g=new Set(d.map(k).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=k(a[2].trim());if(3===a[1].length){(c===e||m(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}
15
+ 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|(?<![\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+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu},22157:(a,b,c)=>{c.d(b,{DI:()=>I,Jb:()=>k,Kd:()=>G,LH:()=>g,Ld:()=>m,SQ:()=>h,Sw:()=>l,TP:()=>F,Te:()=>E,V:()=>f,W6:()=>o,Ww:()=>B,Xl:()=>w,Z1:()=>i,c6:()=>C,dY:()=>r,hh:()=>H,jM:()=>v,jf:()=>L,l$:()=>K,lG:()=>D,lX:()=>J,se:()=>j,wq:()=>p,wx:()=>q});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){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,12}顺序|依次|先后|先.{0,12}(?:后|再|然后|最后)|顺序施工|流水顺序/u.test(a)||(a.match(/(?:^|\n)\s*(?:\d+[.、]|[((]\d+[))]|[一二三四五六七八九十]+[、.]|第[一二三四五六七八九十]+步)/gmu)||[]).length>=2||(a.match(/(?:^|\n)\s*(?:[-*•]|\d+\.)\s+\S/gmu)||[]).length>=2||/[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u.test(a))}function j(a){let b=/(?:施工)?(?:概况|范围)[::]\s*\S|工程量|作业对象|部位|总量|共\s*\d/u.test(a);return{scope:b,process:/工艺流程|施工流程/u.test(a)||/(?:施工)?(?:流程|工序|顺序)[::]\s*\S/u.test(a)||i(a),method:/(?:施工)?方法[::]\s*\S|工艺参数|验收标准|检测|试验|记录|检查(?!井)|巡查|检验|整改|复查|销项|养护/u.test(a)}}function k(a){let b=j(a);return b.scope&&b.process&&b.method}function l(a){return a.replace(/^\d+(?:\.\d+)*[..]?\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"").replace(/工程$/u,"")}function m(a){return/化粪池|给排水|采暖|燃气|管网|管道|阀门|水泵|水箱|水表|消防|喷淋|强电|弱电|电气|照明|防雷|接地|通风|空调|电梯/u.test(a)?"机电安装工程":/装饰|装修|门窗|屋面|防水|楼地面|墙柱面|天棚|吊顶|抹灰|油漆|涂料|栏杆|幕墙|零星/u.test(a)?"装饰装修工程":/土石方|土方|石方|基础|垫层|砌筑|砌体|混凝土|钢筋|模板|支护|降水|桩基/u.test(a)?"结构与基础工程":/道路|路基|路面|广场|铺装|绿化|景观|亮化|清淤|围墙|大门|停车|步道|边坡/u.test(a)?"室外市政工程":/脚手|围挡|安全防护|冬雨|临时|监测/u.test(a)?"措施工程":"专项工程"}function n(a,b){return a.replace(/工程/gu,"")===b.replace(/工程/gu,"")}function o(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}::${l(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 p(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}::${l(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 q(a,b,c,d,e=[]){let f=l(b),g=new Set(c.map(l).filter(Boolean)),h=new Set(d.map(l).filter(Boolean)),i=new Set(e.map(l).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=l(c);if(d){if(3===a[1].length){d===f||n(d,f)||j.push(c);continue}!h.has(d)&&(g.has(d)||i.has(d))||j.push(c)}}return j}function r(a,b,c,d=[]){let e=l(b),f=new Set(c.map(l).filter(Boolean)),g=new Set(d.map(l).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=l(a[2].trim());if(3===a[1].length){(c===e||n(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}
16
16
 
17
- ${i}`.trim()}let r=new Set(["施工准备","施工要点","质量控制","质量要求","质量保证措施","质量控制措施","质量通病防治","安全措施","安全要求","安全管理措施","安全技术交底","技术交底","注意事项","验收要求","验收标准","成品保护","环境保护","文明施工","进度控制","工期保障","材料管理","机械管理","人员管理","组织管理","应急预案","应急措施","劳动力配置","机械设备配置","施工概况","施工流程","施工方法"]),s=/^(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)[、..\s::-]/u,t=/主要分部分项工程施工方案|项目主要施工内容/u;function u(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=k(d);e&&(3===c[1].length?(g.add(e),i=e):h.push({line:a,name:e,rawTitle:d,parentH3:i}))}let j=new Map;for(let a of h){let c=j.get(a.name);j.set(a.name,a.line);let e=s.test(a.rawTitle),h=t.test(a.parentH3),i=g.has(a.name)&&!e&&!h,k=r.has(a.name);if(!(i||!k&&void 0!==c))continue;let l=f;for(let c=a.line+1;c<f;c+=1)if(/^#{2,4}\s+/u.test(b[c].trim())){l=c;break}for(let b=a.line;b<l;b+=1)d.add(b)}}return 0===d.size?a:b.filter((a,b)=>!d.has(b)).join("\n")}function v(a,b,c={}){if(!c.fuzzy){let c=w(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||w(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=x(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=x(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||z(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 w(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 x(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function y(a){return x(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function z(a,b){let c=y(a),d=y(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function A(a,b,c){let d=[...new Set(b.filter(Boolean))];if(0===d.length)return a;let e=3===c?/^\s*###\s+/u:4===c?/^\s*####\s+/u:/^\s*#{3,4}\s+/u,f=new Set;return a.split("\n").map(a=>{if(!e.test(a))return a;let b=x(a);if(!b)return a;let c=d.find(a=>!f.has(a)&&z(b,a));if(!c||c===b)return a;let g=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return g?(f.add(c),`${g}${c}`):a}).join("\n")}function B(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function C(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 D(a){if(a?.aborted)throw Error("用户中止")}function E(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let F=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标","异常低价","评标基准价"];function G(a){return!!(F.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}function H(a){return/否决[^。;\n]{0,8}投标|废标(?!准)|无效投标|投标无效|不予评审|取消[^。;\n]{0,6}投标资格/u.test(a)}function I(a){return a.filter(a=>!G(`${a.key||""} ${String(a.value)}`))}async function J(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||Math.max(1,{total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}.total))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class K{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},23500:(a,b,c)=>{c.d(b,{bj:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});var d=c(73024),e=c(76760),f=c(48161),g=c(77598),h=c(44533),i=c(25840),j=c(8753),k=c(6444),l=c(85441),m=c(92808),n=c(56942),o=c(2773),p=c(78217),q=c(80572);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(a){let{version:b,updatedAt:c,changeLog:d,...e}=a;return(0,g.createHash)("sha256").update(function a(b){return Array.isArray(b)?`[${b.map(a).join(",")}]`:b&&"object"==typeof b?`{${Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`:JSON.stringify(b)}(e)).digest("hex")}function u(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"文档",version:Number.isFinite(a.version)&&a.version>0?Math.floor(a.version):1,updatedAt:Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),changeLog:Array.isArray(a.changeLog)?a.changeLog.filter(a=>a&&"object"==typeof a&&Number.isFinite(a.version)&&"string"==typeof a.summary).slice(0,50):[],projectRoleConfigId:a.projectRoleConfigId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[],sections:Array.isArray(a.sections)?a.sections.filter(Boolean):[],tableSections:Array.isArray(a.tableSections)?a.tableSections.filter(Boolean):[],tableRequirements:Array.isArray(a.tableRequirements)?a.tableRequirements.filter(Boolean):[],tablePlans:Array.isArray(a.tablePlans)?a.tablePlans:[],pinnedEvidenceFilePaths:Array.isArray(a.pinnedEvidenceFilePaths)?a.pinnedEvidenceFilePaths.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"文档",purpose:a.description||"",queries:[],requiredFacts:[]}],exportSettings:a.exportSettings,generationSettings:a.generationSettings,promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],projectBindings:Array.isArray(a.projectBindings)?a.projectBindings.filter(a=>a.materialRootPath).map(a=>({materialRootPath:a.materialRootPath.replace(/^\/+|\/+$/gu,"")})):(0,o.qp)(a),promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],builtIn:!1}}function v(){try{let a=s();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));if(!Array.isArray(b))return d.renameSync(a,`${a}.corrupt-${Date.now()}`),[];return b.map(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"prompts.json"),"utf-8"));return Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{return[]}}();if(a.startsWith("custom:")){let c=b.find(b=>b.id===a);return c?{id:a,name:c.name,content:c.content,source:"custom"}:void 0}if(a.startsWith("file:")){let b=a.slice(5);if(d.existsSync(b))return{id:a,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8"),source:"file"}}}function A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(a),e=[],f=[];if(b)for(let a of b.promptRoles){let b=c.find(b=>b.id===a.roleId);if(!b){e.push(a.roleId);continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&f.push(a.roleId)}let g=P(d),h=[];for(let a of g){let d=z(a.promptId);if(!d)continue;let e=c.find(b=>b.id===a.roleId),f=b?.promptRoles.find(b=>b.roleId===a.roleId),g=e?.executionType||function(a){var b;return b=a,/extract|extraction|抽取|清单|图纸|品牌/u.test(b)?"fact_extraction":/validation|校验|审查|审核/u.test(b)?"validation":/format|排版/u.test(b)?"formatting":/writer|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(b)?"chapter_generation":"reference"}(a.roleId),i=function(a,b,c=""){let d=`${a} ${b} ${c}`;return/extract|extraction|抽取|清单|图纸|品牌|识别/u.test(d)?"extraction":/format|排版/u.test(d)?"formatting":/总控|writer|施工组织设计总控|写作主控/u.test(d)?"writer":/chapter_generation|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(d)?"chapter":"reference"}(a.roleId,g,d.name),j=`projectRole:${b?.id||"unknown"}:${a.roleId}:order=${f?.order??0}`;h.push({...d,roleId:a.roleId,contentHash:x(d.content),contentPreview:y(d.content),executionType:g,category:i,bindingSource:j,roleConfigId:b?.id,roleName:e?.name,order:f?.order})}return{bindings:g,prompts:h,writerPrompts:h.filter(a=>"writer"===a.category),chapterPrompts:h.filter(a=>"chapter"===a.category),extractionPrompts:h.filter(a=>"extraction"===a.category),formattingPrompts:h.filter(a=>"formatting"===a.category),referencePrompts:h.filter(a=>"reference"===a.category),unresolvedRoles:[...new Set(e)],missingResourceRoles:[...new Set(f)]}}function C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(d)){b=(e.version||0)+1;let a=d.chapters.map(a=>a.title).join("、");c=[{version:b,timestamp:f,summary:a?`章节结构调整:${a.slice(0,80)}${a.length>80?"…":""}`:"模版内容已更新"},...e.changeLog||[]].slice(0,50)}else e?(b=e.version||1,c=e.changeLog||[]):(b=1,c=[{version:1,timestamp:f,summary:"创建模版"}]);let g={...d,version:b,updatedAt:f,changeLog:c},h=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r=D(a),s=[];if(!r)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let t=(0,i.XB)("prompt"),u=N(r),v=O(r);u||s.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),u&&!v&&s.push({level:"error",message:`项目角色配置不存在或已删除:${u}`}),r.promptIds?.length&&s.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),r.promptBindings?.length&&s.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let w=Q(r),x=(0,o.qp)(r);v&&0===v.promptRoles.length&&s.push({level:"error",message:"项目角色配置未配置提示词角色。"}),v&&v.promptRoles.length>0&&0===w.length&&s.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let y=e.resolve(b),z=(0,h.Yy)(y),B=function(a,b){if(0===a.length)return[];let c=new Set(b.map(a=>a.relativePath)),d=[],e=new Set;for(let f of a){let a=f.materialRootPath.replace(/^\/+|\/+$/gu,"");for(let f of c.has(a)?[a]:b.filter(b=>{var c;return b.relativePath.startsWith(`${a}/`)&&"disk"!==(c=b).status&&"error"!==c.status&&Number(c.indexedAt||0)>0&&Number(c.chunkCount||0)>0}).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(x,z);if(0===x.length?s.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===B.length&&s.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),r&&(f=(0,l.P)(y,{requirement:d.requirement,boundFilePaths:B}),0===x.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=s.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&s.splice(a,1)}let C=new Map(z.map(a=>[a.relativePath,a])),E=[],G=B.map(a=>{let b=C.get(a);return b||s.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&E.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&s.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&s.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)}}),H=G.filter(a=>a.exists).length,I=G.filter(a=>a.exists&&!a.indexed).length;H>0&&I===H?s.push({level:"error",message:`模板绑定的项目资料包(${H} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):s.push(...E);let J=A(w),K=new Set(v?.promptRoles.map(a=>a.roleId)||[]);for(let a of v?.promptRoles||[]){let b=t.find(b=>b.id===a.roleId);if(!b){s.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&s.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let L=w.map(a=>{let b=t.find(b=>b.id===a.roleId),c=J.find(b=>b.id===a.promptId);return b||s.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),K.has(a.roleId)||s.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||s.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&s.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}}),M=(v?.promptRoles||[]).map(a=>{let b=t.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=w.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(J.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(J.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))s.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(r){let a=f||(0,l.P)(y,{requirement:d.requirement,boundFilePaths:B}),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)s.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)s.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,p.q6)(r.exportSettings||r.generationSettings),h=(0,p.py)(d.requirement||""),i=(0,p.py)(J.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),s=Math.round(n||o||1200*e.length),t=B.reduce((a,b)=>a+(C.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:u}=await c.e(9197).then(c.bind(c,79227));j=u({template:r,chapters:e,requirement:d.requirement,materialFileCount:B.length,evidenceCount:t,targetWords:s,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:(0,q.z)().chapterConcurrency||0})}catch{}return{templateId:a,projectRoleConfigId:u,configName:v?.name,fileDiagnostics:G,promptDiagnostics:L,roleDiagnostics:M,readiness:g,issues:s,strategyPreview:j}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(a),g=(0,h.Yy)(d),i=JSON.stringify({templateId:a,templateVersion:f?.version??0,templateUpdatedAt:f?.updatedAt??0,projectRoot:d,requirement:c.requirement??"",fileCount:g.length,lastFileMtime:g.reduce((a,b)=>Math.max(a,b.mtime),0)}),j=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...b,id:`${b.id}-copy-${c}`,name:`${b.name} Copy`,builtIn:!1,version:1,updatedAt:c,changeLog:[{version:1,timestamp:c,summary:`从 ${b.id} v${b.version||1} 复制`}]}),e=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,j.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(a){let b=new Set,c=[];for(let d of a){let a=`${d.roleId}:${d.promptId}`;!d.promptId||!d.roleId||b.has(a)||(b.add(a),c.push(d))}return c}function Q(a){let b=O(a);if(!b)return[];let c=(0,i.XB)("prompt"),d=[];for(let a of[...b.promptRoles].sort((a,b)=>a.order-b.order)){let b=c.find(b=>b.id===a.roleId),e=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[];b&&0!==e.length&&d.push(...e.map(a=>({promptId:a,roleId:b.id})))}return P(d)}},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台;”式参数堆砌。严禁出现工程量清单计价表内部口径词:分部小计、本页小计、合计、小计、按实、暂估、综合单价、措施项目费、规费、税金(这些是清单计价表专用标记,正式正文一律不得出现;“措施项目”作为专业工程类别名称可用,但不得与“清单/计价/费”连用)。施工方法写法样例(句式参照,内容按本项目事实替换):“配电箱采用挂墙方式安装,箱体中心距地1.5m,盘面垂直度偏差不超过1.5/1000;柜内元器件按系统图接线,导线分色标识,接线紧固力矩按规格控制;安装完成后进行绝缘电阻测试并形成通电试运行记录。”至少形成 5 个施工工作包,工作包必须来自绑定材料证据。",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))}},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}}},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:`本次文档系统性差异化设定(全文一以贯之,除非与模板锁定小节冲突):
17
+ ${i}`.trim()}let s=new Set(["施工准备","施工要点","质量控制","质量要求","质量保证措施","质量控制措施","质量通病防治","安全措施","安全要求","安全管理措施","安全技术交底","技术交底","注意事项","验收要求","验收标准","成品保护","环境保护","文明施工","进度控制","工期保障","材料管理","机械管理","人员管理","组织管理","应急预案","应急措施","劳动力配置","机械设备配置","施工概况","施工流程","施工方法"]),t=/^(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)[、..\s::-]/u,u=/主要分部分项工程施工方案|项目主要施工内容/u;function v(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1)/^##\s+/u.test(b[a].trim())&&c.push(a);if(0===c.length)return a;let d=new Set;for(let a=0;a<c.length;a+=1){let e=c[a],f=c[a+1]??b.length,g=new Set,h=[],i="";for(let a=e;a<f;a+=1){let c=/^(#{3,4})\s+(.+)$/u.exec(b[a].trim());if(!c)continue;let d=c[2].trim(),e=l(d);e&&(3===c[1].length?(g.add(e),i=e):h.push({line:a,name:e,rawTitle:d,parentH3:i}))}let j=new Map;for(let a of h){let c=j.get(a.name);j.set(a.name,a.line);let e=t.test(a.rawTitle),h=u.test(a.parentH3),i=g.has(a.name)&&!e&&!h,k=s.has(a.name);if(!(i||!k&&void 0!==c))continue;let l=f;for(let c=a.line+1;c<f;c+=1)if(/^#{2,4}\s+/u.test(b[c].trim())){l=c;break}for(let b=a.line;b<l;b+=1)d.add(b)}}return 0===d.size?a:b.filter((a,b)=>!d.has(b)).join("\n")}function w(a,b,c={}){if(!c.fuzzy){let c=x(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||x(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=y(b).replace(/\s+/gu,"").toLowerCase(),g=[],h=-1,i=0,j=!1,k=a=>{if(h<0)return;let b=c.slice(h,a).join("\n").trim();b&&g.push(b),h=-1,i=0,j=!1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,4}\s+/u.test(c[a]))continue;let e=/^\s*(#{2,4})\s+/u.exec(c[a])?.[1].length||3;if(h>=0&&(j||3===i)&&4===e)continue;k(a);let g=y(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||A(c[a],b))&&(h=a+1,i=e,j=e<=4&&f.test(c[a]))}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function x(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let g=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,h=4===g&&f.test(b),i=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=g&&!(h&&b[1].length===g)){i=a;break}}return d.slice(e,i).join("\n")}function y(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function z(a){return y(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function A(a,b){let c=z(a),d=z(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function B(a,b,c){let d=[...new Set(b.filter(Boolean))];if(0===d.length)return a;let e=3===c?/^\s*###\s+/u:4===c?/^\s*####\s+/u:/^\s*#{3,4}\s+/u,f=new Set;return a.split("\n").map(a=>{if(!e.test(a))return a;let b=y(a);if(!b)return a;let c=d.find(a=>!f.has(a)&&A(b,a));if(!c||c===b)return a;let g=/^(\s*#{3,4}\s+)/u.exec(a)?.[1];return g?(f.add(c),`${g}${c}`):a}).join("\n")}function C(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function D(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function E(a){if(a?.aborted)throw Error("用户中止")}function F(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let G=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标","异常低价","评标基准价"];function H(a){return!!(G.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}function I(a){return/否决[^。;\n]{0,8}投标|废标(?!准)|无效投标|投标无效|不予评审|取消[^。;\n]{0,6}投标资格/u.test(a)}function J(a){return a.filter(a=>!H(`${a.key||""} ${String(a.value)}`))}async function K(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 L{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},23500:(a,b,c)=>{c.d(b,{bj:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});var d=c(73024),e=c(76760),f=c(48161),g=c(77598),h=c(44533),i=c(25840),j=c(8753),k=c(6444),l=c(85441),m=c(92808),n=c(56942),o=c(2773),p=c(78217),q=c(80572);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(a){let{version:b,updatedAt:c,changeLog:d,...e}=a;return(0,g.createHash)("sha256").update(function a(b){return Array.isArray(b)?`[${b.map(a).join(",")}]`:b&&"object"==typeof b?`{${Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`:JSON.stringify(b)}(e)).digest("hex")}function u(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"文档",version:Number.isFinite(a.version)&&a.version>0?Math.floor(a.version):1,updatedAt:Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),changeLog:Array.isArray(a.changeLog)?a.changeLog.filter(a=>a&&"object"==typeof a&&Number.isFinite(a.version)&&"string"==typeof a.summary).slice(0,50):[],projectRoleConfigId:a.projectRoleConfigId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[],sections:Array.isArray(a.sections)?a.sections.filter(Boolean):[],tableSections:Array.isArray(a.tableSections)?a.tableSections.filter(Boolean):[],tableRequirements:Array.isArray(a.tableRequirements)?a.tableRequirements.filter(Boolean):[],tablePlans:Array.isArray(a.tablePlans)?a.tablePlans:[],pinnedEvidenceFilePaths:Array.isArray(a.pinnedEvidenceFilePaths)?a.pinnedEvidenceFilePaths.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"文档",purpose:a.description||"",queries:[],requiredFacts:[]}],exportSettings:a.exportSettings,generationSettings:a.generationSettings,promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],projectBindings:Array.isArray(a.projectBindings)?a.projectBindings.filter(a=>a.materialRootPath).map(a=>({materialRootPath:a.materialRootPath.replace(/^\/+|\/+$/gu,"")})):(0,o.qp)(a),promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],builtIn:!1}}function v(){try{let a=s();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));if(!Array.isArray(b))return d.renameSync(a,`${a}.corrupt-${Date.now()}`),[];return b.map(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"prompts.json"),"utf-8"));return Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{return[]}}();if(a.startsWith("custom:")){let c=b.find(b=>b.id===a);return c?{id:a,name:c.name,content:c.content,source:"custom"}:void 0}if(a.startsWith("file:")){let b=a.slice(5);if(d.existsSync(b))return{id:a,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8"),source:"file"}}}function A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(a),e=[],f=[];if(b)for(let a of b.promptRoles){let b=c.find(b=>b.id===a.roleId);if(!b){e.push(a.roleId);continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&f.push(a.roleId)}let g=P(d),h=[];for(let a of g){let d=z(a.promptId);if(!d)continue;let e=c.find(b=>b.id===a.roleId),f=b?.promptRoles.find(b=>b.roleId===a.roleId),g=e?.executionType||function(a){var b;return b=a,/extract|extraction|抽取|清单|图纸|品牌/u.test(b)?"fact_extraction":/validation|校验|审查|审核/u.test(b)?"validation":/format|排版/u.test(b)?"formatting":/writer|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(b)?"chapter_generation":"reference"}(a.roleId),i=function(a,b,c=""){let d=`${a} ${b} ${c}`;return/extract|extraction|抽取|清单|图纸|品牌|识别/u.test(d)?"extraction":/format|排版/u.test(d)?"formatting":/总控|writer|施工组织设计总控|写作主控/u.test(d)?"writer":/chapter_generation|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(d)?"chapter":"reference"}(a.roleId,g,d.name),j=`projectRole:${b?.id||"unknown"}:${a.roleId}:order=${f?.order??0}`;h.push({...d,roleId:a.roleId,contentHash:x(d.content),contentPreview:y(d.content),executionType:g,category:i,bindingSource:j,roleConfigId:b?.id,roleName:e?.name,order:f?.order})}return{bindings:g,prompts:h,writerPrompts:h.filter(a=>"writer"===a.category),chapterPrompts:h.filter(a=>"chapter"===a.category),extractionPrompts:h.filter(a=>"extraction"===a.category),formattingPrompts:h.filter(a=>"formatting"===a.category),referencePrompts:h.filter(a=>"reference"===a.category),unresolvedRoles:[...new Set(e)],missingResourceRoles:[...new Set(f)]}}function C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(d)){b=(e.version||0)+1;let a=d.chapters.map(a=>a.title).join("、");c=[{version:b,timestamp:f,summary:a?`章节结构调整:${a.slice(0,80)}${a.length>80?"…":""}`:"模版内容已更新"},...e.changeLog||[]].slice(0,50)}else e?(b=e.version||1,c=e.changeLog||[]):(b=1,c=[{version:1,timestamp:f,summary:"创建模版"}]);let g={...d,version:b,updatedAt:f,changeLog:c},h=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r=D(a),s=[];if(!r)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let t=(0,i.XB)("prompt"),u=N(r),v=O(r);u||s.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),u&&!v&&s.push({level:"error",message:`项目角色配置不存在或已删除:${u}`}),r.promptIds?.length&&s.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),r.promptBindings?.length&&s.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let w=Q(r),x=(0,o.qp)(r);v&&0===v.promptRoles.length&&s.push({level:"error",message:"项目角色配置未配置提示词角色。"}),v&&v.promptRoles.length>0&&0===w.length&&s.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let y=e.resolve(b),z=(0,h.Yy)(y),B=function(a,b){if(0===a.length)return[];let c=new Set(b.map(a=>a.relativePath)),d=[],e=new Set;for(let f of a){let a=f.materialRootPath.replace(/^\/+|\/+$/gu,"");for(let f of c.has(a)?[a]:b.filter(b=>{var c;return b.relativePath.startsWith(`${a}/`)&&"disk"!==(c=b).status&&"error"!==c.status&&Number(c.indexedAt||0)>0&&Number(c.chunkCount||0)>0}).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(x,z);if(0===x.length?s.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===B.length&&s.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),r&&(f=(0,l.P)(y,{requirement:d.requirement,boundFilePaths:B}),0===x.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=s.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&s.splice(a,1)}let C=new Map(z.map(a=>[a.relativePath,a])),E=[],G=B.map(a=>{let b=C.get(a);return b||s.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&E.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&s.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&s.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)}}),H=G.filter(a=>a.exists).length,I=G.filter(a=>a.exists&&!a.indexed).length;H>0&&I===H?s.push({level:"error",message:`模板绑定的项目资料包(${H} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):s.push(...E);let J=A(w),K=new Set(v?.promptRoles.map(a=>a.roleId)||[]);for(let a of v?.promptRoles||[]){let b=t.find(b=>b.id===a.roleId);if(!b){s.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&s.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let L=w.map(a=>{let b=t.find(b=>b.id===a.roleId),c=J.find(b=>b.id===a.promptId);return b||s.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),K.has(a.roleId)||s.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||s.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&s.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}}),M=(v?.promptRoles||[]).map(a=>{let b=t.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=w.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(J.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(J.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))s.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(r){let a=f||(0,l.P)(y,{requirement:d.requirement,boundFilePaths:B}),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)s.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)s.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,p.q6)(r.exportSettings||r.generationSettings),h=(0,p.py)(d.requirement||""),i=(0,p.py)(J.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),s=Math.round(n||o||1200*e.length),t=B.reduce((a,b)=>a+(C.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:u}=await c.e(5928).then(c.bind(c,79227));j=u({template:r,chapters:e,requirement:d.requirement,materialFileCount:B.length,evidenceCount:t,targetWords:s,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:(0,q.z)().chapterConcurrency||0})}catch{}return{templateId:a,projectRoleConfigId:u,configName:v?.name,fileDiagnostics:G,promptDiagnostics:L,roleDiagnostics:M,readiness:g,issues:s,strategyPreview:j}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(a),g=(0,h.Yy)(d),i=JSON.stringify({templateId:a,templateVersion:f?.version??0,templateUpdatedAt:f?.updatedAt??0,projectRoot:d,requirement:c.requirement??"",fileCount:g.length,lastFileMtime:g.reduce((a,b)=>Math.max(a,b.mtime),0)}),j=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...b,id:`${b.id}-copy-${c}`,name:`${b.name} Copy`,builtIn:!1,version:1,updatedAt:c,changeLog:[{version:1,timestamp:c,summary:`从 ${b.id} v${b.version||1} 复制`}]}),e=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,j.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(a){let b=new Set,c=[];for(let d of a){let a=`${d.roleId}:${d.promptId}`;!d.promptId||!d.roleId||b.has(a)||(b.add(a),c.push(d))}return c}function Q(a){let b=O(a);if(!b)return[];let c=(0,i.XB)("prompt"),d=[];for(let a of[...b.promptRoles].sort((a,b)=>a.order-b.order)){let b=c.find(b=>b.id===a.roleId),e=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[];b&&0!==e.length&&d.push(...e.map(a=>({promptId:a,roleId:b.id})))}return P(d)}},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台;”式参数堆砌。严禁出现工程量清单计价表内部口径词:分部小计、本页小计、合计、小计、按实、暂估、综合单价、措施项目费、规费、税金(这些是清单计价表专用标记,正式正文一律不得出现;“措施项目”作为专业工程类别名称可用,但不得与“清单/计价/费”连用)。施工方法写法样例(句式参照,内容按本项目事实替换):“配电箱采用挂墙方式安装,箱体中心距地1.5m,盘面垂直度偏差不超过1.5/1000;柜内元器件按系统图接线,导线分色标识,接线紧固力矩按规格控制;安装完成后进行绝缘电阻测试并形成通电试运行记录。”至少形成 5 个施工工作包,工作包必须来自绑定材料证据。",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))}},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}}},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:`本次文档系统性差异化设定(全文一以贯之,除非与模板锁定小节冲突):
18
18
  - 组织主线:${h.prompt}。
19
19
  - 命名风格:${m.prompt}。
20
20
  同一文档内不得混用多种命名风格。`}}function m(){let a=process.env.CUSTOMIZE_AGENT_HOME?f.join(process.env.CUSTOMIZE_AGENT_HOME,".customize-agent"):f.join(e.homedir(),".customize-agent");return f.join(a,"diversity-history.json")}function n(a){try{let b=m();if(!d.existsSync(b))return[];let c=JSON.parse(d.readFileSync(b,"utf8")),e=c?.history?.[a];return Array.isArray(e)?e.filter(a=>"string"==typeof a):[]}catch{return[]}}function o(a,b){try{let c=m();d.mkdirSync(f.dirname(c),{recursive:!0});let e={version:1,history:{}};if(d.existsSync(c))try{let a=JSON.parse(d.readFileSync(c,"utf8"));a&&"object"==typeof a&&a.history&&"object"==typeof a.history&&(e={version:1,history:a.history})}catch{}let g=(e.history[a]||[]).filter(a=>a!==b);e.history[a]=[b,...g].slice(0,12),d.writeFileSync(c,JSON.stringify(e,null,2),"utf8")}catch(a){console.error(`[diversity] 画像历史写入失败(不阻断生成):${a instanceof Error?a.message:String(a)}`)}}},37047:(a,b,c)=>{c.d(b,{Bd:()=>l,Eh:()=>h,Iu:()=>g,Mv:()=>o,VN:()=>f});var d=c(19898);let e=null;function f(){return e||(e=new d.LocalTransformersEmbeddingProvider({})),e}async function g(){if("1"!==process.env.DOCUMENT_SKIP_EMBED_PREFLIGHT)try{await f().embedQuery("生成前置检查")}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`本地语义模型预热失败(生成前置检查,可用 DOCUMENT_SKIP_EMBED_PREFLIGHT=1 跳过):${a}`,{cause:b})}}let h=.6,i=new Map,j=0,k=0;function l(){return{embedCacheHits:j,embedCacheMisses:k}}async function m(a,b){let c=b?await b(a):await f().embedDocuments(a);if(c.length!==a.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${a.length} 条,实际 ${c.length} 条`);return c}async function n(a,b){if("0"===process.env.DOCUMENT_EMBED_CACHE)return m(a,b);let c=Array(a.length),d=[],e=new Map;for(let b=0;b<a.length;b+=1){let f=a[b];if(f.length<=2e3){let a=i.get(f);if(a){c[b]=a,j+=1,i.delete(f),i.set(f,a);continue}}let g=e.get(f);g?g.push(b):(e.set(f,[b]),d.push(f))}if(0===d.length)return c;let f=await m(d,b),g=function(){let a=Number(process.env.DOCUMENT_EMBED_CACHE_SIZE||4e4);return Number.isFinite(a)&&a>0?a:4e4}();for(let a=0;a<d.length;a+=1){let b=d[a],h=f[a],j=e.get(b);for(let a of j)c[a]=h;if(b.length<=2e3&&(k+=j.length,i.set(b,h),i.size>g)){let a=i.keys().next().value;void 0!==a&&i.delete(a)}}return c}async function o(a,b,c){if(0===a.length||0===b.length)return()=>0;let d=[...a,...b],e=await n(d,c),f=new Map;for(let a=0;a<d.length;a++)f.has(d[a])||f.set(d[a],e[a]);return(a,b)=>{let c=f.get(a),d=f.get(b);if(!c||!d)return 0;let e=Math.min(c.length,d.length),g=0;for(let a=0;a<e;a++)g+=c[a]*d[a];return g}}},38115:(a,b,c)=>{c.d(b,{G8:()=>n,JG:()=>i,SX:()=>l,UW:()=>j,qL:()=>m});var d=c(95734),e=c(70208),f=c(40299),g=c(36366),h=c(31129);function i(a){return(0,e.nz)(String(a||"")).replace(/[\s()()::.。;;,,、\-—·]/gu,"")}function j(a,b){let c=String(a||"").trim(),d=String(b||"").trim();if(!c)return d;if(!d)return c;let e=Math.min(c.length,d.length);for(let a=e;a>0;a-=1)if(c.slice(-a)===d.slice(0,a))return`${c.slice(0,-a)}${d}`;return`${c}${d}`}let k=["一","二","三","四","五","六","七","八","九","十"];function l(a){let b=a.map(a=>i(a.title)),c=new Map;for(let a of b)c.set(a,(c.get(a)||0)+1);let d=new Set,f=[];for(let g=0;g<a.length;g+=1){let h=a[g],l=String(h.title||"").trim();if((c.get(b[g])||0)>1){let a=String(h.owner||"").trim(),b=i(a);b&&!i(l).startsWith(b)&&(l=j(a,(0,e.nz)(l)))}let m=l,n=1;for(;d.has(i(m));)n+=1,m=`${l}(${k[n-1]||n})`;d.add(i(m)),f.push(m)}return f}function m(a){let b=(0,e.nz)(String(a||"")).replace(/\s+/gu,"");return!!(b.length<4||/^(.{2,5})\1$/u.test(b)||/(.)\1/u.test(b))}async function n(a){let b,c=a.blocks.map(a=>a.title),j=a.fingerprintPool?(0,h.F$)(c,a.fingerprintPool,{excludeDocumentId:a.excludeDocumentId}):[],k=c.filter(a=>m(a)),l=[...new Set([...j.map(a=>a.title),...k])];if(0===l.length)return{titles:c,renamed:0,summary:null};try{let c=await (0,d.bb)([(0,f.y4)("你是施工组织设计目录命名审查专家。"),"输入某章的小节标题清单与点名需改名的标题(与历史文档撞名或命名退化),只输出改名映射。","改名规则:只改点名标题,不改未点名标题;新标题必须仍是同一专业对象或同一工程内容的具体表述,不得改变小节实质;16 个汉字以内;不得仅通过添加“工作/内容/相关/方案”等尾词规避撞名,必须实质性更换措辞;不得与本章其他小节标题用词高度相似(防章内撞名)。",a.profile?a.profile.prompt:"","只返回 JSON。"].filter(Boolean).join("\n"),[`章标题:${a.chapterTitle}`,`本章小节清单:
@@ -33,7 +33,7 @@ ${c}`;let g=e.find(a=>(a.index||0)>(f.index||0)),h=g?.index??a.length;return`${a
33
33
 
34
34
  ${c}
35
35
 
36
- ${a.slice(h).trimStart()}`}(c,a);return c}(a,b);for(let a of(b.forbidCover&&(c=ai(c)),b.forbidToc&&(c=aj(c)),b.preferredTerms||[]))if(a.from&&a.from!==a.to&&!(a.from.length<2)){if("施工方"===a.from){c=c.replace(/施工方(?!法|案|式|针|向|面)/gu,a.to);continue}c=c.replace(RegExp(ao(a.from),"gu"),a.to)}return(c=am(c,b)).replace(/\n{3,}/gu,"\n\n").trim()}function ao(a){return a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function ap(a){return/\|[^\n]+\|\s*\n\s*\|\s*:?-{3,}:?\s*\|/u.test(a)}function aq(a){return(0,g.GQ)(a.replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").replace(/[()]/gu,a=>"("===a?"(":")").replace(/[\s::.。;;,,、]+$/gu,"").replace(/的(?=保障体系|管理体系|控制体系|措施|方案|计划|要求)/gu,"").replace(/[\s()()::.。;;,,、-]/gu,"").trim()}function ar(a){return a.chapters.map(a=>[`- ${a.title}`,a.sections?.length?` 规划小节:${a.sections.join("、")}`:"",a.tableSections?.length?` 表格小节:${a.tableSections.join("、")}`:"",a.tableRequirements?.length?` 表格内容要求:${a.tableRequirements.join(";")}`:"",a.tablePlans?.length?` 结构化表格规划:${a.tablePlans.map(a=>`${a.title}(${a.fields.map(a=>a.name).join("/")})`).join(";")}`:""].filter(Boolean).join("\n")).join("\n")}async function as(a,b,c){if(!b)return[];let d=[],e=[...a.matchAll(p)].map(a=>(a[0]||"").replace(/^#{2,6}\s+/u,"").trim()).filter(Boolean),f=RegExp(p.source,"mu"),h=[...a.matchAll(/^#{2,6}\s+(.+)$/gmu)].map(a=>({raw:a[0]||"",title:a[1]?.replace(/^\d+(?:\.\d+)*[、..\s]*\s*/u,"").trim()||""})).filter(a=>a.title&&!f.test(a.raw)&&r.test(a.title));if(h.length>0){let a=await u(c),b=await a(h.map(a=>a.title));h.forEach((a,c)=>{b[c]&&e.push(a.title)})}e.length>0&&d.push({level:"error",message:`正文存在疑似提示词指令标题:${e.slice(0,5).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题。"});let i=/document-cover|^#\s+/mu.test(a),j=/^##\s+目录\s*$/mu.test(a);"required"!==b.coverPolicy||i||d.push({level:"error",message:"正文缺少提示词要求的封面",suggestion:"用户明确要求封面时,应保留封面内容。"}),"required"!==b.tocPolicy||j||d.push({level:"error",message:"正文缺少提示词要求的目录",suggestion:"用户明确要求目录时,应基于最终合法正文标题生成目录。"}),b.forbidCover&&i&&d.push({level:"error",message:"正文残留封面内容",suggestion:"总控提示词禁止封面时,正式正文必须直接进入第一章。"}),b.forbidToc&&j&&d.push({level:"error",message:"正文残留目录内容",suggestion:"总控提示词禁止目录时,正式正文不得生成目录或导航页。"});let k=(b.requiredTables||[]).filter(b=>!RegExp(ao(b),"u").test(a)||!function(a,b){let c=a.search(RegExp(ao(b),"u"));return!(c<0)&&ap(a.slice(c,Math.min(a.length,c+1600)))}(a,b));k.length>0&&d.push({level:"error",message:`正文缺少总控提示词要求的正式表格:${k.join("、")}`,suggestion:"请在对应章节补齐表名、表头、分隔线和数据行,不得只写表名或空表。"});let l=(b.requiredKeywords||[]).filter(b=>b&&!RegExp(ao(b),"u").test(a));l.length>0&&d.push({level:"warning",message:`正文缺少提示词要求覆盖的关键词:${l.join("、")}`,suggestion:"请在相关章节自然补齐这些要点,避免堆砌关键词。"});let m=(b.forbiddenPatterns||[]).filter(b=>b&&RegExp(ao(b),"u").test(a));m.length>0&&d.push({level:"warning",message:`正文出现提示词禁止内容:${m.join("、")}`,suggestion:"请删除或替换为正式交付表述。"});let n=(b.forbiddenTerms||[]).filter(b=>b&&!/^(?:工程造价|造价|报价|投标报价|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|兜底)$/u.test(b)&&RegExp(ao(b),"u").test(a));n.length>0&&d.push({level:"warning",message:`正文残留总控提示词禁止词:${n.join("、")}`,suggestion:"请改为正式交付语言,删除后台话术、第三人称和口号式表达。"});let o=b.exactHeadings||[];if(o.length>0){let c=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>(0,g.GQ)(a[1]||"")).filter(a=>("目录"!==a||"required"!==b.tocPolicy)&&!/^附录/u.test(a)),e=o.map(g.GQ),f=o.filter(a=>!c.includes((0,g.GQ)(a))),h=b.forbidExtraHeadings?c.filter(a=>!e.includes((0,g.GQ)(a))):[];f.length>0&&d.push({level:"error",message:`正文缺少提示词指定一级章节:${f.join("、")}`,suggestion:"请严格按用户提示词 OUTLINE 输出一级章节。"}),h.length>0&&d.push({level:"warning",message:`正文出现提示词未允许的一级章节:${h.join("、")}`,suggestion:"请检查是否为正文内部层级误升;如不影响指定 OUTLINE 完整性,可在后续排版中并入所属章节。"})}let q=(b.forbiddenSubjects||[]).filter(b=>b&&RegExp(ao(b),"u").test(a));q.length>0&&d.push({level:"warning",message:`正文残留禁用主体表达:${q.join("、")}`,suggestion:"请统一改为用户提示词指定的表达主体。"});let s=a.replace(/\s/gu,"").length;return b.minChars&&s<Math.floor(.95*b.minChars)&&d.push({level:"warning",message:`正文长度低于提示词要求:当前 ${s} 字,要求不少于 ${b.minChars} 字`,suggestion:"请按章节深度扩写,但不得编造资料外事实。"}),d.map(a=>"warning"===a.level&&/提示词|禁止|禁用|必含关键词|必需表格|主体表达/u.test(a.message)?{...a,level:"error",severity:a.severity||"blocker"}:a)}function at(a,b){let c=[];for(let d of b.chapters){let b=function(a,b){let c=(0,g.YZ)(b),d=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>({index:a.index||0,raw:a[0],title:(0,g.YZ)(a[1]||"")})),e=d.find(a=>a.title===c);if(!e)return;let f=d.find(a=>a.index>e.index&&a.title!==c),h=e.index+e.raw.length,i=f?.index??a.length;return{start:e.index,end:i,heading:e.raw,body:a.slice(h,i)}}(a,d.title);if(!b){c.push({level:"error",message:`${d.title} 正文缺少章节标题`,suggestion:"请重新生成,确保模板章节完整输出。"});continue}let e=b.heading+b.body;d.tableSections?.length&&!ap(e)&&c.push({level:"warning",category:"table",message:`${d.title} 缺少必要的正式表格`,suggestion:"建议按模板 tableSections/tableRequirements 在对应小节补充正式 Markdown 表格。"})}return c}function au(a){let b=[...a.matchAll(/^##\s+.+$/gmu)];if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,f=b[d+1]?.index??a.length,g=a.slice(e,f),h=[...g.matchAll(/^###\s+(\d+)\.(\d+)\s+.+$/gmu)];if(h.length<2){c+=g;continue}let i=h[0].index||0;c+=g.slice(0,i)+h.map((a,b)=>{let c=a.index||0,d=h[b+1]?.index??g.length;return{order:Number(a[2]||b+1),content:g.slice(c,d).trim()}}).sort((a,b)=>a.order-b.order).map(a=>a.content).join("\n\n")+"\n\n"}return c.replace(/\n{3,}/gu,"\n\n").trim()}function av(a,b,c={}){let d=an(k(a,!!c.forbidDrawingImages),c.promptRules),e=au(function(a){let b=[...a.matchAll(/^##\s+(.+)$/gmu)].filter(a=>/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(a[1]||""));if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,f=b[d+1]?.index??a.length,h=a.slice(e,f),i=[...h.matchAll(/^###\s+(\d+)\.(\d+)\s+(.+)$/gmu)];if(1!==i.length){c+=h;continue}let j=i[0],k=(0,g.GQ)((b[d][1]||"").replace(/^第[一二三四五六七八九十百千万\d]+章\s*/u,"")),l=(0,g.GQ)(j[3]||""),m=j.index||0,n=[...h.slice(m).matchAll(/^####\s+\d+\.\d+\.\d+\s+(.+)$/gmu)];if(n.length<2||!Z(l,k)){c+=h;continue}let o=h.slice(0,m).trimEnd(),p=h.slice(m),q=p.search(/^####\s+/mu),r=q>0?p.slice(j[0].length,q).trim():"",s=n.map((a,b)=>{let c=a.index||0,e=n[b+1]?.index??p.length,f=(0,g.GQ)(a[1]||""),h=p.slice(c+a[0].length,e).trim(),i=`### ${d+1}.${b+1} ${f}`;return`${i}
36
+ ${a.slice(h).trimStart()}`}(c,a);return c}(a,b);for(let a of(b.forbidCover&&(c=ai(c)),b.forbidToc&&(c=aj(c)),b.preferredTerms||[]))if(a.from&&a.from!==a.to&&!(a.from.length<2)){if("施工方"===a.from){c=c.replace(/施工方(?!法|案|式|针|向|面)/gu,a.to);continue}c=c.replace(RegExp(ao(a.from),"gu"),a.to)}return(c=am(c,b)).replace(/\n{3,}/gu,"\n\n").trim()}function ao(a){return a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function ap(a){return/\|[^\n]+\|\s*\n\s*\|\s*:?-{3,}:?\s*\|/u.test(a)}function aq(a){return(0,g.GQ)(a.replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").replace(/[()]/gu,a=>"("===a?"(":")").replace(/(?:\s*\(\s*(?:\d{1,3}|[一二三四五六七八九十]{1,3})\s*\))+\s*$/u,"").replace(/[\s::.。;;,,、]+$/gu,"").replace(/的(?=保障体系|管理体系|控制体系|措施|方案|计划|要求)/gu,"").replace(/[\s()()::.。;;,,、-]/gu,"").trim()}function ar(a){return a.chapters.map(a=>[`- ${a.title}`,a.sections?.length?` 规划小节:${a.sections.join("、")}`:"",a.tableSections?.length?` 表格小节:${a.tableSections.join("、")}`:"",a.tableRequirements?.length?` 表格内容要求:${a.tableRequirements.join(";")}`:"",a.tablePlans?.length?` 结构化表格规划:${a.tablePlans.map(a=>`${a.title}(${a.fields.map(a=>a.name).join("/")})`).join(";")}`:""].filter(Boolean).join("\n")).join("\n")}async function as(a,b,c){if(!b)return[];let d=[],e=[...a.matchAll(p)].map(a=>(a[0]||"").replace(/^#{2,6}\s+/u,"").trim()).filter(Boolean),f=RegExp(p.source,"mu"),h=[...a.matchAll(/^#{2,6}\s+(.+)$/gmu)].map(a=>({raw:a[0]||"",title:a[1]?.replace(/^\d+(?:\.\d+)*[、..\s]*\s*/u,"").trim()||""})).filter(a=>a.title&&!f.test(a.raw)&&r.test(a.title));if(h.length>0){let a=await u(c),b=await a(h.map(a=>a.title));h.forEach((a,c)=>{b[c]&&e.push(a.title)})}e.length>0&&d.push({level:"error",message:`正文存在疑似提示词指令标题:${e.slice(0,5).join("、")}`,suggestion:"请删除或改写为正式施工组织设计小节标题。"});let i=/document-cover|^#\s+/mu.test(a),j=/^##\s+目录\s*$/mu.test(a);"required"!==b.coverPolicy||i||d.push({level:"error",message:"正文缺少提示词要求的封面",suggestion:"用户明确要求封面时,应保留封面内容。"}),"required"!==b.tocPolicy||j||d.push({level:"error",message:"正文缺少提示词要求的目录",suggestion:"用户明确要求目录时,应基于最终合法正文标题生成目录。"}),b.forbidCover&&i&&d.push({level:"error",message:"正文残留封面内容",suggestion:"总控提示词禁止封面时,正式正文必须直接进入第一章。"}),b.forbidToc&&j&&d.push({level:"error",message:"正文残留目录内容",suggestion:"总控提示词禁止目录时,正式正文不得生成目录或导航页。"});let k=(b.requiredTables||[]).filter(b=>!RegExp(ao(b),"u").test(a)||!function(a,b){let c=a.search(RegExp(ao(b),"u"));return!(c<0)&&ap(a.slice(c,Math.min(a.length,c+1600)))}(a,b));k.length>0&&d.push({level:"error",message:`正文缺少总控提示词要求的正式表格:${k.join("、")}`,suggestion:"请在对应章节补齐表名、表头、分隔线和数据行,不得只写表名或空表。"});let l=(b.requiredKeywords||[]).filter(b=>b&&!RegExp(ao(b),"u").test(a));l.length>0&&d.push({level:"warning",message:`正文缺少提示词要求覆盖的关键词:${l.join("、")}`,suggestion:"请在相关章节自然补齐这些要点,避免堆砌关键词。"});let m=(b.forbiddenPatterns||[]).filter(b=>b&&RegExp(ao(b),"u").test(a));m.length>0&&d.push({level:"warning",message:`正文出现提示词禁止内容:${m.join("、")}`,suggestion:"请删除或替换为正式交付表述。"});let n=(b.forbiddenTerms||[]).filter(b=>b&&!/^(?:工程造价|造价|报价|投标报价|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|兜底)$/u.test(b)&&RegExp(ao(b),"u").test(a));n.length>0&&d.push({level:"warning",message:`正文残留总控提示词禁止词:${n.join("、")}`,suggestion:"请改为正式交付语言,删除后台话术、第三人称和口号式表达。"});let o=b.exactHeadings||[];if(o.length>0){let c=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>(0,g.GQ)(a[1]||"")).filter(a=>("目录"!==a||"required"!==b.tocPolicy)&&!/^附录/u.test(a)),e=o.map(g.GQ),f=o.filter(a=>!c.includes((0,g.GQ)(a))),h=b.forbidExtraHeadings?c.filter(a=>!e.includes((0,g.GQ)(a))):[];f.length>0&&d.push({level:"error",message:`正文缺少提示词指定一级章节:${f.join("、")}`,suggestion:"请严格按用户提示词 OUTLINE 输出一级章节。"}),h.length>0&&d.push({level:"warning",message:`正文出现提示词未允许的一级章节:${h.join("、")}`,suggestion:"请检查是否为正文内部层级误升;如不影响指定 OUTLINE 完整性,可在后续排版中并入所属章节。"})}let q=(b.forbiddenSubjects||[]).filter(b=>b&&RegExp(ao(b),"u").test(a));q.length>0&&d.push({level:"warning",message:`正文残留禁用主体表达:${q.join("、")}`,suggestion:"请统一改为用户提示词指定的表达主体。"});let s=a.replace(/\s/gu,"").length;return b.minChars&&s<Math.floor(.95*b.minChars)&&d.push({level:"warning",message:`正文长度低于提示词要求:当前 ${s} 字,要求不少于 ${b.minChars} 字`,suggestion:"请按章节深度扩写,但不得编造资料外事实。"}),d.map(a=>"warning"===a.level&&/提示词|禁止|禁用|必含关键词|必需表格|主体表达/u.test(a.message)?{...a,level:"error",severity:a.severity||"blocker"}:a)}function at(a,b){let c=[];for(let d of b.chapters){let b=function(a,b){let c=(0,g.YZ)(b),d=[...a.matchAll(/^##\s+(.+)$/gmu)].map(a=>({index:a.index||0,raw:a[0],title:(0,g.YZ)(a[1]||"")})),e=d.find(a=>a.title===c);if(!e)return;let f=d.find(a=>a.index>e.index&&a.title!==c),h=e.index+e.raw.length,i=f?.index??a.length;return{start:e.index,end:i,heading:e.raw,body:a.slice(h,i)}}(a,d.title);if(!b){c.push({level:"error",message:`${d.title} 正文缺少章节标题`,suggestion:"请重新生成,确保模板章节完整输出。"});continue}let e=b.heading+b.body;d.tableSections?.length&&!ap(e)&&c.push({level:"warning",category:"table",message:`${d.title} 缺少必要的正式表格`,suggestion:"建议按模板 tableSections/tableRequirements 在对应小节补充正式 Markdown 表格。"})}return c}function au(a){let b=[...a.matchAll(/^##\s+.+$/gmu)];if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,f=b[d+1]?.index??a.length,g=a.slice(e,f),h=[...g.matchAll(/^###\s+(\d+)\.(\d+)\s+.+$/gmu)];if(h.length<2){c+=g;continue}let i=h[0].index||0;c+=g.slice(0,i)+h.map((a,b)=>{let c=a.index||0,d=h[b+1]?.index??g.length;return{order:Number(a[2]||b+1),content:g.slice(c,d).trim()}}).sort((a,b)=>a.order-b.order).map(a=>a.content).join("\n\n")+"\n\n"}return c.replace(/\n{3,}/gu,"\n\n").trim()}function av(a,b,c={}){let d=an(k(a,!!c.forbidDrawingImages),c.promptRules),e=au(function(a){let b=[...a.matchAll(/^##\s+(.+)$/gmu)].filter(a=>/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(a[1]||""));if(0===b.length)return a;let c=a.slice(0,b[0].index||0);for(let d=0;d<b.length;d+=1){let e=b[d].index||0,f=b[d+1]?.index??a.length,h=a.slice(e,f),i=[...h.matchAll(/^###\s+(\d+)\.(\d+)\s+(.+)$/gmu)];if(1!==i.length){c+=h;continue}let j=i[0],k=(0,g.GQ)((b[d][1]||"").replace(/^第[一二三四五六七八九十百千万\d]+章\s*/u,"")),l=(0,g.GQ)(j[3]||""),m=j.index||0,n=[...h.slice(m).matchAll(/^####\s+\d+\.\d+\.\d+\s+(.+)$/gmu)];if(n.length<2||!Z(l,k)){c+=h;continue}let o=h.slice(0,m).trimEnd(),p=h.slice(m),q=p.search(/^####\s+/mu),r=q>0?p.slice(j[0].length,q).trim():"",s=n.map((a,b)=>{let c=a.index||0,e=n[b+1]?.index??p.length,f=(0,g.GQ)(a[1]||""),h=p.slice(c+a[0].length,e).trim(),i=`### ${d+1}.${b+1} ${f}`;return`${i}
37
37
 
38
38
  ${0===b&&r?`${r}
39
39
 
@@ -110,7 +110,7 @@ ${c.map(a=>`- ${a}`).join("\n")}
110
110
  历史撞名对照(本次 ↔ 历史文档):
111
111
  ${a.collisions.map(a=>`「${a.title}」↔「${a.collidedWith}」`).join("\n")}
112
112
 
113
- 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}}c.d(b,{Cv:()=>d,PE:()=>l,V7:()=>e,_P:()=>g,py:()=>i,q6:()=>f,tF:()=>k,ty:()=>m});let j={detailed:1.3,standard:1,brief:.75};function k(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,k=!!(h.targetChars||h.targetPages),l=k?void 0:c?.targetPages?.target||c?.targetPages?.min,m=h.targetPages?h.targetPages*d:void 0,n=h.targetPages||l,o=k?"explicit":l?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",p=k?Math.max(h.targetChars||0,m||0)||void 0:Math.max((l?l*d:void 0)||0)||void 0,q=h.pageMode||"exact",r=h.charMode||q,s=k&&"approximate"===r,t=k&&"minimum"===r,u=k?n?Math.floor(n*(t?1:.9)):void 0:c?.targetPages?.min||(n?Math.floor(.95*n):void 0),v=k&&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=function(a,b,c){let d=Math.max(0,Math.round(b)),e=new Map;if(0===a.length)return e;let f=a.map(a=>Math.max(1,(a.sections||[]).filter(Boolean).length)*j[function(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?"detailed":/概况|结语|附录/u.test(b)?"brief":"standard"}(a)]),g=a.map(a=>Math.max(800,Math.round(c(a)))),h=new Map;for(let b=0;b<=a.length;b+=1){let b=a.map((a,b)=>b).filter(a=>!h.has(a));if(0===b.length)break;let c=d-[...h.values()].reduce((a,b)=>a+b,0),i=b.reduce((a,b)=>a+f[b],0)||b.length,j=b.find(a=>c*f[a]/i<g[a]);if(void 0===j){let g=0;for(let[b,c]of h)e.set(a[b].id,c),g+=c;return b.forEach((h,j)=>{let k=j===b.length-1?Math.max(1,d-g):Math.max(1,Math.round(c*f[h]/i));e.set(a[h].id,k),g+=k}),e}h.set(j,g[j])}let i=g.reduce((a,b)=>a+b,0)||a.length;console.error(`[budget] 篇幅预算不足:目标 ${d} 字不足以覆盖 ${a.length} 章最低预算(下限合计 ${i} 字),按下限比例压缩分配`);let k=0;return a.forEach((b,c)=>{let f=c===a.length-1?Math.max(1,d-k):Math.max(1,Math.round(d*g[c]/i));e.set(b.id,f),k+=f}),e}(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=!!(k&&(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 l(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function m(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars?f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}):"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}},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","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}},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}
113
+ 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}}c.d(b,{Cv:()=>d,K1:()=>l,PE:()=>n,V7:()=>e,_P:()=>g,py:()=>i,q6:()=>f,tF:()=>m,ty:()=>o});let j={detailed:1.3,standard:1,brief:.75};function k(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)*j[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 k=h.reduce((a,b)=>a+b,0)||a.length;console.error(`[budget] 篇幅预算不足:目标 ${e} 字不足以覆盖 ${a.length} 章最低预算(下限合计 ${k} 字),按下限比例压缩分配`);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]/k));f.set(b.id,d),l+=d}),f}function l(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 l=k(b,g,d,a=>e(a)),m=[...l.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:l.get(a.id)||0})).filter(a=>a.from!==a.to):[];return{chapterTargets:l,adjustments:n,compressed:j}}function m(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),l=j?void 0:c?.targetPages?.target||c?.targetPages?.min,m=h.targetPages?h.targetPages*d:void 0,n=h.targetPages||l,o=j?"explicit":l?"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((l?l*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=k(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 n(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 o(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.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}},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}},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}
114
114
  `;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}
115
115
  ${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")}function e(a){let b=a.split("|");return b.length>0&&""===(b[0]??"").trim()&&b.shift(),b.length>0&&""===(b[b.length-1]??"").trim()&&b.pop(),b.map(a=>a.trim())}function f(a){return a.lines.slice(2).map(e).filter(a=>a.length>0)}function g(a,b){for(let c of b){let b=a.findIndex(a=>c.test(a));if(b>=0)return b}return -1}function h(a,b){return b.every(b=>b.some(b=>a.some(a=>b.test(a))))}c.d(b,{nd:()=>d,u7:()=>p});let i=/([\u3400-\u9fff\u3000-\u303f\uff00-\uffef])[ \u3000]+(?=[\u3400-\u9fff\u3000-\u303f\uff00-\uffef])/gu;function j(a){return(a||"").replace(/\|/gu,"/").replace(i,"$1").trim()}function k(a){return a.map(a=>/^\|[\s:|-]+$/u.test(a)?a:`| ${e(a).map(j).join(" | ")} |`)}function l(a,b){return[`| ${a.map(j).join(" | ")} |`,`| ${a.map(()=>"---").join(" | ")} |`,...b.map(a=>`| ${a.map(j).join(" | ")} |`)]}function m(a){let b=(a||"").trim();return/^[-—-–—//]+$/u.test(b)?"":b}let n=["接地电阻测试仪","绝缘电阻测试仪","耐压测试仪","兆欧表","万用表","全站仪","水准仪","经纬仪","回弹仪","超声波测厚仪","涂层测厚仪","钢筋扫描仪","坍落度筒","灌砂法密度测定仪","环刀法密度测定仪","游标卡尺","光纤熔接机","光时域反射仪","网络测试仪","信号质量分析仪"],o=/测试仪|测试表|万用表|兆欧表|熔接机|反射仪|分析仪|测量仪|水准仪|全站仪|经纬仪|回弹仪|测厚仪|扫描仪|探测仪|探伤仪|检漏仪|压力表|温度计|风速仪|卡尺|千分尺|测距仪|测斜仪|应变仪|测定仪|坍落度筒/u;function p(a,b){if(!b||0===b.titles.length||b.titles.some(b=>a.includes(`## ${b}`)))return a;let c=function(a,b){let c=function(a){let b=a.split("\n"),c=[],d=0;for(;d<b.length;){let a=b[d].trim(),e=(b[d+1]||"").trim();if(a.startsWith("|")&&/^\|\s*:?-{3,}/u.test(e)){let a=[b[d],b[d+1]];for(d+=2;d<b.length&&b[d].trim().startsWith("|");)a.push(b[d]),d+=1;let e=a[0].split("|").map(a=>a.trim()).filter(Boolean);c.push({header:e,lines:a});continue}d+=1}return c}(a),d=[];for(let i of b){let b,j=i.replace(/^附表\s*[一二三四五六七八九十\d]{1,3}\s*[::]?\s*/u,"").trim();if(/施工设备表|机械设备表/u.test(j))b=function(a){let b=new Map;for(let c of a){let a=e(c.lines[0]||"");if(a.some(a=>/安装方式|安装高度|安装位置|技术参数要求/u.test(a))||a.some(a=>/仪器/u.test(a))||!h(a,[[/设备名称|机械名称/],[/型号规格|规格型号/],[/数量/]]))continue;let d=g(a,[/机械设备名称|设备名称|机械名称/u]),i=g(a,[/型号规格|规格型号/u]),j=g(a,[/数量/u]),k=g(a,[/额定功率/u]),l=g(a,[/主要作业内容|使用部位|施工部位|用途|投入阶段/u]);if(!(d<0)&&!(i<0)&&!(j<0))for(let a of f(c)){let c=m(a[d]||"");if(!c||/^合计$/u.test(c)||/^序号$/u.test(c)||o.test(c))continue;let e=b.get(c)||{spec:"",qty:"",power:"",usage:""};b.set(c,{spec:e.spec||m(a[i]||""),qty:e.qty||m(a[j]||""),power:e.power||(k>=0?m(a[k]||""):""),usage:e.usage||(l>=0?m(a[l]||""):"")})}}return 0===b.size?"":l(["序号","设备名称","型号规格","数量","国别产地","制造年份","额定功率(kW)","生产能力","用于施工部位","备注"],[...b.entries()].map(([a,b],c)=>[String(c+1),a,b.spec||"—",b.qty||"—","—","—",b.power||"—","—",b.usage||"—","—"]))}(c);else if(/试验.*仪器|检测仪器|试验仪器/u.test(j))b=function(a,b){let c=new Map;for(let b of a){let a=e(b.lines[0]||""),d=g(a,[/仪器设备名称|仪器名称|检测仪器名称|试验仪器名称|仪表名称/u,/机械设备名称|设备名称|机械名称/u]),i=g(a,[/型号规格|规格型号/u]),j=g(a,[/数量/u]),k=g(a,[/检测参数|使用工序|使用部位|用途/u]);if(d<0||i<0||j<0)continue;let l=h(a,[[/仪器设备名称|仪器名称|检测仪器名称|试验仪器/]]);for(let a of f(b)){let b=m(a[d]||"");if(!b||/^合计$/u.test(b)||/^序号$/u.test(b)||!l&&!o.test(b))continue;let e=c.get(b)||{spec:"",qty:"",usage:""};c.set(b,{spec:e.spec||m(a[i]||""),qty:e.qty||m(a[j]||""),usage:e.usage||(k>=0?m(a[k]||""):"")})}}for(let a of n)b.includes(a)&&([...c.keys()].some(b=>b.includes(a)||a.includes(b))||c.set(a,{spec:"",qty:"",usage:""}));return 0===c.size?"":l(["序号","仪器设备名称","型号规格","数量","国别产地","制造年份","已使用台时数","用途","备注"],[...c.entries()].map(([a,b],c)=>[String(c+1),a,b.spec||"—",b.qty||"—","—","—","—",b.usage||"—","—"]))}(c,a);else if(/劳动力计划/u.test(j))b=function(a){let b=a.find(a=>{let b=e(a.lines[0]||"");return/工种/u.test(b[0]||"")&&h(b,[[/人数|配置人数/]])}),c=a.find(a=>{let b=e(a.lines[0]||"");return/施工阶段|阶段/u.test(b[0]||"")&&h(b,[[/人数|在场人数|劳动力/]])});if(!b&&!c)return"";let d=[];return b&&d.push("**(一)劳动力工种配置**","",...k(b.lines)),c&&(d.length>0&&d.push(""),d.push("**(二)分阶段劳动力投入计划**","",...k(c.lines))),d}(c);else if(/临时用地/u.test(j))b=function(a){let b=a.find(a=>h(e(a.lines[0]||""),[[/设施名称|临时设施|场地名称|用地名称/],[/位置|选址/],[/面积|占地/]]));if(!b)return"";let c=e(b.lines[0]||""),d=g(c,[/设施名称|临时设施|场地名称|用地名称|设施/u]),i=g(c,[/选址位置|位置|选址/u]),j=g(c,[/占地面积|面积/u]);if(d<0||i<0||j<0)return"";let k=f(b).map(a=>{let b=m(a[d]||""),c=m(a[j]||"").replace(/平方米|m²|m2|㎡/giu,"").trim();return[b,c,m(a[i]||""),/随[^,。;]*?(?:移动|转移)|随用随移/u.test(a.join(""))?"随施工段使用":"施工全过程"]}).filter(a=>a[0]);return 0===k.length?"":l(["用途","面积(平方米)","位置","需用时间"],k)}(c);else b=/进度网络图|施工进度网络图/u.test(j)?["> **图件**:施工进度网络图(或以横道图表示)——标明计划开、竣工日期与各关键日期,按本施工组织设计进度计划绘制后附。"]:/总平面/u.test(j)&&/图/u.test(j)?["> **图件**:施工总平面布置图——绘出现场临时设施布置图(含加工车间、现场办公、设备及仓储、供电、供水、卫生、生活、道路、消防等设施)并附文字说明,绘制后附。"]:"";b&&b.length>0&&d.push([`## ${i}`,"",...b].join("\n"))}return d.length>0?d.join(`
116
116