@customize-agent/server 4.1.41 → 4.1.42

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 (41) 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/1985.js +1 -1
  5. package/.next/server/chunks/5284.js +1 -1
  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/asset-library.html +1 -1
  10. package/.next/server/pages/document-roles.html +1 -1
  11. package/.next/server/pages/documents.html +1 -1
  12. package/.next/server/pages/guide.html +1 -1
  13. package/.next/server/pages/index.html +1 -1
  14. package/.next/server/pages/knowledge/file-detail.html +1 -1
  15. package/.next/server/pages/knowledge/files.html +1 -1
  16. package/.next/server/pages/knowledge/manage.html +1 -1
  17. package/.next/server/pages/knowledge.html +1 -1
  18. package/.next/server/pages/models.html +1 -1
  19. package/.next/server/pages/overview.html +1 -1
  20. package/.next/server/pages/prompt.html +1 -1
  21. package/.next/server/pages/settings.html +1 -1
  22. package/.next/server/pages/system/logs.html +1 -1
  23. package/.next/server/pages-manifest.json +28 -28
  24. package/.next/static/{kRTlOJWApdxStALXWf2ZF → _h7_gLVrsB3kJ8QuYvZwi}/_buildManifest.js +1 -1
  25. package/.next/static/chunks/{289-12dfcb3abec1c4b4.js → 289-35ac595388bbd018.js} +1 -1
  26. package/.next/static/chunks/563-b12f299d34bb9e44.js +1 -0
  27. package/.next/static/chunks/788-3afeb069ed706ac0.js +1 -0
  28. package/.next/static/chunks/pages/documents-fa7e8bb1b86f68b7.js +1 -0
  29. package/.next/static/chunks/pages/knowledge/files-8503246ce2bc07c6.js +1 -0
  30. package/.next/static/chunks/pages/knowledge/manage-a00bb7fc6a76f820.js +1 -0
  31. package/.next/static/chunks/pages/prompt-224af05519ef8304.js +1 -0
  32. package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +1 -0
  33. package/package.json +1 -1
  34. package/.next/static/chunks/563-2b116a2500a97dba.js +0 -1
  35. package/.next/static/chunks/788-961761f5858f9189.js +0 -1
  36. package/.next/static/chunks/pages/documents-4d295412f0371924.js +0 -1
  37. package/.next/static/chunks/pages/knowledge/files-dcc806117e92dc9d.js +0 -1
  38. package/.next/static/chunks/pages/knowledge/manage-ca9bafc8b0f4a76b.js +0 -1
  39. package/.next/static/chunks/pages/prompt-200241126dbfb31a.js +0 -1
  40. package/.next/static/chunks/pages/system/logs-c5a8920c6506a7e8.js +0 -1
  41. /package/.next/static/{kRTlOJWApdxStALXWf2ZF → _h7_gLVrsB3kJ8QuYvZwi}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- kRTlOJWApdxStALXWf2ZF
1
+ _h7_gLVrsB3kJ8QuYvZwi
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/kRTlOJWApdxStALXWf2ZF/_buildManifest.js",
9
- "static/kRTlOJWApdxStALXWf2ZF/_ssgManifest.js"
8
+ "static/_h7_gLVrsB3kJ8QuYvZwi/_buildManifest.js",
9
+ "static/_h7_gLVrsB3kJ8QuYvZwi/_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/230-8184e70eae35f2bb.js",
79
- "static/chunks/pages/documents-4d295412f0371924.js"
79
+ "static/chunks/pages/documents-fa7e8bb1b86f68b7.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-dcc806117e92dc9d.js"
126
+ "static/chunks/pages/knowledge/files-8503246ce2bc07c6.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-ca9bafc8b0f4a76b.js"
137
+ "static/chunks/788-3afeb069ed706ac0.js",
138
+ "static/chunks/pages/knowledge/manage-a00bb7fc6a76f820.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/187-358527d7061417bf.js",
170
- "static/chunks/pages/prompt-200241126dbfb31a.js"
170
+ "static/chunks/pages/prompt-224af05519ef8304.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": "1ba22942995886670823fa351ab04ce4",
7
- "previewModeSigningKey": "aafdbb4a73d1b3a02628ea682b3c3d33a131ae4dbc94fa6f9773009f36daaed3",
8
- "previewModeEncryptionKey": "05cb51bb138a0a756b0ebc96c791d5ed952fcca471e7c7537f25985713931cca"
6
+ "previewModeId": "0be1a5e064f9013bb45fa7d4d89475ab",
7
+ "previewModeSigningKey": "dc53afa5d39cba2756620713d3339b32ea5645d8310ceda1e639a4ab94e4f0d2",
8
+ "previewModeEncryptionKey": "9b5f1f6707cee1b320c453a6afc8b3ba577fdd6a8862359021974f739f044ea0"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -99,7 +99,7 @@ ${a.graphContext}`:"",b?`事实卡:
99
99
  ${b}`:"",`小节任务:
100
100
  ${c}`,"写作要求:必须严格按“小节任务”逐项输出,每个任务都必须保留完全一致的三级标题“### 小节标题”;不得合并小节、不得改写小节标题、不得省略小节;只使用事实卡、图谱上下文和绑定证据;不得输出后台话术、兜底措辞、待确认、不适用;缺少事实的小节不得编造。"].filter(Boolean).join("\n\n")}function cQ(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function cR(a){return cJ(cQ(a)).replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/\s/gu,"")}function cS(a){let b=[],c=a.draft.content||"";for(let d of cI)"围绕"!==d&&c.includes(d)&&b.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`${a.draft.title} 正文包含禁止话术:${d}`,suggestion:"改为事实支撑的正式表达;缺失事实不得占位。"});for(let d of a.task.sections){let a=function(a,b){let c=a.split("\n"),d=cJ(cQ(b)),e=cR(b),f=[],g=-1,h=a=>{if(g<0)return;let b=c.slice(g,a).join("\n").trim();b&&f.push(b),g=-1};for(let a=0;a<c.length;a+=1){var i;if(!/^\s*#{2,4}\s+/u.test(c[a]))continue;h(a);let b=(i=cQ(c[a]),cJ(cQ(i))),f=cR(cQ(c[a]));(b===d||b.includes(d)||d.includes(b)||f===e||f.includes(e)||e.includes(f))&&(g=a+1)}return h(c.length),f.sort((a,b)=>(0,w.V7)(b)-(0,w.V7)(a))[0]||""}(c,d.title);if(a.includes("[WRITER_MISSING_SECTION]"))b.push({level:"error",severity:"blocker",category:"structure",owner:"system",message:`${d.title} Writer 未完成`,suggestion:"Repairer 必须基于该小节事实卡和证据生成正式正文,并删除 WRITER_MISSING_SECTION 标记。"});else if((0,w.V7)(a)<d.minChars){let a=/项目特点.*重点.*难点|重点.*难点.*分析|项目主要施工内容|主要分部分项工程施工方案|主要施工方法|危大工程专项施工方案审批流程|原材料进场复试|见证取样/u.test(d.title);b.push({level:a?"error":"warning",severity:a?"blocker":"warning",category:"structure",owner:"system",message:`${d.title} 正文不足,未达到任务最小深度`,suggestion:a?"关键小节必须基于项目事实和对应关系重写补足;不得仅保留概述性文字。":"应基于该小节事实卡和证据重新生成,不得使用标题占位。"})}d.ready||b.push(...d.issues)}let d=a.context.materialScope.selectedRoots;for(let e of a.context.materialScope.rejectedRoots)e&&!d.includes(e)&&c.includes(e)&&b.push({level:"error",severity:"blocker",category:"evidence_coverage",owner:"system",message:`${a.draft.title} 混入非当前资料组名称:${e}`,suggestion:"必须删除跨项目内容并重新检索当前资料组证据。"});let e=a.task.facts.filter(a=>{let b=cK(a);return b.length>=2&&c.includes(b.slice(0,Math.min(18,b.length)))}).length;a.task.facts.length>0&&0===e&&b.push({level:"error",severity:"blocker",category:"evidence_coverage",owner:"system",message:`${a.draft.title} 未落位章节事实卡`,suggestion:"必须将章节事实卡中的关键事实写入对应小节。"});let f=b.filter(a=>"error"===a.level||"blocker"===a.severity),g=b.filter(a=>/正文不足|未落位章节事实卡/u.test(a.message));return{issues:b,supportedFacts:e,unsupportedSignals:b.map(a=>a.message),repairable:b.length>0&&(b.length<=6||g.length===b.length||0===f.length)}}function cT(a){return a.replace(/\s+/gu,"").toLowerCase()}var cU=c(14070);async function cV(a){(0,M.Te)(a.signal);let b=(0,d.QJ)(a.templateId);if(!b)throw Error("Document template not found");let c=e.resolve(a.projectRoot||(0,g.aY)());if(!c)throw Error("No knowledge base project found");let o=(0,f.computeProjectId)(c),p=b,q=(0,g.Qh)(),y=[],G=[],H=(b,c=O)=>{let d=b?[...b].sort((a,b)=>{let c=G.indexOf(a.id),d=G.indexOf(b.id);return(c<0?Number.MAX_SAFE_INTEGER:c)-(d<0?Number.MAX_SAFE_INTEGER:d)}):void 0;a.onProgress?.([...c],d?{chapters:d}:void 0)},I=Math.max(15e3,Math.min(6e4,Number(process.env.DOCUMENT_GENERATION_HEARTBEAT_MS??3e4))),J=async(b,c=O)=>{let d=setInterval(()=>{a.signal?.aborted||H(y,c)},I);try{return await b()}finally{clearInterval(d)}},K=(0,d.N6)(p)||"none",L=(0,i.Mu)(K)?.name||K,O=[(0,ay.X5)({type:"role_binding",roleId:K,status:"running",message:`生成任务已创建,正在读取模板与角色配置:${p.name}`,details:[`当前项目:${o}`,`资料目录:${e.join(c,"knowledgeBase")}`,"正在读取项目资料包和提示词配置"],progress:{current:1,total:4,label:"初始化配置"}},{subtitle:L,roleName:L,order:0})];H();let P=(0,d.bj)(p),Q=P.bindings;(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-preparation",status:"running",message:"正在分析模板规范、用户要求与项目资料包",details:["解析 OUTLINE 与模板章节","读取项目资料包","自动识别资料类型并构建项目理解"],progress:{current:1,total:3,label:"准备分析"}},{subtitle:"生成准备",order:O.length})),H();let R=(0,b5.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:[]}).materialScope.selectedFiles;if(0===R.length)throw Error("模板未绑定可用项目资料包,请先在模板中绑定需要参与生成的项目文件夹。");let T=(0,aE.W9)(c,p,{requirement:a.requirement}),U=(0,aE._n)(p,T),{kindByPath:V,processingByPath:W}=(0,aE.Hz)(T),X=aD([...P.writerPrompts,...P.chapterPrompts]),Y=(0,t.cs)([{text:a.requirement,source:"用户需求",strict:!0},{text:X,source:"提示词角色",strict:!0}]),Z=Y.length>=2;Z&&(p={...b,chapters:Y});let ab=await J(()=>Promise.resolve((0,k.P)(c,{requirement:a.requirement,boundFilePaths:R})));(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-preparation",status:"running",message:"正在生成自动文档规格并评估生成准备度",details:[`项目资料:${R.length} 份`,`资料类型:${Object.values(T.groups).filter(a=>a.length>0).length} 类`,"生成事实字段与章节约束"],progress:{current:2,total:3,label:"规格评估"}},{subtitle:"生成准备",order:O.length})),H();let ac=await J(()=>Promise.resolve((0,j.x)(p,a.requirement||""))),ag=ac.spec,ah=function(a,b=""){let c=`${a?.id||""} ${a?.name||""} ${a?.category||""} ${a?.description||""} ${a?.outputTitle||""} ${b}`;return/施工组织设计|施工方案|危大工程|人、材、机|安全文明施工/u.test(c)?m:l}(p,a.requirement||""),aj=(0,r.$)({template:p,spec:ag,summary:ab,resolvedRoles:[]});if(!aj.ready)throw Error(`生成准备度不足:${aj.blockingIssues.join(";")}`);let ak=[U.prompt,(0,k.F)(ab,{publicSafe:!0}),(0,j.N)(ag,ac.sourceHash,{publicSafe:!0}),(0,r.R)(aj,{publicSafe:!0})].filter(Boolean).join("\n\n"),an=[U.prompt,(0,k.F)(ab),(0,j.N)(ag,ac.sourceHash),(0,r.R)(aj)].filter(Boolean).join("\n\n"),ao=aD([...P.writerPrompts,...P.formattingPrompts]),ap=aD([...P.writerPrompts,...P.chapterPrompts,...P.formattingPrompts]),az=aD(P.prompts),aF=(0,h.I)().load().webAccess||{enabled:!1,allowProjectFacts:!1,maxQueriesPerChapter:2,maxResultsPerQuery:3,trustedDomains:[]},aG=function(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),d=function(a){let b=a.replace(/\\n/gu,"\n"),c=new Set;for(let a of(/全文必须输出[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||/必须输出(?:的)?表格[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||"").split(/[、,,]/u)){let b=/([\p{Script=Han}A-Za-z0-9()()]{2,30}表)$/u.exec(a.trim())?.[1];b&&b.length>=4&&b.length<=30&&c.add(b)}/项目基本信息表/u.test(b)&&c.add("项目基本信息表");let d=["知识库","提示词","建议补充","资料库","OCR","后台","绑定片段"];/杜绝(?:套话|空话)|禁止(?:套话|空话)|不得(?:套话|空话)|严禁(?:套话|空话)/u.test(b)&&d.push("高度重视","重中之重"),/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(b)&&d.push("报价明细表");let e=aR(b,"封面"),f=aR(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:aO(b),forbiddenPatterns:aP(b)}}(c),e=[...new Set([...d.requiredTables,...function(a){let b=new Set;for(let c of[/(?:必须|应当|需要|全文必须|至少)输出(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须|至少)包含(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:表格清单|表格要求)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of(d[1]||"").split(/[、,,//及和与]/u)){let c=/([\p{Script=Han}A-Za-z0-9()()《》<>]{2,40}表)/u.exec(a.trim())?.[1];c&&b.add(c.replace(/[<>《》]/gu,""))}for(let c of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,40}表)(?:必须|应当|需要|不得缺失|不可缺失)/gu))b.add(c[1]);return/项目基本信息表/u.test(a)&&b.add("项目基本信息表"),[...b]}(c)])],f=aO(c),g=aP(c),h=function(a){let b=[];for(let c of(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u)){let a=c.replace(/^\s*(?:\d+[.、.]|[-*])\s*/u,"").trim();a.length>=2&&a.length<=80&&!aI(a)&&b.push(a)}return[...new Set(b)]}(c),i=["知识库","提示词","建议补充","资料库","OCR","后台","绑定片段"],j=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],k=[],l=function(a){let b=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return Math.floor(c*(b[2]?1e4:1))}(c),m=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:aQ(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:aQ(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),n=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:aQ(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:aQ(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:aQ(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),o=[d.coverPolicy&&"unspecified"!==d.coverPolicy?`已识别封面规则:${"required"===d.coverPolicy?"要求生成":"禁止生成"}`:"",d.tocPolicy&&"unspecified"!==d.tocPolicy?`已识别目录规则:${"required"===d.tocPolicy?"要求生成":"禁止生成"}`:"",h.length?`已识别一级章节固定规则 ${h.length} 条`:"",k.length?`已识别禁用主体表达:${k.join("、")}`:"",d.forbiddenTerms.length?`已识别禁用词 ${d.forbiddenTerms.length} 个`:"",e.length?`已识别必需表格:${e.join("、")}`:"",f.length?`已识别必含关键词:${f.join("、")}`:"",g.length?`已识别禁止出现内容:${g.join("、")}`:"",l?`已识别最低字数要求:${l} 字`:"",n.length?`已抽取角色执行规则 ${n.length} 组`:""].filter(Boolean),p=[],q={},r=(a,c,d,e)=>{let f=function(a,b,c){for(let d of a)if(d.content.includes(b))return{promptId:d.promptId,roleId:d.roleId,pattern:c};return{promptId:"system:generation-control",roleId:"generation-control",pattern:c}}(b,d,e);q[a]||(q[a]=[]),q[a].length<24&&q[a].push({...f,matchedText:d}),p.length<60&&p.push({rule:c,source:f,matchedText:d})};for(let a of(d.coverPolicy&&"unspecified"!==d.coverPolicy&&r("coverPolicy",`已识别封面规则:${d.coverPolicy}`,"封面",/封面|cover/u.source),d.tocPolicy&&"unspecified"!==d.tocPolicy&&r("tocPolicy",`已识别目录规则:${d.tocPolicy}`,"目录",/目录|toc/u.source),e))r("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of f)r("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of g)r("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of h)r("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return l&&r("minWords",`最低字数:${l}`,String(l),/\d{3,}\s*字/u.source),{...d,requiredTables:e,requiredKeywords:f,forbiddenPatterns:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(c),exactHeadings:h,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||h.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:k,backendTerms:i,commercialTerms:j,forbiddenTerms:[...new Set([...d.forbiddenTerms,...i,...j,...k])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:l,minChars:l,chapterRules:m,roleRules:n,executionSummary:o,ruleSources:Object.keys(q).length>0?q:void 0,extractionTrace:p.length>0?p:void 0}}({promptTexts:[ak,az].filter(Boolean).join("\n\n"),requirement:a.requirement,template:p,rolePrompts:P.prompts}),aH=[function(a){let b=[`运行时规则版本:${a.sourceHash}`,"required"===a.coverPolicy?"用户要求输出封面时必须保留封面;未要求时不得由系统擅自决定。":"","required"===a.tocPolicy?"用户要求输出目录时必须保留目录,并确保目录只来自最终合法正文标题。":"",a.forbidCover?"用户明确禁止输出封面。":"",a.forbidToc?"用户明确禁止输出目录、目录说明或导航页。":"",a.exactHeadings.length?`一级章节必须严格使用:${a.exactHeadings.join(";")}`:"",a.forbidExtraHeadings?"不得新增、删除、合并或改名一级章节。":"",a.requiredSubjects.length?`正文主体优先使用:${a.requiredSubjects.join("、")}`:"",a.forbiddenSubjects.length?`禁止主体表达:${a.forbiddenSubjects.join("、")}`:"",a.forbidFabrication?"不得编造系统暂未从知识库确认的项目事实、工程实体参数、人名、联系方式或品牌;应通过扩大检索、事实补抽或落位修复解决。":"",a.requireEvidenceForQuantities?"涉及数量、工期、质量标准、规格型号等参数时必须以绑定资料中的明确事实为准。":"",a.commercialTerms.length?`禁止输出商务敏感内容:${a.commercialTerms.join("、")}`:"",a.backendTerms.length?`禁止输出系统内部话术:${a.backendTerms.join("、")}`:"",a.requiredTables.length?`必须输出以下正式 Markdown 表格:${a.requiredTables.join("、")}。表格必须包含表名、表头、分隔线和数据行。`:"",a.requiredKeywords?.length?`正文必须覆盖以下关键词或要点:${a.requiredKeywords.join("、")}。`:"",a.forbiddenPatterns?.length?`正文禁止出现以下内容:${a.forbiddenPatterns.join("、")}。`:"",a.minWords?`全文不少于 ${a.minWords} 字。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
