@customize-agent/server 4.21.3 → 4.22.1

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 (64) 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/1001.js +2 -2
  5. package/.next/server/chunks/208.js +19 -14
  6. package/.next/server/chunks/{1821.js → 4931.js} +54 -43
  7. package/.next/server/chunks/5284.js +8 -8
  8. package/.next/server/chunks/8163.js +3 -3
  9. package/.next/server/middleware-build-manifest.js +1 -1
  10. package/.next/server/pages/404.html +1 -1
  11. package/.next/server/pages/500.html +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  13. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  14. package/.next/server/pages/api/assets/generated.js +1 -1
  15. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  16. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  17. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  18. package/.next/server/pages/api/documents/export.js +1 -1
  19. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  20. package/.next/server/pages/api/documents/generate.js +2 -2
  21. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  22. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  23. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  24. package/.next/server/pages/api/documents/generated.js +1 -1
  25. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  26. package/.next/server/pages/api/documents/refine.js +3 -3
  27. package/.next/server/pages/api/documents/templates.js +1 -1
  28. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  29. package/.next/server/pages/asset-library.html +1 -1
  30. package/.next/server/pages/document-roles.html +1 -1
  31. package/.next/server/pages/documents.html +1 -1
  32. package/.next/server/pages/guide.html +1 -1
  33. package/.next/server/pages/index.html +1 -1
  34. package/.next/server/pages/knowledge/file-detail.html +1 -1
  35. package/.next/server/pages/knowledge/files.html +1 -1
  36. package/.next/server/pages/knowledge/manage.html +1 -1
  37. package/.next/server/pages/knowledge.html +1 -1
  38. package/.next/server/pages/models.html +1 -1
  39. package/.next/server/pages/overview.html +1 -1
  40. package/.next/server/pages/prompt.html +1 -1
  41. package/.next/server/pages/settings.html +1 -1
  42. package/.next/server/pages/system/logs.html +1 -1
  43. package/.next/server/pages/template-references.html +1 -1
  44. package/.next/server/pages-manifest.json +31 -31
  45. package/.next/static/07Y_5mRHzJpxIj7CoRu6M/_buildManifest.js +1 -0
  46. package/.next/static/chunks/{224-790cf01fcf6820ee.js → 224-0415408fff1d1c8b.js} +1 -1
  47. package/.next/static/chunks/260-580088826d643423.js +1 -0
  48. package/.next/static/chunks/{289-42781fb699646699.js → 289-fc1b25371e004552.js} +1 -1
  49. package/.next/static/chunks/788-dca0d550ad6bd8b2.js +1 -0
  50. package/.next/static/chunks/pages/documents-96aba8e9ca0fa12c.js +1 -0
  51. package/.next/static/chunks/pages/knowledge/files-33782c4b41f33750.js +1 -0
  52. package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +1 -0
  53. package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +1 -0
  54. package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +1 -0
  55. package/package.json +1 -1
  56. package/.next/static/5uqlqajt_C07XmRfZF8DD/_buildManifest.js +0 -1
  57. package/.next/static/chunks/260-244c94eacd903620.js +0 -1
  58. package/.next/static/chunks/788-e98701da4d6ca319.js +0 -1
  59. package/.next/static/chunks/pages/documents-17e14ac7de90dd8b.js +0 -1
  60. package/.next/static/chunks/pages/knowledge/files-98ec72061cdb64d3.js +0 -1
  61. package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +0 -1
  62. package/.next/static/chunks/pages/prompt-839287c514595765.js +0 -1
  63. package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +0 -1
  64. /package/.next/static/{5uqlqajt_C07XmRfZF8DD → 07Y_5mRHzJpxIj7CoRu6M}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- 5uqlqajt_C07XmRfZF8DD
1
+ 07Y_5mRHzJpxIj7CoRu6M
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/5uqlqajt_C07XmRfZF8DD/_buildManifest.js",
9
- "static/5uqlqajt_C07XmRfZF8DD/_ssgManifest.js"
8
+ "static/07Y_5mRHzJpxIj7CoRu6M/_buildManifest.js",
9
+ "static/07Y_5mRHzJpxIj7CoRu6M/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -40,9 +40,9 @@
40
40
  "static/chunks/883-506cbca959974997.js",
41
41
  "static/chunks/69-34d57b77fd2eed20.js",
42
42
  "static/chunks/700-5d29b0475311f590.js",
43
- "static/chunks/224-790cf01fcf6820ee.js",
43
+ "static/chunks/224-0415408fff1d1c8b.js",
44
44
  "static/chunks/102-881dcc464f983c89.js",
45
- "static/chunks/289-42781fb699646699.js",
45
+ "static/chunks/289-fc1b25371e004552.js",
46
46
  "static/chunks/994-241f87efc61005b8.js",
47
47
  "static/chunks/pages/asset-library-f6319fc04559e43d.js"
48
48
  ],
@@ -55,11 +55,11 @@
55
55
  "static/chunks/69-34d57b77fd2eed20.js",
56
56
  "static/chunks/700-5d29b0475311f590.js",
57
57
  "static/chunks/44-d3545eedd5c75ef1.js",
58
- "static/chunks/224-790cf01fcf6820ee.js",
58
+ "static/chunks/224-0415408fff1d1c8b.js",
59
59
  "static/chunks/787-c18af810af3433f6.js",
60
60
  "static/chunks/102-881dcc464f983c89.js",
61
61
  "static/chunks/195-2c0168eacab722d2.js",
62
- "static/chunks/289-42781fb699646699.js",
62
+ "static/chunks/289-fc1b25371e004552.js",
63
63
  "static/chunks/455-e1b41ac4946d2b6f.js",
64
64
  "static/chunks/pages/document-roles-4ccb2db16dc4b63c.js"
65
65
  ],
@@ -72,13 +72,13 @@
72
72
  "static/chunks/69-34d57b77fd2eed20.js",
73
73
  "static/chunks/700-5d29b0475311f590.js",
74
74
  "static/chunks/44-d3545eedd5c75ef1.js",
75
- "static/chunks/224-790cf01fcf6820ee.js",
75
+ "static/chunks/224-0415408fff1d1c8b.js",
76
76
  "static/chunks/787-c18af810af3433f6.js",
77
77
  "static/chunks/195-2c0168eacab722d2.js",
78
78
  "static/chunks/455-e1b41ac4946d2b6f.js",
79
79
  "static/chunks/506-93f730bc149d0dce.js",
80
80
  "static/chunks/930-0436dcaa92fb41f6.js",
81
- "static/chunks/pages/documents-17e14ac7de90dd8b.js"
81
+ "static/chunks/pages/documents-96aba8e9ca0fa12c.js"
82
82
  ],
83
83
  "/guide": [
84
84
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -105,10 +105,10 @@
105
105
  "static/chunks/69-34d57b77fd2eed20.js",
106
106
  "static/chunks/700-5d29b0475311f590.js",
107
107
  "static/chunks/44-d3545eedd5c75ef1.js",
108
- "static/chunks/224-790cf01fcf6820ee.js",
108
+ "static/chunks/224-0415408fff1d1c8b.js",
109
109
  "static/chunks/787-c18af810af3433f6.js",
110
110
  "static/chunks/102-881dcc464f983c89.js",
111
- "static/chunks/289-42781fb699646699.js",
111
+ "static/chunks/289-fc1b25371e004552.js",
112
112
  "static/chunks/506-93f730bc149d0dce.js",
113
113
  "static/chunks/850-0f48354694fc6b3e.js",
114
114
  "static/css/ad5a592c79d1448b.css",
@@ -123,11 +123,11 @@
123
123
  "static/chunks/69-34d57b77fd2eed20.js",
124
124
  "static/chunks/700-5d29b0475311f590.js",
125
125
  "static/chunks/44-d3545eedd5c75ef1.js",
126
- "static/chunks/224-790cf01fcf6820ee.js",
126
+ "static/chunks/224-0415408fff1d1c8b.js",
127
127
  "static/chunks/102-881dcc464f983c89.js",
128
- "static/chunks/289-42781fb699646699.js",
128
+ "static/chunks/289-fc1b25371e004552.js",
129
129
  "static/css/ad5a592c79d1448b.css",
130
- "static/chunks/pages/knowledge/files-98ec72061cdb64d3.js"
130
+ "static/chunks/pages/knowledge/files-33782c4b41f33750.js"
131
131
  ],
132
132
  "/knowledge/manage": [
133
133
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -138,8 +138,8 @@
138
138
  "static/chunks/69-34d57b77fd2eed20.js",
139
139
  "static/chunks/787-c18af810af3433f6.js",
140
140
  "static/chunks/506-93f730bc149d0dce.js",
141
- "static/chunks/788-e98701da4d6ca319.js",
142
- "static/chunks/pages/knowledge/manage-558987c599dc4cd5.js"
141
+ "static/chunks/788-dca0d550ad6bd8b2.js",
142
+ "static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js"
143
143
  ],
144
144
  "/models": [
145
145
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -170,8 +170,8 @@
170
170
  "static/chunks/700-5d29b0475311f590.js",
171
171
  "static/chunks/44-d3545eedd5c75ef1.js",
172
172
  "static/chunks/195-2c0168eacab722d2.js",
173
- "static/chunks/260-244c94eacd903620.js",
174
- "static/chunks/pages/prompt-839287c514595765.js"
173
+ "static/chunks/260-580088826d643423.js",
174
+ "static/chunks/pages/prompt-edc2dfea09aaedc1.js"
175
175
  ],
176
176
  "/settings": [
177
177
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -188,11 +188,11 @@
188
188
  "static/chunks/69-34d57b77fd2eed20.js",
189
189
  "static/chunks/700-5d29b0475311f590.js",
190
190
  "static/chunks/44-d3545eedd5c75ef1.js",
191
- "static/chunks/224-790cf01fcf6820ee.js",
191
+ "static/chunks/224-0415408fff1d1c8b.js",
192
192
  "static/chunks/102-881dcc464f983c89.js",
193
193
  "static/chunks/195-2c0168eacab722d2.js",
194
- "static/chunks/289-42781fb699646699.js",
195
- "static/chunks/pages/system/logs-2e849bcdf371d791.js"
194
+ "static/chunks/289-fc1b25371e004552.js",
195
+ "static/chunks/pages/system/logs-ee67e2c93147dfc3.js"
196
196
  ],