101
101
  ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`}(aG),!aF.enabled?"":"公开资料补充使用规则:\n1. 公开资料只可用于补充通用规范、政策、工艺和措施。\n2. 不得使用公开资料新增或修改项目名称、建设地点、建设规模、工期、质量标准、工程量、材料规格、图纸参数、商务数据。\n3. 本地项目资料与公开资料冲突时,必须以本地项目资料为准。\n4. 不得在正文中出现任何检索过程、外部页面、工具调用或系统内部过程性表述。\n5. 不得把公开资料中的其他项目案例参数写入本项目正文。"].filter(Boolean).join("\n\n"),aJ=[ak,aH,`生成前规划章节结构:
102
- ${(0,v.CK)(p)}`,ao||ap].filter(Boolean).join("\n\n"),aN=[an,aH,aD([...P.extractionPrompts,...P.referencePrompts])].filter(Boolean).join("\n\n"),aV=[ak,aH,aD([...P.writerPrompts,...P.chapterPrompts,...P.formattingPrompts])].filter(Boolean).join("\n\n");(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-preparation",status:"success",message:`模板规范与项目资料理解完成,识别 ${R.length} 份项目资料`,details:[`提示词绑定:${Q.length} 个`,`项目资料包:${T.materialRoots.join("、")||"当前知识库"}`,Z?`识别 OUTLINE 章节:${Y.length} 个`:"未识别显式 OUTLINE,使用模板章节"],progress:{current:3,total:3,label:"准备完成"}},{subtitle:"生成准备",order:O.length})),H();let aW=new Set(R),aX=new Map([...V.entries()].map(([a,b])=>[a,(0,aE._W)(b)])),aY=new Map([...W.entries()].map(([a,b])=>[a,b]));(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:"running",message:"正在读取项目资料包索引",details:["使用上传阶段已完成的解析、切片和索引结果","不在生成流程中重新解析或入库","准备按资料类型召回章节证据"],progress:{current:1,total:3,label:"读取索引"}},{subtitle:"知识库检索",order:O.length})),H();let aZ=await J(()=>q.getProject(c)),a$=function(a,b){let c=new Set(b.filter(Boolean)),d=(a.listFiles?.()||[]).filter(a=>0===c.size||c.has(a.relativePath)),e=new Set(d.map(a=>a.relativePath)),f=[...c].filter(a=>!e.has(a)),g=d.filter(a=>0===Math.max(0,Math.ceil(Number(a.chunkCount)||0))).map(a=>a.relativePath),h=d.filter(a=>"error"===a.status).map(a=>a.relativePath),i="function"==typeof a.countPendingIndexJobs?a.countPendingIndexJobs():0,j="function"==typeof a.getVectorStatus?a.getVectorStatus():void 0,k=d.filter(a=>"error"!==a.status&&Math.max(0,Math.ceil(Number(a.chunkCount)||0))>0),l=k.map(a=>a.relativePath),m=k.reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0),n=[...cA("部分绑定文件未完成索引,已自动跳过",f),...cA("部分绑定文件没有可用切片,已自动跳过",g),...cA("部分绑定文件索引失败,已自动跳过",h)],o=c.size>0&&0===m?["所有绑定文件均无可用切片"]:[],p=[...n,...i>0?[`仍有 ${i} 个待索引任务,建议等待索引完成后生成`]:[],...j&&"ready"!==j.status?[`向量索引状态为 ${j.status},当前召回质量可能下降`]:[]];return{scopedRecords:d,usablePaths:l,missingFiles:f,emptyFiles:g,errorFiles:h,pendingJobs:i,vectorStatus:j,usableChunkCount:m,blockingIssues:o,warnings:p}}(aZ,[...aW]);if(a$.blockingIssues.length>0)throw Error(`生成前知识索引不可用:${a$.blockingIssues.join(";")}`);let a_=new Set(a$.usablePaths),a0=bq(o,[...a_]),a1=cB(aZ,[...a_],a.maxEvidencePerChapter),a2=a$.pendingJobs>0||a$.vectorStatus&&"ready"!==a$.vectorStatus.status||0===a$.usableChunkCount,a3=function(a){let b=Math.max(0,Math.ceil(a.totalChunks||0)),c=Math.max(0,Math.ceil(a.loadedChunks||0)),d=Math.max(0,b-c),e=b>0?c/b:1,f=[...b>=1e3&&e<.35?["切片未完全预加载"]:[],...!1===a.vectorReady?["向量索引未就绪"]:[]];return{totalChunks:b,loadedChunks:c,omittedChunks:d,loadedRatio:e,highRisk:f.length>0,riskReason:f.join("、")||void 0}}({totalChunks:Math.min(a$.usableChunkCount,20*R.length),loadedChunks:Math.min(a$.usableChunkCount,20*R.length),vectorReady:a$.vectorStatus?"ready"===a$.vectorStatus.status:void 0});(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:a2?"failed":"success",message:`已读取知识索引:项目资料 ${a$.scopedRecords.length} 份,可用切片 ${a$.usableChunkCount} 条`,details:[`项目资料:${aW.size} 份`,`可用证据文件:${a_.size} 份`,`向量状态:${a$.vectorStatus?.status||"unknown"}`,...a$.warnings,"后续将按招标正文/清单/图纸/补疑等资料类型召回"],progress:{current:3,total:3,label:"索引已就绪"}},{subtitle:"知识库检索",order:O.length})),H(),(0,M.Te)(a.signal);let a5=[],a6=[],a7={enabled:aF.enabled,queries:[],evidenceCount:0,filteredCount:0,chapters:[]},a8=[],a9=[],bb=[],bf=[],bg=[],bh=-1,bi=new Map,bj=new Map,bk=(a,b)=>{let c=`${a}::${b.maxChunkContentChars}`;if(!bj.has(c))try{bj.set(c,aZ.getFileDetail?.(a,b))}catch{bj.set(c,void 0)}return bj.get(c)},bl=async(a,b,d,e)=>{let f=ct(e),g=(0,M.c6)({query:a,scopedFilePaths:b,limit:d,weights:f,generationMode:!1}),h=bi.get(g);if(h)return h;let i=await q.search(c,a,{scope:"project",filters:{filePaths:b},limit:d,weights:f,generationMode:!1}).catch(()=>null),j=i?.results||[];return bi.set(g,j),j},bm={stage:(0,ay.X5)({type:"file_understanding",roleId:"project-understanding",status:"success",message:`已完成项目资料理解:${T.files.length} 份资料,${Object.values(T.groups).filter(a=>a.length>0).length} 类资料类型`,details:U.prompt.split("\n").slice(0,16)},{subtitle:"项目资料理解",order:O.length})};(0,ay.fx)(O,bm.stage),H();let bn=bt(await b9({manager:q,project:aZ,projectRoot:c,scopedFilePaths:[...aW].filter(Boolean).sort(),fileRoleByPath:aX,fileProcessingByPath:aY,signal:a.signal}),a0);bv(bn,a0,"project-basic-evidence"),bn.length>0&&(a5.push(...bn),(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"project-basic-evidence",status:"success",message:`已锁定项目基础事实证据 ${bn.length} 条`,details:bn.slice(0,8).map(a=>`${e.basename(a.filePath)}|${a.sectionTitle||"正文片段"}|score=${a.score.toFixed(2)}`)},{subtitle:"基础事实召回",order:O.length})),H());let bp=bu(af(a5,p,ag),a0),br=bu(al(a5),a0),bs=[...bp,...br,...bu(am(a5,ah),a0)],bw=(0,cH.hp)({projectRoot:c,template:p,requirement:a.requirement}),bx=[...bw?.facts||[],...bs],by=ax(bx,bu(ae(a5),a0),a8,ag,ah),bz=(0,b5.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:bx});for(let a of(bw&&(bz.baseProjectGraph=bw.projectGraph,bz.facts=[...bw.facts,...bz.facts]),(0,b5.SU)(bz).filter(a=>!bw||"agent-base-project-graph"!==a.roleId)))(0,ay.fx)(O,a);bw&&(0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-intelligence-cache",status:"success",message:`已复用入库后项目理解资产与绑定 scope 快照:${bw.files.length} 份绑定资料`,details:[`项目级缓存时间:${new Date(bw.cache.createdAt).toLocaleString()}`,`scope 快照:${bw.scopeSnapshot.scopeHash.slice(0,12)}`,`复用预计算事实:${bw.facts.length} 条`,`复用预计算${"enhanced"===bw.projectGraphSource?"增强":"基础"}图谱:${bw.projectGraph.works.length}工程/${bw.projectGraph.methods.length}工法/${bw.projectGraph.resources.length}资源`,`图谱来源:${bw.cache.projectGraphMessage}`,`章节意图证据覆盖:${Object.keys(bw.evidenceByChapterId||{}).length}/${p.chapters.length} 章`,`排除正文不适用资料:${bw.files.filter(a=>!a.usableForBody).length} 份`]},{subtitle:"项目理解缓存 / Scope 快照"})),H();let bA=bz.baseProjectGraph;if(!bw){let b;"1"===process.env.DOCUMENT_PROJECT_GRAPH_ENHANCED?((0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"running",message:`正在进行项目资料图谱分析:${a5.length} 条证据 → LLM 结构化提取`,details:["提取:工程内容、施工方法、材料设备、技术标准、重点难点"],progress:{current:2,total:3,label:"图谱分析"}},{subtitle:"项目资料图谱分析",order:O.length})),H(),b=await J(()=>(0,cG.i)({evidence:a5,signal:a.signal,projectRoot:c,requirement:a.requirement,templateId:p.id}),O)):b={graph:bz.baseProjectGraph,stage:(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:"已使用确定性基础项目图谱,LLM 增强图谱按配置关闭",details:["基础图谱来自事实记忆和资料快照",`事实数:${bx.length}`],progress:{current:3,total:3,label:"基础图谱"}},{subtitle:"项目资料图谱分析",order:O.length})},bA=b.graph||bz.baseProjectGraph,b.graph||(b={graph:bA,stage:(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:"确定性基础项目图谱已完成,LLM 增强图谱未通过",details:["基础图谱为必跑结果,继续作为 Planner/Writer 图谱上下文",`增强阶段:${b.stage.message||b.stage.status}`]},{subtitle:"项目资料图谱分析",order:O.length})}),(0,ay.fx)(O,b.stage),H()}bA&&(U=(0,aE._n)(p,T,bA));let bB=function(a){var b;let c=(0,M.c6)({version:"canonical-facts-v2",requirement:a.requirement||"",templateId:a.templateId||"",requiredKeys:a.requiredKeys||[],facts:a.facts.map(a=>({key:a.key,fieldId:a.fieldId,fieldName:a.fieldName,value:a.value,sourceFile:a.sourceFile,roleId:a.roleId,confidence:a.confidence})).sort((a,b)=>`${a.sourceFile}${a.key}${a.value}`.localeCompare(`${b.sourceFile}${b.key}${b.value}`)),graphHash:a.projectGraph?(0,M.c6)(a.projectGraph):"",markdownHash:a.markdown?(0,M.c6)(a.markdown.slice(0,2e4)):""}),d=function(a,b){let c=b4(a);if(c)try{let a=JSON.parse(aa.readFileSync(e.join(c,`canonical-facts-${b}.json`),"utf8"));return a&&a.byKey?a:void 0}catch{return}}(a.projectRoot,c);if(d)return d;let f=b2({facts:a.facts,markdown:a.markdown}),g={};for(let[a,b]of f.entries())g[a]=function(a){let b=a.source.includes("generated_markdown")?"generated_markdown":a.source.includes("evidence")?"evidence":"structured_fact";return{key:a.fieldKey,label:a.label,value:a.value,normalizedValue:ai(a.value),sourceType:b,sourceFile:a.source,confidence:a.confidence,priority:b3(b),locked:b3(b)>=80,selectedReason:a.selectedReason}}(b);let h=a.facts||[],i=[];for(let a of[{key:"project_name",label:"项目名称",pattern:/项目名称|工程名称|招标项目名称|project_name/u,bucket:"projectIdentity"},{key:"project_code",label:"项目编号",pattern:/项目编号|招标项目编号|project_code/u,bucket:"projectIdentity"},{key:"owner",label:"招标人",pattern:/招标人|建设单位|发包人|owner/u,bucket:"projectIdentity"},{key:"project_location",label:"建设地点",pattern:/建设地点|实施地点|project_location/u,bucket:"projectIdentity"},{key:"project_scale",label:"建设规模",pattern:/建设规模|工程规模|project_scale/u,bucket:"projectScope"},{key:"construction_scope",label:"施工范围",pattern:/施工范围|招标范围|工程范围/u,bucket:"projectScope"},{key:"duration",label:"计划工期",pattern:/计划工期|合同工期|总工期|schedule_requirement|duration/u,bucket:"schedule"},{key:"quality_target",label:"质量目标",pattern:/质量标准|质量目标|quality_standard/u,bucket:"quality"}]){let b=function(a,b,c,d){return a.filter(a=>d.test(`${a.fieldId||""}${a.key||""}${a.fieldName||""}`)).map(a=>(function(a,b,c){let d=(0,M.lG)(a.value),e=function(a){let b=`${a.sourceFile||""} ${a.sourceRef?.sectionTitle||""} ${a.roleId||""}`;return/合同/u.test(b)?"contract":/招标|公告|前附表|需求书/u.test(b)?"tender":/清单|工程量|BOQ|报价/u.test(b)?"boq":/图纸|设计|CAD|DWG/u.test(b)?"drawing":/规范|标准/u.test(b)?"standard":"structured_fact"}(a);return{key:b,label:c,value:d,normalizedValue:ai(d),sourceType:e,sourceFile:a.sourceFile,sourceRef:a.sourceRef?.sectionTitle,confidence:Math.round(100*(a.confidence||.5)),priority:b3(e),locked:b3(e)>=80,selectedReason:"按资料来源优先级和字段置信度决策"}})(a,b,c)).filter(a=>a.value&&!/资料未明确|系统暂未确认/u.test(a.value)).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence||a.value.length-b.value.length)}(h,a.key,a.label,a.pattern);!g[a.key]&&b.length>0&&(g[a.key]=b[0]);let c=function(a,b,c){let d=[...new Map(c.map(a=>[a.normalizedValue,a])).values()];if(d.length<=1)return;let e=Math.max(...d.map(a=>a.priority)),f=d.filter(a=>a.priority===e);return{key:a,label:b,values:d.map(a=>({value:a.value,sourceFile:a.sourceFile,priority:a.priority,confidence:a.confidence})),decision:1===f.length?"highest_priority_selected":"manual_review_required"}}(a.key,a.label,b);c&&i.push(c)}let j=(b=a.projectGraph)?[...(b.resources||[]).map(a=>({key:`resource_${a.type}_${a.name}`,label:"equipment"===a.type?"机械设备":"labor"===a.type?"劳动力":"材料资源",value:[a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" "),normalizedValue:ai([a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:b3("projectGraph"),locked:!1,selectedReason:"来自项目图谱资源节点"})).filter(a=>a.value),...(b.risks||[]).map(a=>({key:`risk_${a.risk}`,label:"风险源",value:[a.risk,a.level,a.mitigation].filter(Boolean).join(" "),normalizedValue:ai([a.risk,a.level,a.mitigation].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:b3("projectGraph"),locked:!1,selectedReason:"来自项目图谱风险节点"})).filter(a=>a.value)]:[],k=j.filter(a=>/resource_/u.test(a.key)),l=j.filter(a=>/risk_/u.test(a.key));for(let a of j)g[a.key]||(g[a.key]=a);let m=(a.requiredKeys||[]).filter(a=>!g[a]).map(a=>({key:a,label:b_.find(b=>b.key===a)?.label||a,reason:"未从用户输入、招标资料、清单、图纸或项目图谱中确认该事实"})),n={projectIdentity:{projectName:g.project_name,projectCode:g.project_code,owner:g.owner,location:g.project_location},projectScope:{scale:g.project_scale,constructionScope:g.construction_scope},schedule:{duration:g.duration||g.schedule_requirement},quality:{target:g.quality_target||g.quality_standard},safety:{risks:l},resources:{resources:k},environment:{},constraints:{},byKey:g,conflicts:i,gaps:m},o=b4(a.projectRoot);return o&&aa.writeFileSync(e.join(o,`canonical-facts-${c}.json`),JSON.stringify(n,null,2)),n}({facts:bx,projectGraph:bA,requiredKeys:b_.map(a=>a.key),projectRoot:c,requirement:a.requirement,templateId:p.id});by.canonical=bB;let bC=(0,t._9)(p,ag,{preserveExplicitOutline:Z}),bD=$({chapters:function(a){if(!function(a){let b=A(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`);return!!/施工组织设计|施工组织|施组|技术标|投标技术|施工方案/u.test(b)||["施工","工程","质量","安全","进度","文明","部署","方案"].filter(a=>b.includes(a)).length>=3&&!/监理|可研|运维|维护|保养/u.test(b)}(a))return a.chapters;let b=C(a),c=A(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" ")}`),d=a.chapters.some(a=>/概况|部署|总体|组织|主要施工方案|保障|保证|综合措施|管理体系/u.test(a.title)&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|应急|BIM|智慧|管线|交通导改/u.test(a.title)),e=z.filter(a=>D(a,b,c)),f=new Set,g=a.chapters.map(a=>({...a,sections:[...a.sections||[]],queries:[...a.queries||[]],requiredFacts:[...a.requiredFacts||[]],tableSections:[...a.tableSections||[]]}));for(let a of e){let e=g.map((b,c)=>({index:c,score:E(b.title,a),chapter:b})).filter(d=>(function(a,b,c,d){var e;if(!D(a,c,d))return!1;let f=A(b.title);if(a.aliases.some(a=>f.includes(A(a)))||a.sectionItems.some(a=>f.includes(A(a))))return!0;if(e=b.title,/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线|交通导改|垃圾分类|多塔|成品保护/u.test(e))return!1;let g=E(b.title,a);return g>=10||("optional"===a.level?g>=12||/BIM|智慧|数字|创新/iu.test(d):"conditional"===a.level?g>=8||a.projectTypes?.some(a=>c.includes(a))===!0||a.aliases.some(a=>d.includes(A(a))):g>=6)})(a,d.chapter,b,c)).sort((a,b)=>b.score-a.score),h=e[0]?.index??(d&&("core"===a.level||"mandatory"===a.level)?F(a,g):-1);if(h<0)continue;let i=g[h],j=function(a,b){let c=A(b.title);return a.aliases.some(a=>c.includes(A(a)))||c.includes(A(a.title)),a.title}(a,i);i.sections=B(i.sections,[j,...a.sectionItems],50),i.queries=B(i.queries,[a.title,...a.queries],30),i.requiredFacts=B(i.requiredFacts,a.facts,30),i.tableSections=B(i.tableSections,a.tableSections||[],20),i.purpose=`${i.purpose};系统已按施工组织设计标准模块库自动挂靠“${a.title}”,仅在本章范围内展开与章节语义、项目类型和资料事实合理相关的内容,禁止机械塞入无关内容。`,f.add(a.id)}for(let a of d?e.filter(a=>("mandatory"===a.level||"core"===a.level)&&!f.has(a.id)):[]){let b=F(a,g),c=g[b];c.sections=B(c.sections,[a.title,...a.sectionItems],50),c.queries=B(c.queries,[a.title,...a.queries],30),c.requiredFacts=B(c.requiredFacts,a.facts,30),c.tableSections=B(c.tableSections,a.tableSections||[],20),c.purpose=`${c.purpose};系统已补足施工组织设计必备模块“${a.title}”,需以合理挂靠方式呈现,不改变用户一级章节。`}return g}({template:p,chapters:bC,requirement:a.requirement}),projectGraph:bA,canonicalFacts:bB});p={...p,chapters:bD};let bE=new Map;if(bA){let a=new Set;for(let b of[...bA.works,...bA.methods,...bA.resources,...bA.schedule,...bA.standards,...bA.risks,...bA.requirements,...bA.siteConditions])(b.sourceFiles||[]).forEach(b=>a.add(b));for(let b of bD){let c=[b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]].join(" "),d=a=>a&&((0,cU.C1)(a,c,.18)||(0,cU.C1)(a,b.title,.12)),e=/概况|总体|部署|施工|进度|工期|质量|安全|资源|人材机|材料|机械|劳动力|风险|危大|绿色|环保/u.test(c),f=bA.works.filter(a=>a.name&&(d(a.name)||e)),g=bA.methods.filter(a=>a.name&&(d(a.name)||(a.applicableWorks||[]).some(d)||e)),h=bA.resources.filter(a=>a.name&&(d(a.name)||/资源|人材机|材料|机械|劳动力/u.test(c)&&/material|equipment|labor/u.test(a.type))),i=bA.gaps.filter(a=>d(a)||e),j=new Set;for(let a of f)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of g)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of h)(a.sourceFiles||[]).forEach(a=>j.add(a));0===j.size&&e&&[...a].slice(0,12).forEach(a=>j.add(a)),bE.set(b.id,{graphFiles:j,graphBoqItems:h.map(a=>({name:a.name,quantity:a.quantity,unit:a.unit,sourceFiles:a.sourceFiles||[]})),graphWorks:f.map(a=>a.name),graphMethods:g.map(a=>a.name),gaps:i})}bw||((0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-graph-match",status:"success",message:`图谱→章节映射完成:${bA.works.length}工程 ${bA.methods.length}工法 ${bA.resources.length}资源 → ${bD.length}章`,details:bD.map(a=>{let b=bE.get(a.id);return`${(0,t.GQ)(a.title)}:匹配文件${b?.graphFiles.size||0}个,BOQ项${b?.graphBoqItems.length||0}个`})},{subtitle:"图谱章节映射"})),H())}let bF=bD,bG=U.prompt,bH=[bG,S({template:{...p,chapters:bF},chapters:bF,factsModel:by,requirement:a.requirement})].filter(Boolean).join("\n\n"),bI={...p,chapters:bF},bJ=function(a,b){let c=a.replace(/\\n/gu,"\n"),d=new Map,e=[...c.matchAll(/第([一二两三四五六七八九十\d]+)章[^\n。;;]{0,80}(?:强制|必须|挂靠|小节|排序|最先|之后|之前)/gu)];for(let a of e){let b=function(a){let b={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if(/^\d+$/u.test(a))return Number(a);if(void 0!==b[a])return b[a];if("十"===a)return 10;let c=/^(?:(一|二|两|三|四|五|六|七|八|九)?)十(?:(一|二|两|三|四|五|六|七|八|九))?$/u.exec(a);if(c)return 10*(c[1]?b[c[1]]:1)+(c[2]?b[c[2]]:0)}(a[1]);if(!b)continue;let f=Math.max(0,a.index||0),g=e.find(a=>(a.index||0)>f)?.index,h=c.slice(f,Math.min(c.length,g??f+1400));if(aL(h)&&!/(强制小节|必须小节|以下小节设置和排序|必须设置独立的|必须包含独立的)/u.test(h))continue;let i=function(a){let b=/(?:以下小节设置和排序|强制小节|必须小节)[::]\s*([\s\S]*?)(?:\n\s*#{2,6}\s|\n\s*第[一二两三四五六七八九十\d]+章|$)/u.exec(a)?.[1];if(b){let c=aM([...b.matchAll(/(?:^|\n)\s*\d+[..、]\s*([^——\-—::。;;\n]{2,30})(?:[——\-—::]|,|,|。|;|;|\n|$)/gu)].map(a=>a[1]),a);if(c.length>0)return c}let c=[];for(let b of a.matchAll(/第[一二两三四五六七八九十\d]+章[^。;;\n]{0,50}(?:强制)?(?:包含|设置|输出|排序|挂靠)[^::。;;\n]{0,20}[::]\s*([^。;;\n]{2,120})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);for(let b of a.matchAll(/[“"]([^”"]{2,30})[”"]\s*(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,30})(?:——|—|-|:|:)\s*(?:独立的)?(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/(?:必须|应当|需|需要|包含|设置|输出)[^。;;\n]{0,30}(?:独立的)?(?:二级)?小节[::]\s*([^。;;\n]{2,80})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);return aM(c,a)}(h);if(0===i.length)continue;let j=d.get(b)||{blocks:[],titles:[]};for(let a of(j.blocks.push(h),i))j.titles.some(b=>aK(b,a))||j.titles.push(a);d.set(b,j)}return[...d.entries()].map(([a,c])=>{let d=b?.[a-1];return{chapterIndex:a-1,chapterTitle:d?.title,source:c.blocks[0]?.split("\n").find(a=>a.trim())?.trim().slice(0,120),requiredSections:c.titles.map((a,b)=>({title:a,order:b+1,required:!0,source:c.blocks[0]?.slice(0,240)}))}})}([aJ,a.requirement||""].filter(Boolean).join("\n\n"),bF),bK=(0,w.tF)({requirement:a.requirement,promptTexts:aJ,template:bI,chapters:bF,spec:ag}),bL=0,bM=0;bF=$({chapters:await (0,M.l$)(bF.map((a,b)=>({chapter:a,chapterIndex:b})),async({chapter:b,chapterIndex:c})=>{if(b.sections?.length){bL+=1;let a=aS([...bJ.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title)),...b.sections],b.title);return{...b,sections:a.length?a:aS(b.sections,b.title)}}bM+=1;let d=(0,s.QR)(a5.filter(a=>a.chapterId===b.id||(0,u.Lk)(a,b.title)),{maxChars:(0,s.Pc)(bK.chapterTargets.get(b.id)||1200),preservePinned:!0}),e=U.chapterPlans.find(a=>a.chapterId===b.id)?.writingGoal||"",f=co(P,b),g=await aT({template:bI,chapter:b,chapterIndex:c,evidence:d,promptTexts:f.promptTexts,projectContext:bH,requirement:a.requirement,roleContext:e,targetWords:bK.chapterTargets.get(b.id)||1200,structuralRules:bJ,signal:a.signal}),h=bJ.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.map(a=>`强制小节:${a.title}`));if((0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"section-planning",promptId:f.primaryPromptId,status:g.length?"success":"failed",message:`${(0,t.GQ)(b.title)} 小节规划${g.length?`生成 ${g.length} 个小节`:"未生成可用小节"}`,details:[...f.promptDetails,...h,...g.length?g.map(a=>`规划小节:${a}`):["规划结果为空或被污染过滤"]]},{subtitle:"小节规划"})),!g.length)throw Error(`${(0,t.GQ)(b.title)} 小节规划未生成可用小节`);return{...b,sections:g}},{kind:"llmRepair",targetWords:bK.targetChars||4e3,concurrency:2}),projectGraph:bA,canonicalFacts:bB});let bN=S({template:p={...p,chapters:bF},chapters:bF,factsModel:by,requirement:a.requirement});bH=[bG,bN].filter(Boolean).join("\n\n"),bw||(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-blueprint",status:"success",message:"已生成全局事实主表与文档蓝图,后续章节和小节将共用同一套专业约束",details:bN.split("\n").slice(0,12)},{subtitle:"全局蓝图"}));let bO=(0,w.tF)({requirement:a.requirement,promptTexts:aJ,template:p,chapters:bF,spec:ag}),bP=function(a){let b=Date.now(),c=a.template.chapters.map(a=>{let b=a.sections?.length?a.sections:[a.title];return{chapterId:a.id,title:a.title,purpose:a.purpose||cO(a.title),requiredFacts:[...new Set([...a.requiredFacts||[],a.title])],requiredGraphNodes:[a.title],evidenceQueries:[...new Set([a.title,...a.queries||[],...a.requiredFacts||[]])],qualityRules:["事实必须来自锁定资料范围","不得出现后台话术和兜底措辞","不得混入其他项目名称","章节必须覆盖规划小节"],forbiddenPhrases:cI,sections:b.map(b=>({title:b,objective:cO(b),requiredFacts:[...new Set([b,...a.requiredFacts||[]])],requiredGraphNodes:[b],evidenceQueries:[...new Set([a.title,b,...cN(a.title),...cN(b),...a.queries||[],...a.requiredFacts||[]].filter(Boolean))],forbiddenPhrases:cI,minChars:/项目特点.*重点.*难点|重点.*难点.*分析/u.test(b)?1800:/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u.test(b)?2200:/原材料进场复试|见证取样|危大工程专项施工方案审批流程/u.test(b)?1200:/施工部署|施工流水|主要施工机械|劳动力|材料进场|资源动态|质量控制点|危大工程|安全隐患|临时用水|临时用电/u.test(b)?760:/概况|说明|依据/u.test(b)?260:420}))}});return{plan:{planId:`plan-${(0,M.c6)({templateId:a.template.id,scope:a.context.materialScope.scopeHash,chapters:c.map(a=>a.title)}).slice(0,10)}`,title:a.title||a.template.name,chapters:c,requiredGlobalFacts:["项目名称","工期","质量标准","招标范围"],forbiddenPhrases:cI,qualityRules:["资料范围先锁定","基础图谱必跑","章节任务先于正文","Reviewer 通过后才能导出"]},node:{id:"document-planner",type:"document_planner",status:"completed",startedAt:b,completedAt:Date.now(),outputSummary:`${c.length} 章、${c.reduce((a,b)=>a+b.sections.length,0)} 个小节任务`,metrics:{chapters:c.length}}}}({template:p,context:bz,title:p.name});bz.documentPlan=bP.plan,bz.nodes.push(bP.node),(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"agent-document-planner",status:"success",message:bP.node.outputSummary||"Agent 文档规划完成",details:bP.plan.chapters.map(a=>`${a.title}:${a.sections.length} 个小节任务`)},{subtitle:"Agent Document Planner",order:O.length})),G=bF.map(a=>a.id);let bQ=function(a){let b=a.template.chapters.length,c=b>0?a.targetWords/b:a.targetWords,d=`${a.template.name}
102
+ ${(0,v.CK)(p)}`,ao||ap].filter(Boolean).join("\n\n"),aN=[an,aH,aD([...P.extractionPrompts,...P.referencePrompts])].filter(Boolean).join("\n\n"),aV=[ak,aH,aD([...P.writerPrompts,...P.chapterPrompts,...P.formattingPrompts])].filter(Boolean).join("\n\n");(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-preparation",status:"success",message:`模板规范与项目资料理解完成,识别 ${R.length} 份项目资料`,details:[`提示词绑定:${Q.length} 个`,`项目资料包:${T.materialRoots.join("、")||"当前知识库"}`,Z?`识别 OUTLINE 章节:${Y.length} 个`:"未识别显式 OUTLINE,使用模板章节"],progress:{current:3,total:3,label:"准备完成"}},{subtitle:"生成准备",order:O.length})),H();let aW=new Set(R),aX=new Map([...V.entries()].map(([a,b])=>[a,(0,aE._W)(b)])),aY=new Map([...W.entries()].map(([a,b])=>[a,b]));(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:"running",message:"正在读取项目资料包索引",details:["使用上传阶段已完成的解析、切片和索引结果","不在生成流程中重新解析或入库","准备按资料类型召回章节证据"],progress:{current:1,total:3,label:"读取索引"}},{subtitle:"知识库检索",order:O.length})),H();let aZ=await J(()=>q.getProject(c)),a$=function(a,b){let c=new Set(b.filter(Boolean)),d=(a.listFiles?.()||[]).filter(a=>0===c.size||c.has(a.relativePath)),e=new Set(d.map(a=>a.relativePath)),f=[...c].filter(a=>!e.has(a)),g=d.filter(a=>0===Math.max(0,Math.ceil(Number(a.chunkCount)||0))).map(a=>a.relativePath),h=d.filter(a=>"error"===a.status).map(a=>a.relativePath),i="function"==typeof a.countPendingIndexJobs?a.countPendingIndexJobs():0,j="function"==typeof a.getVectorStatus?a.getVectorStatus():void 0,k=d.filter(a=>"error"!==a.status&&Math.max(0,Math.ceil(Number(a.chunkCount)||0))>0),l=k.map(a=>a.relativePath),m=k.reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0),n=[...cA("部分绑定文件未完成索引,已自动跳过",f),...cA("部分绑定文件没有可用切片,已自动跳过",g),...cA("部分绑定文件索引失败,已自动跳过",h)],o=c.size>0&&0===m?["所有绑定文件均无可用切片"]:[],p=[...n,...i>0?[`仍有 ${i} 个待索引任务,建议等待索引完成后生成`]:[],...j&&"ready"!==j.status?[`向量索引状态为 ${j.status},当前召回质量可能下降`]:[]];return{scopedRecords:d,usablePaths:l,missingFiles:f,emptyFiles:g,errorFiles:h,pendingJobs:i,vectorStatus:j,usableChunkCount:m,blockingIssues:o,warnings:p}}(aZ,[...aW]);if(a$.blockingIssues.length>0)throw Error(`生成前知识索引不可用:${a$.blockingIssues.join(";")}`);let a_=new Set(a$.usablePaths),a0=bq(o,[...a_]),a1=cB(aZ,[...a_],a.maxEvidencePerChapter),a2=a$.pendingJobs>0||a$.vectorStatus&&"ready"!==a$.vectorStatus.status||0===a$.usableChunkCount,a3=function(a){let b=Math.max(0,Math.ceil(a.totalChunks||0)),c=Math.max(0,Math.ceil(a.loadedChunks||0)),d=Math.max(0,b-c),e=b>0?c/b:1,f=[...b>=1e3&&e<.35?["切片未完全预加载"]:[],...!1===a.vectorReady?["向量索引未就绪"]:[]];return{totalChunks:b,loadedChunks:c,omittedChunks:d,loadedRatio:e,highRisk:f.length>0,riskReason:f.join("、")||void 0}}({totalChunks:Math.min(a$.usableChunkCount,20*R.length),loadedChunks:Math.min(a$.usableChunkCount,20*R.length),vectorReady:a$.vectorStatus?"ready"===a$.vectorStatus.status:void 0});(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"knowledge-index",status:a2?"failed":"success",message:`已读取知识索引:项目资料 ${a$.scopedRecords.length} 份,可用切片 ${a$.usableChunkCount} 条`,details:[`项目资料:${aW.size} 份`,`可用证据文件:${a_.size} 份`,`向量状态:${a$.vectorStatus?.status||"unknown"}`,...a$.warnings,"后续将按招标正文/清单/图纸/补疑等资料类型召回"],progress:{current:3,total:3,label:"索引已就绪"}},{subtitle:"知识库检索",order:O.length})),H(),(0,M.Te)(a.signal);let a5=[],a6=[],a7={enabled:aF.enabled,queries:[],evidenceCount:0,filteredCount:0,chapters:[]},a8=[],a9=[],bb=[],bf=[],bg=[],bh=-1,bi=new Map,bj=new Map,bk=(a,b)=>{let c=`${a}::${b.maxChunkContentChars}`;if(!bj.has(c))try{bj.set(c,aZ.getFileDetail?.(a,b))}catch{bj.set(c,void 0)}return bj.get(c)},bl=async(a,b,d,e)=>{let f=ct(e),g=(0,M.c6)({query:a,scopedFilePaths:b,limit:d,weights:f,generationMode:!1}),h=bi.get(g);if(h)return h;let i=await q.search(c,a,{scope:"project",filters:{filePaths:b},limit:d,weights:f,generationMode:!1}).catch(()=>null),j=i?.results||[];return bi.set(g,j),j},bm={stage:(0,ay.X5)({type:"file_understanding",roleId:"project-understanding",status:"success",message:`已完成项目资料理解:${T.files.length} 份资料,${Object.values(T.groups).filter(a=>a.length>0).length} 类资料类型`,details:U.prompt.split("\n").slice(0,16)},{subtitle:"项目资料理解",order:O.length})};(0,ay.fx)(O,bm.stage),H();let bn=bt(await b9({manager:q,project:aZ,projectRoot:c,scopedFilePaths:[...aW].filter(Boolean).sort(),fileRoleByPath:aX,fileProcessingByPath:aY,signal:a.signal}),a0);bv(bn,a0,"project-basic-evidence"),bn.length>0&&(a5.push(...bn),(0,ay.fx)(O,(0,ay.X5)({type:"knowledge_retrieval",roleId:"project-basic-evidence",status:"success",message:`已锁定项目基础事实证据 ${bn.length} 条`,details:bn.slice(0,8).map(a=>`${e.basename(a.filePath)}|${a.sectionTitle||"正文片段"}|score=${a.score.toFixed(2)}`)},{subtitle:"基础事实召回",order:O.length})),H());let bp=bu(af(a5,p,ag),a0),br=bu(al(a5),a0),bs=[...bp,...br,...bu(am(a5,ah),a0)],bw=(0,cH.hp)({projectRoot:c,template:p,requirement:a.requirement}),bx=[...bw?.facts||[],...bs],by=ax(bx,bu(ae(a5),a0),a8,ag,ah),bz=(0,b5.Qu)({template:p,requirement:a.requirement,projectRoot:c,facts:bx});for(let a of(bw&&(bz.baseProjectGraph=bw.projectGraph,bz.facts=[...bw.facts,...bz.facts]),(0,b5.SU)(bz).filter(a=>!bw||"agent-base-project-graph"!==a.roleId)))(0,ay.fx)(O,a);bw&&(0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-intelligence-cache",status:"success",message:`已复用入库后项目理解资产与绑定 scope 快照:${bw.files.length} 份绑定资料`,details:[`项目级缓存时间:${new Date(bw.cache.createdAt).toLocaleString()}`,`scope 快照:${bw.scopeSnapshot.scopeHash.slice(0,12)}`,`复用预计算事实:${bw.facts.length} 条`,`复用预计算增强图谱:${bw.projectGraph.works.length}工程/${bw.projectGraph.methods.length}工法/${bw.projectGraph.resources.length}资源`,`图谱来源:${bw.cache.projectGraphMessage}`,`章节意图证据覆盖:${Object.keys(bw.evidenceByChapterId||{}).length}/${p.chapters.length} 章`,`排除正文不适用资料:${bw.files.filter(a=>!a.usableForBody).length} 份`]},{subtitle:"项目理解缓存 / Scope 快照"})),H();let bA=bz.baseProjectGraph;if(!bw){let b;"1"===process.env.DOCUMENT_PROJECT_GRAPH_ENHANCED?((0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"running",message:`正在进行项目资料图谱分析:${a5.length} 条证据 → LLM 结构化提取`,details:["提取:工程内容、施工方法、材料设备、技术标准、重点难点"],progress:{current:2,total:3,label:"图谱分析"}},{subtitle:"项目资料图谱分析",order:O.length})),H(),b=await J(()=>(0,cG.i)({evidence:a5,signal:a.signal,projectRoot:c,requirement:a.requirement,templateId:p.id}),O)):b={graph:bz.baseProjectGraph,stage:(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:"已使用确定性基础项目图谱,LLM 增强图谱按配置关闭",details:["基础图谱来自事实记忆和资料快照",`事实数:${bx.length}`],progress:{current:3,total:3,label:"基础图谱"}},{subtitle:"项目资料图谱分析",order:O.length})},bA=b.graph||bz.baseProjectGraph,b.graph||(b={graph:bA,stage:(0,ay.X5)({type:"file_understanding",roleId:"project-graph",status:"success",message:"确定性基础项目图谱已完成,LLM 增强图谱未通过",details:["基础图谱为必跑结果,继续作为 Planner/Writer 图谱上下文",`增强阶段:${b.stage.message||b.stage.status}`]},{subtitle:"项目资料图谱分析",order:O.length})}),(0,ay.fx)(O,b.stage),H()}bA&&(U=(0,aE._n)(p,T,bA));let bB=function(a){var b;let c=(0,M.c6)({version:"canonical-facts-v2",requirement:a.requirement||"",templateId:a.templateId||"",requiredKeys:a.requiredKeys||[],facts:a.facts.map(a=>({key:a.key,fieldId:a.fieldId,fieldName:a.fieldName,value:a.value,sourceFile:a.sourceFile,roleId:a.roleId,confidence:a.confidence})).sort((a,b)=>`${a.sourceFile}${a.key}${a.value}`.localeCompare(`${b.sourceFile}${b.key}${b.value}`)),graphHash:a.projectGraph?(0,M.c6)(a.projectGraph):"",markdownHash:a.markdown?(0,M.c6)(a.markdown.slice(0,2e4)):""}),d=function(a,b){let c=b4(a);if(c)try{let a=JSON.parse(aa.readFileSync(e.join(c,`canonical-facts-${b}.json`),"utf8"));return a&&a.byKey?a:void 0}catch{return}}(a.projectRoot,c);if(d)return d;let f=b2({facts:a.facts,markdown:a.markdown}),g={};for(let[a,b]of f.entries())g[a]=function(a){let b=a.source.includes("generated_markdown")?"generated_markdown":a.source.includes("evidence")?"evidence":"structured_fact";return{key:a.fieldKey,label:a.label,value:a.value,normalizedValue:ai(a.value),sourceType:b,sourceFile:a.source,confidence:a.confidence,priority:b3(b),locked:b3(b)>=80,selectedReason:a.selectedReason}}(b);let h=a.facts||[],i=[];for(let a of[{key:"project_name",label:"项目名称",pattern:/项目名称|工程名称|招标项目名称|project_name/u,bucket:"projectIdentity"},{key:"project_code",label:"项目编号",pattern:/项目编号|招标项目编号|project_code/u,bucket:"projectIdentity"},{key:"owner",label:"招标人",pattern:/招标人|建设单位|发包人|owner/u,bucket:"projectIdentity"},{key:"project_location",label:"建设地点",pattern:/建设地点|实施地点|project_location/u,bucket:"projectIdentity"},{key:"project_scale",label:"建设规模",pattern:/建设规模|工程规模|project_scale/u,bucket:"projectScope"},{key:"construction_scope",label:"施工范围",pattern:/施工范围|招标范围|工程范围/u,bucket:"projectScope"},{key:"duration",label:"计划工期",pattern:/计划工期|合同工期|总工期|schedule_requirement|duration/u,bucket:"schedule"},{key:"quality_target",label:"质量目标",pattern:/质量标准|质量目标|quality_standard/u,bucket:"quality"}]){let b=function(a,b,c,d){return a.filter(a=>d.test(`${a.fieldId||""}${a.key||""}${a.fieldName||""}`)).map(a=>(function(a,b,c){let d=(0,M.lG)(a.value),e=function(a){let b=`${a.sourceFile||""} ${a.sourceRef?.sectionTitle||""} ${a.roleId||""}`;return/合同/u.test(b)?"contract":/招标|公告|前附表|需求书/u.test(b)?"tender":/清单|工程量|BOQ|报价/u.test(b)?"boq":/图纸|设计|CAD|DWG/u.test(b)?"drawing":/规范|标准/u.test(b)?"standard":"structured_fact"}(a);return{key:b,label:c,value:d,normalizedValue:ai(d),sourceType:e,sourceFile:a.sourceFile,sourceRef:a.sourceRef?.sectionTitle,confidence:Math.round(100*(a.confidence||.5)),priority:b3(e),locked:b3(e)>=80,selectedReason:"按资料来源优先级和字段置信度决策"}})(a,b,c)).filter(a=>a.value&&!/资料未明确|系统暂未确认/u.test(a.value)).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence||a.value.length-b.value.length)}(h,a.key,a.label,a.pattern);!g[a.key]&&b.length>0&&(g[a.key]=b[0]);let c=function(a,b,c){let d=[...new Map(c.map(a=>[a.normalizedValue,a])).values()];if(d.length<=1)return;let e=Math.max(...d.map(a=>a.priority)),f=d.filter(a=>a.priority===e);return{key:a,label:b,values:d.map(a=>({value:a.value,sourceFile:a.sourceFile,priority:a.priority,confidence:a.confidence})),decision:1===f.length?"highest_priority_selected":"manual_review_required"}}(a.key,a.label,b);c&&i.push(c)}let j=(b=a.projectGraph)?[...(b.resources||[]).map(a=>({key:`resource_${a.type}_${a.name}`,label:"equipment"===a.type?"机械设备":"labor"===a.type?"劳动力":"材料资源",value:[a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" "),normalizedValue:ai([a.name,a.spec,a.quantity,a.unit].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:b3("projectGraph"),locked:!1,selectedReason:"来自项目图谱资源节点"})).filter(a=>a.value),...(b.risks||[]).map(a=>({key:`risk_${a.risk}`,label:"风险源",value:[a.risk,a.level,a.mitigation].filter(Boolean).join(" "),normalizedValue:ai([a.risk,a.level,a.mitigation].filter(Boolean).join(" ")),sourceType:"projectGraph",sourceFile:a.sourceFiles?.[0],confidence:55,priority:b3("projectGraph"),locked:!1,selectedReason:"来自项目图谱风险节点"})).filter(a=>a.value)]:[],k=j.filter(a=>/resource_/u.test(a.key)),l=j.filter(a=>/risk_/u.test(a.key));for(let a of j)g[a.key]||(g[a.key]=a);let m=(a.requiredKeys||[]).filter(a=>!g[a]).map(a=>({key:a,label:b_.find(b=>b.key===a)?.label||a,reason:"未从用户输入、招标资料、清单、图纸或项目图谱中确认该事实"})),n={projectIdentity:{projectName:g.project_name,projectCode:g.project_code,owner:g.owner,location:g.project_location},projectScope:{scale:g.project_scale,constructionScope:g.construction_scope},schedule:{duration:g.duration||g.schedule_requirement},quality:{target:g.quality_target||g.quality_standard},safety:{risks:l},resources:{resources:k},environment:{},constraints:{},byKey:g,conflicts:i,gaps:m},o=b4(a.projectRoot);return o&&aa.writeFileSync(e.join(o,`canonical-facts-${c}.json`),JSON.stringify(n,null,2)),n}({facts:bx,projectGraph:bA,requiredKeys:b_.map(a=>a.key),projectRoot:c,requirement:a.requirement,templateId:p.id});by.canonical=bB;let bC=(0,t._9)(p,ag,{preserveExplicitOutline:Z}),bD=$({chapters:function(a){if(!function(a){let b=A(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>a.title).join(" ")}`);return!!/施工组织设计|施工组织|施组|技术标|投标技术|施工方案/u.test(b)||["施工","工程","质量","安全","进度","文明","部署","方案"].filter(a=>b.includes(a)).length>=3&&!/监理|可研|运维|维护|保养/u.test(b)}(a))return a.chapters;let b=C(a),c=A(`${a.template.name} ${a.template.outputTitle||""} ${a.requirement||""} ${a.chapters.map(a=>`${a.title} ${(a.sections||[]).join(" ")}`).join(" ")}`),d=a.chapters.some(a=>/概况|部署|总体|组织|主要施工方案|保障|保证|综合措施|管理体系/u.test(a.title)&&!/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|应急|BIM|智慧|管线|交通导改/u.test(a.title)),e=z.filter(a=>D(a,b,c)),f=new Set,g=a.chapters.map(a=>({...a,sections:[...a.sections||[]],queries:[...a.queries||[]],requiredFacts:[...a.requiredFacts||[]],tableSections:[...a.tableSections||[]]}));for(let a of e){let e=g.map((b,c)=>({index:c,score:E(b.title,a),chapter:b})).filter(d=>(function(a,b,c,d){var e;if(!D(a,c,d))return!1;let f=A(b.title);if(a.aliases.some(a=>f.includes(A(a)))||a.sectionItems.some(a=>f.includes(A(a))))return!0;if(e=b.title,/雨季|冬季|高温|防汛|扬尘|噪声|工资|劳务|实名|应急|BIM|智慧|管线|交通导改|垃圾分类|多塔|成品保护/u.test(e))return!1;let g=E(b.title,a);return g>=10||("optional"===a.level?g>=12||/BIM|智慧|数字|创新/iu.test(d):"conditional"===a.level?g>=8||a.projectTypes?.some(a=>c.includes(a))===!0||a.aliases.some(a=>d.includes(A(a))):g>=6)})(a,d.chapter,b,c)).sort((a,b)=>b.score-a.score),h=e[0]?.index??(d&&("core"===a.level||"mandatory"===a.level)?F(a,g):-1);if(h<0)continue;let i=g[h],j=function(a,b){let c=A(b.title);return a.aliases.some(a=>c.includes(A(a)))||c.includes(A(a.title)),a.title}(a,i);i.sections=B(i.sections,[j,...a.sectionItems],50),i.queries=B(i.queries,[a.title,...a.queries],30),i.requiredFacts=B(i.requiredFacts,a.facts,30),i.tableSections=B(i.tableSections,a.tableSections||[],20),i.purpose=`${i.purpose};系统已按施工组织设计标准模块库自动挂靠“${a.title}”,仅在本章范围内展开与章节语义、项目类型和资料事实合理相关的内容,禁止机械塞入无关内容。`,f.add(a.id)}for(let a of d?e.filter(a=>("mandatory"===a.level||"core"===a.level)&&!f.has(a.id)):[]){let b=F(a,g),c=g[b];c.sections=B(c.sections,[a.title,...a.sectionItems],50),c.queries=B(c.queries,[a.title,...a.queries],30),c.requiredFacts=B(c.requiredFacts,a.facts,30),c.tableSections=B(c.tableSections,a.tableSections||[],20),c.purpose=`${c.purpose};系统已补足施工组织设计必备模块“${a.title}”,需以合理挂靠方式呈现,不改变用户一级章节。`}return g}({template:p,chapters:bC,requirement:a.requirement}),projectGraph:bA,canonicalFacts:bB});p={...p,chapters:bD};let bE=new Map;if(bA){let a=new Set;for(let b of[...bA.works,...bA.methods,...bA.resources,...bA.schedule,...bA.standards,...bA.risks,...bA.requirements,...bA.siteConditions])(b.sourceFiles||[]).forEach(b=>a.add(b));for(let b of bD){let c=[b.title,b.purpose,...b.sections||[],...b.requiredFacts||[],...b.queries||[]].join(" "),d=a=>a&&((0,cU.C1)(a,c,.18)||(0,cU.C1)(a,b.title,.12)),e=/概况|总体|部署|施工|进度|工期|质量|安全|资源|人材机|材料|机械|劳动力|风险|危大|绿色|环保/u.test(c),f=bA.works.filter(a=>a.name&&(d(a.name)||e)),g=bA.methods.filter(a=>a.name&&(d(a.name)||(a.applicableWorks||[]).some(d)||e)),h=bA.resources.filter(a=>a.name&&(d(a.name)||/资源|人材机|材料|机械|劳动力/u.test(c)&&/material|equipment|labor/u.test(a.type))),i=bA.gaps.filter(a=>d(a)||e),j=new Set;for(let a of f)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of g)(a.sourceFiles||[]).forEach(a=>j.add(a));for(let a of h)(a.sourceFiles||[]).forEach(a=>j.add(a));0===j.size&&e&&[...a].slice(0,12).forEach(a=>j.add(a)),bE.set(b.id,{graphFiles:j,graphBoqItems:h.map(a=>({name:a.name,quantity:a.quantity,unit:a.unit,sourceFiles:a.sourceFiles||[]})),graphWorks:f.map(a=>a.name),graphMethods:g.map(a=>a.name),gaps:i})}bw||((0,ay.fx)(O,(0,ay.X5)({type:"file_understanding",roleId:"project-graph-match",status:"success",message:`图谱→章节映射完成:${bA.works.length}工程 ${bA.methods.length}工法 ${bA.resources.length}资源 → ${bD.length}章`,details:bD.map(a=>{let b=bE.get(a.id);return`${(0,t.GQ)(a.title)}:匹配文件${b?.graphFiles.size||0}个,BOQ项${b?.graphBoqItems.length||0}个`})},{subtitle:"图谱章节映射"})),H())}let bF=bD,bG=U.prompt,bH=[bG,S({template:{...p,chapters:bF},chapters:bF,factsModel:by,requirement:a.requirement})].filter(Boolean).join("\n\n"),bI={...p,chapters:bF},bJ=function(a,b){let c=a.replace(/\\n/gu,"\n"),d=new Map,e=[...c.matchAll(/第([一二两三四五六七八九十\d]+)章[^\n。;;]{0,80}(?:强制|必须|挂靠|小节|排序|最先|之后|之前)/gu)];for(let a of e){let b=function(a){let b={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if(/^\d+$/u.test(a))return Number(a);if(void 0!==b[a])return b[a];if("十"===a)return 10;let c=/^(?:(一|二|两|三|四|五|六|七|八|九)?)十(?:(一|二|两|三|四|五|六|七|八|九))?$/u.exec(a);if(c)return 10*(c[1]?b[c[1]]:1)+(c[2]?b[c[2]]:0)}(a[1]);if(!b)continue;let f=Math.max(0,a.index||0),g=e.find(a=>(a.index||0)>f)?.index,h=c.slice(f,Math.min(c.length,g??f+1400));if(aL(h)&&!/(强制小节|必须小节|以下小节设置和排序|必须设置独立的|必须包含独立的)/u.test(h))continue;let i=function(a){let b=/(?:以下小节设置和排序|强制小节|必须小节)[::]\s*([\s\S]*?)(?:\n\s*#{2,6}\s|\n\s*第[一二两三四五六七八九十\d]+章|$)/u.exec(a)?.[1];if(b){let c=aM([...b.matchAll(/(?:^|\n)\s*\d+[..、]\s*([^——\-—::。;;\n]{2,30})(?:[——\-—::]|,|,|。|;|;|\n|$)/gu)].map(a=>a[1]),a);if(c.length>0)return c}let c=[];for(let b of a.matchAll(/第[一二两三四五六七八九十\d]+章[^。;;\n]{0,50}(?:强制)?(?:包含|设置|输出|排序|挂靠)[^::。;;\n]{0,20}[::]\s*([^。;;\n]{2,120})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);for(let b of a.matchAll(/[“"]([^”"]{2,30})[”"]\s*(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,30})(?:——|—|-|:|:)\s*(?:独立的)?(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/(?:必须|应当|需|需要|包含|设置|输出)[^。;;\n]{0,30}(?:独立的)?(?:二级)?小节[::]\s*([^。;;\n]{2,80})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);return aM(c,a)}(h);if(0===i.length)continue;let j=d.get(b)||{blocks:[],titles:[]};for(let a of(j.blocks.push(h),i))j.titles.some(b=>aK(b,a))||j.titles.push(a);d.set(b,j)}return[...d.entries()].map(([a,c])=>{let d=b?.[a-1];return{chapterIndex:a-1,chapterTitle:d?.title,source:c.blocks[0]?.split("\n").find(a=>a.trim())?.trim().slice(0,120),requiredSections:c.titles.map((a,b)=>({title:a,order:b+1,required:!0,source:c.blocks[0]?.slice(0,240)}))}})}([aJ,a.requirement||""].filter(Boolean).join("\n\n"),bF),bK=(0,w.tF)({requirement:a.requirement,promptTexts:aJ,template:bI,chapters:bF,spec:ag}),bL=0,bM=0;bF=$({chapters:await (0,M.l$)(bF.map((a,b)=>({chapter:a,chapterIndex:b})),async({chapter:b,chapterIndex:c})=>{if(b.sections?.length){bL+=1;let a=aS([...bJ.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title)),...b.sections],b.title);return{...b,sections:a.length?a:aS(b.sections,b.title)}}bM+=1;let d=(0,s.QR)(a5.filter(a=>a.chapterId===b.id||(0,u.Lk)(a,b.title)),{maxChars:(0,s.Pc)(bK.chapterTargets.get(b.id)||1200),preservePinned:!0}),e=U.chapterPlans.find(a=>a.chapterId===b.id)?.writingGoal||"",f=co(P,b),g=await aT({template:bI,chapter:b,chapterIndex:c,evidence:d,promptTexts:f.promptTexts,projectContext:bH,requirement:a.requirement,roleContext:e,targetWords:bK.chapterTargets.get(b.id)||1200,structuralRules:bJ,signal:a.signal}),h=bJ.filter(a=>a.chapterIndex===c||a.chapterTitle&&(0,t.GQ)(a.chapterTitle)===(0,t.GQ)(b.title)).flatMap(a=>a.requiredSections.map(a=>`强制小节:${a.title}`));if((0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"section-planning",promptId:f.primaryPromptId,status:g.length?"success":"failed",message:`${(0,t.GQ)(b.title)} 小节规划${g.length?`生成 ${g.length} 个小节`:"未生成可用小节"}`,details:[...f.promptDetails,...h,...g.length?g.map(a=>`规划小节:${a}`):["规划结果为空或被污染过滤"]]},{subtitle:"小节规划"})),!g.length)throw Error(`${(0,t.GQ)(b.title)} 小节规划未生成可用小节`);return{...b,sections:g}},{kind:"llmRepair",targetWords:bK.targetChars||4e3,concurrency:2}),projectGraph:bA,canonicalFacts:bB});let bN=S({template:p={...p,chapters:bF},chapters:bF,factsModel:by,requirement:a.requirement});bH=[bG,bN].filter(Boolean).join("\n\n"),bw||(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-blueprint",status:"success",message:"已生成全局事实主表与文档蓝图,后续章节和小节将共用同一套专业约束",details:bN.split("\n").slice(0,12)},{subtitle:"全局蓝图"}));let bO=(0,w.tF)({requirement:a.requirement,promptTexts:aJ,template:p,chapters:bF,spec:ag}),bP=function(a){let b=Date.now(),c=a.template.chapters.map(a=>{let b=a.sections?.length?a.sections:[a.title];return{chapterId:a.id,title:a.title,purpose:a.purpose||cO(a.title),requiredFacts:[...new Set([...a.requiredFacts||[],a.title])],requiredGraphNodes:[a.title],evidenceQueries:[...new Set([a.title,...a.queries||[],...a.requiredFacts||[]])],qualityRules:["事实必须来自锁定资料范围","不得出现后台话术和兜底措辞","不得混入其他项目名称","章节必须覆盖规划小节"],forbiddenPhrases:cI,sections:b.map(b=>({title:b,objective:cO(b),requiredFacts:[...new Set([b,...a.requiredFacts||[]])],requiredGraphNodes:[b],evidenceQueries:[...new Set([a.title,b,...cN(a.title),...cN(b),...a.queries||[],...a.requiredFacts||[]].filter(Boolean))],forbiddenPhrases:cI,minChars:/项目特点.*重点.*难点|重点.*难点.*分析/u.test(b)?1800:/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u.test(b)?2200:/原材料进场复试|见证取样|危大工程专项施工方案审批流程/u.test(b)?1200:/施工部署|施工流水|主要施工机械|劳动力|材料进场|资源动态|质量控制点|危大工程|安全隐患|临时用水|临时用电/u.test(b)?760:/概况|说明|依据/u.test(b)?260:420}))}});return{plan:{planId:`plan-${(0,M.c6)({templateId:a.template.id,scope:a.context.materialScope.scopeHash,chapters:c.map(a=>a.title)}).slice(0,10)}`,title:a.title||a.template.name,chapters:c,requiredGlobalFacts:["项目名称","工期","质量标准","招标范围"],forbiddenPhrases:cI,qualityRules:["资料范围先锁定","基础图谱必跑","章节任务先于正文","Reviewer 通过后才能导出"]},node:{id:"document-planner",type:"document_planner",status:"completed",startedAt:b,completedAt:Date.now(),outputSummary:`${c.length} 章、${c.reduce((a,b)=>a+b.sections.length,0)} 个小节任务`,metrics:{chapters:c.length}}}}({template:p,context:bz,title:p.name});bz.documentPlan=bP.plan,bz.nodes.push(bP.node),(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"agent-document-planner",status:"success",message:bP.node.outputSummary||"Agent 文档规划完成",details:bP.plan.chapters.map(a=>`${a.title}:${a.sections.length} 个小节任务`)},{subtitle:"Agent Document Planner",order:O.length})),G=bF.map(a=>a.id);let bQ=function(a){let b=a.template.chapters.length,c=b>0?a.targetWords/b:a.targetWords,d=`${a.template.name}
103
103
  ${a.template.category||""}
104
104
  ${a.requirement||""}`,e=/专项|安全|质量|验收|审核|合同|合规|审计|风控|风险/u.test(d),f=a.targetWords>=3e4||b>=8||c>=4e3,g=a.targetWords<=6e3&&b<=4&&!e;return{mode:e?"strict":f?"longform":g?"fast":"balanced",enableChapterReview:!0,enableGlobalReview:!0,enableDocumentBudgetExpansion:!1,enableFinalQualityReview:!0}}({template:p,targetWords:bO.targetChars||[...bO.chapterTargets.values()].reduce((a,b)=>a+b,0),requirement:a.requirement}),bR={strategy:bQ,metrics:[],llm:{calls:0,failures:0,maxActive:0,retries:0},evidence:{raw:0,used:0,filteredNoise:0,avgNoiseScore:0,avgFactDensity:0,searchQueries:0,searchMs:0,contextChars:0},quality:{blockingCount:0,importantCount:0,minorCount:0,repairedCount:0}};(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-strategy",status:"success",message:`已自动选择 ${bQ.mode} 生成策略:章节审查 ${bQ.enableChapterReview?"启用":"跳过"}、全局审查 ${bQ.enableGlobalReview?"启用":"跳过"}、最终质量审查 ${bQ.enableFinalQualityReview?"启用":"跳过"}、全文扩写 ${bQ.enableDocumentBudgetExpansion?"启用":"跳过"};LLM 调用按工作流任务自然并行`},{subtitle:"后台自动策略"}));let bS=Z?"OUTLINE 章节":"模板章节",bT=(0,ay.X5)({type:"validation",roleId:"section-planning",status:"success",message:`小节规划:${bM} 章由 LLM 基于${bS}、项目资料理解和证据规划小节,${bL} 章已由模板显式提供小节并跳过规划`},{subtitle:"小节规划策略"}),bU=Z?`;识别到 OUTLINE 章节 ${Y.length} 个`:";未识别到有效 OUTLINE,将使用模板章节",bV=[...P.prompts.map(a=>`${a.category}|${a.roleId}|${a.id}|${a.name}|${a.bindingSource}|${a.content.length} 字符|hash=${a.contentHash}|${a.contentPreview}`),...P.unresolvedRoles.map(a=>`unresolved|${a}|项目角色配置中的提示词角色不存在`),...P.missingResourceRoles.map(a=>`missingResource|${a}|提示词角色未显式绑定资源`)];(0,ay.fx)(O,(0,ay.X5)({type:"role_binding",roleId:K,status:"success",message:`已绑定项目资料 ${R.length} 份、${P.prompts.length} 个有效提示词;写作 ${P.writerPrompts.length}、章节 ${P.chapterPrompts.length}、抽取 ${P.extractionPrompts.length};已自动抽取运行时规则 ${aG.executionSummary.length} 条;语义资料覆盖 ${Math.round(100*aj.materialCoverageRate)}%${bU}`,details:[...bV,...aG.executionSummary.map(a=>`runtimeRule|${a}`)]},{subtitle:L,roleName:L})),(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"runtime-prompt-rules",status:"success",message:`运行时提示词规则已抽取:${aG.executionSummary.length} 条,版本 ${aG.sourceHash}`,details:aG.executionSummary.length?[...aG.executionSummary,`必需表格:${aG.requiredTables.join("、")||"无"}`,`必含关键词:${aG.requiredKeywords?.join("、")||"无"}`,`禁含内容:${aG.forbiddenPatterns?.join("、")||"无"}`]:["未从提示词中识别到额外硬规则,使用系统默认质量规则"]},{subtitle:"提示词规则执行"})),(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"document-readiness",status:aj.ready?"success":"failed",message:`生成准备度:绑定资料已就绪,语义覆盖 ${Math.round(100*aj.materialCoverageRate)}%,角色匹配 ${Math.round(100*aj.roleSatisfactionRate)}%,优化建议 ${Math.round(100*aj.specCompletenessRate)}%`,details:aj.diagnostics},{subtitle:"生成准备度检查"})),(0,ay.fx)(O,bT),H();let bW=Math.round(([...bO.chapterTargets.values()].reduce((a,b)=>a+b,0)||bO.targetChars||0)/Math.max(1,bF.length)),bX=Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0),bY=bF.length<=1?1:bO.longformStrict||bW>=9e3?2:bW>=6500?Math.min(3,bF.length):Math.min(4,bF.length),bZ=Math.max(1,Math.min(bF.length||1,Number.isFinite(bX)&&bX>0?Math.floor(bX):bY));(0,ay.fx)(O,(0,ay.X5)({type:"validation",roleId:"chapter-concurrency",status:"success",message:`章节自适应调度:本轮 ${bZ}/${bF.length} 章并发`,details:[`有效章节数:${bF.length}`,`平均章节目标:${bW} 字`,Number.isFinite(bX)&&bX>0?`章节并发来自 DOCUMENT_CHAPTER_CONCURRENCY=${Math.floor(bX)}`:`章节并发自适应=${bY},长章保守、短章提速`]},{subtitle:"章节并发策略"})),H();for(let b=0;b<bF.length;b+=bZ){let d=bF.slice(b,b+bZ);await Promise.all(d.map(async(d,f)=>{let g,h=b+f;(0,M.Te)(a.signal);let i=Date.now(),j=O.length;try{var k,m;let b;O.push((0,ay.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:P.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在检索证据并准备章节内容`,details:[`章节序号:${h+1}/${bF.length}`,`二级小节:${d.sections?.length||0} 个`,"正在生成检索查询"],progress:{current:h+1,total:bF.length,label:"章节生成"}},{subtitle:(0,t.GQ)(d.title),order:h})),H();let f=a.resumeChapters?.find(a=>a.id===d.id||a.title===d.title),o=f?.content?.trim(),r=f?.evidence?.length?[...f.evidence]:[],z=U.chapterPlans.find(a=>a.chapterId===d.id||a.chapterTitle===d.title),A=z?Object.values(z.evidenceQueries).flat().filter(Boolean):[],B=d.queries.length>0?d.queries:[p.name,p.outputTitle,d.title],C=bE.get(d.id);if(bA&&C&&C.graphFiles.size>0){let a=[...a_],b=b=>a.includes(b)?b:a.find(a=>a.endsWith(b)||a.includes(b));for(let a of[...C.graphFiles].map(a=>b(a)||a).filter(a=>aC(c,a,a_)).slice(0,12)){let b=bk(a,{maxChunkContentChars:8e3});if(b?.chunks?.length)for(let c of b.chunks)r.push({chapterId:d.id,filePath:b.file?.relativePath||a,score:5+(C.graphWorks.length+C.graphMethods.length)*.5,content:c.content,roleId:aX.get(a),processingType:aY.get(a),sectionTitle:c.sectionTitle,source:"graph-evidence"})}}let D=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?b7:[],E=cv(d,[...B,...A],D),F=cw(d,D),G=Date.now();O[j]=(0,ay.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:P.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 正在执行质量优先的章节检索${C?.graphFiles.size?`(图谱匹配 ${C.graphFiles.size} 个文件)`:""}`,details:E.slice(0,F).map(a=>`检索:${a.slice(0,42)}`),progress:{current:h+1,total:bF.length,label:"证据检索"}},{subtitle:(0,t.GQ)(d.title),order:h}),H();let I=o?[]:[...a_].filter(Boolean).sort(),K=o?[]:bw?.evidenceByChapterId?.[d.id]||[];K.length>0&&r.push(...K);let L=[],Q=E.slice(0,F);if(I.length>0&&Q.length>0){(0,M.Te)(a.signal);let b=await (0,M.l$)(Q,async a=>bl(a,I,Math.min(a1,12),d.title),{kind:"search"});L.push(...b)}for(let a of(bR.evidence.searchQueries+=Math.min(E.length,F),bR.evidence.searchMs+=Date.now()-G,L))r.push(...a.filter(a=>aC(c,a.filePath,aW)).map(a=>({chapterId:d.id,filePath:a.filePath,score:a.score,content:a.content,roleId:aX.get(a.filePath),processingType:aY.get(a.filePath),sectionTitle:a.sectionTitle,source:a.source})));let S=o?[]:await (0,aE.$b)({manager:q,projectRoot:c,chapter:d,plan:z,profile:T,scopedFilePaths:I,limitPerQuery:Math.min(a1,10),signal:a.signal}).catch(()=>[]);r.push(...S);let V=new Set((d.pinnedEvidenceFilePaths||[]).filter(Boolean)),W=[];/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)&&r.push(...bn.map(a=>({...a,chapterId:d.id,source:"pinned-evidence"})));let X=new Set([...V]),Y=bO.chapterTargets.get(d.id)||1200,Z=(0,s.Pc)(Y,6e3,12e3);for(let a of X){if(!aC(c,a,aW))continue;let b=V.has(a),e=bk(a,{maxChunkContentChars:Z});e&&r.push(...e.chunks.map(a=>({chapterId:d.id,filePath:e.file.relativePath,score:1,content:a.content,roleId:aX.get(e.file.relativePath),processingType:aY.get(e.file.relativePath),sectionTitle:a.sectionTitle,source:b?"pinned-evidence":"bound-file"})))}let $=r.filter(a=>aC(c,a.filePath,a_));if(!o&&aF.enabled&&aF.allowProjectFacts){let b=await bo({config:aF,chapterId:d.id,chapterTitle:d.title,sectionTitles:d.sections||[],runtimeRules:aG,localFacts:[...by.project,...by.schedule,...by.quality,...by.safety,...by.resources,...by.preciseFacts],signal:a.signal});a7.queries.push(...b.queries),a7.filteredCount+=b.filtered+b.evidence.length}let aa=(0,s.Pc)(Y,7e3,26e3),ab=o?[]:(0,aE.SK)({project:aZ,chapter:d,plan:z,profile:T,scopedFilePaths:I,highRisk:a3.highRisk});ab.length>0&&$.push(...bt(ab,a0)),$=bt($,a0);let ac=cu(d,$,{maxItems:cx(a1,d,a3.highRisk),maxChars:aa+(a3.highRisk?14e3:4e3),preservePinned:!0},bR);bv(ac,a0,`chapter:${d.id}:initial`);let ae=d.requiredFacts.filter(a=>!ac.some(b=>(0,u.Lk)(b,a))),af=0,ai=function(a){let b=(a.chapter.requiredFacts||[]).filter(b=>!a.evidence.some(a=>cT(`${a.sectionTitle||""}${a.content||""}`).includes(cT(b)))),c=(a.chapter.tablePlans||[]).flatMap(a=>a.fillability?.missingProjectFactFields||[]),d=a.evidence.length<3?["章节证据数量不足"]:[],e=b.length+c.length+d.length,f=e>=5?"high":e>=2?"medium":"low",g="high"===f?"evidence_first":c.length>0?"generate_with_review_notes":b.length>0?"section_first":"normal";return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,canGenerate:!0,riskLevel:f,missingFacts:b,missingEvidence:d,tableFieldGaps:[...new Set(c)],suggestedStrategy:g,reason:0===e?"章节事实、证据和表格可填性满足常规生成条件。":`识别到 ${e} 项生成前缺口,按 ${g} 策略生成。`}}({chapter:d,evidence:ac}),aj=new Set(ac.map(a=>a.filePath)).size,al=!!C&&(C?.graphFiles.size||0)>=8&&aj>=6&&0===ae.length&&"low"===ai.riskLevel,am=I.length<=80&&("evidence_first"===ai.suggestedStrategy||a3.highRisk||ae.length>0||ac.length<8&&"low"!==ai.riskLevel);if(!al&&am&&I.length>0){let b=await _({manager:q,projectRoot:c,chapter:d,scopedFilePaths:I,fileRoleByPath:aX,fileProcessingByPath:aY,requiredNeeds:ae,highRisk:a3.highRisk,signal:a.signal}).catch(()=>[]);af=b.length,b.length>0&&($=cu(d,[...$,...bt(b,a0)],{maxItems:cx(a1+12,d,a3.highRisk),maxChars:aa+(a3.highRisk?36e3:16e3),preservePinned:!0},bR),$=bt($,a0),ac=cu(d,$,{maxItems:cx(a1+8,d,a3.highRisk),maxChars:aa+(a3.highRisk?28e3:12e3),preservePinned:!0},bR),bv(ac,a0,`chapter:${d.id}:deep`),ae=d.requiredFacts.filter(a=>!ac.some(b=>(0,u.Lk)(b,a))))}for(let a of(0===ac.length&&a8.push(`${d.title}:缺少可支撑正文的项目资料证据`),ae))a8.push(`${d.title}:事实需求未满足 ${a}`);let an=(0,ay.X5)({type:"knowledge_retrieval",roleId:"knowledge-base",status:a5.length>0?"success":"failed",message:`已检索/绑定 ${a5.length} 条证据`});bh<0?bh=(0,ay.fx)(O,an):O[bh]={...an,order:O[bh]?.order??an.order},H(),(0,M.Te)(a.signal);let ao=[C?[C.graphWorks.length?`图谱识别本章工程内容:${C.graphWorks.join("、")}`:"",C.graphMethods.length?`图谱识别本章施工方法:${C.graphMethods.join("、")}`:"",C.graphBoqItems.length?`图谱识别本章BOQ清单项(${C.graphBoqItems.length}项):${C.graphBoqItems.slice(0,30).map(a=>`${a.name} ${a.quantity}${a.unit}`).join("、")}`:"",C.gaps.length?`图谱识别本章资料缺口:${C.gaps.join(";")}`:""].filter(Boolean).join("\n"):"",z?.writingGoal,z?.mustCover?.length?`本章必须覆盖:${z.mustCover.join("、")}`:"",z?.mustUseMaterialKinds?.length?`本章优先使用资料类型:${z.mustUseMaterialKinds.join("、")}`:""].filter(Boolean).join("\n"),ap=co(P,d);if(P.writerPrompts.length>0&&!ap.primaryWriter)throw Error(`${(0,t.GQ)(d.title)} 写作主控提示词未进入章节生成阶段`);let ax=[ap.promptTexts,ak].filter(Boolean).join("\n\n"),az=ap.promptDetails.length?ap.promptDetails:["未绑定章节写作提示词"],aD=function(a){let b=a.profile||l,c=[],d=[a.template.name,a.template.outputTitle,a.chapter.title,a.chapter.purpose,...a.chapter.sections||[]].filter(Boolean).join(" "),e=a.spec?.chapterRules.find(b=>b.id===a.chapter.id||b.title===a.chapter.title);for(let d of a.chapter.requiredFacts||[])as(c,b,{label:d,category:n(b,d)?.category||"required",required:!0,source:"template"});for(let d of a.chapter.sections||[])as(c,b,{label:d,category:"section",required:!1,source:"section",queries:ar(d,[a.chapter.title])});for(let d of a.plan?.requiredContents||[])as(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of a.plan?.evidenceNeeds||[])as(c,b,{label:d,category:n(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of e?.requiredFactIds||[]){let e=a.spec?.factFields.find(a=>a.id===d);e&&as(c,b,{label:e.name,category:n(b,e.name)?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ar(e.name,[e.extractionHint||"",e.validationHint||""])})}for(let e of a.spec?.factFields||[]){if(!e.required)continue;let f=n(b,e.name),g=`${e.name} ${e.extractionHint||""} ${e.validationHint||""}`;(d.includes(e.name)||ar(e.name,f?.aliases||[]).some(a=>d.includes(a))||a.chapter.requiredFacts.some(a=>a.includes(e.name)||e.name.includes(a)))&&as(c,b,{label:e.name,category:f?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:ar(e.name,[g])})}for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&d.includes(a))&&at(c,b,a,"profile","must_use"===a.usagePolicy,[d]);let f=aq(a.requirement||"");if(f)for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&f.includes(a))&&at(c,b,a,"requirement",!0,[f]);let g=aq(a.promptTexts||"");if(g)for(let d of b.factFields)[d.name,...d.aliases].some(a=>a.length>=2&&g.includes(a))&&at(c,b,d,"prompt","must_use"===d.usagePolicy,[a.chapter.title]);return c}({template:p,chapter:d,spec:ag,profile:ah,promptTexts:ax,requirement:a.requirement,plan:z?{requiredContents:z.mustCover,evidenceNeeds:Object.values(z.evidenceQueries).flat()}:void 0}),aH=av({needs:aD,factsModel:by,evidence:$,profile:ah}),aI=aH.filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label);if(aI.length>0&&I.length>0){let b=await cz({manager:q,projectRoot:c,chapter:d,needs:aI,scopedFilePaths:I,fileRoleByPath:aX,fileProcessingByPath:aY,signal:a.signal}).catch(()=>[]),e=await _({manager:q,projectRoot:c,chapter:d,scopedFilePaths:I,fileRoleByPath:aX,fileProcessingByPath:aY,requiredNeeds:aI,highRisk:!0,signal:a.signal}).catch(()=>[]),f=bt([...b,...e],a0);f.length>0&&($=cu(d,[...$,...f],{maxItems:cx(a1+16,d,!0),maxChars:aa+42e3,preservePinned:!0},bR),$=bt($,a0),ac=cu(d,$,{maxItems:cx(a1+12,d,!0),maxChars:aa+32e3,preservePinned:!0},bR),bv(ac,a0,`chapter:${d.id}:supplemental`),ae=d.requiredFacts.filter(a=>!ac.some(b=>(0,u.Lk)(b,a))),aI=(aH=av({needs:aD,factsModel:by,evidence:$,profile:ah})).filter(a=>a.need.required&&"satisfied"!==a.status).map(a=>a.need.label))}bv(ac,a0,`chapter:${d.id}:writer-input`);let aJ=function(a){let b=a.chapter.sections?.length||0,c=(a.chapter.sections||[]).filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b)||`${a.sectionTitle||""} ${a.content}`.includes(b))).length,d=a.chapter.requiredFacts.length,e=a.chapter.requiredFacts.filter(b=>a.evidence.some(a=>(0,u.Lk)(a,b))).length;return{chapterId:a.chapter.id,chapterTitle:a.chapter.title,risk:a.risk,evidenceCount:a.evidence.length,evidenceFiles:new Set(a.evidence.map(a=>a.filePath)).size,sectionCovered:c,sectionTotal:b,requiredFactCovered:e,requiredFactTotal:d}}({chapter:d,evidence:ac,risk:a3});a6.push(aJ);let aK=new Set(ac.map(a=>a.filePath)),aL=ac.reduce((a,b)=>a+b.content.length,0),aM=[...a3.highRisk?[`召回覆盖风险(${a3.riskReason||"切片未完全预加载"}):已加载 ${a3.loadedChunks}/${a3.totalChunks},已启用深召回`]:[],`项目理解缓存证据:${K.length} 条`,`深召回证据:${af} 条`,`事实覆盖:${aJ.requiredFactCovered}/${aJ.requiredFactTotal}`,`小节覆盖:${aJ.sectionCovered}/${aJ.sectionTotal}`];O[j]=(0,ay.X5)({type:"chapter_generation",roleId:"chapter_generation",promptId:P.writerPrompts[0]?.id,status:"running",message:`${(0,t.GQ)(d.title)} 已选取 ${ac.length} 条高相关证据,正在生成正文`,details:[`使用绑定文件:${aK.size} 份`,`上下文字符:${aL}`,`检索查询:${Math.min(E.length,F)} 组`,...aM],progress:{current:h+1,total:bF.length,label:"正文生成"}},{subtitle:(0,t.GQ)(d.title),order:h}),H(),bR.evidence.contextChars+=aL;let aN=(k=aH,au(k.flatMap(a=>a.facts))),aO=/概况|工程|项目|总体|部署|进度|工期|质量/u.test(d.title)?br:[],aP=function(a){let b=a.spec?.chapterRules.find(b=>b.id===a.chapter.id||b.title===a.chapter.title),c=(b?.requiredFactIds||[]).map(b=>a.spec?.factFields.find(a=>a.id===b)?.name).filter(Boolean),d=[...new Set([...a.chapter.requiredFacts,...c,...a.plan?.requiredContents||[],...a.plan?.evidenceNeeds||[],...(a.resolvedFactNeeds||[]).filter(a=>a.need.required).map(a=>a.need.label)].filter(Boolean))],e=a.roleFacts.map(({fact:a})=>`- ${a.key}:${(0,s.eE)((0,M.lG)(a.value))}`),f=(a.resolvedFactNeeds||[]).flatMap(a=>a.facts),g=a.indexedFacts||[],h=(0,N.Cr)(g,a=>(0,N.rF)(a),{maxItems:48,maxChars:12e3},"indexedFacts"),i=f.length>0?[]:h.selected.map(a=>`- ${a.key||a.fieldName||"资料事实"}:${(0,s.eE)((0,M.lG)(a.value)).slice(0,180)}${a.sourceFile?`(来源:${a.sourceFile.split("/").pop()})`:""}`),j=h.dropped.length>0?[`⚠️ ${h.dropped.length} 个低优先级事实未列出(完整列表见事实主表)`]:[],k=[...f,...g].filter(a=>/建设地点|建设规模|招标范围|计划工期|合同工期|周期要求|质量标准|合同估算|投资估算|最高投标限价|招标控制价/u.test(`${a.key||""}${a.fieldName||""}${a.fieldId||""}`)).filter((a,b,c)=>c.findIndex(b=>`${b.key||b.fieldName}:${(0,M.lG)(b.value)}`==`${a.key||a.fieldName}:${(0,M.lG)(a.value)}`)===b),l=[...new Set([...function(a){let b=new Set,c=/(?:\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|\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;for(let d of a){let a=(0,M.lG)(d.content).replace(/\s+/gu," ");if((!/报价明细|投标报价|单价|合价|综合单价|预留金|税率|增值税|利润|结算/u.test(a)||/合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价/u.test(a))&&!/OCR|识别错误|乱码|无法确认|疑似|不确定|语义断裂/u.test(a)){for(let d of a.matchAll(c))b.add(d[0].trim());if(b.size>=40)break}}return[...b].slice(0,40)}(a.evidence),...f.map(a=>(0,M.lG)(a.value)).filter(a=>/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|台|套|个|项|批|次|份|人|㎡|日历天|万元|元/iu.test(a)),...g.map(a=>(0,M.lG)(a.value)).filter(a=>/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|台|套|个|项|批|次|份|人|㎡|日历天|万元|元/iu.test(a))])],m=0,n=[];for(let a of l){if(m+a.length>3e3&&n.length>=10)break;n.push(a),m+=a.length+1}let o=new Set([...a.evidence.map(a=>a.filePath),...f.map(a=>a.sourceFile),...(a.indexedFacts||[]).map(a=>a.sourceFile)]).size,p=(a.resolvedFactNeeds||[]).filter(a=>"satisfied"!==a.status&&a.need.required).map(a=>a.need.label);return["【本章事实覆盖与参数落位要求】",d.length?`必须优先覆盖的事实/要求:
105
105
  ${d.map(a=>`- ${a}`).join("\n")}`:"",e.length?`角色节点已抽取事实:
@@ -14,7 +14,7 @@ ${d}`;return{chunk:a,index:b,score:.8*h.filter(a=>e.includes(a)).length+ +!!/\d+
14
14
  章节内容建议:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
15
15
  质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},22157:(a,b,c)=>{c.d(b,{Te:()=>g,c6:()=>e,l$:()=>h,lG:()=>f});var d=c(77598);function e(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function f(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 g(a){if(a?.aborted)throw Error("用户中止")}async function h(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||function(a){let b=Math.max(1,a.total);return"chapter"===a.kind?b<=3?b:b<=6?Math.min(b,4):b<=10?Math.min(b,6):Math.min(b,8):"search"===a.kind?b<=6?b:Math.min(b,8):"deepRetrieval"===a.kind?Math.min(b,a.highRisk?6:4):"sectionRepair"===a.kind?b<=3?b:b<=8?4:Math.min(b,6):Math.min(b,4)}({total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}))),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}},25284:(a,b,c)=>{c.d(b,{b3:()=>x,hp:()=>w});var d=c(73024),e=c(76760),f=c(19898),g=c(44533),h=c(37095),i=c(32434),j=c(70963),k=c(22157);let l="project-intelligence-v4",m="material-scope-v1";function n(a){let b=e.join((0,g.a2)(),"projects",(0,f.computeProjectId)(a),"project-intelligence");return d.mkdirSync(b,{recursive:!0}),d.mkdirSync(e.join(b,"scopes"),{recursive:!0}),b}function o(a){return e.join(n(a),"project-intelligence.json")}function p(a,b){return e.join(n(a),"scopes",`${b}.json`)}function q(a){return a.replace(/\s+/gu," ").replace(/资料参数行摘要[::]/gu,"").trim()}function r(a){let b=[],c=(c,d,e=.72)=>{d&&b.push({key:c,value:d,sourceFile:a.relativePath,roleId:a.roles[0]||"project_overview",processingType:"project_intelligence",confidence:e})};for(let b of(c("资料文件",a.fileName,.6),a.root&&c("资料组",a.root,.65),a.roles))c("资料角色",b,.58);for(let b of a.contentFacts)c("资料内容事实",b,.76);for(let b of a.chapterHints)c("章节意图候选",b,.68);let d=a.relativePath.match(/([^/\\]*项目[^/\\]*)/u)?.[1]||a.root;return d&&c("项目名称候选",d,.62),b}function s(a){return(0,k.c6)(a.map(a=>({path:a.relativePath,hash:a.contentHash,chunkCount:a.chunkCount,indexedAt:a.indexedAt,status:a.status})).sort((a,b)=>a.path.localeCompare(b.path)))}function t(a,b){let c=a=>!a?.length||a.some(a=>b.has(a));return{...a,works:a.works.filter(a=>c(a.sourceFiles)),methods:a.methods.filter(a=>c(a.sourceFiles)),resources:a.resources.filter(a=>c(a.sourceFiles)),schedule:a.schedule.filter(a=>c(a.sourceFiles)),standards:a.standards.filter(a=>c(a.sourceFiles)),risks:a.risks.filter(a=>c(a.sourceFiles)),requirements:a.requirements.filter(a=>c(a.sourceFiles)),siteConditions:a.siteConditions.filter(a=>c(a.sourceFiles)),addendumChanges:a.addendumChanges.filter(a=>b.has(a.sourceFile))}}function u(a,b){let c=new Map((0,g.Yy)(a).map(a=>[a.relativePath,a]));return b.every(a=>{let b=c.get(a.relativePath);return b&&"error"!==b.status&&"disk"!==b.status&&Number(b.indexedAt||0)===a.indexedAt&&Number(b.chunkCount||0)===a.chunkCount&&(b.contentHash||"")===(a.contentHash||"")})}async function v(a){let b=await (0,g.Qh)().getProject(a),c=(0,g.Yy)(a).filter(a=>"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0).map(a=>{var c;let d=a.relativePath.split(/[\\/]/u).filter(Boolean)[0],f=function(a){let b=new Set(["project_overview"]);return/招标|发包人要求|答疑|补疑|澄清/u.test(a)&&b.add("tender_requirement"),/图纸|设计说明|施工图|道路|桥梁|园林|交通|结构/u.test(a)&&b.add("drawing"),/清单|工程量|xls|xlsx/u.test(a)&&b.add("boq"),/质量|验收|规范|标准/u.test(a)&&b.add("quality_standard"),/安全|危大|风险|文明|环保/u.test(a)&&b.add("safety_requirement"),/施工|方案|组织|进度|工期|材料|机械|劳动力/u.test(a)&&b.add("construction_method"),[...b]}(a.relativePath),g=b.listChunks({relativePath:a.relativePath,limit:16}).map(a=>q(String(a.content||""))).filter(Boolean).slice(0,12),h=(c=a.relativePath,/投标函|我方已仔细研究/u.test(c)?"投标函/承诺格式,不进入施工正文":/保证金|账户|协议书|资金托管/u.test(c)?"资金账户/保证金资料,不进入施工正文":/开标|评标|交易系统|示范文本/u.test(c)?"招投标流程/示范文本,不进入施工正文":/报价|税率|利润/u.test(c)?"商务报价资料,不进入施工正文":void 0),i=h?[]:function(a){let b=new Set;for(let c of a){for(let a of c.split(/[。;;\n]/u)){let c=q(a);if(!(c.length<12)&&!(c.length>180)&&!/投标函|保证金|开标|评标|交易系统|账户|协议书|示范文本|报价|税率|利润|我方已仔细研究|中标通知书|签订合同|专用账户监管/u.test(c)&&(/(项目|工程|道路|桥梁|园林|交通|结构|排水|照明|绿化|工期|质量|安全|危大|材料|机械|劳动力|验收|规范|清单|工程量|施工)/u.test(c)&&b.add(c),b.size>=18))break}if(b.size>=18)break}return[...b]}(g),j=function(a,b){let c=`${a}
16
16
  ${b.join("\n")}`,d=new Set,e=(a,b)=>{b.test(c)&&d.add(a)};return e("工期进度",/工期|进度|节点|计划|流水|穿插/u),e("质量验收",/质量|验收|检验|试验|复试|见证取样|规范|标准/u),e("安全危大",/安全|危大|风险|脚手架|深基坑|吊装|临电|消防/u),e("施工部署",/部署|总平面|临设|场地|组织|施工顺序/u),e("施工方法",/施工方法|施工工艺|道路|桥梁|排水|照明|园林|绿化|交通|结构/u),e("人材机",/劳动力|材料|机械|设备|周转|进场|资源/u),e("环境文明",/环保|扬尘|文明|噪声|水土保持|绿色施工/u),e("工程概况",/项目|工程|建设地点|建设规模|招标范围|发包人要求/u),[...d]}(a.relativePath,i),k=function(a,b){let c=`${a}
17
- ${b.join("\n")}`,d=new Set;return/工期|进度|节点|计划/u.test(c)&&d.add("确保工期的保障体系与措施"),/质量|验收|复试|见证取样|规范|标准/u.test(c)&&d.add("确保质量的保障体系与措施"),/安全|危大|风险|应急|临电|消防/u.test(c)&&d.add("确保安全生产的管理体系与措施"),/劳动力|材料|机械|设备|周转|资源/u.test(c)&&d.add("确保人、材、机的保障体系与措施"),/施工方法|施工工艺|道路|桥梁|排水|照明|园林|绿化/u.test(c)&&d.add("主要分部分项工程施工方案"),/环保|扬尘|文明|绿色/u.test(c)&&d.add("环境保护与文明施工措施"),/项目|工程|建设地点|建设规模|招标范围/u.test(c)&&d.add("工程概况与施工部署"),[...d]}(a.relativePath,i);return{relativePath:a.relativePath,root:d,fileName:e.basename(a.relativePath),category:a.category,format:a.format,chunkCount:a.chunkCount,indexedAt:a.indexedAt,contentHash:a.contentHash,status:a.status,roles:f,usableForBody:!h,excludeReason:h,summarySignals:g,contentFacts:i,intentTags:j,chapterHints:k}}),h=c.flatMap(r),k=c.flatMap(a=>a.intentTags.flatMap(b=>a.contentFacts.slice(0,10).map((c,d)=>({intent:b,filePath:a.relativePath,title:a.fileName,content:c,score:.82-.025*d,roleId:a.roles[0]})))),m={selectedRoots:[...new Set(c.map(a=>a.root).filter(Boolean))],selectedFiles:c.map(a=>a.relativePath),totalAvailableFiles:c.length,ambiguous:!1,locked:!0,reason:"项目入库完成后预计算的项目级资料范围",rejectedRoots:[],scopeHash:s(c)},n=(0,i.hw)(a,m),p=(0,i.rj)({facts:h,materialSnapshot:n}),t=await (0,j.i)({evidence:c.flatMap(a=>a.contentFacts.slice(0,10).map((b,c)=>({chapterId:"project-intelligence",filePath:a.relativePath,content:b,score:.82-.02*c,roleId:a.roles[0],processingType:"project_intelligence",source:"project-intelligence"}))),projectRoot:a,requirement:"项目入库后预计算增强图谱",templateId:"project-intelligence"}).catch(a=>({graph:void 0,stage:{message:a instanceof Error?a.message:String(a)}})),u=t.graph||p,v=t.graph?"enhanced":"base",w=t.graph?t.stage.message||"增强项目图谱已预计算":`增强项目图谱未生成,使用基础图谱:${t.stage.message||"未知原因"}`,x={version:l,projectRoot:a,projectId:(0,f.computeProjectId)(a),createdAt:Date.now(),sourceHash:s(c),fileCount:c.length,files:c,facts:h,chapterIntentIndex:k,baseProjectGraph:p,enhancedProjectGraph:u,projectGraphSource:v,projectGraphMessage:w,blueprint:{projectNames:[...new Set(h.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(o(a),JSON.stringify(x,null,2)),x}function w(a){let b=function(a){let b=o(a);if(d.existsSync(b))try{let a=JSON.parse(d.readFileSync(b,"utf8"));return a.version===l?a:void 0}catch{return}}(a.projectRoot);if(!b)return;let c=(0,i.ZR)(a.projectRoot,a.template,a.requirement||"");if(c.ambiguous||!c.locked||0===c.selectedFiles.length)return;let e=(0,k.c6)({version:m,selectedFiles:c.selectedFiles.slice().sort(),templateId:a.template.id,chapters:a.template.chapters.map(a=>({id:a.id,title:a.title,sections:a.sections||[]}))}),f=function(a,b){let c=p(a,b);if(d.existsSync(c))try{let b=JSON.parse(d.readFileSync(c,"utf8"));if(b.version!==m||!u(a,b.files))return;return b}catch{return}}(a.projectRoot,e)||function(a){let b=new Set(a.selectedFiles),c=a.cache.files.filter(a=>b.has(a.relativePath));if(0===c.length||!u(a.projectRoot,c))return;let e=a.cache.facts.filter(a=>b.has(a.sourceFile)),f=t(a.cache.baseProjectGraph,b),g=t(a.cache.enhancedProjectGraph||a.cache.baseProjectGraph,b),h=function(a){let b={};for(let c of a.template.chapters){let d=function(a,b=[]){let c=`${a}
17
+ ${b.join("\n")}`,d=new Set;return/工期|进度|节点|计划/u.test(c)&&d.add("确保工期的保障体系与措施"),/质量|验收|复试|见证取样|规范|标准/u.test(c)&&d.add("确保质量的保障体系与措施"),/安全|危大|风险|应急|临电|消防/u.test(c)&&d.add("确保安全生产的管理体系与措施"),/劳动力|材料|机械|设备|周转|资源/u.test(c)&&d.add("确保人、材、机的保障体系与措施"),/施工方法|施工工艺|道路|桥梁|排水|照明|园林|绿化/u.test(c)&&d.add("主要分部分项工程施工方案"),/环保|扬尘|文明|绿色/u.test(c)&&d.add("环境保护与文明施工措施"),/项目|工程|建设地点|建设规模|招标范围/u.test(c)&&d.add("工程概况与施工部署"),[...d]}(a.relativePath,i);return{relativePath:a.relativePath,root:d,fileName:e.basename(a.relativePath),category:a.category,format:a.format,chunkCount:a.chunkCount,indexedAt:a.indexedAt,contentHash:a.contentHash,status:a.status,roles:f,usableForBody:!h,excludeReason:h,summarySignals:g,contentFacts:i,intentTags:j,chapterHints:k}}),h=c.flatMap(r),k=c.flatMap(a=>a.intentTags.flatMap(b=>a.contentFacts.slice(0,10).map((c,d)=>({intent:b,filePath:a.relativePath,title:a.fileName,content:c,score:.82-.025*d,roleId:a.roles[0]})))),m={selectedRoots:[...new Set(c.map(a=>a.root).filter(Boolean))],selectedFiles:c.map(a=>a.relativePath),totalAvailableFiles:c.length,ambiguous:!1,locked:!0,reason:"项目入库完成后预计算的项目级资料范围",rejectedRoots:[],scopeHash:s(c)},n=(0,i.hw)(a,m),p=(0,i.rj)({facts:h,materialSnapshot:n}),t=await (0,j.i)({evidence:c.flatMap(a=>a.contentFacts.slice(0,10).map((b,c)=>({chapterId:"project-intelligence",filePath:a.relativePath,content:b,score:.82-.02*c,roleId:a.roles[0],processingType:"project_intelligence",source:"project-intelligence"}))),projectRoot:a,requirement:"项目入库后预计算增强图谱",templateId:"project-intelligence"});if(!t.graph)throw Error(`增强项目图谱预计算失败:${t.stage.message||t.stage.status}`);let u=t.graph,v=t.stage.message||"增强项目图谱已预计算",w={version:l,projectRoot:a,projectId:(0,f.computeProjectId)(a),createdAt:Date.now(),sourceHash:s(c),fileCount:c.length,files:c,facts:h,chapterIntentIndex:k,baseProjectGraph:p,enhancedProjectGraph:u,projectGraphSource:"enhanced",projectGraphMessage:v,blueprint:{projectNames:[...new Set(h.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(o(a),JSON.stringify(w,null,2)),w}function w(a){let b=function(a){let b=o(a);if(d.existsSync(b))try{let a=JSON.parse(d.readFileSync(b,"utf8"));return a.version===l&&"enhanced"===a.projectGraphSource&&a.enhancedProjectGraph?a:void 0}catch{return}}(a.projectRoot);if(!b)return;let c=(0,i.ZR)(a.projectRoot,a.template,a.requirement||"");if(c.ambiguous||!c.locked||0===c.selectedFiles.length)return;let e=(0,k.c6)({version:m,selectedFiles:c.selectedFiles.slice().sort(),templateId:a.template.id,chapters:a.template.chapters.map(a=>({id:a.id,title:a.title,sections:a.sections||[]}))}),f=function(a,b){let c=p(a,b);if(d.existsSync(c))try{let b=JSON.parse(d.readFileSync(c,"utf8"));if(b.version!==m||!u(a,b.files))return;return b}catch{return}}(a.projectRoot,e)||function(a){let b=new Set(a.selectedFiles),c=a.cache.files.filter(a=>b.has(a.relativePath));if(0===c.length||!u(a.projectRoot,c))return;let e=a.cache.facts.filter(a=>b.has(a.sourceFile)),f=t(a.cache.baseProjectGraph,b),g=t(a.cache.enhancedProjectGraph||a.cache.baseProjectGraph,b),h=function(a){let b={};for(let c of a.template.chapters){let d=function(a,b=[]){let c=`${a}
18
18
  ${b.join("\n")}`,d=new Set,e=(a,b)=>{b.test(c)&&d.add(a)};return e("工期进度",/工期|进度|计划|节点/u),e("质量验收",/质量|验收|复试|见证|控制点/u),e("安全危大",/安全|危大|风险|应急/u),e("施工部署",/部署|总平面|施工组织|现场/u),e("施工方法",/施工方案|施工方法|分部分项|工艺/u),e("人材机",/人材机|劳动力|材料|机械|周转/u),e("环境文明",/环保|文明|扬尘|绿色/u),e("工程概况",/概况|工程特点|重点|难点/u),[...d]}(c.title,c.sections||[]);if(0===d.length)continue;let e=new Set(d),f=a.entries.filter(b=>a.selected.has(b.filePath)&&e.has(b.intent)).sort((a,b)=>b.score-a.score).slice(0,24).map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,roleId:a.roleId,processingType:"project_intelligence",sectionTitle:a.intent,source:"project-intelligence"}));f.length&&(b[c.id]=f)}return b}({template:a.template,entries:a.cache.chapterIntentIndex||[],selected:b}),i={version:m,projectRoot:a.projectRoot,createdAt:Date.now(),scopeHash:a.scopeHash,selectedRoots:a.selectedRoots,selectedFiles:a.selectedFiles,sourceHash:(0,k.c6)(c.map(a=>({path:a.relativePath,hash:a.contentHash,indexedAt:a.indexedAt,chunkCount:a.chunkCount})).sort((a,b)=>a.path.localeCompare(b.path))),files:c,facts:e,baseProjectGraph:f,projectGraph:g,projectGraphSource:a.cache.projectGraphSource,evidenceByChapterId:h,blueprint:{projectNames:[...new Set(e.filter(a=>/项目名称/u.test(a.key)).map(a=>a.value))].slice(0,8),roots:[...new Set(c.map(a=>a.root).filter(Boolean))],usableFiles:c.filter(a=>a.usableForBody).length,excludedFiles:c.filter(a=>!a.usableForBody).length,intentTags:[...new Set(c.flatMap(a=>a.intentTags))],signals:c.flatMap(a=>a.contentFacts.slice(0,2)).slice(0,24)}};return d.writeFileSync(p(a.projectRoot,a.scopeHash),JSON.stringify(i,null,2)),i}({projectRoot:a.projectRoot,template:a.template,cache:b,selectedFiles:c.selectedFiles,selectedRoots:c.selectedRoots,scopeHash:e});if(f)return{cache:b,scope:c,scopeSnapshot:f,files:f.files,facts:f.facts,evidenceByChapterId:f.evidenceByChapterId,baseProjectGraph:f.baseProjectGraph,projectGraph:f.projectGraph,projectGraphSource:f.projectGraphSource,blueprint:f.blueprint}}function x(a){let b=`project-intelligence-${Date.now()}`;(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"generating",status:"processing",percent:5,message:"正在构建项目级蓝图、图谱、事实索引和章节意图索引"}),v(a).then(c=>{(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"done",status:"success",percent:100,message:`项目理解缓存完成:${c.fileCount} 份资料,${c.facts.length} 条事实,${c.chapterIntentIndex.length} 条章节意图证据`})}).catch(c=>{let d=c instanceof Error?c.message:String(c);(0,h.Qf)(a,{id:b,type:"reindex",title:"项目理解缓存",stage:"error",status:"error",percent:100,message:d,error:d}),console.warn("[project-intelligence] build failed",d)})}},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}},32434:(a,b,c)=>{c.d(b,{IA:()=>u,Qu:()=>s,SU:()=>t,ZR:()=>n,hw:()=>o,rj:()=>r});var d=c(76760),e=c(44533),f=c(40299),g=c(80439),h=c(22157);let i=/知识库|系统暂未|项目资料暂未|资料未明确|暂未明确|待确认|待资料复核|待系统|兜底|未检索到|资料不足|无法确认|建议补充|不适用|COL\d+|围绕[^,。;\n]{2,40}编制|可核验信息|以本项目招标文件明确内容为准/u;function j(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function k(a){let b=j(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function l(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function m(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function n(a,b,c=""){let d=(0,e.Yy)(a).filter(m),f=(b.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:j(a.materialRootPath)})).map(a=>a.materialRootPath).filter(Boolean),g=f.length?d.filter(a=>f.some(b=>j(a.relativePath)===b||j(a.relativePath).startsWith(`${b}/`))):d,i=function(a){let b=new Map;for(let c of a){let a=k(c.relativePath);b.set(a,[...b.get(a)||[],c])}return b}(g),o=c.trim(),p=[...i.keys()];if(o){let a=[...i.entries()].map(([a,b])=>({root:a,files:b,score:function(a,b){let c=l(a),d=l(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,o)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);if(1===a.length||a.length>1&&a[0].score>a[1].score){let b=[a[0].root],c=a[0].files.map(a=>a.relativePath);return{selectedRoots:b,selectedFiles:c,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`用户需求唯一匹配资料组:${a[0].root}`,rejectedRoots:p.filter(a=>!b.includes(a)),scopeHash:(0,h.c6)({selectedRoots:b,selectedFiles:c})}}if(a.length>1){let b=a.filter(b=>b.score===a[0].score).map(a=>a.root);return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:`用户需求同时匹配多个资料组:${b.join("、")}`,rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,selectedRoots:b})}}}if(1===f.length){let a=g.map(a=>a.relativePath);return{selectedRoots:f,selectedFiles:a,totalAvailableFiles:d.length,ambiguous:!1,locked:!0,reason:`模板绑定唯一资料组:${f[0]}`,rejectedRoots:p.filter(a=>!f.includes(a)),scopeHash:(0,h.c6)({selectedRoots:f,selectedFiles:a})}}return{selectedRoots:[],selectedFiles:[],totalAvailableFiles:d.length,ambiguous:!0,locked:!1,reason:f.length>1?`模板绑定多个资料组但需求未唯一指定:${f.join("、")}`:"未绑定资料组且需求未唯一指定资料范围,禁止回退全量资料",rejectedRoots:p,scopeHash:(0,h.c6)({ambiguous:!0,boundRoots:f,requirement:c})}}function o(a,b){let c=new Map((0,e.Yy)(a).map(a=>[a.relativePath,a])),f=b.selectedFiles.map(a=>{let b=c.get(a),e=Number(b?.chunkCount||0);return{path:a,root:k(a),fileName:d.basename(a),chunkCount:e,indexedAt:b?.indexedAt,status:b?.status,hash:(0,h.c6)({filePath:a,chunkCount:e,indexedAt:b?.indexedAt,status:b?.status})}});return{files:f,totalFiles:f.length,totalChunks:f.reduce((a,b)=>a+b.chunkCount,0),roots:[...new Set(f.map(a=>a.root))],createdAt:Date.now(),snapshotHash:(0,h.c6)(f.map(a=>({path:a.path,hash:a.hash})))}}function p(a,b){return a.filter(a=>b.test(`${a.fieldId||""} ${a.fieldName||""} ${a.key} ${(0,h.lG)(a.value)}`))}function q(a){return(0,h.lG)(a.value).replace(/\s+/gu," ").trim()}function r(a){let b=a.facts.filter(a=>q(a)),c=p(b,/项目名称|工程名称|招标项目名称|建设地点|建设规模|招标范围|施工范围|建设内容/u),d=p(b,/工期|日历天|进度|开工|竣工/u),e=p(b,/质量|验收|合格|标准|规范/u),f=p(b,/清单|工程量|材料|设备|机械|劳动力|资源/u),g=p(b,/安全|文明|环保|危大|风险/u),h=c.slice(0,8).map(a=>`${a.key}:${q(a)}`).join(";");return{works:h?[{name:a.materialSnapshot.roots[0]||"当前项目",scope:h,sourceFiles:[...new Set(c.map(a=>a.sourceFile).filter(Boolean))],relatedItems:f.slice(0,8).map(a=>q(a))}]:[],methods:[],resources:f.slice(0,30).map(a=>({name:a.key,type:"material",spec:q(a),quantity:"",unit:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),schedule:d.slice(0,10).map(a=>({milestone:a.key,duration:q(a),startDate:"",endDate:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),standards:e.slice(0,16).map(a=>({code:a.key,description:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),risks:g.slice(0,16).map(a=>({risk:q(a),level:"medium",mitigation:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),requirements:p(b,/招标|投标|合同|承包|响应|要求|补疑|澄清|答疑/u).slice(0,20).map(a=>({category:a.key,detail:q(a),sourceFiles:a.sourceFile?[a.sourceFile]:[]})),siteConditions:p(b,/现场|周边|交通|既有|保护|场地/u).slice(0,12).map(a=>({condition:q(a),impact:"",sourceFiles:a.sourceFile?[a.sourceFile]:[]})),addendumChanges:[],gaps:[],generatedAt:Date.now()}}function s(a){let b=n(a.projectRoot,a.template,a.requirement||"");if(b.ambiguous||!b.locked||0===b.selectedFiles.length)throw Error(`资料范围未锁定:${b.reason}`);let c=o(a.projectRoot,b),d=r({facts:a.facts,materialSnapshot:c,requirement:a.requirement}),e=Date.now();return{runId:`run-${e}-${(0,h.c6)({templateId:a.template.id,requirement:a.requirement||"",scopeHash:b.scopeHash}).slice(0,8)}`,templateId:a.template.id,requirement:a.requirement||"",projectRoot:a.projectRoot,materialScope:b,materialSnapshot:c,nodes:[{id:"material-scope",type:"material_scope",status:"completed",startedAt:e,completedAt:e,outputSummary:b.reason,metrics:{selectedFiles:b.selectedFiles.length,rejectedRoots:b.rejectedRoots.length}},{id:"material-snapshot",type:"material_snapshot",status:"completed",startedAt:e,completedAt:e,outputSummary:`${c.totalFiles} 份资料,${c.totalChunks} 个切片`,metrics:{totalFiles:c.totalFiles,totalChunks:c.totalChunks}},{id:"base-project-graph",type:"base_project_graph",status:"completed",startedAt:e,completedAt:e,outputSummary:`${d.works.length}工程 ${d.resources.length}资源 ${d.schedule.length}工期 ${d.standards.length}标准`,metrics:{facts:a.facts.length}}],facts:a.facts,baseProjectGraph:d,issues:[],createdAt:e}}function t(a){return[(0,g.X5)({type:"validation",roleId:"agent-material-scope",status:"success",message:`资料范围已锁定:${a.materialScope.selectedRoots.join("、")}`,details:[`${a.materialScope.reason}`,`入选资料:${a.materialScope.selectedFiles.length}/${a.materialScope.totalAvailableFiles}`,`已排除资料组:${a.materialScope.rejectedRoots.slice(0,8).join("、")||"无"}`]},{subtitle:"Agent 资料范围锁定"}),(0,g.X5)({type:"knowledge_retrieval",roleId:"agent-material-snapshot",status:"success",message:`资料快照已固定:${a.materialSnapshot.totalFiles} 份资料、${a.materialSnapshot.totalChunks} 个切片`,details:a.materialSnapshot.files.slice(0,10).map(a=>`${a.root}|${a.fileName}|${a.chunkCount}切片`)},{subtitle:"Agent 资料快照"}),(0,g.X5)({type:"file_understanding",roleId:"agent-base-project-graph",status:"success",message:`基础项目图谱已生成:${a.baseProjectGraph.works.length}工程 ${a.baseProjectGraph.resources.length}资源 ${a.baseProjectGraph.schedule.length}工期 ${a.baseProjectGraph.standards.length}标准`,details:[`基础图谱来自确定性事实层,不依赖 LLM`,`事实数:${a.facts.length}`]},{subtitle:"Agent 基础图谱"})]}function u(a){let b=a.split(/\r?\n/u),c=[];return b.forEach((a,b)=>{i.test(a)&&c.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现后台或兜底话术:第 ${b+1} 行`,suggestion:"必须改为有事实依据的正式表达;非必填缺失字段应删除,必填事实缺失应阻断生成。"})}),[...c,...(0,f.bx)(a)].slice(0,20)}},37095:(a,b,c)=>{c.d(b,{CU:()=>q,H7:()=>p,JB:()=>m,Qf:()=>k,kW:()=>n,oy:()=>l,sn:()=>o});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}function j(a,b){let c=h(a);d.mkdirSync(f.dirname(c),{recursive:!0}),d.writeFileSync(c,`${b.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
19
19
  `,"utf8")}function k(a,b){let c=Date.now(),d=i(a),e=d.findIndex(a=>a.id===b.id),f=e>=0?d[e]:void 0,g={id:b.id,type:b.type,title:b.title,stage:b.stage??f?.stage??"uploading",status:b.status??f?.status??"processing",message:b.message??f?.message??"",percent:b.percent??f?.percent??0,fileName:b.fileName??f?.fileName,filePath:b.filePath??f?.filePath,chunkCount:b.chunkCount??f?.chunkCount,textLength:b.textLength??f?.textLength,extractionMode:b.extractionMode??f?.extractionMode,error:b.error??f?.error,details:b.details??f?.details,createdAt:f?.createdAt??c,updatedAt:c};return e>=0?d[e]=g:d.push(g),j(a,d),g}function l(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function m(a,b){return i(a).find(a=>a.id===b)}function n(a,b){return i(a).filter(a=>!b||a.type===b).sort((a,b)=>b.updatedAt-a.updatedAt)[0]}function o(a){return i(a).filter(a=>"processing"===a.status).sort((a,b)=>b.updatedAt-a.updatedAt)}function p(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}function q(a,b){let c=i(a),d=c.filter(a=>a.id!==b);return d.length!==c.length&&(j(a,d),!0)}},40299:(a,b,c)=>{c.d(b,{CK:()=>R,Ed:()=>S,FD:()=>f,K7:()=>v,KX:()=>z,Re:()=>p,UG:()=>T,V3:()=>W,bR:()=>D,bx:()=>w,dh:()=>E,kT:()=>x,r4:()=>C,rd:()=>y,rs:()=>V,wi:()=>m,z1:()=>t});var d=c(58965),e=c(70208);function f(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let g=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\n)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\n)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\n)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\n)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\n)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\n)?/gmu,h=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,i=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,j=/^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|^#{2,6}\s+.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|^#{2,6}\s+.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项)\s*$/gmu,k=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u;function l(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,e.GQ)(b);return k.test(b)||k.test(c)}function m(a){return a.replace(/PDF\s*第\s*\d+\s*页/giu,"相关资料").replace(/第\s*\d+\s*页\s*(?:\/|共)\s*\d+\s*页/gu,"").replace(/第\s*\d+\s*(?:[-—至到~~]\s*\d+)?\s*页/gu,"相关资料").replace(/(装饰工程|土建工程|加固工程|给排水工程|电气工程|智能化工程|消防工程|弱电智能化工程|室外道排工程|建筑结构加固工程)\s*(?:(?:施工)?图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/\d+\s*页\s*(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:(?:施工)?图纸)?/gu,"$1专业图纸").replace(/(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:[((]\s*)?\d+\s*页\s*(?:(?:施工)?图纸)?\s*[))]?/gu,"$1专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9、及与和]{2,24})\s*(?:共|多达|约|合计)\s*\d+\s*页/gu,"$1相关专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24}工程)\s*(?:图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24})(?<!施工)\s*(?:施工)?图纸\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/(给排水|电气|智能化|消防|暖通|人防)\s*[((]\s*\d+\s*页\s*[))]/gu,"$1专业图纸").replace(/(?:依据|按照|结合)?\s*图纸\s*[((]\s*\d+\s*页\s*[))]/gu,"依据相关专业图纸").replace(/(?:依据|按照|结合)?\s*清单\s*[((]?\s*\d+\s*页\s*[))]?/gu,"依据工程量清单").replace(/资料\s*[((]?\s*\d+\s*页\s*[))]?/gu,"项目资料").replace(/[((]?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件|工程)?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:(?:共|多达|约|合计)\s*)?\d+\s*页[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件)?[))]?/gu,a=>/图纸|工程|装饰|土建|加固|给排水|电气|智能化|消防/u.test(a)?"相关专业图纸":/清单/u.test(a)?"工程量清单":"相关资料").replace(/(?:位于|详见|见|参见|依据|按照|结合)?\s*相关资料(?:\s*相关资料)+/gu,"相关资料")}let n=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function o(a){return/^\s*\|/u.test(a)||/^\s*\|?\s*:?-{3,}:?/u.test(a)?a:a.replace(/([。;;])\s*(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S)/gu,"$1\n").replace(/([^\n])\s+(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\*\*)/gu,"$1\n")}function p(a){return a.split(/\r?\n/u).map(o).join("\n").replace(/\n{3,}/gu,"\n\n")}function q(a){return/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a)}function r(a){let b=a.trim();return/^\|.*\|$/u.test(b)&&b.split("|").length>=3}function s(a){return`| ${Array.from({length:Math.max(2,a)},()=>"---").join(" | ")} |`}function t(a){let b=a.split(/\r?\n/u),c=[],d=0;for(let a=0;a<b.length;a+=1){let e=b[a];if(!r(e)||q(e)){q(e)||(d=0),c.push(e);continue}let f=b[a+1]||"",g=d||e.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).length;if(c.push(function(a,b){let c=a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim());for(;c.length<b;)c.push("");return`| ${c.slice(0,b).join(" | ")} |`}(e,g)),q(f)){c.push(s(g)),d=g,a+=1;continue}!d&&r(f)&&function(a){let b=a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.replace(/\*\*/gu,"").trim());return!(b.length<2)&&b.filter(a=>/^(?:序号|信息项|内容|控制项目|控制内容|执行要求|责任主体|检查(?:与验收)?|验收标准|备注|名称|规格(?:型号)?|单位|数量|阶段|措施|风险|应急物资名称|资源类别|投入计划|管理要求)$/u.test(a)).length>=Math.min(2,b.length)}(e)&&(c.push(s(g)),d=g)}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}RegExp(String.raw`\S.+(?:\s|[。;;])${n}\S.+(?:\s|[。;;])${n}\S`,"u");let u=/(?:项目部|本项目|本工程)?(?:根据|依据|结合|按照|以)?(?:本项目|项目|[^。;;\n]{0,30}?)?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单)(?:[、,,及和与\s]*(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸|图纸资料|设计修改通知单|现行规范|规范)){1,}(?:[^。;;\n]{0,80})?[,,]/u;function v(a){return a.split(/\r?\n/u).map(a=>/^\s*\|/u.test(a.trim())?a:a.replace(u,"").replace(/(?:施工图设计说明|工程量清单项目特征|补充答疑修正口径|答疑修正口径)(?:[、,,及和与\s]*(?:施工图设计说明|工程量清单项目特征|补充答疑修正口径|答疑修正口径)){1,}/gu,"项目技术文件").replace(/(?:根据|依据|以)(?:[^。;;\n]{0,30})?(?:招标文件|补疑澄清文件|补遗澄清文件|补疑补遗|答疑(?:回复)?文件|答疑修正口径|补充答疑修正口径|澄清文件|工程量清单|设计图纸|施工图纸)(?:[^。;;\n]{0,40})(?:编制|确定|要求|为编制基础)[。;;]?/gu,"").replace(/\s{2,}/gu," ").trimEnd()).filter(a=>!/^(?:本节|本小节|本章)?(?:内容|措施)?(?:根据|依据)(?:招标文件|补疑澄清文件|补遗澄清文件|答疑(?:回复)?文件|澄清文件|工程量清单|设计图纸|施工图纸)[^。;;\n]*[。;;]?$/u.test(a.trim())).join("\n").replace(/\n{3,}/gu,"\n\n")}function w(a){let b=[];return a.split(/\r?\n/u).forEach((a,c)=>{u.test(a)&&b.push({level:"error",severity:"blocker",category:"style",owner:"system",message:`正式正文不得出现资料来源罗列话术:第 ${c+1} 行`,suggestion:"删除“根据/依据招标文件、清单、图纸”等来源罗列,直接保留项目事实、施工内容和控制措施。"}),/^\s*\*\*[^*]{2,40}表\*\*\s*$/u.test(a)&&b.push({level:"error",severity:"blocker",category:"format",owner:"system",message:`正式正文不得用粗体段落充当表名:第 ${c+1} 行`,suggestion:"表名必须转换为 #### 四级标题,避免导出后混入正文段落。"})}),b.slice(0,20)}function x(a){return(function(a){let b=a.split(/\r?\n/u),c=[];for(let a=0;a<b.length;a+=1){if(!r(b[a])||!q(b[a+1]||"")){c.push(b[a]);continue}let d=[];for(;a<b.length&&r(b[a]);)d.push(b[a]),a+=1;a-=1;let e=d.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>a.trim())),f=Array.from({length:Math.max(...e.map(a=>a.length))},(a,b)=>e.some((a,c)=>1!==c&&!!a[b]?.trim())),g=e.map((a,b)=>{let c=f.map((b,c)=>b?a[c]||"":null).filter(a=>null!==a);return 1===b?s(c.length):`| ${c.join(" | ")} |`});c.push(...g)}return c.join("\n")})(t(p(m(v(function(a){let b=a.trim(),c=/^```(?:markdown|md)?\s*\n([\s\S]*?)\n```\s*$/iu.exec(b);return c?c[1].trim():a}(a)).replace(/\b(m|㎡)\s*2\b/giu,"平方米").replace(/\bm\s*[²2]\b/giu,"平方米").replace(/\b(m|㎥)\s*3\b/giu,"立方米").replace(/\bm\s*[³3]\b/giu,"立方米").replace(/\bmm2\b/giu,"平方毫米").replace(/\bcm2\b/giu,"平方厘米").replace(/\bkm2\b/giu,"平方千米").replace(/\s*×\s*/gu,"\xd7").replace(/\s*≤\s*/gu,"≤").replace(/\s*≥\s*/gu,"≥").replace(/\s*±\s*/gu,"\xb1"))))).split(/\r?\n/u).map(a=>/^\s*\|/u.test(a)?a.replace(/\s*不适用\s*(?=\|)/gu," "):a).join("\n").replace(/承包人案/gu,"方案").replace(/承包人法/gu,"方法").replace(g,"").replace(h,"").replace(i,"").replace(j,"").replace(d.tK,"").replace(/^#\s+/gmu,"").replace(d.VX,"").split(/\r?\n/u).filter((a,b,c)=>{let d=b>0?(0,e.GQ)((c[b-1]||"").trim().replace(/^#{1,6}\s+/u,"")):"",f=(0,e.GQ)(a.trim().replace(/^#{1,6}\s+/u,""));if(d&&l(d)&&f.length>0&&f.length<=12&&!/^#{1,6}\s/u.test(a.trim()))return!1;let g=a.trim();if(!g)return!0;if(/该小节围绕.+进行补充说明/u.test(g)||/仅作为内部事实提取依据|正式正文不得引用文件名|后台事实|内部事实/u.test(g))return!1;if(/^\s*\|/u.test(g)||/^\s*\|?\s*:?-{3,}:?/u.test(g))return!0;let h=(0,e.GQ)(g.replace(/^#{1,6}\s+/u,""));return!(/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(h)||h.length<=1||l(h))&&!(/[,、;:和与在为对将]$/u.test(h)||/(通过|包括|如下|主要包括)$/u.test(h))}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}let y="以下规则仅用于保障导出格式正确和事实安全,不得覆盖用户在提示词中已明确的要求。\n不得把”知识库、检索、资料类型、提示词角色、规范包、事实字段、缺失项、校验结果、资料未提供、未检索到”等后台流程话术写入正文。\n严禁使用“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列开头;正文必须直接写项目事实、施工内容、控制措施、验收节点。\n【导出格式】章标题用 ## ,节标题用 ### 加数字编号(如 1.1),小节标题用 #### 加数字编号(如 1.1.1)。禁止用数字编号或粗体代替 ###/#### 标题。\nMarkdown 表格格式硬约束:凡是输出 Markdown 表格,必须使用标准 GFM 表格格式。\n表格必须包含表头行、分隔线和数据行;表头下一行必须是分隔线,例如 |---|---|。\n禁止只输出连续的“| 字段 | 值 |”裸表格行;两列键值信息表默认使用表头 | 信息项 | 内容 |。\n表头、分隔线和数据行必须连续,中间不得插入正文、说明、空行或补充段落。\n正文表格不得展示后台溯源列或系统过程列,如“资料来源/说明”“资料来源/证明”“知识库来源”等。\n项目名称、项目编号、招标人/业主/建设单位、建设地点、建设规模、计划工期、质量标准、合同估算价等项目基础信息,只能在项目基本信息表中集中输出一次;后续章节如需引用,应写入正文或专业表格的业务字段,不得重复生成项目基础信息键值表。\n【段落格式】段落之间必须空行(双换行)分隔,不得用单换行连续写大段文字。列表项逐行独占。步骤描述之间加空行。\n正文事实必须来自绑定材料;信息不足时保持审慎,不得编造精确数量。",z="只生成当前小节正文,不生成其他二级小节,不重复章节一级标题。\n优先使用当前模板、用户要求、绑定提示词和绑定材料中的事实;缺少依据时不得编造具体数值、名称、时间、规格或责任。\n小节应有实质正文;除非用户或模板明确要求纯表格,否则表格只能作为辅助表达,不能整节只有表格。\n不得用通用兜底段落、空泛管理话术或后台缺料说明冒充正文;信息不足时只写已有事实、适用边界和待复核口径。";function A(a){return(0,e.GQ)(a.replace(/^#+\s*/u,"")).replace(/^(?:第)?[一二三四五六七八九十百千万\d]+章\s*/u,"").trim().replace(/\s+/gu,"")}function B(a,b){let c=A(a),d=A(b);return!!(c&&d&&c===d)}function C(a){return[...new Set([...a.matchAll(/^###\s+(.+)$/gmu)].map(a=>(0,e.GQ)(a[1]||"")).filter(a=>a.length>=2&&a.length<=80).filter(a=>!l(a)).filter(a=>!/^\d+(?:\.\d+){2,}\s+/u.test(a)))]}function D(a){let b=a.split(/\r?\n/u),c="",d=0;return b.map(a=>{let b=/^\*\*([^*]{2,40}表)\*\*\s*$/u.exec(a.trim());if(b&&c)return d+=1,`#### ${c}.${d} ${(0,e.GQ)(b[1]||"")}`;let f=/^###\s+(\d+\.\d+)\s+.+$/u.exec(a.trim());if(f)return c=f[1],d=0,a;if(/^##\s+/u.test(a.trim()))return c="",d=0,a;let g=/^(#{4,5})\s+(.+)$/u.exec(a.trim());if(g){if(!c)return"#####"===g[1]?a.replace(/^\s*#####/u,"####"):a;let b=(g[2]||"").trim(),f=(0,e.GQ)(b.replace(/^\d+\.\d+\.\d+\s+/u,""));return f?(d+=1,`#### ${c}.${d} ${f}`):a}return a}).join("\n").replace(/\n{3,}/gu,"\n\n").trim()}function E(a){let b=[],c="";for(let d of a.split(/\r?\n/u)){let a=d.trim(),f=/^###\s+(\d+\.\d+)\s+.+$/u.exec(a);if(f){c=f[1];continue}if(/^##\s+/u.test(a)&&(c=""),!c)continue;let g=/^####\s+(.+)$/u.exec(a);if(g){let a=(g[1]||"").trim();RegExp(`^${O(c)}\\.\\d+\\s+\\S`,"u").test(a)||b.push({level:"warning",message:`三级小节缺少 ${c}.x 编号:${(0,e.GQ)(a)}`,suggestion:"三级小节必须使用“#### 章号.节号.序号 标题”,且不纳入目录。"})}}return b}function F(a){let b=a.replace(/\*+/gu,"").trim();if(l(b))return"";let c=(0,e.GQ)(b).replace(/^[-—–]\s*/u,"").trim();return l(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候)$/u.test(c)?"":c}function G(a=[]){return[...new Set(a.map(F).filter(a=>a.length>=2))]}function H(a){return["## 目录","",...a.flatMap((a,b)=>{let c=G(a.sections||[]);return[`- ${(0,e.tb)(b,a.title)}`,...c.map((a,c)=>` - ${function(a,b,c){let d=(0,e.GQ)(c);return!function(a){let b=/^\s*(\d+)\.(\d+)[..、]?\s+(.+)$/u.exec(a);return!!b&&(0,e.GQ)(b[3]||"").trim()===(0,e.GQ)(a).trim()}(c)?`${a+1}.${b+1} ${d}`:d}(b,c,a)}`)]})].join("\n")}function I(a){return a.replace(/<div class="document-cover">[\s\S]*?<\/div>\s*(?:<div class="page-break"><\/div>\s*)?/giu,"").replace(/^#\s+.+\n{1,2}/u,"")}function J(a){return a.replace(/^##\s+目录\s*$[\s\S]*?(?=\n<div class="page-break"><\/div>|\n##\s+第[一二三四五六七八九十百千万\d]+章|\n##\s+)/gmu,"").replace(/^<div class="page-break"><\/div>\s*(?=##\s+第[一二三四五六七八九十百千万\d]+章)/gmu,"")}function K(a){let b=!1;return a.replace(/^##\s+目录\s*$[\s\S]*?(?=\n<div class="page-break"><\/div>|\n##\s+)/gmu,a=>b?"":(b=!0,a)).replace(/\n{3,}/gu,"\n\n").trim()}function L(a,b){let c=K(a);b.forEach((a,b)=>{let d=(0,e.GQ)(a.title),f=RegExp(`^##\\s+(?:第[一二三四五六七八九十百千万\\d]+章\\s*)?${O(d)}\\s*$`,"mu");c=f.test(c)?c.replace(f,`## ${(0,e.tb)(b,a.title)}`):c});let d=c.split(/\r?\n/u),f=-1,g=0,h=0,i="",j=new Set,k=a=>{let c=b[f]?.sections||[],d=Q(a);return c.findIndex(a=>Q(a)===d)},m=(a,c)=>{let d=F(a);if(!d||l(a)||l(d))return"";let m=k(d),n=b[f]?.sections||[],o=m>=0?m+1:g+1,p=m>=0?Q(n[m]):Q(d);return j.has(p)?(g=o,i=c||`${f+1}.${g}`,h+=1,`#### ${f+1}.${g}.${h} ${d}`):(g=o,h=0,i=c||`${f+1}.${g}`,j.add(p),`### ${f+1}.${g} ${m>=0?(0,e.GQ)(n[m]):d}`)},n=!1;return d.map(a=>{let c=a.trim();if(/^##\s+目录\s*$/u.test(c))return n=!0,a;if(n&&/^<div class="page-break"><\/div>$/u.test(c))return n=!1,a;if(n)return a;if(/^##\s+第[一二三四五六七八九十百千万\d]+章\s+/u.test(c))return f+=1,g=0,h=0,i="",j=new Set,a;let d=/^##\s+第[一二三四五六七八九十百千万\d]+节\s+(.+)$/u.exec(c);if(f>=0&&d)return m(d[1]||"");let l=/^##\s+\d+[..、]\s+(.+)$/u.exec(c);if(f>=0&&l)return m(l[1]||"");let o=/^##\s+(\d+)\.(\d+)\s+(.+)$/u.exec(c);if(f>=0&&o)return m(o[3]||"",`${o[1]}.${o[2]}`);let p=/^##\s+(.+)$/u.exec(c);if(f>=0&&p){let a=(0,e.GQ)(p[1]||"");return/^本章目录$/u.test(a)?"":m(a)}let q=/^###\s+(?:(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(f>=0&&q)return m(q[3]||"",q[1]&&q[2]?`${q[1]}.${q[2]}`:void 0);let r=/^####\s+(\d+)\.(\d+)(?!\.)\s+(.+)$/u.exec(c);if(f>=0&&r)return m(r[3]||"",`${r[1]}.${r[2]}`);let s=/^####\s+(?:(\d+)\.(\d+)\.(\d+)\s+)?(.+)$/u.exec(c);if(f>=0&&s){let a=s[1]&&s[2]?`${s[1]}.${s[2]}`:i,c=(0,e.GQ)(s[4]||""),d=Q(c),l=k(c)>=0&&!j.has(d);return!g||a&&a!==i&&(0===(b[f]?.sections||[]).length||l)?m(c,a):(h+=1)<=4?`#### ${f+1}.${g}.${h} ${c}`:`**${c}**`}return a}).filter(a=>""!==a).join("\n")}function M(a,b){let c=a.replace(/承包人案/gu,"方案").replace(/承包人法/gu,"方法").replace(/(?:本|我)施工方/gu,"我公司").replace(/(?:本|我)投标人/gu,"我公司").replace(/高度重视/gu,"严格落实").replace(/重中之重/gu,"关键控制事项");for(let a of b?.forbiddenTerms||[])a&&/^(?:报价明细表|最高投标限价|招标控制价)$/u.test(a)&&(c=c.split(/\r?\n/u).filter(b=>!RegExp(O(a),"u").test(b)).join("\n"));return c}function N(a,b){if(!b)return M(a);let c=function(a,b){let c=a;for(let a of b?.requiredTables||[])c=function(a,b){if(/项目基本信息/u.test(b)&&(/项目基本信息/u.test(a)||/\|\s*信息项\s*\|\s*内容\s*\|/u.test(a)||/\|\s*项目名称\s*\|[^\n]*(?:徽光阁|项目施工|工程)/u.test(a))||RegExp(O(b),"u").test(a))return a;let c=/项目基本信息/u.test(b)?"":`**${b}**
20
20
 
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-cd94e8d4e9768eb9.js","static/chunks/pages/index-cb27bfa36c212ab5.js"],"/_app":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/css/3f9e41b5c0ba95f7.css","static/chunks/pages/_app-01a59698bc68d8ca.js"],"/_error":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-12dfcb3abec1c4b4.js","static/chunks/994-241f87efc61005b8.js","static/chunks/pages/asset-library-a1047694e888e655.js"],"/document-roles":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-12dfcb3abec1c4b4.js","static/chunks/787-c18af810af3433f6.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/pages/document-roles-5620a98d6312f81c.js"],"/documents":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/787-c18af810af3433f6.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/230-8184e70eae35f2bb.js","static/chunks/pages/documents-4d295412f0371924.js"],"/guide":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/665-88e20299084b9e73.js","static/chunks/787-c18af810af3433f6.js","static/chunks/957-7c7f05f1c2ccfb96.js","static/chunks/pages/guide-b847733a9a832c2c.js"],"/knowledge":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-12dfcb3abec1c4b4.js","static/chunks/787-c18af810af3433f6.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/850-0f48354694fc6b3e.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/file-detail-02cd5d87cd1d1c5d.js"],"/knowledge/files":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-12dfcb3abec1c4b4.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/files-dcc806117e92dc9d.js"],"/knowledge/manage":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/787-c18af810af3433f6.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/788-961761f5858f9189.js","static/chunks/pages/knowledge/manage-ca9bafc8b0f4a76b.js"],"/models":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/827-a6dc09e42833e6a3.js","static/chunks/pages/models-aa250428e72433df.js"],"/overview":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-cd94e8d4e9768eb9.js","static/chunks/pages/overview-8713b5d37af0eeb3.js"],"/prompt":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/187-358527d7061417bf.js","static/chunks/pages/prompt-200241126dbfb31a.js"],"/settings":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/settings-810eb1a6cf1a6b02.js"],"/system/logs":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-2b116a2500a97dba.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-12dfcb3abec1c4b4.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/pages/system/logs-c5a8920c6506a7e8.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-cd94e8d4e9768eb9.js","static/chunks/pages/index-cb27bfa36c212ab5.js"],"/_app":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/css/3f9e41b5c0ba95f7.css","static/chunks/pages/_app-01a59698bc68d8ca.js"],"/_error":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-35ac595388bbd018.js","static/chunks/994-241f87efc61005b8.js","static/chunks/pages/asset-library-a1047694e888e655.js"],"/document-roles":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-35ac595388bbd018.js","static/chunks/787-c18af810af3433f6.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/pages/document-roles-5620a98d6312f81c.js"],"/documents":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/787-c18af810af3433f6.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/230-8184e70eae35f2bb.js","static/chunks/pages/documents-fa7e8bb1b86f68b7.js"],"/guide":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/665-88e20299084b9e73.js","static/chunks/787-c18af810af3433f6.js","static/chunks/957-7c7f05f1c2ccfb96.js","static/chunks/pages/guide-b847733a9a832c2c.js"],"/knowledge":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-35ac595388bbd018.js","static/chunks/787-c18af810af3433f6.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/850-0f48354694fc6b3e.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/file-detail-02cd5d87cd1d1c5d.js"],"/knowledge/files":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-35ac595388bbd018.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/files-8503246ce2bc07c6.js"],"/knowledge/manage":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/787-c18af810af3433f6.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/788-3afeb069ed706ac0.js","static/chunks/pages/knowledge/manage-a00bb7fc6a76f820.js"],"/models":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/827-a6dc09e42833e6a3.js","static/chunks/pages/models-aa250428e72433df.js"],"/overview":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-cd94e8d4e9768eb9.js","static/chunks/pages/overview-8713b5d37af0eeb3.js"],"/prompt":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/187-358527d7061417bf.js","static/chunks/pages/prompt-224af05519ef8304.js"],"/settings":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/settings-810eb1a6cf1a6b02.js"],"/system/logs":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/665-88e20299084b9e73.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/563-b12f299d34bb9e44.js","static/chunks/7-20bcc985742a9ae1.js","static/chunks/289-35ac595388bbd018.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/pages/system/logs-6f45ef8d862759a2.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];