197
197
  "/template-references": [
198
198
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "4561f6550cea792a31e2811ddcbf3fdc",
7
- "previewModeSigningKey": "6c4388fb6e97419014e2f2a62bbf8bae456f882cff12d63f129a388422d11b42",
8
- "previewModeEncryptionKey": "baec292d1dbcfcd3d12b34c627f0e5d1b76001745a5936006c9b66a2a58269d1"
6
+ "previewModeId": "99a3979b6f1650e4c978d4a6079bb064",
7
+ "previewModeSigningKey": "e362ed2773c3a591dd07ccc0b972ea2ebd978b632481babd3c1cdd1ea49749d1",
8
+ "previewModeEncryptionKey": "b56144c123c3847039bde1392e9dac047d1630914326d54c46ed5d313fd1b66b"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -4,8 +4,8 @@ ${a.content}`).join("\n").slice(0,3e4).match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|
4
4
  ${a.projectContext}`:"",a.projectGraphSummary?`本项目专业工程与资源图谱:
5
5
  ${a.projectGraphSummary}`:"",a.roleContext,a.promptTexts?`配置写作主控提示词:
6
6
  ${a.promptTexts}`:"",l.length?`系统已从提示词解析出本章强制二级小节,必须按此顺序置于本章小节最前,不得删除、改名或重排:${l.join("、")}`:"",h?`真实绑定资料:
7
- ${h}`:"",`请输出 ${p}-${q} 个适合直接成稿的二级小节标题。标题必须具体、业务相关、能承载真实资料;每个标题控制在 16 个汉字以内,避免多个小节表达同一内容。核心章节不得只输出"总体部署与责任分工、实施流程与关键控制"两个泛化小节。`,b,'JSON 格式:{"sections":["小节标题1","小节标题2"]}'].filter(Boolean).join("\n\n"),{maxTokens:1600,temperature:.1,signal:a.signal,diagnostics:a.diagnostics}),f=Array.from(new Set(function(a){let b=k(a),c=[],d=/体系|措施|管理|保障|方案|要求|计划|控制|配置/u,e=a=>{let b=/^(.*?)([^与和及、,,;;]+(?:[与和及][^与和及、,,;;]+)+)(的.+)$/u.exec(a);if(!b)return!1;let d=b[1]||"",e=b[3]||"";for(let a of b[2].split(/[与和及]/u))c.push(k(`${d}${a}${e}`));return!0},f=a=>{let b=a.split(/[、,,]/u).map(k).filter(Boolean);if(b.length>1&&b.every(a=>a.length>=4&&d.test(a))){for(let a of b)e(a)||c.push(a);return!0}let f=/^(.*?)([^、,,;;]+(?:[、,,][^、,,;;]+)+)(的.+)$/u.exec(a);if(!f)return!1;let g=f[1]||"",h=f[3]||"";for(let a of f[2].split(/[、,,]/u))c.push(k(`${g}${a}${h}`));return!0};for(let a of b.split(/[;;]/u)){if(f(a)||e(a))continue;let d=k(a);d&&d!==b&&c.push(d)}return Array.from(new Set(c)).filter(c=>c.length>=4&&c.length<=60&&c!==b&&!m(c,a))}(a.chapter.title)));for(let b of(d?.sections||[]).map(a=>i(k(a))).filter(b=>!m(b,a.chapter.title)))f.some(a=>a.includes(b)||b.includes(a))||f.push(b);for(let b of[...[a.chapter.title,...a.chapter.requiredFacts||[],...a.chapter.queries||[]].flatMap(a=>String(a||"").split(/[;;。\n]/u)).map(k).filter(b=>!m(b,a.chapter.title)),...(c=a.chapter.title,/编制说明|工程概况|项目概况/u.test(c)?["编制依据","工程概况","工程特点与重难点分析","施工部署与总体安排","施工准备与资源投入"]:/质量/u.test(c)?["质量目标与质量管理体系","关键工序质量控制措施","材料设备进场验收与检验","质量检查试验与验收程序","质量通病防治与整改闭环","成品保护与资料管理"]:/安全/u.test(c)?["安全生产管理体系","危险源辨识与分级管控","现场安全防护措施","临时用电与机械设备安全管理","应急处置与安全检查整改","安全教育培训与交底"]:/工期|进度/u.test(c)?["总工期目标与节点安排","施工进度计划编制原则","关键线路与工序穿插安排","资源投入与工期保障措施","进度偏差纠偏与动态调整","工期风险识别与应对措施"]:/物资|材料/u.test(c)?["主要材料设备需求分析","材料采购与进场计划","材料验收复试与保管","周转材料配置与使用管理","材料供应风险与保障措施"]:/机械|设备/u.test(c)?["主要机械设备配置原则","机械设备进退场计划","机械设备调度与运行管理","机械设备维护保养与安全检查","关键设备保障措施"]:/劳动力/u.test(c)?["劳动力配置原则","各阶段劳动力投入计划","专业工种与特种作业人员配置","劳动力动态调配措施","劳务管理与教育交底"]:/文明|环保/u.test(c)?["现场封闭与场容场貌管理","环境保护与污染防治措施","材料设备定置化管理","职业健康与消防文明管理","文明施工检查与整改"]:/总平面|平面布置/u.test(c)?["施工总平面布置原则","临时道路与材料堆场布置","临时用水用电及排水布置","办公生活与加工区域布置","总平面动态调整与管理"]:/危大|专项/u.test(c)?["危大工程识别与清单管理","专项施工方案编制与审批","专家论证与技术交底","现场实施监测与旁站管理","应急处置与验收销项"]:/施工方法|施工方案|主要/u.test(c)?["总体施工部署与流程安排","主要分部分项施工方法","关键工序技术控制要点","资源配置与穿插组织","质量安全与成品保护措施"]:["总体部署与责任分工","实施流程与关键控制","资源配置与资料依据","质量安全与风险控制","检查验收与闭环管理","资料记录与成果移交"]).filter(b=>!m(b,a.chapter.title))]){if(f.length>=p)break;f.some(a=>a.includes(b)||b.includes(a))||f.push(b)}return(function(a,b,c){let d=z(c.flatMap(a=>a.requiredSections).sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title),b);for(let c of z(a,b))d.some(a=>n(a,c))||d.push(c);return d})(o(f),a.chapter.title,j).slice(0,Math.max(q,l.length))},t=await s("");if(!r)return t;let u=t.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));if(u<=0)return t;let v=await s(`上一轮规划位置错误:小节"${t[u]}"必须是本章小节清单的第一位(第一章首节),不得排在"${t.slice(0,u).join("、")}"等小节之后;请重新输出完整小节清单,将该项置于第一位,其余小节顺序可保持不变。`),w=v.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));return w>0&&console.error(`[plan] 章节小节顺序核验未通过(重规划后"${v[w]}"仍不在首位):${a.chapter.title},保留 LLM 规划顺序交由下游审校处理`),v}async function B(a){let b=[...a.chapter.sections||[]];if(b.length>=a.maxTotalSections)return[];let c=(0,d.ks)((0,d.QO)(a.chapter,a.evidence),{maxChars:5e3,diagnostics:a.diagnostics});try{let d=await (0,e.bb)([(0,g.y4)("你是专业文档结构规划专家。"),"只根据用户提示词、章节标题、已有小节清单和真实绑定资料,补规划本章缺失的专业工作面小节;不得修改、删除或重命名已有小节。\n不得使用“目标与范围、资料依据、实施内容、质量控制”等通用占位小节凑数;不得把提示词条件句或短语碎片作为小节标题。\n每个新增小节必须在 basis 中说明其展开素材来源(来自绑定资料/工程图谱/通用施工工艺),basis 为空的小节会被丢弃。\n只返回 JSON。"].join("\n"),[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!m(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
7
+ ${h}`:"",`请输出 ${p}-${q} 个适合直接成稿的二级小节标题。标题必须具体、业务相关、能承载真实资料;每个标题控制在 16 个汉字以内,避免多个小节表达同一内容。核心章节不得只输出"总体部署与责任分工、实施流程与关键控制"两个泛化小节。`,b,'JSON 格式:{"sections":["小节标题1","小节标题2"]}'].filter(Boolean).join("\n\n"),{maxTokens:1600,temperature:0,signal:a.signal,diagnostics:a.diagnostics}),f=Array.from(new Set(function(a){let b=k(a),c=[],d=/体系|措施|管理|保障|方案|要求|计划|控制|配置/u,e=a=>{let b=/^(.*?)([^与和及、,,;;]+(?:[与和及][^与和及、,,;;]+)+)(的.+)$/u.exec(a);if(!b)return!1;let d=b[1]||"",e=b[3]||"";for(let a of b[2].split(/[与和及]/u))c.push(k(`${d}${a}${e}`));return!0},f=a=>{let b=a.split(/[、,,]/u).map(k).filter(Boolean);if(b.length>1&&b.every(a=>a.length>=4&&d.test(a))){for(let a of b)e(a)||c.push(a);return!0}let f=/^(.*?)([^、,,;;]+(?:[、,,][^、,,;;]+)+)(的.+)$/u.exec(a);if(!f)return!1;let g=f[1]||"",h=f[3]||"";for(let a of f[2].split(/[、,,]/u))c.push(k(`${g}${a}${h}`));return!0};for(let a of b.split(/[;;]/u)){if(f(a)||e(a))continue;let d=k(a);d&&d!==b&&c.push(d)}return Array.from(new Set(c)).filter(c=>c.length>=4&&c.length<=60&&c!==b&&!m(c,a))}(a.chapter.title)));for(let b of(d?.sections||[]).map(a=>i(k(a))).filter(b=>!m(b,a.chapter.title)))f.some(a=>a.includes(b)||b.includes(a))||f.push(b);for(let b of[...[a.chapter.title,...a.chapter.requiredFacts||[],...a.chapter.queries||[]].flatMap(a=>String(a||"").split(/[;;。\n]/u)).map(k).filter(b=>!m(b,a.chapter.title)),...(c=a.chapter.title,/编制说明|工程概况|项目概况/u.test(c)?["编制依据","工程概况","工程特点与重难点分析","施工部署与总体安排","施工准备与资源投入"]:/质量/u.test(c)?["质量目标与质量管理体系","关键工序质量控制措施","材料设备进场验收与检验","质量检查试验与验收程序","质量通病防治与整改闭环","成品保护与资料管理"]:/安全/u.test(c)?["安全生产管理体系","危险源辨识与分级管控","现场安全防护措施","临时用电与机械设备安全管理","应急处置与安全检查整改","安全教育培训与交底"]:/工期|进度/u.test(c)?["总工期目标与节点安排","施工进度计划编制原则","关键线路与工序穿插安排","资源投入与工期保障措施","进度偏差纠偏与动态调整","工期风险识别与应对措施"]:/物资|材料/u.test(c)?["主要材料设备需求分析","材料采购与进场计划","材料验收复试与保管","周转材料配置与使用管理","材料供应风险与保障措施"]:/机械|设备/u.test(c)?["主要机械设备配置原则","机械设备进退场计划","机械设备调度与运行管理","机械设备维护保养与安全检查","关键设备保障措施"]:/劳动力/u.test(c)?["劳动力配置原则","各阶段劳动力投入计划","专业工种与特种作业人员配置","劳动力动态调配措施","劳务管理与教育交底"]:/文明|环保/u.test(c)?["现场封闭与场容场貌管理","环境保护与污染防治措施","材料设备定置化管理","职业健康与消防文明管理","文明施工检查与整改"]:/总平面|平面布置/u.test(c)?["施工总平面布置原则","临时道路与材料堆场布置","临时用水用电及排水布置","办公生活与加工区域布置","总平面动态调整与管理"]:/危大|专项/u.test(c)?["危大工程识别与清单管理","专项施工方案编制与审批","专家论证与技术交底","现场实施监测与旁站管理","应急处置与验收销项"]:/施工方法|施工方案|主要/u.test(c)?["总体施工部署与流程安排","主要分部分项施工方法","关键工序技术控制要点","资源配置与穿插组织","质量安全与成品保护措施"]:["总体部署与责任分工","实施流程与关键控制","资源配置与资料依据","质量安全与风险控制","检查验收与闭环管理","资料记录与成果移交"]).filter(b=>!m(b,a.chapter.title))]){if(f.length>=p)break;f.some(a=>a.includes(b)||b.includes(a))||f.push(b)}return(function(a,b,c){let d=z(c.flatMap(a=>a.requiredSections).sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title),b);for(let c of z(a,b))d.some(a=>n(a,c))||d.push(c);return d})(o(f),a.chapter.title,j).slice(0,Math.max(q,l.length))},t=await s("");if(!r)return t;let u=t.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));if(u<=0)return t;let v=await s(`上一轮规划位置错误:小节"${t[u]}"必须是本章小节清单的第一位(第一章首节),不得排在"${t.slice(0,u).join("、")}"等小节之后;请重新输出完整小节清单,将该项置于第一位,其余小节顺序可保持不变。`),w=v.findIndex(a=>/编制说明与工程概况|工程概况|项目概况/u.test(a));return w>0&&console.error(`[plan] 章节小节顺序核验未通过(重规划后"${v[w]}"仍不在首位):${a.chapter.title},保留 LLM 规划顺序交由下游审校处理`),v}async function B(a){let b=[...a.chapter.sections||[]];if(b.length>=a.maxTotalSections)return[];let c=(0,d.ks)((0,d.QO)(a.chapter,a.evidence),{maxChars:5e3,diagnostics:a.diagnostics});try{let d=await (0,e.bb)([(0,g.y4)("你是专业文档结构规划专家。"),"只根据用户提示词、章节标题、已有小节清单和真实绑定资料,补规划本章缺失的专业工作面小节;不得修改、删除或重命名已有小节。\n不得使用“目标与范围、资料依据、实施内容、质量控制”等通用占位小节凑数;不得把提示词条件句或短语碎片作为小节标题。\n每个新增小节必须在 basis 中说明其展开素材来源(来自绑定资料/工程图谱/通用施工工艺),basis 为空的小节会被丢弃。\n只返回 JSON。"].join("\n"),[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!m(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
8
8
  ${a.projectContext}`:"",a.projectGraphSummary?`本项目专业工程与资源图谱:
9
9
  ${a.projectGraphSummary}`:"",a.roleContext,a.promptTexts?`配置写作主控提示词:
10
10
  ${a.promptTexts}`:"",c?`真实绑定资料:
11
- ${c}`:"",`本章已有小节(结构锁定,不可修改):${b.join("、")}`,"请输出 0-3 个本章缺失的专业工作面小节标题;无缺失时返回空数组。",'JSON 格式:{"sections":[{"title":"小节标题","basis":"展开素材来源说明"}]}'].filter(Boolean).join("\n\n"),{maxTokens:1200,temperature:.1,signal:a.signal,diagnostics:a.diagnostics}),f=[];for(let c of d?.sections||[]){let d=i(k(String(c?.title||""))),e=String(c?.basis||"").trim();!d||e.length<4||m(d,a.chapter.title)||b.some(a=>a.includes(d)||d.includes(a))||f.some(a=>a.includes(d)||d.includes(a))||o([...b,...f,d]).length===[...b,...f,d].length&&f.push(d)}return f.slice(0,Math.min(3,a.maxTotalSections-b.length))}catch(b){return console.error(`[plan] 专业小节补规划失败(回退模板锁定结构):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),[]}}function C(a){let b=v({promptTexts:a});return{recognized:b.executionSummary.length>0,summary:b.executionSummary,requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}function D(a){let b=[],c=a.map(a=>({prompt:a,rules:v({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}}};
11
+ ${c}`:"",`本章已有小节(结构锁定,不可修改):${b.join("、")}`,"请输出 0-3 个本章缺失的专业工作面小节标题;无缺失时返回空数组。",'JSON 格式:{"sections":[{"title":"小节标题","basis":"展开素材来源说明"}]}'].filter(Boolean).join("\n\n"),{maxTokens:1200,temperature:0,signal:a.signal,diagnostics:a.diagnostics}),f=[];for(let c of d?.sections||[]){let d=i(k(String(c?.title||""))),e=String(c?.basis||"").trim();!d||e.length<4||m(d,a.chapter.title)||b.some(a=>a.includes(d)||d.includes(a))||f.some(a=>a.includes(d)||d.includes(a))||o([...b,...f,d]).length===[...b,...f,d].length&&f.push(d)}return f.slice(0,Math.min(3,a.maxTotalSections-b.length))}catch(b){return console.error(`[plan] 专业小节补规划失败(回退模板锁定结构):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),[]}}function C(a){let b=v({promptTexts:a});return{recognized:b.executionSummary.length>0,summary:b.executionSummary,requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}function D(a){let b=[],c=a.map(a=>({prompt:a,rules:v({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}}};
@@ -54,24 +54,29 @@ ${c.slice(a).trimStart()}`}return`${f}
54
54
 
55
55
  ${c}`}(e,i):ag(e,i)))),c.promptRules),chapters:i}}function ar(a,b={}){let c=a.chapters.map(a=>({...a,sections:ab(a.sections||[])})),d=c.map((a,b)=>(function(a,b){let c=`## ${(0,f.tb)(b,a.title)}`,d=M(a.content);var e=/^##\s+.+$/mu.test(d)?d.replace(/^##\s+.+$/mu,c):`${c}
56
56
 
57
- ${d}`,g=a.title;let h=e.split(/\r?\n/u),i=!1;return h.filter((a,b)=>{let d=a.trim(),e=/^##\s+(.+)$/u.exec(a.trim())?.[1]||"";if(e){if(U(e,c))return!i&&(i=!0,!0);if(b>0&&U(e,g))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&U(d,g))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()})(a,b)),e=d.filter(Boolean).join("\n\n"),g=c.map((a,b)=>{if(a.sections?.length)return a;let c=ag(d[b]||"",[a]),e=Z(c);return e.length?{...a,sections:ab(e),content:c}:{...a,content:c}});return aq([function(a,b){let c=b||{},d=(...a)=>{let b=a.find(a=>!!c[a]);return b?String(c[b]).split("(来源")[0].trim():""},e=d("工程名称","项目名称","工程名"),f=d("建设单位","建设单位名称","发包人"),g=d("施工单位","承包单位","承包人"),h=d("建设地点","工程地点","项目地址"),i=d("建设规模","建筑面积","工程规模"),j=[["工程名称",e||a],["建设单位",f],["编制单位",g||f],["建设地点",h],["建设规模",i],["计划工期",d("计划工期","工期","总工期")],["质量标准",d("质量标准","质量目标","质量等级")]].filter(a=>!!a[1]);return['<div class="document-cover">',`# ${a}`,j.length>0?["","| 项目 | 内容 |","| --- | --- |",...j.map(a=>`| ${a[0]} | ${a[1].replace(/\|/gu,"/")} |`)].join("\n"):"","</div>"].filter(Boolean).join("\n")}(a.title,a.facts),'\n<div class="page-break"></div>\n',ac(g),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}[P,"你是施工组织设计文档写作专家。",N,O].join("\n\n")},70208:(a,b,c)=>{c.d(b,{GQ:()=>p,Ui:()=>n,YZ:()=>q,bl:()=>m,cs:()=>o,effectiveTemplateChapters:()=>t,mq:()=>h,ob:()=>i,tb:()=>r});var d=c(58965),e=c(23500);function f(a){return a.replace(/[☑✓✔☐□☒○●◉◇◆]/gu,"")}function g(a){let b=f(a.trim()),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})(?:[..]\\d{1,3})+(?:[..、))]\\s*|\\s+)`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function h(a){let b=g(a).replace(/\s+/gu,"");if(!b||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(b)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(b)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(b)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(b)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(b)||/^\d+\s*项/u.test(b)||/^\d+(?:[((]\d+[))])?\s*目/u.test(b)||/^\d+\s*对(?:与|于)/u.test(b)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(b)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(b)||/^\d{1,4}[^,,。;\s]{1,6}[,,、]/u.test(b)||/^\d{1,2}[一-龥]{2,10}$/u.test(b)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(b)||/[((【[《]$/u.test(b)||/[((【[《][^))】]》]*$/u.test(b)||/以下简/u.test(b)||/^\d{1,4}\s*[a-zA-Z]/u.test(b)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(b)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(b))return!0;let c=b.replace(/^\d{1,3}(?:[..]\d{1,3})*\s*/u,"");return!!(/^具备(?:有效|相应|满足)/u.test(c)||/^(?:须|应|需|得)?提供[^,,。;]{0,12}(?:证明|材料|文件|证件|证书|报告)/u.test(c)||/^(?:本(?:招标)?(?:项目|工程)|投标人|承包人|中标人|发包人|供应商|项目经理|技术负责人|施工单位)[^,,。;]{0,24}(?:不得|禁止|严禁|必须|应当)/u.test(c)||/(?:见|详见|参见|详见第)[^,,。;]{0,12}(?:招标公告|招标文件|投标人须知|补疑|澄清|工程量清单|图纸|合同条款|前附表)/u.test(c)||/^\d{1,3}\s*款/u.test(b)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(b))||function(a){let b=a.replace(/\s+/gu,"").replace(/^\*+|\*+$/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(b)}function i(a){let b=g(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))||h(b)}function j(a){return 0===a.trim().length||i(a)}let k="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",l=RegExp(`<\\s*${k}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${k}\\s*>`,"giu");function m(a){return RegExp(`^\\s*<\\s*${k}(?:\\s[^>]*)?>`,"iu").test(a)}function n(a){return RegExp(`^\\s*<\\/\\s*${k}\\s*>`,"iu").test(a)}function o(a){for(let b of a){let a=function(a,b,c){let e=[];for(let f of function(a,b){l.lastIndex=0;let c=[...a.matchAll(l)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>g(a)).filter(a=>!j(a))}(f))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!j(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function p(a){let b=f(a.replace(/^#+\s*/u,"").trim()),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function q(a){return p(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function r(a,b){let c=p(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function s(a,b){let c=new Set;return a.filter(a=>{let d=q(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function t(a,b,c){return!b||c?.preserveExplicitOutline?s([...a.chapters],{...c,template:a}):s([...a.chapters].map(a=>{let c=p(a.title),d=b.chapterRules.find(b=>b.id===a.id||p(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>x,OF:()=>s,Pc:()=>v,QO:()=>u,QR:()=>r,R7:()=>C,T3:()=>q,eE:()=>l,ks:()=>B});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144),j=c(80572);function k(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function l(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function m(a){let b=l(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function n(a){let b=[...new Set(l(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/(?:GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO|IEC)\s*[\w./-]*\d/u.test(a),e=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d||e&&/\d/u.test(a)&&a.length<=260}))].map(a=>(function(a){if(a.length<=160)return a;let b=a.match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|(?:计划工期|合同工期|合同估算价|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准)[^。;;,,]{0,40}|(?:GB|JGJ|CJJ|DB|CECS|ISO|IEC)\s*\/?\s*T?\s*[\w./-]*\d/gu);return b&&b.length>0?[...new Set(b)].join(";"):a.slice(0,160)})(a)).filter(Boolean);return(0,i.Cr)([...new Set(b)],a=>(0,i.Ox)(a),{},"key-fact-lines").selected.join("\n")}let o=/项目名称|工程名称|项目编号|招标项目编号|标段编号|招标人|建设单位|发包人|建设地点|工程地点|建设规模|建筑面积|招标范围|计划工期|合同工期|总工期|周期要求|质量标准|质量目标|安全目标|安全生产|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程估算价|结构形式|层数|建筑高度|基础形式|抗震设防|绿色建筑等级|装配率|支护形式|质保期|质量保修|投标有效期/u;function p(a){return a.length>200?`${a.slice(0,200)}…`:a}function q(a,b){let c=Math.max(400,Math.floor(b)),d=l(a);if(d.length<=c)return d;let e=d.split("\n"),f=[{re:/基坑底标高|换填底标高|整平标高|开挖深度|放坡系数|支护形式|坡率/u,value:20},{re:/标高/u,value:10},{re:/[±+]\s*0[.,]0{2,}/u,value:8},{re:/[±+-]\s*\d+\.\d{2,}/u,value:3}],g=e.map((a,b)=>{let c=0;for(let{re:b,value:d}of f)if(b.test(a)){c=d;break}return{line:a,index:b,value:c}}).filter(a=>a.value>0);if(!g.length)return d.slice(0,c);g.sort((a,b)=>b.value-a.value||a.index-b.index);let h=d.slice(0,Math.min(300,Math.max(80,Math.floor(.22*c)))).trimEnd(),i=`(超长证据参数窗口提取:${g.length} 行参数命中,尾部关键参数已前置展示)`,j=c-h.length-i.length-4,k=[],m=new Set,n=Math.max(50,Math.floor(.15*c));for(let{line:a,index:b}of g){if(j<=30)break;if(m.has(b))continue;let c=b>0&&/图纸节点:/u.test(e[b-1])?e[b-1].slice(0,n):"",d=[c,a].filter(Boolean).join("\n"),f=d.length>j?d.slice(0,j):d;k.push(f),j-=f.length+1,m.add(b),c&&m.add(b-1)}let o=k.length?k.join("\n"):d.slice(0,j+h.length),p=`${h}
57
+ ${d}`,g=a.title;let h=e.split(/\r?\n/u),i=!1;return h.filter((a,b)=>{let d=a.trim(),e=/^##\s+(.+)$/u.exec(a.trim())?.[1]||"";if(e){if(U(e,c))return!i&&(i=!0,!0);if(b>0&&U(e,g))return!1}return!(d&&!/^#{1,6}\s+/u.test(d)&&U(d,g))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()})(a,b)),e=d.filter(Boolean).join("\n\n"),g=c.map((a,b)=>{if(a.sections?.length)return a;let c=ag(d[b]||"",[a]),e=Z(c);return e.length?{...a,sections:ab(e),content:c}:{...a,content:c}});return aq([function(a,b){let c=b||{},d=(...a)=>{let b=a.find(a=>!!c[a]);return b?String(c[b]).split("(来源")[0].trim():""},e=d("工程名称","项目名称","工程名"),f=d("建设单位","建设单位名称","发包人"),g=d("施工单位","承包单位","承包人"),h=d("建设地点","工程地点","项目地址"),i=d("建设规模","建筑面积","工程规模"),j=[["工程名称",e||a],["建设单位",f],["编制单位",g||f],["建设地点",h],["建设规模",i],["计划工期",d("计划工期","工期","总工期")],["质量标准",d("质量标准","质量目标","质量等级")]].filter(a=>!!a[1]);return['<div class="document-cover">',`# ${a}`,j.length>0?["","| 项目 | 内容 |","| --- | --- |",...j.map(a=>`| ${a[0]} | ${a[1].replace(/\|/gu,"/")} |`)].join("\n"):"","</div>"].filter(Boolean).join("\n")}(a.title,a.facts),'\n<div class="page-break"></div>\n',ac(g),'\n<div class="page-break"></div>\n',e].join("\n"),c,b).markdown}[P,"你是施工组织设计文档写作专家。",N,O].join("\n\n")},70208:(a,b,c)=>{c.d(b,{GQ:()=>p,Ui:()=>n,YZ:()=>q,bl:()=>m,cs:()=>o,effectiveTemplateChapters:()=>t,mq:()=>h,ob:()=>i,tb:()=>r});var d=c(58965),e=c(23500);function f(a){return a.replace(/[☑✓✔☐□☒○●◉◇◆]/gu,"")}function g(a){let b=f(a.trim()),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})(?:[..]\\d{1,3})+(?:[..、))]\\s*|\\s+)`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function h(a){let b=g(a).replace(/\s+/gu,"");if(!b||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(b)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(b)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(b)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(b)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(b)||/^\d+\s*项/u.test(b)||/^\d+(?:[((]\d+[))])?\s*目/u.test(b)||/^\d+\s*对(?:与|于)/u.test(b)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(b)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(b)||/^\d{1,4}[^,,。;\s]{1,6}[,,、]/u.test(b)||/^\d{1,2}[一-龥]{2,10}$/u.test(b)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(b)||/[((【[《]$/u.test(b)||/[((【[《][^))】]》]*$/u.test(b)||/以下简/u.test(b)||/^\d{1,4}\s*[a-zA-Z]/u.test(b)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(b)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(b))return!0;let c=b.replace(/^\d{1,3}(?:[..]\d{1,3})*\s*/u,"");return!!(/^具备(?:有效|相应|满足)/u.test(c)||/^(?:须|应|需|得)?提供[^,,。;]{0,12}(?:证明|材料|文件|证件|证书|报告)/u.test(c)||/^(?:本(?:招标)?(?:项目|工程)|投标人|承包人|中标人|发包人|供应商|项目经理|技术负责人|施工单位)[^,,。;]{0,24}(?:不得|禁止|严禁|必须|应当)/u.test(c)||/(?:见|详见|参见|详见第)[^,,。;]{0,12}(?:招标公告|招标文件|投标人须知|补疑|澄清|工程量清单|图纸|合同条款|前附表)/u.test(c)||/^\d{1,3}\s*款/u.test(b)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(b))||function(a){let b=a.replace(/\s+/gu,"").replace(/^\*+|\*+$/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(b)}function i(a){let b=g(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))||h(b)}function j(a){return 0===a.trim().length||i(a)}let k="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",l=RegExp(`<\\s*${k}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${k}\\s*>`,"giu");function m(a){return RegExp(`^\\s*<\\s*${k}(?:\\s[^>]*)?>`,"iu").test(a)}function n(a){return RegExp(`^\\s*<\\/\\s*${k}\\s*>`,"iu").test(a)}function o(a){for(let b of a){let a=function(a,b,c){let e=[];for(let f of function(a,b){l.lastIndex=0;let c=[...a.matchAll(l)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>g(a)).filter(a=>!j(a))}(f))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!j(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function p(a){let b=f(a.replace(/^#+\s*/u,"").trim()),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function q(a){return p(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function r(a,b){let c=p(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function s(a,b){let c=new Set;return a.filter(a=>{let d=q(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function t(a,b,c){return!b||c?.preserveExplicitOutline?s([...a.chapters],{...c,template:a}):s([...a.chapters].map(a=>{let c=p(a.title),d=b.chapterRules.find(b=>b.id===a.id||p(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>y,OF:()=>t,Pc:()=>w,QO:()=>v,QR:()=>s,R7:()=>D,T3:()=>r,eE:()=>l,ks:()=>C});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144),j=c(80572);function k(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function l(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function m(a){let b=l(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function n(a){let b=[...new Set(l(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/(?:GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO|IEC)\s*[\w./-]*\d/u.test(a),e=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d||e&&/\d/u.test(a)&&a.length<=260}))].map(a=>(function(a){if(a.length<=160)return a;let b=a.match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|(?:计划工期|合同工期|合同估算价|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准)[^。;;,,]{0,40}|(?:GB|JGJ|CJJ|DB|CECS|ISO|IEC)\s*\/?\s*T?\s*[\w./-]*\d/gu);return b&&b.length>0?[...new Set(b)].join(";"):a.slice(0,160)})(a)).filter(Boolean);return(0,i.Cr)([...new Set(b)],a=>(0,i.Ox)(a),{},"key-fact-lines").selected.join("\n")}let o=/项目名称|工程名称|项目编号|招标项目编号|标段编号|招标人|建设单位|发包人|建设地点|工程地点|建设规模|建筑面积|招标范围|计划工期|合同工期|总工期|周期要求|质量标准|质量目标|安全目标|安全生产|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程估算价|结构形式|层数|建筑高度|基础形式|抗震设防|绿色建筑等级|装配率|支护形式|质保期|质量保修|投标有效期/u;function p(a){let b=a.processingType||"";return"table"===b||b.includes("bill")||"structured_data"===b||!!a.roleId?.includes("bill")}function q(a){return a.length>200?`${a.slice(0,200)}…`:a}function r(a,b){let c=Math.max(400,Math.floor(b)),d=l(a);if(d.length<=c)return d;let e=d.split("\n"),f=[{re:/基坑底标高|换填底标高|整平标高|开挖深度|放坡系数|支护形式|坡率/u,value:20},{re:/标高/u,value:10},{re:/[±+]\s*0[.,]0{2,}/u,value:8},{re:/[±+-]\s*\d+\.\d{2,}/u,value:3}],g=e.map((a,b)=>{let c=0;for(let{re:b,value:d}of f)if(b.test(a)){c=d;break}return{line:a,index:b,value:c}}).filter(a=>a.value>0);if(!g.length)return d.slice(0,c);g.sort((a,b)=>b.value-a.value||a.index-b.index);let h=d.slice(0,Math.min(300,Math.max(80,Math.floor(.22*c)))).trimEnd(),i=`(超长证据参数窗口提取:${g.length} 行参数命中,尾部关键参数已前置展示)`,j=c-h.length-i.length-4,k=[],m=new Set,n=Math.max(50,Math.floor(.15*c));for(let{line:a,index:b}of g){if(j<=30)break;if(m.has(b))continue;let c=b>0&&/图纸节点:/u.test(e[b-1])?e[b-1].slice(0,n):"",d=[c,a].filter(Boolean).join("\n"),f=d.length>j?d.slice(0,j):d;k.push(f),j-=f.length+1,m.add(b),c&&m.add(b-1)}let o=k.length?k.join("\n"):d.slice(0,j+h.length),p=`${h}
58
58
  ${i}
59
- ${o}`;return p.length>c?p.slice(0,c):p}function r(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,g=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,h=Number.isFinite(b.maxItemsPerFile)&&b.maxItemsPerFile>0?Math.floor(b.maxItemsPerFile):void 0,i=function(a,b,c){let f=new Set,g=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=l(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=m(e);if(e.length>20&&f.shouldUse)return e;let g=n(e);return g.length>20?`资料参数行摘要:
60
- ${g}`:e.length>80&&f.noiseScore<.9?e:[".pdf",".doc",".docx",".xls",".xlsx",".png",".jpg",".jpeg",".webp",".dwg"].includes(c)?`该资料为${c.replace(".","").toUpperCase()}格式附件,仅作为内部事实提取依据;正式正文不得引用文件名。`:e}(a.filePath,a.content),c=m(b);return{item:{...a,content:b,score:a.score*(1+c.factDensity)*(1-.45*c.noiseScore)},quality:c}}),h=g.filter(a=>a.quality.shouldUse||/附件,仅作为内部事实提取依据/u.test(a.item.content)),i=Number.isFinite(b)&&b>0?Math.ceil(b):void 0,j=(h.length>=Math.min(3,a.length)?h:g).sort((a,b)=>b.item.score-a.item.score).filter(a=>{let b=function(a){let b=a.content.replace(/\s+/gu," ").trim();return`${a.filePath}:${a.sectionTitle||""}:${(0,e.createHash)("sha1").update(b).digest("hex")}`}(a.item);return!f.has(b)&&(f.add(b),!0)}),k=i?j.slice(0,i):j;if(c){let b=g.reduce((a,b)=>a+b.quality.noiseScore,0),d=g.reduce((a,b)=>a+b.quality.factDensity,0);c.evidence.raw+=a.length,c.evidence.used+=k.length,c.evidence.filteredNoise+=Math.max(0,g.length-h.length),c.evidence.avgNoiseScore=g.length?Number((b/g.length).toFixed(3)):0,c.evidence.avgFactDensity=g.length?Number((d/g.length).toFixed(3)):0}return k.map(a=>a.item)}(a,void 0,c),j=b.preservePinned?i.filter(a=>"pinned-evidence"===a.source||"bound-file"===a.source||"required-fact-evidence"===a.source):[],k=i.filter(a=>!j.includes(a)),o=[],p=new Map,s=0,t=(a,b=!1)=>{if(f&&o.length>=f)return;let c=p.get(a.filePath)||0;if(!b&&void 0!==h&&c>=h)return;let d=l(a.content);g&&d.length>4e3&&(d=q(d,Math.min(12e3,g)));let e=s+d.length;g&&o.length>0&&e>g||(o.push({...a,content:d}),p.set(a.filePath,c+1),s=e)};for(let a of j)t(a,!0);for(let a of k)t(a);return c&&(c.evidence.budgetDropped+=Math.max(0,i.length-o.length)),o}function s(a,b=0){return`- ${k(a,b)}:${l(a.content).replace(/\s+/gu," ").slice(0,260)}`}function t(a,b){if(a.filePath!==b.filePath)return a.filePath<b.filePath?-1:1;let c=a.sectionTitle||"",d=b.sectionTitle||"";return c!==d?c<d?-1:1:a.content.length!==b.content.length?a.content.length-b.content.length:a.content!==b.content?a.content<b.content?-1:1:0}function u(a,b){let c=[...b].sort(t),e=new Map;for(let b of c){let c=function(a,b){let c=d.extname(a).toLowerCase();return"drawing"===b||/地图|map|drawing|design/iu.test(a)?"map":[".png",".jpg",".jpeg",".webp"].includes(c)?"image":"table"===b?"table":[".xls",".xlsx",".csv"].includes(c)?"spreadsheet":[".pdf",".doc",".docx"].includes(c)?"document":c&&![".md",".txt"].includes(c)?"attachment":"text"}(b.filePath,b.processingType),f=e.get(b.filePath)||{filePath:b.filePath,kind:c,roleId:b.roleId,processingType:b.processingType,score:b.score,semanticTitle:function(a,b){let c=d.basename(a).replace(/\.[^.]+$/u,"");return"map"===b?c.replace(/^地图-/u,"").replace(/-完整地图$/u,"完整地图"):"image"===b?c.replace(/-/gu," "):"spreadsheet"===b?`${c}(结构化表格)`:"document"===b?`${c}(文档附件)`:c}(b.filePath,c),contentUse:"map"===c?"作为视觉/地图证据,用于说明空间关系、区域划分、点位、路线或布局。":"image"===c?"作为图片证据,用于视觉说明、参考图或章节配图。":"spreadsheet"===c||"table"===c?"作为表格/数据证据,用于字段对比、明细、数量和结构化结论。":"document"===c?"作为 PDF/Word 文档证据,用于提取规范、事实、说明、约束和附件来源。":"attachment"===c?"作为附件证据,用于提供补充来源、文件级约束或可追溯引用。":"作为文本证据,用于事实抽取、章节论据和来源引用。",relatedFacts:[],relatedChapters:[],snippets:[]};f.score=Math.max(f.score,b.score),f.relatedFacts=[...new Set([...f.relatedFacts,...function(a,b){let c=`${a.filePath}
61
- ${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(b,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=b.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),e.set(b.filePath,f)}let f=[...e.values()].sort((a,b)=>b.score-a.score),g={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of f)g[a.kind].push(a);let i=[`绑定材料包:文本片段 ${c.length} 条、结构化材料 ${f.length} 个。`,`材料类型分布:文本 ${g.text.length}、文档 ${g.document.length}、表格/数据 ${g.spreadsheet.length+g.table.length}、图片 ${g.image.length}、视觉/地图 ${g.map.length}、其他 ${g.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:c,resources:f,byKind:g,summary:i}}function v(a,b=8e3,c=24e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=(0,j.z)().evidenceBudgetCeiling,f=Number.isFinite(e)&&e>0?Math.floor(e):c,g=(0,j.z)().evidenceBudgetRatio;return Math.min(Math.max(b,Math.min(f,Math.ceil(d*(Number.isFinite(g)&&g>0?g:8)))),Number.isFinite(e)&&e>0?1/0:8e3)}function w(a,b,c,d){let e=b.trim();if(!e)return;let f=Number.isFinite(d)&&0===d;if(null==d||!f&&c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}function x(a,b){let c=`${a.sectionTitle||""}
62
- ${a.content}`,d=a.score;for(let e of(g.sv.test(c)&&(d+=8),/计划工期|合同工期|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准|招标范围/u.test(c)&&(d+=10),b))e&&(c.includes(e)||(0,h.Lk)(a,e))&&(d+=6);return/GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO/iu.test(c)&&(d+=3),d}function y(a,b,c,d){let e={chars:0,omitted:0},f=[],g=new Set,h=new Map,i=[...a].sort((a,b)=>d(b)-d(a));for(let a of i){if(h.has(a.filePath))continue;let d=f.length;w(f,c(a,f.length),e,b),f.length>d&&(h.set(a.filePath,1),g.add(a))}for(let a of i){if(g.has(a))continue;let d=h.get(a.filePath)||0;if(d>=6)continue;let i=f.length;w(f,c(a,f.length),e,b),f.length>i&&(h.set(a.filePath,d+1),g.add(a))}return{lines:f,omittedItems:i.filter(a=>!g.has(a)),omitted:e.omitted}}function z(a,b,c=300){let d,e=l("content"in a?a.content:a.snippets[0]||"").replace(/\s+/gu," ").trim();return d=e.length>c?e.length>4e3?q(e,c):(()=>{let a=Math.floor(.7*c),b=c-a-1;return`${e.slice(0,a)}…${e.slice(-b)}`})():e,`- [${b}] ${k(a)}${d?`|${d}`:""}`}function A(a,b,c,d=!1,e,g=!1,h=!1){let m=d?[]:[...new Set(a.textEvidence.flatMap(a=>n(a.content).split("\n").filter(Boolean)))],r=m.filter(a=>o.test(a)).map(p),s=m.filter(a=>!o.test(a)),t=b?Math.floor(.6*b):void 0,u=r,v=0;if(t&&u.join("\n").length>t){let a=(0,i.Cr)(u,a=>(0,i.Ox)(a),{maxChars:t},"t0-fact-lines");v=a.dropped.length,u=a.selected}let w=u.length?`【关键事实层——来自绑定材料的数值、参数与标准编号,正文必须原样落位,不得改写、不得编造层内没有的数值】
63
- ${u.map(a=>`- ${a}`).join("\n")}${v>0?`
64
- (事实行总量超出预算上限,已按重要性保留前 ${u.length} 行)`:""}`:"",B=b?b-w.length:void 0;void 0!==B&&void 0!==b&&B<Math.min(2e3,b)&&(B=Math.min(2e3,b));let C=g&&e?a.resources.filter(b=>b.snippets.some(c=>e({chapterId:a.chapterId,filePath:b.filePath,score:b.score,content:c})>0)):a.resources,D=y(C.length>0?C:a.resources,B?Math.floor(.35*B):void 0,(a,b)=>[`- 资料:${k(a,b)}`,` 资料类型:${a.kind}`,` 正文用途:${a.contentUse}`,a.relatedFacts.length?` 可用事实方向:${a.relatedFacts.join("、")}`:"",a.snippets.length?` 可用内容:${a.snippets.map(l).filter(Boolean).join(" / ")}`:""].filter(Boolean).join("\n"),a=>a.score),E=g&&e?a.textEvidence.filter(a=>e(a)>0):a.textEvidence,F=g&&0===E.length?a.textEvidence:E,G=B?Math.floor(.65*B):void 0,H="",I=G;if(s.length>0){let a=(0,i.Cr)(s,a=>(0,i.Ox)(a),{maxChars:G},"t0-demoted-fact-lines");a.selected.length>0&&(H=`工艺参数与规范事实行(按相关度排序):
59
+ ${o}`;return p.length>c?p.slice(0,c):p}function s(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,g=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,h=Number.isFinite(b.maxItemsPerFile)&&b.maxItemsPerFile>0?Math.floor(b.maxItemsPerFile):void 0,i=function(a,b,c){let f=new Set,g=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=l(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=m(e);if(e.length>20&&f.shouldUse)return e;let g=n(e);return g.length>20?`资料参数行摘要:
60
+ ${g}`:e.length>80&&f.noiseScore<.9?e:[".pdf",".doc",".docx",".xls",".xlsx",".png",".jpg",".jpeg",".webp",".dwg"].includes(c)?`该资料为${c.replace(".","").toUpperCase()}格式附件,仅作为内部事实提取依据;正式正文不得引用文件名。`:e}(a.filePath,a.content),c=m(b);return{item:{...a,content:b,score:a.score*(1+c.factDensity)*(1-.45*c.noiseScore)},quality:c}}),h=g.filter(a=>a.quality.shouldUse||/附件,仅作为内部事实提取依据/u.test(a.item.content)),i=Number.isFinite(b)&&b>0?Math.ceil(b):void 0,j=(h.length>=Math.min(3,a.length)?h:g).sort((a,b)=>b.item.score-a.item.score).filter(a=>{let b=function(a){let b=a.content.replace(/\s+/gu," ").trim();return`${a.filePath}:${a.sectionTitle||""}:${(0,e.createHash)("sha1").update(b).digest("hex")}`}(a.item);return!f.has(b)&&(f.add(b),!0)}),k=i?j.slice(0,i):j;if(c){let b=g.reduce((a,b)=>a+b.quality.noiseScore,0),d=g.reduce((a,b)=>a+b.quality.factDensity,0);c.evidence.raw+=a.length,c.evidence.used+=k.length,c.evidence.filteredNoise+=Math.max(0,g.length-h.length),c.evidence.avgNoiseScore=g.length?Number((b/g.length).toFixed(3)):0,c.evidence.avgFactDensity=g.length?Number((d/g.length).toFixed(3)):0}return k.map(a=>a.item)}(a,void 0,c),j=b.preservePinned?i.filter(a=>"pinned-evidence"===a.source||"bound-file"===a.source||"required-fact-evidence"===a.source):[],k=i.filter(a=>!j.includes(a)),o=[],p=new Map,q=0,t=(a,b=!1)=>{if(f&&o.length>=f)return;let c=p.get(a.filePath)||0;if(!b&&void 0!==h&&c>=h)return;let d=l(a.content);g&&d.length>4e3&&(d=r(d,Math.min(12e3,g)));let e=q+d.length;g&&o.length>0&&e>g||(o.push({...a,content:d}),p.set(a.filePath,c+1),q=e)};for(let a of j)t(a,!0);for(let a of k)t(a);return c&&(c.evidence.budgetDropped+=Math.max(0,i.length-o.length)),o}function t(a,b=0){return`- ${k(a,b)}:${l(a.content).replace(/\s+/gu," ").slice(0,260)}`}function u(a,b){if(a.filePath!==b.filePath)return a.filePath<b.filePath?-1:1;let c=a.sectionTitle||"",d=b.sectionTitle||"";return c!==d?c<d?-1:1:a.content.length!==b.content.length?a.content.length-b.content.length:a.content!==b.content?a.content<b.content?-1:1:0}function v(a,b){let c=[...b].sort(u),e=new Map;for(let b of c){let c=function(a,b){let c=d.extname(a).toLowerCase();return"drawing"===b||/地图|map|drawing|design/iu.test(a)?"map":[".png",".jpg",".jpeg",".webp"].includes(c)?"image":"table"===b?"table":[".xls",".xlsx",".csv"].includes(c)?"spreadsheet":[".pdf",".doc",".docx"].includes(c)?"document":c&&![".md",".txt"].includes(c)?"attachment":"text"}(b.filePath,b.processingType),f=e.get(b.filePath)||{filePath:b.filePath,kind:c,roleId:b.roleId,processingType:b.processingType,score:b.score,semanticTitle:function(a,b){let c=d.basename(a).replace(/\.[^.]+$/u,"");return"map"===b?c.replace(/^地图-/u,"").replace(/-完整地图$/u,"完整地图"):"image"===b?c.replace(/-/gu," "):"spreadsheet"===b?`${c}(结构化表格)`:"document"===b?`${c}(文档附件)`:c}(b.filePath,c),contentUse:"map"===c?"作为视觉/地图证据,用于说明空间关系、区域划分、点位、路线或布局。":"image"===c?"作为图片证据,用于视觉说明、参考图或章节配图。":"spreadsheet"===c||"table"===c?"作为表格/数据证据,用于字段对比、明细、数量和结构化结论。":"document"===c?"作为 PDF/Word 文档证据,用于提取规范、事实、说明、约束和附件来源。":"attachment"===c?"作为附件证据,用于提供补充来源、文件级约束或可追溯引用。":"作为文本证据,用于事实抽取、章节论据和来源引用。",relatedFacts:[],relatedChapters:[],snippets:[]};f.score=Math.max(f.score,b.score),f.relatedFacts=[...new Set([...f.relatedFacts,...function(a,b){let c=`${a.filePath}
61
+ ${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(b,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=b.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),e.set(b.filePath,f)}let f=[...e.values()].sort((a,b)=>b.score-a.score),g={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of f)g[a.kind].push(a);let i=[`绑定材料包:文本片段 ${c.length} 条、结构化材料 ${f.length} 个。`,`材料类型分布:文本 ${g.text.length}、文档 ${g.document.length}、表格/数据 ${g.spreadsheet.length+g.table.length}、图片 ${g.image.length}、视觉/地图 ${g.map.length}、其他 ${g.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:c,resources:f,byKind:g,summary:i}}function w(a,b=8e3,c=24e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=(0,j.z)().evidenceBudgetCeiling,f=Number.isFinite(e)&&e>0?Math.floor(e):c,g=(0,j.z)().evidenceBudgetRatio;return Math.min(Math.max(b,Math.min(f,Math.ceil(d*(Number.isFinite(g)&&g>0?g:8)))),Number.isFinite(e)&&e>0?1/0:12e3)}function x(a,b,c,d){let e=b.trim();if(!e)return;let f=Number.isFinite(d)&&0===d;if(null==d||!f&&c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}function y(a,b){let c=`${a.sectionTitle||""}
62
+ ${a.content}`,d=a.score;for(let e of(g.sv.test(c)&&(d+=8),/计划工期|合同工期|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准|招标范围/u.test(c)&&(d+=10),b))e&&(c.includes(e)||(0,h.Lk)(a,e))&&(d+=6);return/GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO/iu.test(c)&&(d+=3),d}function z(a,b,c,d,e=6){let f={chars:0,omitted:0},g=[],h=new Set,i=new Map,j=[...a].sort((a,b)=>d(b)-d(a));for(let a of j){if(i.has(a.filePath))continue;let d=g.length;x(g,c(a,g.length),f,b),g.length>d&&(i.set(a.filePath,1),h.add(a))}for(let a of j){if(h.has(a))continue;let d=i.get(a.filePath)||0;if(d>=e)continue;let j=g.length;x(g,c(a,g.length),f,b),g.length>j&&(i.set(a.filePath,d+1),h.add(a))}return{lines:g,omittedItems:j.filter(a=>!h.has(a)),omitted:f.omitted}}function A(a,b,c=300){let d,e=l("content"in a?a.content:a.snippets[0]||"").replace(/\s+/gu," ").trim();return d=e.length>c?e.length>4e3?r(e,c):(()=>{let a=Math.floor(.7*c),b=c-a-1;return`${e.slice(0,a)}…${e.slice(-b)}`})():e,`- [${b}] ${k(a)}${d?`|${d}`:""}`}function B(a,b,c,d=!1,e,g=!1,h=!1){let m=d?[]:[...new Set(a.textEvidence.flatMap(a=>n(a.content).split("\n").filter(Boolean)))],s=m.filter(a=>o.test(a)).map(q),t=m.filter(a=>!o.test(a)),u=b?Math.floor(.6*b):void 0,v=s,w=0;if(u&&v.join("\n").length>u){let a=(0,i.Cr)(v,a=>(0,i.Ox)(a),{maxChars:u},"t0-fact-lines");w=a.dropped.length,v=a.selected}let x=v.length?`【关键事实层——来自绑定材料的数值、参数与标准编号,正文必须原样落位,不得改写、不得编造层内没有的数值】
63
+ ${v.map(a=>`- ${a}`).join("\n")}${w>0?`
64
+ (事实行总量超出预算上限,已按重要性保留前 ${v.length} 行)`:""}`:"",C=b?b-x.length:void 0;void 0!==C&&void 0!==b&&C<Math.min(2e3,b)&&(C=Math.min(2e3,b));let D=g&&e?a.resources.filter(b=>b.snippets.some(c=>e({chapterId:a.chapterId,filePath:b.filePath,score:b.score,content:c})>0)):a.resources,E=z(D.length>0?D:a.resources,C?Math.floor(.35*C):void 0,(a,b)=>[`- 资料:${k(a,b)}`,` 资料类型:${a.kind}`,` 正文用途:${a.contentUse}`,a.relatedFacts.length?` 可用事实方向:${a.relatedFacts.join("、")}`:"",a.snippets.length?` 可用内容:${a.snippets.map(l).filter(Boolean).join(" / ")}`:""].filter(Boolean).join("\n"),a=>a.score),F=g&&e?a.textEvidence.filter(a=>e(a)>0):a.textEvidence,G=g&&0===F.length?a.textEvidence:F,H=G.filter(a=>p(a)),I=G.filter(a=>!p(a)),J=C?Math.floor(.65*C):void 0,K="",L=J;if(t.length>0){let a=(0,i.Cr)(t,a=>(0,i.Ox)(a),{maxChars:J},"t0-demoted-fact-lines");a.selected.length>0&&(K=`工艺参数与规范事实行(按相关度排序):
65
65
  ${a.selected.map(a=>`- ${a}`).join("\n")}${a.dropped.length>0?`
66
- (另有 ${a.dropped.length} 行因预算省略,完整事实仍参与检索与质量校验)`:""}`,void 0!==I&&(I=Math.max(0,I-H.length)))}let J=y(F,I,(a,b)=>{let c=l(a.content),d=c.length>1200?q(c,1200):c;return`${k(a,b)}
66
+ (另有 ${a.dropped.length} 行因预算省略,完整事实仍参与检索与质量校验)`:""}`,void 0!==L&&(L=Math.max(0,L-K.length)))}let M="",N=[];if(H.length>0){let a=z(H,void 0!==L?Math.min(4e3,L):4e3,(a,b)=>{let c=l(a.content),d=c.length>3e3?r(c,3e3):c;return`${k(a,b)}
67
+ 类型:${a.processingType||"table"}
68
+ 章节/片段:${a.sectionTitle?.replace(f.tK,"")||"资料片段"}
69
+ 内容(清单/表格行数据:条目名、特征、工程量与单位必须逐项照抄原值,不得改写、不得编造):
70
+ ${d}`},a=>y(a,c)+(e?e(a):0),30);N=a.omittedItems,a.lines.length&&(M=`表格/清单原文:
71
+ ${a.lines.join("\n\n---\n\n")}`,void 0!==L&&(L=Math.max(0,L-M.length)))}let O=z(I,L,(a,b)=>{let c=l(a.content),d=c.length>1200?r(c,1200):c;return`${k(a,b)}
67
72
  类型:${a.processingType||"reference"}
68
73
  章节/片段:${a.sectionTitle?.replace(f.tK,"")||"资料片段"}
69
74
  内容:
70
- ${d}`},a=>x(a,c)+(e?e(a):0)),K=[];D.lines.length&&K.push(`结构化资料:
71
- ${D.lines.join("\n")}`),H&&K.push(H),J.lines.length&&K.push(`文本/附件片段:
72
- ${J.lines.join("\n\n---\n\n")}`);let L=K.join("\n\n"),M=[...D.omittedItems,...J.omittedItems],N=(0,j.z)().evidenceCatalogMaxLines||40,O=Number.isFinite(N)&&N>0?Math.floor(N):40,P=(h?[]:M).slice(0,O).map((a,b)=>z(a,b)),Q=P.length?`【证据目录——未全文注入的片段压缩摘要(按重要性保留前 ${P.length} 条${M.length>P.length?`,另有 ${M.length-P.length} 条未注入`:""};正文可引用摘要内事实,不得编造摘要外的细节;完整片段仍参与后续检索与质量校验)】
73
- ${P.join("\n")}`:"",R=M.reduce((a,b)=>a+("content"in b?b.content.length:(b.snippets[0]||"").length),0),S={t0Chars:w.length,t1Chars:L.length,t2Lines:P.length,t2Chars:Q.length,omittedChars:R,omittedCount:M.length};return{t0Text:w,t1Text:L,t2Text:Q,omittedNote:S.omittedCount>0?`提示:完整证据池仍保留 ${a.textEvidence.length} 条文本片段、${a.resources.length} 个结构化材料;本次已注入关键事实层 ${S.t0Chars} 字(数值参数全量)与高相关片段 ${S.t1Chars} 字,另有 ${S.omittedCount} 条片段(${S.omittedChars} 字)仅以目录索引呈现,将在章节/小节相关检索和质量校验中继续参与。`:"",stats:S}}function B(a,b={}){let c=A(a,Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,b.requiredFacts||[],!!b.skipT0,b.rankBoost,!!b.onlyRankBoosted,!!b.skipT2Catalog);if(b.diagnostics){let a=b.diagnostics.evidence;a.t0Chars+=c.stats.t0Chars,a.t1Chars+=c.stats.t1Chars,a.t2Lines+=c.stats.t2Lines,a.omittedChars+=c.stats.omittedChars}return[a.summary,c.t0Text,c.t1Text,c.t2Text,c.omittedNote].filter(Boolean).join("\n\n")}function C(a,b,c){let d=Number.isFinite(c)&&c>0?Math.floor(c):8e3,e=A(a,Math.floor(.5*d),b,!1),f=Math.max(1500,d-e.t0Text.length),g=y(a.textEvidence,f,(a,b)=>{let c=l(a.content),d=c.length>300?`${c.slice(0,300)}…`:c;return`- [${b}] ${k(a)}|${d}`},a=>x(a,b)),h=g.lines.length?`【章级证据摘要池——全章证据要点概览(正文事实必须以关键事实层与绑定材料为准,摘要仅供定位材料方向)】
74
- ${g.lines.join("\n")}`:"",i=g.omittedItems.slice(0,40).map((a,b)=>z(a,b,60)),j=i.length?`【证据目录——未进摘要池的片段索引(正文写作不使用目录内容;完整片段仍参与后续检索与质量校验)】
75
+ ${d}`},a=>y(a,c)+(e?e(a):0)),P=[];E.lines.length&&P.push(`结构化资料:
76
+ ${E.lines.join("\n")}`),K&&P.push(K),M&&P.push(M),O.lines.length&&P.push(`文本/附件片段:
77
+ ${O.lines.join("\n\n---\n\n")}`);let Q=P.join("\n\n"),R=[...E.omittedItems,...N,...O.omittedItems],S=(0,j.z)().evidenceCatalogMaxLines||40,T=Number.isFinite(S)&&S>0?Math.floor(S):40,U=(h?[]:R).slice(0,T).map((a,b)=>A(a,b)),V=U.length?`【证据目录——未全文注入的片段压缩摘要(按重要性保留前 ${U.length} 条${R.length>U.length?`,另有 ${R.length-U.length} 条未注入`:""};正文可引用摘要内事实,不得编造摘要外的细节;完整片段仍参与后续检索与质量校验)】
78
+ ${U.join("\n")}`:"",W=R.reduce((a,b)=>a+("content"in b?b.content.length:(b.snippets[0]||"").length),0),X={t0Chars:x.length,t1Chars:Q.length,t2Lines:U.length,t2Chars:V.length,omittedChars:W,omittedCount:R.length};return{t0Text:x,t1Text:Q,t2Text:V,omittedNote:X.omittedCount>0?`提示:完整证据池仍保留 ${a.textEvidence.length} 条文本片段、${a.resources.length} 个结构化材料;本次已注入关键事实层 ${X.t0Chars} 字(数值参数全量)与高相关片段 ${X.t1Chars} 字,另有 ${X.omittedCount} 条片段(${X.omittedChars} 字)仅以目录索引呈现,将在章节/小节相关检索和质量校验中继续参与。`:"",stats:X}}function C(a,b={}){let c=B(a,Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,b.requiredFacts||[],!!b.skipT0,b.rankBoost,!!b.onlyRankBoosted,!!b.skipT2Catalog);if(b.diagnostics){let a=b.diagnostics.evidence;a.t0Chars+=c.stats.t0Chars,a.t1Chars+=c.stats.t1Chars,a.t2Lines+=c.stats.t2Lines,a.omittedChars+=c.stats.omittedChars}return[a.summary,c.t0Text,c.t1Text,c.t2Text,c.omittedNote].filter(Boolean).join("\n\n")}function D(a,b,c){let d=Number.isFinite(c)&&c>0?Math.floor(c):8e3,e=B(a,Math.floor(.5*d),b,!1),f=Math.max(1500,d-e.t0Text.length),g=z(a.textEvidence,f,(a,b)=>{let c=l(a.content),d=c.length>300?`${c.slice(0,300)}…`:c;return`- [${b}] ${k(a)}|${d}`},a=>y(a,b)),h=g.lines.length?`【章级证据摘要池——全章证据要点概览(正文事实必须以关键事实层与绑定材料为准,摘要仅供定位材料方向)】
79
+ ${g.lines.join("\n")}`:"",i=g.omittedItems.slice(0,40).map((a,b)=>A(a,b,60)),j=i.length?`【证据目录——未进摘要池的片段索引(正文写作不使用目录内容;完整片段仍参与后续检索与质量校验)】
75
80
  ${i.join("\n")}`:"";return[e.t0Text,h,j].filter(Boolean).join("\n\n")}},70963:(a,b,c)=>{c.d(b,{C:()=>u,i:()=>t});var d=c(73024),e=c(76760),f=c(95734),g=c(22157),h=c(80439),i=c(61373),j=c(80572);function k(a){return a.map(a=>`${a.filePath}
76
81
  ${a.sectionTitle||""}
77
82
  ${a.content}`).join("\n")}let l={scope:{title:"项目基本信息、工程范围、主要工程内容",pattern:/项目名称|工程名称|招标范围|施工范围|建设内容|建设规模|建筑面积|工程概况|清单|图纸/u,guidance:"重点填充 works、requirements。必须识别项目名称、建设地点、建设规模、招标范围、工程内容;有来源才写。"},methods:{title:"关键施工方法与专业工序",pattern:/施工方法|施工工艺|工序|流程|专项|装饰|装修|加固|电气|给排水|消防|智能化|暖通|屋面|外墙/u,guidance:"重点填充 methods,并关联 applicableWorks。步骤必须来自资料或由资料中的专业工程内容直接归纳。"},resources:{title:"材料、设备、劳动力、工程量资源",pattern:/材料|设备|机械|劳动力|工程量|清单|规格|型号|数量|单位|暂估|主材/u,guidance:"重点填充 resources。材料设备和工程量能确认多少写多少,数量和单位不得编造。"},scheduleStandards:{title:"工期节点、质量目标、标准规范、验收要求",pattern:/工期|日历天|开工|竣工|节点|进度|质量|验收|标准|规范|合格|创优/u,guidance:"重点填充 schedule、standards。必须优先抽取总工期、质量标准、验收标准和关键节点。"},risksSite:{title:"现场条件、重难点、风险与约束",pattern:/现场|周边|交通|既有|营业|拆除|保护|安全|文明|扬尘|噪声|风险|难点|危大/u,guidance:"重点填充 risks、siteConditions。风险必须给出资料支撑的原因和控制方向。"},requirementsAddendum:{title:"招标管理要求、补疑澄清与修正",pattern:/招标|投标|合同|要求|承包|分包|保修|补疑|澄清|答疑|修正|变更|编制/u,guidance:"重点填充 requirements、addendumChanges。补疑澄清必须写 original、revised、sourceFile。评标办法、评分细则、分值构成、评审内容项属商务程序性内容,对施工组织设计编制无用,一律不抽取、不进图谱。无法确认原文时不要编造。"}};function m(a,b,c=8){return[...new Set(a.filter(a=>b.test(a.content)||b.test(a.sectionTitle||"")||b.test(a.filePath)).map(a=>a.filePath))].slice(0,c)}function n(a){return a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length}function o(a){let b=e.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,g.c6)(a||"default"));return d.mkdirSync(b,{recursive:!0}),b}function p(a,b,c){let f=o(a);f&&c&&d.writeFileSync(e.join(f,`project-graph-${b}.json`),JSON.stringify(c,null,2))}function q(a,b){if(!a)return{ok:!1,reasons:["LLM 未返回可解析的 ProjectGraph JSON"]};let c=[],d=n(a),e=k(b);0===d&&c.push("ProjectGraph 全部节点为空"),/招标范围|施工范围|建设内容|工程名称|项目名称|工程量|清单|图纸/u.test(e)&&0===a.works.length&&c.push("缺少工程范围/主要工程内容 works"),/工期|日历天|进度/u.test(e)&&0===a.schedule.length&&c.push("资料包含工期信息但 schedule 为空"),/质量|验收|标准|规范/u.test(e)&&0===a.standards.length&&c.push("资料包含质量/验收/标准信息但 standards 为空"),/材料|设备|机械|劳动力|工程量|清单/u.test(e)&&0===a.resources.length&&c.push("资料包含资源或工程量信息但 resources 为空");let f=[...a.works,...a.methods,...a.resources,...a.schedule,...a.standards,...a.risks,...a.requirements,...a.siteConditions].filter(a=>(a.sourceFiles||[]).length>0).length+a.addendumChanges.filter(a=>a.sourceFile).length;return d>0&&0===f&&c.push("图谱节点缺少来源文件"),{ok:0===c.length,reasons:c}}function r(a,b=!1){let c=a.works.length+a.methods.length+a.resources.length+a.schedule.length+a.standards.length+a.risks.length+a.requirements.length+a.siteConditions.length+a.addendumChanges.length;return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:`${b?"复用缓存:":""}${a.works.length}工程 ${a.methods.length}工法 ${a.resources.length}资源 ${a.schedule.length}节点 ${a.standards.length}标准 ${a.risks.length}风险 ${a.requirements.length}要求 ${a.siteConditions.length}条件 ${a.addendumChanges.length}修正${a.gaps.length?` ${a.gaps.length}缺口`:""}(${c}项)`,details:[...a.works.slice(0,3).map(a=>a.name),...a.resources.slice(0,3).map(a=>a.name),...a.gaps.slice(0,3)]},{subtitle:"项目图谱分析"})}function s(a){return(0,h.X5)({type:"file_understanding",roleId:"project-graph",status:"failed",message:`项目图谱分析失败:${a.slice(0,3).join(";")}`,details:a.slice(0,8)},{subtitle:"项目图谱分析"})}async function t(a){var b;if((0,g.Te)(a.signal),0===a.evidence.length)return{stage:s(["未检索到项目证据,无法生成可信 LLM 项目图谱"])};let c=(b={evidence:a.evidence,requirement:a.requirement,templateId:a.templateId,projectRoot:a.projectRoot},(0,g.c6)({version:"project-graph-v5-short-timeout-single-pass",requirement:b.requirement||"",templateId:b.templateId||"",evidence:b.evidence.map(a=>({filePath:a.filePath,fileSig:function(a,b){if(!a)return;let c=e.isAbsolute(b)?b:e.join(a,b);try{let a=d.statSync(c);return{mtimeMs:a.mtimeMs,size:a.size}}catch{return}}(b.projectRoot,a.filePath),sectionTitle:a.sectionTitle,contentHash:(0,g.c6)({length:a.content.length,head:a.content.slice(0,8e3),tail:a.content.slice(-8e3)})})).sort((a,b)=>`${a.filePath}${a.sectionTitle}`.localeCompare(`${b.filePath}${b.sectionTitle}`))})),h=function(a,b){let c=o(a);if(c)try{let a=JSON.parse(d.readFileSync(e.join(c,`project-graph-${b}.json`),"utf8"));return a&&Array.isArray(a.works)?a:void 0}catch{return}}(a.projectRoot,c),t=h?q(h,a.evidence):void 0;if(h&&t?.ok)return{graph:h,stage:r(h,!0)};let u=[...a.evidence].sort((a,b)=>b.score-a.score),v=function(a){let b=k(a),c=(a,c)=>{let d=function(a,b){let c=a.match(b);return c?.[1]?.replace(/\s+/gu," ").trim().slice(0,500)||""}(b,c);return d?`${a}:${d}`:""};return[c("项目名称",/(?:招标项目名称|项目名称|工程名称)[::\s]*([^。;\n]{3,120})/u),c("建设地点",/(?:建设地点|项目地点|实施地点)[::\s]*([^。;\n]{3,160})/u),c("建设规模",/(?:建设规模|建筑面积|总建筑面积)[::\s]*([^。;\n]{3,120})/u),c("计划工期",/(?:计划工期|总工期|工期要求|工期总日历天数)[::\s]*([^。;\n]{2,80})/u),c("质量标准",/(?:质量标准|质量要求|质量目标)[::\s]*([^。;\n]{2,120})/u),c("招标范围",/(?:招标范围|工程承包范围|施工范围|建设内容)[::\s]*([\s\S]{20,700}?)(?=\n#{1,4}\s|\n\d+[.、]\s|质量|工期|$)/u),m(a,/补疑|澄清|答疑|修正/u).length?`补疑澄清文件:${m(a,/补疑|澄清|答疑|修正/u).join("、")}`:""].filter(Boolean)}(u),w=[];async function x(b,c=[]){let d=function(a,b,c=52e3){let d=l[b],e=[...a].sort((a,b)=>{let c=+!!d.pattern.test(`${a.filePath}${a.sectionTitle||""}${a.content}`);return!!d.pattern.test(`${b.filePath}${b.sectionTitle||""}${b.content}`)-c||b.score-a.score}),f=[],g=0;for(let a of e){let b={...a,content:a.content.replace(/\s+/gu," ").trim().slice(0,5e3)};if((!(g+b.content.length>c)||!(f.length>=8))&&(f.push(b),(g+=b.content.length)>=c||f.length>=18))break}return f}(u,b,c.length?64e3:52e3),h=await (0,f.bb)(`${(0,i.y4)('通读以下项目资料(招标文件、工程量清单、图纸设计说明、补疑文件等),\n输出一个 JSON 对象,描述你对该项目的完整理解。\n\nJSON 字段(全部为数组,无相关信息时返回空数组):\n works: [{name, scope, sourceFiles, relatedItems}]\n methods: [{name, steps, applicableWorks, sourceFiles}]\n resources: [{name, type:"material"|"equipment"|"labor", spec, quantity, unit, sourceFiles}]\n schedule: [{milestone, duration, startDate, endDate, sourceFiles}]\n standards: [{code, description, sourceFiles}]\n risks: [{risk, level:"high|medium|low", mitigation, sourceFiles}]\n requirements: [{category, detail, sourceFiles}]\n siteConditions: [{condition, impact, sourceFiles}]\n addendumChanges: [{originalPath, original, revised, sourceFile}]\n gaps: [string] 仅记录资料中确实缺失且影响施工组织设计编制的事实;证据中已出现的内容不得声称「未提供/未找到」\n\n只基于资料内容,不编造。每个条目标注来源文件。只返回 JSON。')}
@@ -91,6 +96,6 @@ ${b.slice(0,2e3)}`),k=(()=>{let d=f.contextLayers?.l3||0;if(d<=0||d>=b.length)re
91
96
  ${i}`),warmup:()=>{let a=f.diagnostics?B(f.diagnostics,f.prefixKey):void 0;return a&&(a.calls+=1,a.inputChars+=e.length+i.length),o.chat([{role:"system",content:e},{role:"user",content:i}],{temperature:0,maxTokens:1,signal:h,disableThinking:r.disableThinking}).then(b=>{a&&b.usage&&(a.cacheHitTokens+=b.usage.promptCacheHitTokens||0,a.cacheMissTokens+=b.usage.promptCacheMissTokens||0)}).then(()=>void 0)}}})(),l=await new Promise((g,l)=>{!function(a,b,c,d){var e;let f=(e=j,void 0!==v?v:e>=16?500:120);if(f<=0)return b();s.push({fingerprint:a,launch:b,warmup:c,warmupKey:d}),t||(t=setTimeout(()=>{t=null;let a=s;s=[],function(a){let b=[...a].sort((a,b)=>a.fingerprint<b.fingerprint?-1:+(a.fingerprint>b.fingerprint)),c=[];for(let a of b){let b=c[c.length-1];b&&b[0].fingerprint===a.fingerprint?b.push(a):c.push([a])}for(let a of c){let b=a.find(a=>a.warmup&&a.warmupKey);if(!("0"!==process.env.DOCUMENT_PREFIX_WARMUP&&a.length>=2&&b?.warmup&&b.warmupKey&&!u.has(b.warmupKey))){for(let b of a)b.launch();continue}let c=b.warmupKey;u.add(c),b.warmup().catch(()=>{u.delete(c)}).then(()=>{for(let b of a)b.launch()})}}(a)},f))}(i,()=>{if(f.signal?.aborted)return void l(Error("用户中止"));o.chat([{role:"system",content:c?`${a}
92
97
  只返回 JSON,不要返回 markdown。`:a},{role:"user",content:e?`${b}
93
98
 
94
- (重要:缩短思考过程,直接给出最终结论。)`:b}],{temperature:f.temperature??.3*!c,maxTokens:d,signal:h,disableThinking:r.disableThinking}).then(g).catch(a=>{l(a instanceof Error?a:Error(String(a)))})},k?.warmup,k?.warmupKey)}),m=l.content?.trim()??"";if(m){if(f.diagnostics&&l.usage){let a=f.diagnostics.llm;a.inputTokens=(a.inputTokens||0)+l.usage.promptTokens,a.outputTokens=(a.outputTokens||0)+l.usage.completionTokens,a.promptCacheHitTokens=(a.promptCacheHitTokens||0)+(l.usage.promptCacheHitTokens||0),a.promptCacheMissTokens=(a.promptCacheMissTokens||0)+(l.usage.promptCacheMissTokens||0);let b=B(f.diagnostics,f.prefixKey);b.cacheHitTokens+=l.usage.promptCacheHitTokens||0,b.cacheMissTokens+=l.usage.promptCacheMissTokens||0,l.usage.reasoningTokens&&(a.reasoningTokens=(a.reasoningTokens||0)+l.usage.reasoningTokens)}return m}throw A};for(let a=0;a<=1;a+=1){if(f.signal?.aborted)throw Error("用户中止");try{let b=1===a&&h===A,c=await C(y,b);return p=0,f.diagnostics&&(f.diagnostics.llm.failureStreak=0),c}catch(b){if(h=b,f.signal?.aborted)throw Error("用户中止",{cause:b});if(b!==A&&!function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/connection error|econnrefused|econnreset|fetch failed|network|socket|eai_again|enotfound|etimedout|429|502|503|504|rate ?limit|too many requests|overloaded|服务繁忙|连接失败|abort|timeout|timed ?out|terminated/iu.test(b)}(b)||a>=1)break;f.diagnostics&&(f.diagnostics.llm.retries+=1),await new Promise(c=>{setTimeout(c,function(a,b=0){return"0"!==process.env.DOCUMENT_LLM_RETRY_BACKOFF&&a&&function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/503|overloaded|服务繁忙/iu.test(b)}(a)?Math.min(3e4,2e3*2**Math.max(0,b))+Math.floor(1e3*Math.random()):1200+Math.floor(800*Math.random())}(b,a))})}}p+=1,f.diagnostics&&(f.diagnostics.llm.failures+=1,f.diagnostics.llm.failureStreak=(f.diagnostics.llm.failureStreak||0)+1,f.diagnostics.llm.lastError=h instanceof Error?h.message:h===A?"空响应(思考阶段耗尽输出预算)":String(h));return}finally{k()}}function D(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim();if(c)return c;let d=b.indexOf("{"),e=b.lastIndexOf("}"),f=b.indexOf("["),g=b.lastIndexOf("]"),h=d>=0&&e>d?b.slice(d,e+1):"",i=f>=0&&g>f?b.slice(f,g+1):"";return h&&(!i||d<=f)?h:i||b}function E(a,b){if("object"!=typeof a||null===a||Array.isArray(a))return[`根节点类型错误(期望 object,得到 ${null===a?"null":Array.isArray(a)?"array":typeof a})`];let c=[];for(let d of b.required||[])d in a||c.push(`缺失字段 $.${d}`);for(let[d,e]of Object.entries(b.properties)){let b=a[d];if(void 0===b){e.required&&c.push(`缺失字段 $.${d}`);continue}c.push(...function a(b,c,d){let e=Array.isArray(b)?"array":null===b?"null":typeof b;if("number"===c.type&&"string"===e){let a=String(b).trim(),c=Number(a);""!==a&&Number.isFinite(c)&&(e="number")}if(e!==c.type)return[`字段 ${d} 类型错误(期望 ${c.type},得到 ${Array.isArray(b)?"array":null===b?"null":typeof b})`];let f=[];if("string"===c.type)void 0!==c.minLength&&b.length<c.minLength&&f.push(`字段 ${d} 长度不足(期望 ≥${c.minLength},得到 ${b.length})`),void 0!==c.maxLength&&b.length>c.maxLength&&f.push(`字段 ${d} 长度超限(期望 ≤${c.maxLength},得到 ${b.length})`);else if("array"===c.type)void 0!==c.minItems&&b.length<c.minItems&&f.push(`字段 ${d} 条数不足(期望 ≥${c.minItems},得到 ${b.length})`),void 0!==c.maxItems&&b.length>c.maxItems&&f.push(`字段 ${d} 条数超限(期望 ≤${c.maxItems},得到 ${b.length})`),c.items&&b.forEach((b,e)=>f.push(...a(b,c.items,`${d}[${e}]`)));else if("object"===c.type&&c.properties)for(let[e,g]of Object.entries(c.properties)){let c=b[e];if(void 0===c){g.required&&f.push(`缺失字段 ${d}.${e}`);continue}f.push(...a(c,g,`${d}.${e}`))}return f}(b,e,`$.${d}`))}return c.slice(0,6)}function F(a,b){a&&(a.llm.schemaFailures=(a.llm.schemaFailures||0)+1,a.llm.lastError=b)}function G(a){return Math.ceil(1.5*(a||2e3))}async function H(a,b,c={},d){let e,f=c.maxTokens,g=d??((a,b)=>C(a,b,!0,{maxTokens:f,temperature:c.temperature,signal:c.signal,diagnostics:c.diagnostics,disableThinkingBoost:c.disableThinkingBoost,taskKind:c.taskKind,contextLayers:c.contextLayers,prefixKey:c.prefixKey}));for(let d=0;d<=2&&!c.signal?.aborted;d+=1){let h=0===d?b:`${b}
99
+ (重要:缩短思考过程,直接给出最终结论。)`:b}],{temperature:f.temperature??0,maxTokens:d,signal:h,disableThinking:r.disableThinking}).then(g).catch(a=>{l(a instanceof Error?a:Error(String(a)))})},k?.warmup,k?.warmupKey)}),m=l.content?.trim()??"";if(m){if(f.diagnostics&&l.usage){let a=f.diagnostics.llm;a.inputTokens=(a.inputTokens||0)+l.usage.promptTokens,a.outputTokens=(a.outputTokens||0)+l.usage.completionTokens,a.promptCacheHitTokens=(a.promptCacheHitTokens||0)+(l.usage.promptCacheHitTokens||0),a.promptCacheMissTokens=(a.promptCacheMissTokens||0)+(l.usage.promptCacheMissTokens||0);let b=B(f.diagnostics,f.prefixKey);b.cacheHitTokens+=l.usage.promptCacheHitTokens||0,b.cacheMissTokens+=l.usage.promptCacheMissTokens||0,l.usage.reasoningTokens&&(a.reasoningTokens=(a.reasoningTokens||0)+l.usage.reasoningTokens)}return m}throw A};for(let a=0;a<=1;a+=1){if(f.signal?.aborted)throw Error("用户中止");try{let b=1===a&&h===A,c=await C(y,b);return p=0,f.diagnostics&&(f.diagnostics.llm.failureStreak=0),c}catch(b){if(h=b,f.signal?.aborted)throw Error("用户中止",{cause:b});if(b!==A&&!function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/connection error|econnrefused|econnreset|fetch failed|network|socket|eai_again|enotfound|etimedout|429|502|503|504|rate ?limit|too many requests|overloaded|服务繁忙|连接失败|abort|timeout|timed ?out|terminated/iu.test(b)}(b)||a>=1)break;f.diagnostics&&(f.diagnostics.llm.retries+=1),await new Promise(c=>{setTimeout(c,function(a,b=0){return"0"!==process.env.DOCUMENT_LLM_RETRY_BACKOFF&&a&&function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/503|overloaded|服务繁忙/iu.test(b)}(a)?Math.min(3e4,2e3*2**Math.max(0,b))+Math.floor(1e3*Math.random()):1200+Math.floor(800*Math.random())}(b,a))})}}p+=1,f.diagnostics&&(f.diagnostics.llm.failures+=1,f.diagnostics.llm.failureStreak=(f.diagnostics.llm.failureStreak||0)+1,f.diagnostics.llm.lastError=h instanceof Error?h.message:h===A?"空响应(思考阶段耗尽输出预算)":String(h));return}finally{k()}}function D(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim();if(c)return c;let d=b.indexOf("{"),e=b.lastIndexOf("}"),f=b.indexOf("["),g=b.lastIndexOf("]"),h=d>=0&&e>d?b.slice(d,e+1):"",i=f>=0&&g>f?b.slice(f,g+1):"";return h&&(!i||d<=f)?h:i||b}function E(a,b){if("object"!=typeof a||null===a||Array.isArray(a))return[`根节点类型错误(期望 object,得到 ${null===a?"null":Array.isArray(a)?"array":typeof a})`];let c=[];for(let d of b.required||[])d in a||c.push(`缺失字段 $.${d}`);for(let[d,e]of Object.entries(b.properties)){let b=a[d];if(void 0===b){e.required&&c.push(`缺失字段 $.${d}`);continue}c.push(...function a(b,c,d){let e=Array.isArray(b)?"array":null===b?"null":typeof b;if("number"===c.type&&"string"===e){let a=String(b).trim(),c=Number(a);""!==a&&Number.isFinite(c)&&(e="number")}if(e!==c.type)return[`字段 ${d} 类型错误(期望 ${c.type},得到 ${Array.isArray(b)?"array":null===b?"null":typeof b})`];let f=[];if("string"===c.type)void 0!==c.minLength&&b.length<c.minLength&&f.push(`字段 ${d} 长度不足(期望 ≥${c.minLength},得到 ${b.length})`),void 0!==c.maxLength&&b.length>c.maxLength&&f.push(`字段 ${d} 长度超限(期望 ≤${c.maxLength},得到 ${b.length})`);else if("array"===c.type)void 0!==c.minItems&&b.length<c.minItems&&f.push(`字段 ${d} 条数不足(期望 ≥${c.minItems},得到 ${b.length})`),void 0!==c.maxItems&&b.length>c.maxItems&&f.push(`字段 ${d} 条数超限(期望 ≤${c.maxItems},得到 ${b.length})`),c.items&&b.forEach((b,e)=>f.push(...a(b,c.items,`${d}[${e}]`)));else if("object"===c.type&&c.properties)for(let[e,g]of Object.entries(c.properties)){let c=b[e];if(void 0===c){g.required&&f.push(`缺失字段 ${d}.${e}`);continue}f.push(...a(c,g,`${d}.${e}`))}return f}(b,e,`$.${d}`))}return c.slice(0,6)}function F(a,b){a&&(a.llm.schemaFailures=(a.llm.schemaFailures||0)+1,a.llm.lastError=b)}function G(a){return Math.ceil(1.5*(a||2e3))}async function H(a,b,c={},d){let e,f=c.maxTokens,g=d??((a,b)=>C(a,b,!0,{maxTokens:f,temperature:c.temperature,signal:c.signal,diagnostics:c.diagnostics,disableThinkingBoost:c.disableThinkingBoost,taskKind:c.taskKind,contextLayers:c.contextLayers,prefixKey:c.prefixKey}));for(let d=0;d<=2&&!c.signal?.aborted;d+=1){let h=0===d?b:`${b}
95
100
 
96
101
  (重试修正:上一次输出未通过——${e??"输出无效"}。请重新输出完整合法的 JSON,只返回 JSON。)`,i=await g(a,h);if(!i){c.outFailure&&c.diagnostics?.llm.lastError&&(c.outFailure.value=c.diagnostics.llm.lastError);break}let j=D(i);try{let a=JSON.parse(j);if(c.schema){let b=E(a,c.schema);if(b.length>0){let a=`JSON Schema 校验失败:${b.join(";")}`;if(e=a,F(c.diagnostics,a),a.includes("缺失字段")&&(f=G(f)),d>=2){c.outFailure&&(c.outFailure.value=a);return}continue}}return a}catch{let a=function(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim()??b,d=c.indexOf("{"),e=c.indexOf("["),f=d<0?e:e<0?d:Math.min(d,e);if(f<0)return;let g=c.slice(f),h=[],i=!1,j=!1,k=[];for(let a=0;a<g.length;a+=1){let b=g[a];if(i){j?j=!1:"\\"===b?j=!0:'"'===b&&(i=!1);continue}if('"'===b){i=!0;continue}if("{"===b||"["===b){h.push("{"===b?"object":"array");continue}if("}"===b||"]"===b){h.pop();continue}","===b&&(k[h.length-1]=a)}if(0===h.length)return;let l=-1;for(let a=h.length-1;a>=0;a-=1)if(void 0!==k[a]){l=a;break}if(l<0)return;let m=k[l],n=g.slice(0,m),o=[];for(let a=l;a>=0;a-=1)o.push("object"===h[a]?"}":"]");let p=`${n}${o.join("")}`;try{return JSON.parse(p),p}catch{return}}(i);if(a)try{let b=JSON.parse(a);if(c.schema){let a=E(b,c.schema);if(0===a.length)return b;let g=`JSON Schema 校验失败:${a.join(";")}`;if(e=g,F(c.diagnostics,g),g.includes("缺失字段")&&(f=G(f)),d>=2){c.outFailure&&(c.outFailure.value=g);return}continue}return b}catch{}let b=`JSON 解析失败:${function(a){let b=D(a),c=(b.match(/\{/gu)||[]).length-(b.match(/\}/gu)||[]).length,d=(b.match(/\[/gu)||[]).length-(b.match(/\]/gu)||[]).length,e=b.slice(-80).replace(/\s+/gu," ");return c>0||d>0?`JSON 被截断({ 未闭合 ${c} 个、[ 未闭合 ${d} 个),截断位置响应末段:${e}`:`JSON 语法错误,出错位置响应末段:${e}`}(j)}`;if(e=b,/JSON 被截断/u.test(b)&&(f=G(f)),F(c.diagnostics,b),d>=2){c.outFailure&&(c.outFailure.value=b);return}continue}}}async function I(a,b,c={}){return H(a,b,c)}}};