@customize-agent/server 4.12.0 → 4.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/208.js +1 -1
- package/.next/server/chunks/4680.js +5 -4
- package/.next/server/chunks/5284.js +2 -2
- package/.next/server/chunks/5321.js +1 -1
- package/.next/server/chunks/5726.js +2 -2
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages/template-references.html +1 -1
- package/.next/server/pages-manifest.json +29 -29
- package/package.json +2 -2
- /package/.next/static/{M9qHbyplb6Z9fO2L__QFm → utAC3IX_FzNZ-eS4hzUm_}/_buildManifest.js +0 -0
- /package/.next/static/{M9qHbyplb6Z9fO2L__QFm → utAC3IX_FzNZ-eS4hzUm_}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
utAC3IX_FzNZ-eS4hzUm_
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/utAC3IX_FzNZ-eS4hzUm_/_buildManifest.js",
|
|
9
|
+
"static/utAC3IX_FzNZ-eS4hzUm_/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [],
|
|
12
12
|
"rootMainFilesTree": {},
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "79466976c947d47bd72e0f8b29eba3f6",
|
|
7
|
+
"previewModeSigningKey": "b43adce92a265c83bc3ce721c0504dffd9815f634eb430bd95cbbe441db445e4",
|
|
8
|
+
"previewModeEncryptionKey": "ae25c29121b4d9ddde9668378f8582d28dfe1495c6b756868df6d69bcbeb79f8"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -17,7 +17,7 @@ ${a.category}
|
|
|
17
17
|
${a.format}
|
|
18
18
|
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await m().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}function f(a){let b=0,c=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,d="string"==typeof a.value?a.value:"number"==typeof a.value?String(a.value):"";return a.required&&(b+=10),/\d/u.test(d)&&(b+=5),/项目名称|工程名称|项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|施工范围|计划工期|合同工期|质量标准|合同估算|投资估算|最高投标限价/u.test(c)&&(b+=4),/m[23²³]?|mm|cm|km|t|kg|台|套|个|万元|元|%|MPa|日历天/u.test(d)&&(b+=3),/招标文件|招标公告|投标人须知|前附表/u.test(a.fieldId||"")&&(b+=2),b}c.d(b,{Cr:()=>d,Ox:()=>e,rF:()=>f})},56942:(a,b,c)=>{c.d(b,{$:()=>g,R:()=>h});var d=c(92808);function e(a){return[...new Set(a.filter(Boolean))]}function f(a){let b=(0,d.t0)(a,d.hW);return b.length>0?b:["project_overview"]}function g(a){var b,c,d;let g=a.resolvedRoles.filter(a=>a.required&&!a.satisfied).map(a=>a.role),h=a.resolvedRoles.filter(a=>a.weak).map(a=>a.role),i=(b=a.template,c=a.spec,d=a.summary,b.chapters.map(a=>{let b=function(a,b){let c=b.chapterRules.find(b=>b.id===a.id||b.title===a.title),d=(c?.requiredFactIds||[]).map(a=>b.factFields.find(b=>b.id===a)?.name).filter(Boolean);return e([...a.requiredFacts||[],...d])}(a,c),g=e([...f([a.title,a.purpose,...a.queries||[],...a.sections||[]].join("\n")),...b.flatMap(a=>f(a))]),h=g.filter(a=>(d.materialInventory[a]||[]).length>0),i=h.reduce((a,b)=>a+(d.materialInventory[b]||[]).length,0),j=b.filter(a=>f(a).some(a=>h.includes(a))),k=b.filter(a=>!j.includes(a));return{chapterId:a.id,title:a.title,requiredFacts:b,coveredFacts:j,missingFacts:k,requiredRoles:g,satisfiedRoles:h,evidenceCount:i}})),j=[],k=[];0===a.template.chapters.length&&k.push("模板未配置章节,建议通过模板章节或显式 OUTLINE 提供文档结构"),a.template.chapters.some(a=>!a.purpose&&(!a.queries||0===a.queries.length)&&(!a.requiredFacts||0===a.requiredFacts.length))&&k.push("部分模板章节缺少 purpose、queries 或 requiredFacts,生成质量可能不稳定"),a.summary.source.ambiguous&&j.push(a.summary.source.selectionReason),a.summary.fingerprint.confidence<.34&&k.push("材料指纹置信度较低,建议绑定明确的材料文件"),0===a.summary.source.selectedFiles&&j.push("未绑定可用项目资料文件,无法支撑文档生成"),g.length>0&&0===a.summary.source.selectedFiles&&k.push("模板未绑定可用项目资料文件,请先绑定参与生成的资料"),h.length>0&&0===a.summary.source.selectedFiles&&k.push("绑定资料证据较弱,请确认资料已完成索引");let l=i.filter(a=>0===a.evidenceCount);l.length>0&&k.push(`章节级证据覆盖较弱:${l.slice(0,5).map(a=>a.title).join("、")}`);let m=a.summary.coverage.satisfiedRoles,n=a.resolvedRoles.filter(a=>!a.required&&!a.satisfied).map(a=>a.role),o=[`资料范围:${a.summary.source.selectionReason},可用文件 ${a.summary.source.selectedFiles}/${a.summary.source.totalFiles} 份`,`已识别资料类型:${m.join("、")||"无"}`,a.summary.coverage.missingRoles.length?`待补充必需资料类型:${a.summary.coverage.missingRoles.join("、")}`:"必需资料类型已满足",g.length?`模板强相关资料角色缺失:${g.join("、")}`:"模板强相关资料角色已满足",n.length?`可选资料角色未识别:${n.join("、")}`:"",h.length?`证据较弱资料角色:${h.join("、")}`:""].filter(Boolean);return{ready:0===j.length,missingRoles:g,weakRoles:h,diagnostics:o,chapterDiagnostics:i,blockingIssues:j,warnings:k}}function h(a,b={}){let c=a.chapterDiagnostics.filter(a=>0===a.evidenceCount||a.missingFacts.length>0).slice(0,8).map(a=>`${a.title}:证据 ${a.evidenceCount} 条${a.missingFacts.length?`,缺失 ${a.missingFacts.slice(0,6).join("、")}`:""}`);return b.publicSafe?["## 生成事实使用边界",c.length?`章节证据风险:
|
|
19
19
|
${c.join("\n")}`:"","资料不足的事实不得编造;仅施工组织、计划安排、资源配置类数据可在文档要求允许时进行计划推导并标注。"].filter(Boolean).join("\n"):["## 后台生成准备度",`可生成:${a.ready?"是":"否"}`,a.missingRoles.length?`资料诊断:部分模板期望资料类型未从绑定文件中明确识别,生成时仅使用已绑定资料中的事实`:"",a.weakRoles.length?`资料诊断:部分资料类型证据较弱,生成时不得补写资料未明确的事实`:"",c.length?`章节级证据风险:
|
|
20
|
-
${c.join("\n")}`:""].filter(Boolean).join("\n")}},58965:(a,b,c)=>{c.d(b,{$m:()=>f,VX:()=>d,tK:()=>e});let d=/\b(?:TDbPipe|TDbPipeValve|TDbPipeFitting|TDbWellh|AcDb\w+|Dwg\w+|Polyline|Hatch|Layer|BlockReference)\b/giu,e=/[\w\u4e00-\u9fa5()()\-—_+\s]+\.(?:pdf|dwg|docx?|xlsx?|xls|csv|png|jpe?g|webp)\b/giu,f="[零〇一二三四五六七八九十百千万两]+"},70208:(a,b,c)=>{c.d(b,{GQ:()=>m,Ui:()=>k,YZ:()=>n,bl:()=>j,cs:()=>l,effectiveTemplateChapters:()=>q,tb:()=>o});var d=c(58965),e=c(23500);function f(a){let b=a.trim(),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function g(a){return 0===a.trim().length||function(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))}(a)}let h="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",i=RegExp(`<\\s*${h}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${h}\\s*>`,"giu");function j(a){return RegExp(`^\\s*<\\s*${h}(?:\\s[^>]*)?>`,"iu").test(a)}function k(a){return RegExp(`^\\s*<\\/\\s*${h}\\s*>`,"iu").test(a)}function l(a){for(let b of a){let a=function(a,b,c){let e=[];for(let h of function(a,b){i.lastIndex=0;let c=[...a.matchAll(i)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>f(a)).filter(a=>!g(a))}(h))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!g(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function m(a){let b=a.replace(/^#+\s*/u,"").trim(),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function n(a){return m(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function o(a,b){let c=m(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function p(a,b){let c=new Set;return a.filter(a=>{let d=n(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function q(a,b,c){return!b||c?.preserveExplicitOutline?p([...a.chapters],{...c,template:a}):p([...a.chapters].map(a=>{let c=m(a.title),d=b.chapterRules.find(b=>b.id===a.id||m(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>q,OF:()=>n,Pc:()=>p,QO:()=>o,QR:()=>m,eE:()=>k,ks:()=>s});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144);function j(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function k(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function l(a){let b=k(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function m(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,h=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,j=Number.isFinite(b.maxItemsPerFile)&&b.maxItemsPerFile>0?Math.floor(b.maxItemsPerFile):void 0,n=function(a,b,c){let f=new Set,h=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=k(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=l(e);if(e.length>20&&f.shouldUse)return e;let h=function(a){let b=[...new Set(k(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d&&/\d/u.test(a)&&a.length<=260}))];return(0,i.Cr)(b,a=>(0,i.Ox)(a),{},"parameter-lines").selected.join("\n")}(e);return h.length>20?`资料参数行摘要:
|
|
20
|
+
${c.join("\n")}`:""].filter(Boolean).join("\n")}},58965:(a,b,c)=>{c.d(b,{$m:()=>f,VX:()=>d,tK:()=>e});let d=/\b(?:TDbPipe|TDbPipeValve|TDbPipeFitting|TDbWellh|AcDb\w+|Dwg\w+|Polyline|Hatch|Layer|BlockReference)\b/giu,e=/[\w\u4e00-\u9fa5()()\-—_+\s]+\.(?:pdf|dwg|docx?|xlsx?|xls|csv|png|jpe?g|webp)\b/giu,f="[零〇一二三四五六七八九十百千万两]+"},70208:(a,b,c)=>{c.d(b,{GQ:()=>m,Ui:()=>k,YZ:()=>n,bl:()=>j,cs:()=>l,effectiveTemplateChapters:()=>q,tb:()=>o});var d=c(58965),e=c(23500);function f(a){let b=a.trim(),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d.$m})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d.$m})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function g(a){return 0===a.trim().length||function(a){let b=f(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b)||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(b)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(b)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(b)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(b)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(b))}(a)}let h="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",i=RegExp(`<\\s*${h}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${h}\\s*>`,"giu");function j(a){return RegExp(`^\\s*<\\s*${h}(?:\\s[^>]*)?>`,"iu").test(a)}function k(a){return RegExp(`^\\s*<\\/\\s*${h}\\s*>`,"iu").test(a)}function l(a){for(let b of a){let a=function(a,b,c){let e=[];for(let h of function(a,b){i.lastIndex=0;let c=[...a.matchAll(i)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d.$m}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>f(a)).filter(a=>!g(a))}(h))e.push({id:`explicit-${b}-${e.length+1}`,title:a,purpose:`根据显式大纲章节生成正式正文:${a}`,requiredFacts:[],sections:[],queries:[a]});return e.filter(a=>!g(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function m(a){let b=a.replace(/^#+\s*/u,"").trim(),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:\.\d+)*[、..\s]+/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function n(a){return m(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function o(a,b){let c=m(b);return`第${function(a){let b=["零","一","二","三","四","五","六","七","八","九"];if(a<=10)return 10===a?"十":b[a];if(a<20)return`十${b[a%10]}`;if(a<100){let c=Math.floor(a/10),d=a%10;return`${b[c]}十${d?b[d]:""}`}return String(a)}(a+1)}章 ${c}`}function p(a,b){let c=new Set;return a.filter(a=>{let d=n(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C1)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function q(a,b,c){return!b||c?.preserveExplicitOutline?p([...a.chapters],{...c,template:a}):p([...a.chapters].map(a=>{let c=m(a.title),d=b.chapterRules.find(b=>b.id===a.id||m(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},70933:(a,b,c)=>{c.d(b,{A1:()=>q,OF:()=>n,Pc:()=>p,QO:()=>o,QR:()=>m,eE:()=>k,ks:()=>s});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144);function j(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function k(a){return[...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim()}function l(a){let b=k(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function m(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,h=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,j=Number.isFinite(b.maxItemsPerFile)&&b.maxItemsPerFile>0?Math.floor(b.maxItemsPerFile):void 0,n=function(a,b,c){let f=new Set,h=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=k(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=l(e);if(e.length>20&&f.shouldUse)return e;let h=function(a){let b=[...new Set(k(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d&&/\d/u.test(a)&&a.length<=260}))];return(0,i.Cr)(b,a=>(0,i.Ox)(a),{},"parameter-lines").selected.join("\n")}(e);return h.length>20?`资料参数行摘要:
|
|
21
21
|
${h}`:e.length>80&&f.noiseScore<.9?e:[".pdf",".doc",".docx",".xls",".xlsx",".png",".jpg",".jpeg",".webp",".dwg"].includes(c)?`该资料为${c.replace(".","").toUpperCase()}格式附件,仅作为内部事实提取依据;正式正文不得引用文件名。`:e}(a.filePath,a.content),c=l(b);return{item:{...a,content:b,score:a.score*(1+c.factDensity)*(1-.45*c.noiseScore)},quality:c}}),j=h.filter(a=>a.quality.shouldUse||/附件,仅作为内部事实提取依据/u.test(a.item.content)),m=Number.isFinite(b)&&b>0?Math.ceil(b):void 0,n=(j.length>=Math.min(3,a.length)?j:h).sort((a,b)=>b.item.score-a.item.score).filter(a=>{let b=function(a){let b=a.content.replace(/\s+/gu," ").trim();return`${a.filePath}:${a.sectionTitle||""}:${(0,e.createHash)("sha1").update(b).digest("hex")}`}(a.item);return!f.has(b)&&(f.add(b),!0)}),o=m?n.slice(0,m):n;if(c){let b=h.reduce((a,b)=>a+b.quality.noiseScore,0),d=h.reduce((a,b)=>a+b.quality.factDensity,0);c.evidence.raw+=a.length,c.evidence.used+=o.length,c.evidence.filteredNoise+=Math.max(0,h.length-j.length),c.evidence.avgNoiseScore=h.length?Number((b/h.length).toFixed(3)):0,c.evidence.avgFactDensity=h.length?Number((d/h.length).toFixed(3)):0}return o.map(a=>a.item)}(a,void 0,c),o=b.preservePinned?n.filter(a=>"pinned-evidence"===a.source||"bound-file"===a.source||"required-fact-evidence"===a.source):[],p=n.filter(a=>!o.includes(a)),q=[],r=new Map,s=0,t=(a,b=!1)=>{if(f&&q.length>=f)return;let c=r.get(a.filePath)||0;if(!b&&void 0!==j&&c>=j)return;let d=k(a.content),e=s+d.length;h&&q.length>0&&e>h||(q.push({...a,content:d}),r.set(a.filePath,c+1),s=e)};for(let a of o)t(a,!0);for(let a of p)t(a);return c&&(c.evidence.budgetDropped+=Math.max(0,n.length-q.length)),q}function n(a,b=0){return`- ${j(a,b)}:${k(a.content).replace(/\s+/gu," ").slice(0,260)}`}function o(a,b){let c=new Map;for(let e of b){let b=function(a,b){let c=d.extname(a).toLowerCase();return"drawing"===b||/地图|map|drawing|design/iu.test(a)?"map":[".png",".jpg",".jpeg",".webp"].includes(c)?"image":"table"===b?"table":[".xls",".xlsx",".csv"].includes(c)?"spreadsheet":[".pdf",".doc",".docx"].includes(c)?"document":c&&![".md",".txt"].includes(c)?"attachment":"text"}(e.filePath,e.processingType),f=c.get(e.filePath)||{filePath:e.filePath,kind:b,roleId:e.roleId,processingType:e.processingType,score:e.score,semanticTitle:function(a,b){let c=d.basename(a).replace(/\.[^.]+$/u,"");return"map"===b?c.replace(/^地图-/u,"").replace(/-完整地图$/u,"完整地图"):"image"===b?c.replace(/-/gu," "):"spreadsheet"===b?`${c}(结构化表格)`:"document"===b?`${c}(文档附件)`:c}(e.filePath,b),contentUse:"map"===b?"作为视觉/地图证据,用于说明空间关系、区域划分、点位、路线或布局。":"image"===b?"作为图片证据,用于视觉说明、参考图或章节配图。":"spreadsheet"===b||"table"===b?"作为表格/数据证据,用于字段对比、明细、数量和结构化结论。":"document"===b?"作为 PDF/Word 文档证据,用于提取规范、事实、说明、约束和附件来源。":"attachment"===b?"作为附件证据,用于提供补充来源、文件级约束或可追溯引用。":"作为文本证据,用于事实抽取、章节论据和来源引用。",relatedFacts:[],relatedChapters:[],snippets:[]};f.score=Math.max(f.score,e.score),f.relatedFacts=[...new Set([...f.relatedFacts,...function(a,b){let c=`${a.filePath}
|
|
22
22
|
${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(e,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=e.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),c.set(e.filePath,f)}let e=[...c.values()].sort((a,b)=>b.score-a.score),f={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of e)f[a.kind].push(a);let g=[`绑定材料包:文本片段 ${b.length} 条、结构化材料 ${e.length} 个。`,`材料类型分布:文本 ${f.text.length}、文档 ${f.document.length}、表格/数据 ${f.spreadsheet.length+f.table.length}、图片 ${f.image.length}、视觉/地图 ${f.map.length}、其他 ${f.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:b,resources:e,byKind:f,summary:g}}function p(a,b=8e3,c=36e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=Number(process.env.DOCUMENT_EVIDENCE_BUDGET_CEILING);return Math.max(b,Math.min(Number.isFinite(e)&&e>0?Math.floor(e):c,Math.ceil(12*d)))}function q(a,b){let c=`${a.sectionTitle||""}
|
|
23
23
|
${a.content}`,d=a.score;for(let e of(g.sv.test(c)&&(d+=8),/计划工期|合同工期|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准|招标范围/u.test(c)&&(d+=10),b))e&&(c.includes(e)||(0,h.Lk)(a,e))&&(d+=6);return/GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO/iu.test(c)&&(d+=3),d}function r(a,b,c,d){let e={chars:0,omitted:0},f=[],g=new Map;for(let h of[...a].sort((a,b)=>d(b)-d(a))){let a=g.get(h.filePath)||0;if(a>=6)continue;let d=f.length;!function(a,b,c,d){let e=b.trim();if(e){if(!Number.isFinite(d)||!d||c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}}(f,c(h,f.length),e,b),f.length>d&&g.set(h.filePath,a+1)}return{lines:f,omitted:e.omitted}}function s(a,b={}){let c=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,d=b.requiredFacts||[],e=r(a.resources,c?Math.floor(.35*c):void 0,(a,b)=>[`- 资料:${j(a,b)}`,` 资料类型:${a.kind}`,` 正文用途:${a.contentUse}`,a.relatedFacts.length?` 可用事实方向:${a.relatedFacts.join("、")}`:"",a.snippets.length?` 可用内容:${a.snippets.map(k).filter(Boolean).join(" / ")}`:""].filter(Boolean).join("\n"),a=>a.score),g=r(a.textEvidence,c?Math.floor(.65*c):void 0,(a,b)=>{let c=k(a.content),d=c.length>1200?`${c.slice(0,1200)}
|
|
@@ -6,9 +6,10 @@ ${a.requirement||""}`,e=/专项|安全|质量|验收|审核|合同|合规|审计
|
|
|
6
6
|
|
|
7
7
|
周边章节上下文(仅用于衔接,禁止改动其中内容):
|
|
8
8
|
${a.contextChapters.map(a=>`【${a.title}】
|
|
9
|
-
${a.content}`).join("\n\n")}`:"",d=
|
|
10
|
-
${a.issues.map(a=>`- ${a}`).join("\n")}`,a.chapter.
|
|
11
|
-
${(0,g.ks)(
|
|
9
|
+
${a.content}`).join("\n\n")}`:"",d=a.chapter.evidence.length?(0,g.QO)({id:a.chapter.id,title:a.chapter.title,purpose:a.chapter.title,queries:[],requiredFacts:[]},a.chapter.evidence):void 0,e=["你是章节局部修复专家。只返回 JSON patch,不返回完整章节,不重写无问题内容。",f._$[b]||f._$.generic,i.rd,a.forbidDrawingImages?"图片类资料只作为文本事实来源,禁止插入图片或 Markdown 图片语法。":"","每个 patch 必须能通过 originalText 或 targetStart/targetEnd 在原章节中唯一定位;replacement 只替换该局部片段。","只修复列出的问题,不得整章重写,不得删除无问题小节,不得改变一级/二级章节结构。","如问题涉及缺少正式表格,replacement 必须包含 Markdown 表名、表头、分隔线和至少一行数据;不得只写“见下表”或空表。","如问题涉及缺失关键词/要素(缺词补写类),选取相关小节最后一个完整句子作为 originalText,replacement 为该句加补充句,保证定位唯一;不得因“原文找不到该关键词”而放弃产出 patch。","如问题涉及提示词要求的关键词或禁用内容,只在相关段落自然补齐或替换,不得堆砌关键词。","禁止新增证据摘要中没有的信息;无法安全定位的问题不要生成 patch。",'返回 JSON:{"patches":[{"originalText":"原局部文本","targetStart":"定位起始文本","targetEnd":"定位结束文本","replacement":"替换后的局部文本","reason":"修复原因"}]}',a.promptTexts].filter(Boolean).join("\n\n"),h=b=>[`模板:${a.template.name}`,`章节:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",`需要局部修复的问题:
|
|
10
|
+
${a.issues.map(a=>`- ${a}`).join("\n")}`,b,"当前章节 Markdown:",a.chapter.content,c].filter(Boolean).join("\n\n"),m=d?(0,g.Pc)(Math.min((0,j.V7)(a.chapter.content),1e4),6e3,14e3):void 0,n={},o=await (0,k.bb)(e,h(d&&m?`本章证据摘要:
|
|
11
|
+
${(0,g.ks)(d,{maxChars:m})}`:""),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics,outFailure:n});!o&&d&&(0,k.nz)(n.value)&&(o=await (0,k.bb)(e,h(`本章证据摘要:
|
|
12
|
+
${(0,g.ks)(d,{maxChars:3e3})}`),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics})),(0,l.Te)(a.signal);let p=a.chapter.content,q=0;for(let b of Array.isArray(o?.patches)?o.patches:[]){let c=function(a){var b;let c=a.patch.replacement?.trim(),d=(b=a.content,Math.max(2600,Math.min(16e3,Math.ceil(.45*(0,j.V7)(b)))));if(!c||c.length>d||a.forbidDrawingImages&&/!\[[^\]]*\]\([^)]*\)/iu.test(c))return{content:a.content,applied:!1};let e=function(a,b){let c=b.originalText?.trim();if(c&&a.includes(c)&&a.indexOf(c)===a.lastIndexOf(c))return c;let d=b.targetStart?.trim(),e=b.targetEnd?.trim();if(!d||!e)return;let f=a.indexOf(d);if(f<0)return;let g=a.indexOf(e,f+d.length);if(g<0)return;let h=g+e.length,i=a.slice(f,h);return a.indexOf(i)===a.lastIndexOf(i)?i:void 0}(a.content,a.patch);if(!e||e.length>d)return{content:a.content,applied:!1};let f=(0,i.kT)((0,i.FD)(a.content.replace(e,c),a.forbidDrawingImages));return!function(a,b){let c=(a.match(/```/gu)||[]).length,d=b.replace(/^第[一二三四五六七八九十百千万]+章\s*/u,"").trim();return c%2==0&&(!d||a.includes(d))&&!/^\s*$/u.test(a)}(f,a.title)||(0,j.V7)(f)<Math.floor(.65*(0,j.V7)(a.content))?{content:a.content,applied:!1}:{content:f,applied:f!==a.content}}({content:p,patch:b,title:a.chapter.title,forbidDrawingImages:a.forbidDrawingImages});p=c.content,c.applied&&(q+=1)}return{content:p,appliedCount:q,repairType:b}}function q(a,b,c){return function(a,b){let c=e.resolve(a),f=function(a,b){let c=e.resolve(a);if(e.isAbsolute(b))return e.resolve(b);let f=e.resolve(c,"knowledgeBase",b);return d.existsSync(f)?f:e.resolve(c,b)}(c,b);return f===c||f.startsWith(`${c}${e.sep}`)}(a,b)&&c.size>0&&(function(a,b){let c=e.isAbsolute(b)?b:e.join(a,b),d=e.isAbsolute(b)?e.relative(a,b):b;return[b,c,d,e.join(a,d)]})(a,b).some(a=>c.has(a))}function r(a){return a.map(a=>`## [${a.roleId}/${a.category}] ${a.name}
|
|
12
13
|
${function(a){let b=a.replace(/```([\s\S]*?)```/gu,(a,b)=>/<OUTLINE>|\|\s*[^\n]+\s*\||#{1,6}\s+|必须|禁止|不得|应当|要求|规则|格式|输出|表格|章节|小节|正文/u.test(b)?`
|
|
13
14
|
${b.trim()}
|
|
14
15
|
`:"\n【示例代码块已省略:仅作为格式参考,不作为当前文档事实】\n").split(/\r?\n/u),c=[],d=!1,e=!1;for(let a of b){let b=a.trim();if((0,h.bl)(b)&&(e=!0),e){c.push(a),(0,h.Ui)(b)&&(e=!1);continue}let f=/^(?:#+\s*)?(?:示例|样例|范例|例如|参考示例|示例数据|示例正文|示例目录|example|sample)\s*[::]?/iu.test(b),g=/(?:不得|禁止|必须|应当|要求|规则|格式|输出|保留|只返回|不要|表格|章节|小节|正文|目录|封面)/u.test(b);if(f&&!g){c.at(-1)?.includes("示例内容已省略")||c.push("【示例内容已省略:仅作为格式参考,不作为当前文档事实】"),d=!0;continue}if(d){if(!b){d=!1;continue}if(!(/^(?:#+\s*)?(?:规则|要求|输出|格式|禁止|注意|正文|章节|小节|表格|风格|校验)/u.test(b)||/\|\s*[^\n]+\s*\|/u.test(b)))continue;d=!1}c.push(a)}return c.join("\n").replace(/\n{3,}/gu,"\n\n").trim()}(a.content)}`).join("\n\n")}},61373:(a,b,c)=>{c.d(b,{rd:()=>D,KX:()=>E,kt:()=>y,K7:()=>A,V3:()=>aa,r4:()=>I,rs:()=>_,Re:()=>t,z1:()=>x,wi:()=>o,bR:()=>J,UG:()=>Z,CK:()=>X,Ed:()=>Y,Bl:()=>H,FD:()=>h,kT:()=>C,bx:()=>B,dh:()=>K});var d=c(58965),e=c(22157),f=c(70208),g=c(98632);function h(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let i=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\s)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\s)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\s)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\s)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\s)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\s)?/gmu,j=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,k=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,l=/^#{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,m=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u;function n(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,f.GQ)(b);return m.test(b)||m.test(c)}function o(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 p=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function q(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")}RegExp(String.raw`\S.+(?:\s|[。;;])${p}\S.+(?:\s|[。;;])${p}\S`,"u");let r=RegExp(`\r?
|
|
@@ -58,7 +59,7 @@ ${0===b&&r?`${r}
|
|
|
58
59
|
|
|
59
60
|
${s}
|
|
60
61
|
|
|
61
|
-
`}return c.replace(/\n{3,}/gu,"\n\n").trim()}(J(C(c.promptRules?"required"===c.promptRules.coverPolicy?"required"===c.promptRules.tocPolicy?d:P(d):"required"===c.promptRules.tocPolicy?O(d):O(P(d)):d)))),g=function(a,b){let c=R(Q(P(a)),b),d=[...c.matchAll(/^##\s+(.+)$/gmu)];return b.map((a,e)=>{let g=(0,f.tb)(e,a.title),h=d.find(b=>G(b[1]||"",a.title)||G(b[1]||"",g));if(!h||void 0===h.index)return a.sections||[];let i=d.find(a=>(a.index||0)>(h.index||0)&&b.some(b=>G(a[1]||"",b.title))),j=I(c.slice(h.index,i?.index??c.length));return j.length>0?j:a.sections||[]})}(e,b),i=b.map((a,b)=>({...a,sections:g[b]?.length?g[b]:a.sections||[]}));return{markdown:T($(J(C(c.promptRules?.tocPolicy==="required"?function(a,b){let c=R(a,b),d=P(c),e=[...d.matchAll(/^##\s+(.+)$/gmu)],f=N(b.map(a=>{
|
|
62
|
+
`}return c.replace(/\n{3,}/gu,"\n\n").trim()}(J(C(c.promptRules?"required"===c.promptRules.coverPolicy?"required"===c.promptRules.tocPolicy?d:P(d):"required"===c.promptRules.tocPolicy?O(d):O(P(d)):d)))),g=function(a,b){let c=R(Q(P(a)),b),d=[...c.matchAll(/^##\s+(.+)$/gmu)];return b.map((a,e)=>{let g=(0,f.tb)(e,a.title),h=d.find(b=>G(b[1]||"",a.title)||G(b[1]||"",g));if(!h||void 0===h.index)return a.sections||[];let i=d.find(a=>(a.index||0)>(h.index||0)&&b.some(b=>G(a[1]||"",b.title))),j=I(c.slice(h.index,i?.index??c.length));return j.length>0?j:a.sections||[]})}(e,b),i=b.map((a,b)=>({...a,sections:g[b]?.length?g[b]:a.sections||[]}));return{markdown:T($(J(C(c.promptRules?.tocPolicy==="required"?function(a,b){let c=R(a,b),d=P(c),e=[...d.matchAll(/^##\s+(.+)$/gmu)],f=N(b.map(a=>{let c=e.find(b=>G(b[1]||"",a.title));if(!c||void 0===c.index)return a;let f=e.find(a=>(a.index||0)>(c.index||0)&&b.some(b=>G(a[1]||"",b.title))),g=d.slice(c.index,f?.index??d.length),h=a.sections?.length?void 0:I(g);return h?.length?{...a,sections:h,content:g}:{...a,content:g}})),g=/^##\s+目录\s*$/mu.exec(c);if(g?.index!==void 0){let a=g.index+g[0].length,b=c.slice(a).search(/\n##\s+第[一二三四五六七八九十百千万\d]+章/u),d=[...c.slice(a).matchAll(/\n<div class="page-break"><\/div>/gu)],e=d[0]?.index??(b>=0?b:c.length-a),h=a+e;return`${c.slice(0,g.index)}${f.trim()}${c.slice(h)}`.replace(/\n{3,}/gu,"\n\n")}let h='<div class="page-break"></div>',i=c.indexOf(h);if(i>=0){let a=i+h.length;return`${c.slice(0,a)}
|
|
62
63
|
|
|
63
64
|
${f}
|
|
64
65
|
|
|
@@ -53,10 +53,10 @@ ${g.join("\n")}
|
|
|
53
53
|
- 检测验收:${a.acceptance.join(";")}
|
|
54
54
|
- 规范依据:${a.standards.join(";")}`})].join("\n")):"",t=[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,`当前二级小节:${a.sectionTitle}`,a.requirement?`用户要求:${a.requirement}`:"",x(a.requirement),a.projectContext?`上下文:
|
|
55
55
|
${a.compactProjectContext?L(a.projectContext):a.projectContext}`:"",a.factCoverageContext||"",(0,k.av)(a.chapter.title,a.sectionTitle),a.tablePlanInstruction||"",d.prompt,a.roleContext,a.missingFacts.length?`需要特别补足的信息:${a.missingFacts.join("、")}`:"",a.qualityFeedback?`上轮小节未通过质量检查,必须修正:${a.qualityFeedback}`:"",...(0,u.zC)(a.sectionTitle),s,`请只生成当前节内容,使用“### ${a.sectionTitle}”作为节标题;正文必须下沉到若干“#### 三级小节标题”下面,不得在 ### 标题后直接写大段正文。目标约 ${a.targetWords} 字${a.maxWords?`,最多不超过 ${a.maxWords} 字`:""}。`,"本章节结构已由系统按模板和提示词锁定;不得删除、重命名、合并或重排当前节标题;每个节下必须自然展开三级小节,三级小节承载正文。",g.KX,i?`绑定材料:
|
|
56
|
-
${i}`:""].filter(Boolean).join("\n\n"),v=()=>(0,h.rI)(["你是专业文档的小节生成专家。",g.rd,a.promptTexts].filter(Boolean).join("\n\n"),t,!1,{maxTokens:Math.min((0,r.uV)(a.targetWords),Math.max(
|
|
56
|
+
${i}`:""].filter(Boolean).join("\n\n"),v=()=>(0,h.rI)(["你是专业文档的小节生成专家。",g.rd,a.promptTexts].filter(Boolean).join("\n\n"),t,!1,{maxTokens:Math.min((0,r.uV)(a.targetWords),Math.max(2800,Math.ceil(2.6*a.targetWords))),temperature:.25,signal:a.signal,diagnostics:a.diagnostics}),w=a.diagnostics?await (0,j.X6)(a.diagnostics,`section-draft:${a.chapter.id}:${a.sectionTitle}`,v):await v();if(!w||w.length<80)return;let y=(0,g.kT)((0,g.FD)(w.startsWith("### ")?w:`### ${a.sectionTitle}
|
|
57
57
|
|
|
58
58
|
${w}`,a.forbidDrawingImages)).replace(/^##\s+.*\n+/u,"").trim(),z=(0,r.ap)(a.sectionTitle),A=Math.min(Math.max(Math.floor(.7*a.targetWords),z),Math.max(500,a.targetWords)),B=(0,r.eK)(a.sectionTitle,y),D=y;if(B&&/项目主要施工内容/u.test(a.sectionTitle)){let b=(0,r.g6)(y);b===y||(0,r.eK)(a.sectionTitle,b)||(B="",D=b)}if(B&&a.allowLenientStructureGate&&/项目主要施工内容/u.test(a.sectionTitle)){let b=(0,r.sE)(a.sectionTitle,D),c=(b.match(/^####\s+/gmu)||[]).length,d=(0,r.y7)((0,r.DD)(b));c>=3&&!d&&(0,e.V7)(D)>=A&&(B="")}if(B){a.diagnostics&&(a.diagnostics.llm.lastError=`${B}:${a.chapter.title} / ${a.sectionTitle}`);return}if((0,r.zJ)(a.sectionTitle)&&(0,e.V7)(D)<A){a.diagnostics&&(a.diagnostics.llm.lastError=`section writer 正文不足:${a.chapter.title} / ${a.sectionTitle} / ${(0,e.V7)(D)}/${A}字`);return}let E=/项目主要施工内容/u.test(a.sectionTitle)?(0,r.h$)(D):D;return(0,r.ev)(a.sectionTitle,E)}async function N(a){let b=((0,r.hf)(a.sectionTitle)?[...C(a.sectionTitle,a.chapter,a.evidence),...a.evidence]:C(a.sectionTitle,a.chapter,a.evidence)).filter((a,b,c)=>c.findIndex(b=>b.filePath===a.filePath&&b.content===a.content)===b).slice(0,24),c=J(a.sectionTitle,b),d=b.map((a,b)=>`${b+1}. ${(0,f.eE)(a.content).slice(0,520)}`).filter(Boolean).join("\n"),e=a.diagnostics?.llm.lastError,i=await (0,h.rI)(["你是专业文档节内小节 Writer。只生成一个指定节,不生成整章。",g.rd,g.KX,"必须直接输出 Markdown:先输出指定 ### 节标题,再在其下生成若干 #### 三级小节承载正文;不得在 ### 后直接写大段正文;不得解释过程,不得输出资料不足、待确认、兜底等话术。"].join("\n\n"),[`章节标题:${a.chapter.title}`,`指定节标题:### ${a.sectionTitle}`,a.requirement?`用户要求:${a.requirement}`:"",(0,k.av)(a.chapter.title,a.sectionTitle),(0,r.Uz)(a.sectionTitle),...(0,u.zC)(a.sectionTitle),a.tablePlanInstruction||"",c.prompt,`目标正文约 ${a.targetWords} 字,最多 ${a.maxWords||Math.ceil(1.18*a.targetWords)} 字。正文必须分布在 #### 三级小节下,包含对象范围、执行措施、检查验收和资料闭环;没有精确数值时写正式过程控制,不编造数值。`,"禁止写“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列话术;直接写项目事实、施工内容、控制措施和验收要求。",(0,r.hf)(a.sectionTitle)?"该小节属于施工组织设计通用管理小节:允许基于项目基础事实、招标范围、工期质量目标、现场组织要求和施工总承包管理逻辑形成正式措施,但不得编造具体姓名、品牌、型号、金额或不存在的日期。":"",a.qualityFeedback||"",d?`压缩证据:
|
|
59
|
-
${d}`:""].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(
|
|
59
|
+
${d}`:""].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(6e3,Math.max(3e3,Math.ceil(2.4*a.targetWords))),temperature:.2,signal:a.signal,diagnostics:a.diagnostics});if(!i||i.length<40){let b=a.diagnostics?.llm.lastError;a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 无正文:${a.chapter.title} / ${a.sectionTitle} / ${b&&b!==e?b:"空响应"}`);return}let j=(0,g.kT)((0,g.FD)(i.startsWith("### ")?i:`### ${a.sectionTitle}
|
|
60
60
|
|
|
61
61
|
${i}`,a.forbidDrawingImages)),l=(0,r.DD)(j);if(l.length<40){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 正文过短:${a.chapter.title} / ${a.sectionTitle} / ${l.length}字`);return}let m=(0,r.eK)(a.sectionTitle,j);if(m){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer ${m}:${a.chapter.title} / ${a.sectionTitle}`);return}return(0,r.ev)(a.sectionTitle,j.replace(/^##\s+.*\n+/u,"").trim())}async function O(a){let b=(0,e.V7)(a.currentContent),c=(0,r.ap)(a.sectionTitle),d=Math.max(a.targetWords,c)-b,i=C(a.sectionTitle,a.chapter,a.evidence),j=J(a.sectionTitle,i);if(d<=Math.max(260,Math.floor(.12*a.targetWords)))return a.currentContent;let l=(0,f.ks)((0,f.QO)(a.chapter,i),{maxChars:(0,f.Pc)(Math.min(a.targetWords,2600),3500,9e3),requiredFacts:a.chapter.requiredFacts}),m=Math.max(500,d),n=await (0,h.rI)(["你是专业文档小节补写专家。只做补写,不重写全文。",g.rd,"必须保留已有正文中的事实、参数、编号和结构;只补充缺口段落,不删除、不压缩已有内容。",g.KX,a.promptTexts].filter(Boolean).join("\n\n"),[`章节标题:${a.chapter.title}`,`当前小节:${a.sectionTitle}`,a.requirement?`用户要求:${a.requirement}`:"",a.factCoverageContext||"",(0,k.av)(a.chapter.title,a.sectionTitle),j.prompt,`当前小节约 ${b} 字,目标约 ${a.targetWords} 字,本轮补充约 ${m} 字。`,"请输出可直接追加或插入到本小节的补充段落;不要重复小节标题,不要解释生成过程;优先使用绑定资料中的事实和量化参数,不得输出“该小节围绕”等模板化占位句。",l?`绑定材料:
|
|
62
62
|
${l}`:"",`已有小节正文:
|
|
@@ -25,7 +25,7 @@ ${n}
|
|
|
25
25
|
${l}`,{signal:e,maxTokens:1800,temperature:.1,diagnostics:f});return((0,z.Te)(e),o?.facts?.length)?{facts:o.facts.filter(a=>a.key&&a.value).map(a=>{let b=m.find(b=>b.id===a.fieldId||b.name===a.fieldName||b.name===a.key);return{key:b?.name||a.key,fieldId:b?.id||a.fieldId,fieldName:b?.name||a.fieldName,value:(0,z.lG)(a.value),sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}}}),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 按动态 schema 抽取 ${o.facts.length} 条事实`}]}:{facts:[],stages:g}}let V=["投标保证金的金额、收款账户名称、开户行与账号","电子投标文件加密方式与解密方式","开标时间、开标地点与开标程序","评标委员会组成与评标办法","招标人联系人、联系电话、邮箱与地址","投标文件递交方式与递交截止时间","空白表格填写说明与上传下载指引","公共资源交易平台监督管理部门"],W=/签章|盖章|联系人|联系电话|电话|邮箱|解密方式|开标时间|开标地点|评标办法|评标委员会|投标保证金|保证金账户|电子交易系统|空白|填写|上传|下载|递交方式|递交截止|公共资源交易监督管理|监管部门|开评标程序|采购范围|是否|符合/u;async function X(a,b,c=l,d){let e=(b?.factFields.map(a=>a.name)||[...new Set(a.map(a=>a.fieldName||a.key))]).filter(a=>(function(a,b){let c=n(b,a);return c?"single"===c.cardinality&&"ignore"!==c.conflictPolicy&&"allow_multiple"!==c.conflictPolicy:/项目名称|工程名称|招标人|建设地点|建筑面积|结构形式|层数|工期|质量标准|合同价格形式|绿色建筑等级|投标有效期|质保期/u.test(a)})(a,c)),f=[...new Set(a.map(a=>(0,z.lG)(a.value).trim()).filter(a=>W.test(a)))],g=await (0,M.Mv)(f,V,d),h=a=>V.some(b=>g(a,b)>=.6),i=[];for(let b of e){let d=a.filter(a=>a.key===b||a.fieldName===b||n(c,a.fieldName||a.key)?.name===b),e=new Map;for(let a of d){let b=function(a,b,c){let d=(0,z.lG)(a).trim();if(p(b,d)||o(b,d)||(d.match(/�|/gu)?.length||0)>=2||Array.from(d).some(a=>{let b=a.charCodeAt(0);return 65533===b||b<32&&9!==b&&10!==b&&13!==b})||/\|/u.test(d)||/^#+\s*/u.test(d)||/见(?:招标公告|投标人须知|前附表|本项目|补疑)|资料参数行摘要/u.test(d))return"";let e=d.match(/\d+\s*日历天/u)?.[0]?.replace(/\s+/gu,"");if(e&&/工期|日历天|开工日期|竣工/u.test(d))return e;let f=(0,Q.K3)((0,z.lG)(d));return!f||f.length>80||!/[\d年月日%]|合格|一星|二星|三星|总价合同|单价合同|承台|框架|装配式/u.test(d)||W.test(d)&&c?.(d)?"":f}(a.value,c,h);b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].slice(0,4).map(a=>`${(0,z.lG)(a[0].value).slice(0,120)}(${[...new Set(a.map(a=>a.sourceFile))].slice(0,3).join("、")})`).join(" vs ");i.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return i.slice(0,8)}function Y(a){return(0,z.lG)(a).replace(/\s*[##]{1,6}\s*/gu,"")}function Z(a){return(0,z.lG)(a).replace(/[\u00A0\u2002-\u200B\u3000]/gu," ").replace(/([\p{Script=Han}])\s+([\p{Script=Han}])/gu,"$1$2").replace(/(\d)\s+(日历天|天|个月|月|年|万元|元|㎡|平方米|米|m|mm|MPa|kPa|%)/giu,"$1$2").replace(/(合同|投资|工程|项目)\s*估\s*算\s*(?:价格|价)/gu,"$1估算价").replace(/计划\s*工\s*期/gu,"计划工期").replace(/合同\s*工\s*期/gu,"合同工期").replace(/质量\s*标\s*准/gu,"质量标准").replace(/建设\s*地\s*点/gu,"建设地点").replace(/建设\s*规\s*模/gu,"建设规模").replace(/招标\s*范\s*围/gu,"招标范围").replace(/最高\s*投\s*标\s*限\s*价/gu,"最高投标限价").replace(/招标\s*控\s*制\s*价/gu,"招标控制价").replace(/[::]\s*/gu,":").replace(/\s+/gu," ").trim()}let $=[{fieldId:"project_name",key:"项目名称",fieldName:"项目名称",pattern:/(?:项目名称|工程名称|招标项目名称)[::\s为是]+([^\n。;;]{2,120})/u},{fieldId:"project_code",key:"项目编号",fieldName:"项目编号",pattern:/(?:项目编号|招标项目编号|工程编号)[::\s为是]+([A-Za-z0-9\-_.()()]{4,80})/u},{fieldId:"owner",key:"招标人",fieldName:"招标人",pattern:/(?:招标人|建设单位|发包人)[::\s为是]+([^\n。;;]{2,120})/u},{fieldId:"project_location",key:"建设地点",fieldName:"建设地点",pattern:/建设地点[::\s为是]+([^\n。;;]{2,100})/u},{fieldId:"project_scale",key:"建设规模",fieldName:"建设规模",pattern:/建设规模[::\s为是]+([^\n。;;]{2,220})/u},{fieldId:"project_scale",key:"建设规模",fieldName:"建设规模",pattern:/(?:拟|计划|规划|目标|力争|预计|期望|远期|未来|设想|建议|预期|争取)[^,,。;;\n]{0,12}?(?<![地上地下])总?建筑面积(?:约|约为|约计|共计|为)?\s*[\d,,.]+\s*(?:㎡|m²|m2|平方米)|((?<![地上地下])总?建筑面积(?:约|约为|约计|共计|为)?\s*[\d,,.]+\s*(?:㎡|m²|m2|平方米))/u},{fieldId:"project_scope",key:"招标范围",fieldName:"招标范围",pattern:/招标范围[::\s为是]+([^\n。;;]{2,220})/u},{fieldId:"schedule_requirement",key:"计划工期",fieldName:"周期要求",pattern:/(?:(?:计划工期|合同工期|总工期)[::\s为是约]*|工期[::\s为是约]+)([^\n。;;]{0,40}?\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年)(?:[^\n。;;]{0,30})?)/u},{fieldId:"quality_standard",key:"质量标准",fieldName:"质量标准",pattern:/质量标准[::\s为是]+([^\n。;;]{1,60})/u},{fieldId:"project_investment_estimate",key:"合同估算价格",fieldName:"项目投资估算",pattern:/(?:合同估算价格|合同估算价|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价)[::\s为是约]+([^\n。;;]{0,80}?\d+(?:\.\d+)?\s*(?:万元|元))/u}];function _(a,b){let c=Z((0,z.lG)(b));return!(!a||!c||c.length>260||/###|第\s*\d+\s*页|共\s*\d+\s*页|律师代理费|投标文件的编制|备选投标方案|投标将被否决|投标人提供|投标有效期|电子交易系统|公共资源交易监督管理部门|中标候选|评标委员会|实质性内容作出响应/u.test(c)||/签章|盖章|联系人|联系电话|电话|邮箱|解密|开标|评标|保证金|交易系统|空白|填写|上传|下载|递交/u.test(c))&&("schedule_requirement"===a?c.length<=90&&/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年)/u.test(c):"quality_standard"===a?c.length<=40&&/合格|优良|一次性验收|国家.*验收|达到/u.test(c)&&!/工期|投标|技术标准|\d[..、]/u.test(c):"owner"===a?c.length>=4&&c.length<=80&&/公司|局|委员会|中心|处|院|所|校|集团|有限|股份|责任|管理/u.test(c)&&!/将报|监督管理部门|投标人|中标|负责解释|见招标|详见|空白|填写/u.test(c):"project_location"===a?c.length<=120&&!/见招标公告|详见|投标/u.test(c):"project_scope"===a?c.length<=220&&!/^[((]\s*\d+[))]/u.test(c)&&!/具备.{0,24}(?:证书|考核合格|安全生产考核)/u.test(c)&&!/^见(?:招标|投标人|前附)/u.test(c):"project_code"===a?/^[A-Za-z0-9\-_.()()]+$/u.test(c):"project_investment_estimate"===a?c.length<=100&&/\d+(?:\.\d+)?\s*(?:万元|元)/u.test(c):c.length<=220)}function aa(a){let b=[],c=new Set;for(let d of a)for(let a of Y(Z(d.content)).split(/\r?\n/u).flatMap(a=>{let b=a.replace(/\s+/gu," ").trim();return b.length>260?b.split(/(?=\d+(?:\.\d+)?\s*[^\s::]{2,12}[::])/u):[b]}).filter(Boolean))if(!/报价明细|综合单价|税率|增值税|利润|结算/u.test(a)||/合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价/u.test(a))for(let e of $){let f=e.pattern.exec(a),g=f?.[1]?.trim();if(!g||!_(e.fieldId,g))continue;let h=`${d.filePath}:${e.fieldId}:${g}`;c.has(h)||(c.add(h),b.push({key:e.key,fieldName:e.fieldName,fieldId:e.fieldId,value:g,sourceFile:d.filePath,roleId:d.roleId||"project_basic_fact",processingType:d.processingType||"reference",confidence:Math.max(.82,d.score||.82),sourceRef:{filePath:d.filePath,roleId:d.roleId||"project_basic_fact",processingType:d.processingType||"reference",sectionTitle:d.sectionTitle}}))}return b.slice(0,80)}function ab(a,b=l){let c=[],d=new Set;for(let e of a){let a=`${e.roleId||""} ${e.processingType||""} ${e.filePath} ${e.sectionTitle||""}`;if(!/drawing|table|bill|boq|draw|data|sheet|spec|standard|record|report|表格|数据|规格|参数|标准|记录|报告|清单|图纸|说明/u.test(a)&&e.score<.75)continue;let f=(0,z.lG)(e.content).replace(/\s+/gu," ");for(let a of f.matchAll(R._W)){let g=a[0].trim();if(!g||o(b,g))continue;let h=Math.max(0,(a.index||0)-40),i=Math.min(f.length,(a.index||0)+g.length+40),j=f.slice(h,i);if(p(b,j)||q(b,j))continue;let k=`${e.filePath}:${g}`;d.has(k)||(d.add(k),c.push({key:"精确参数",fieldName:"技术参数",fieldId:"technical_parameter",value:g,sourceFile:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",confidence:Math.max(.7,e.score||.7),sourceRef:{filePath:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",sectionTitle:e.sectionTitle}}))}}return c.slice(0,240)}function ac(a){return`${a.key} ${a.fieldName||""} ${a.value} ${a.roleId} ${a.processingType||""} ${a.sourceFile}`}function ad(a){return/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价/u.test(a)}function ae(a){let b=ac(a);return!ad(b)&&/投标保证金|发票类型|开标时间|公共资源交易监督管理|不良行为记录|投诉举报|资质投诉|投标承诺|违约金|中标服务费|交易平台|保证金账户|投标有效期|报价明细|投标报价|单价|合价|税率|增值税|利润|结算/u.test(b)}function af(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim()}function ag(a,b=[]){return[...new Set([a,...b,...a.split(/[\s、,。;;::/\\_-]+/u)].map(af).filter(a=>a.length>=2))]}function ah(a,b,c){var d,e;let f=af(c.label);if(!f||o(b,f)||p(b,f))return;let g=c.id||(d=c.source,e=c.fieldId,`${d}:${e||f}`.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-|-$/gu,"")||`${d}-${Math.random().toString(36).slice(2,8)}`),h=c.queries?.length?c.queries.map(af).filter(Boolean):ag(f),i=a.find(a=>a.id===g||a.label===f);if(i){i.required=i.required||c.required,i.queries=[...new Set([...i.queries,...h])];return}a.push({...c,id:g,label:f,queries:h})}function ai(a,b,c,d,e,f=[]){"do_not_use"!==c.usagePolicy&&"diagnostic_only"!==c.usagePolicy&&"forbidden"!==c.derivationPolicy&&ah(a,b,{label:c.name,category:c.category,required:e,source:d,fieldId:c.id,queries:ag(c.name,[...c.aliases,...f])})}function aj(a){let b=new Set;return a.filter(a=>{let c=`${a.sourceFile}:${a.key}:${a.value}`;return!b.has(c)&&(b.add(c),!0)})}function ak(a){let b=a.profile||l,c=aj([...a.factsModel.factIndex.parameterFacts,...a.factsModel.factIndex.tableFacts,...a.factsModel.factIndex.drawingFacts,...a.factsModel.factIndex.billFacts,...a.factsModel.factIndex.reliableFacts]);return a.needs.map(d=>{let e=aj(c.filter(a=>(function(a,b,c){let d=ac(a);if(ae(a)||o(c,d)||p(c,d))return!1;if(b.fieldId&&a.fieldId===b.fieldId||n(c,a.fieldName||a.key)?.id===b.fieldId||b.queries.filter(a=>a.length>=2).some(a=>d.includes(a)))return!0;let e=n(c,b.label);return!!(e&&[e.name,...e.aliases].some(a=>a.length>=2&&d.includes(a)))})(a,d,b))).sort((a,b)=>(b.confidence||0)-(a.confidence||0)),f=(a.evidence||[]).filter(a=>(function(a,b,c){let d=`${a.filePath} ${a.roleId||""} ${a.processingType||""} ${a.sectionTitle||""} ${a.content}`;return!(o(c,d)||p(c,d))&&b.queries.some(a=>a.length>=2&&d.includes(a))})(a,d,b)),g=Math.max(0,...e.map(a=>a.confidence||0)),h=0===e.length&&0===f.length?"missing":g>0&&g<.58?"low_confidence":"satisfied";return{need:d,facts:e,evidence:f,status:h}})}function al(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim().slice(0,220)}async function am(a,b=[],c=[],d,e=l){let f=b=>a.filter(a=>b.some(b=>`${a.key} ${a.fieldName||""}`.includes(b))),g=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b)),h=a.filter(a=>{let b=`${a.key} ${a.fieldName||""} ${a.value}`;return R.sv.test(b)&&(!o(e,b)||ad(b))&&!p(e,b)}),i=a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType||/bill|boq|table|sheet|data|表格|列表|明细|数据/u.test(`${a.roleId} ${a.sourceFile}`)),j=(function(a){let b=[];for(let c of a){let a=`${c.key||""}${c.fieldName||""}${c.fieldId||""}`,d=(0,z.lG)(c.value);if(/建设规模/u.test(a)&&/占地|用地/u.test(d)&&/建筑面积/u.test(d)){let a=d.search(/(?:总)?占地/u),e=d.search(/(?:单体)?总?建筑面积/u);if(a>=0&&e>a){let f=d.slice(a,e).replace(/^[,,、\s]+/u,"").replace(/[,,、\s]+$/u,"").trim(),g=d.slice(e).trim();if(f&&g){b.push({...c,key:"总占地面积",fieldName:"总占地面积",fieldId:void 0,value:f}),b.push({...c,key:"单体建筑面积",fieldName:"单体建筑面积",value:g});continue}}}b.push(c)}return b})(a.filter(a=>/项目名称|工程名称|项目编号|招标项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|计划工期|合同工期|周期要求|质量标准|合同估算|投资估算|最高投标限价|招标控制价/u.test(`${a.key||""}${a.fieldName||""}${a.fieldId||""}`))).slice(0,80),k=function(a,b,c,d){let e=a.filter(a=>p(d,ac(a))||q(d,ac(a))),f=a.filter(a=>{let b=ac(a);return a.confidence>=.58&&!ae(a)&&!o(d,b)&&!p(d,b)&&!q(d,b)}),g=[...b.filter(a=>!ae(a)),...f.filter(a=>R.sv.test(ac(a)))].filter((a,b,c)=>c.findIndex(b=>b.sourceFile===a.sourceFile&&b.value===a.value&&b.key===a.key)===b).slice(0,360),h=f.filter(a=>"table"===a.processingType||/table|sheet|表格|清单|明细|数据|参数行摘要/u.test(ac(a))),i=f.filter(a=>"drawing"===a.processingType||/drawing|draw|dwg|图纸|设计|尺寸|标高|管径|做法/u.test(ac(a)));return{reliableFacts:f.slice(0,500),parameterFacts:g,tableFacts:h.slice(0,240),drawingFacts:i.slice(0,240),billFacts:c.slice(0,240),diagnostics:e.slice(0,120)}}(a,h,i,e);return{project:j,schedule:f(["工期","开工","竣工","节点","周期"]),quality:f(["质量","验收"]),safety:f(["安全","风险"]),resources:f(["劳动力","材料","机械","设备","资源"]),tables:b,drawings:g("drawing"),bills:i,preciseFacts:h,rules:g("rule"),specifications:g("specification"),schemaFacts:function(a,b){let c={};for(let d of b?.factFields||[])c[d.id]=a.filter(a=>a.fieldId===d.id||a.key===d.name||a.fieldName===d.name);return c}(a,d),factIndex:k,missing:[...new Set(c)],conflicts:await X(a,d,e)}}let an={type:"object",required:["awardObjectives","specialQualityStandards","awardClauses","systematicBenchmarks","prohibitionNotes"],properties:{awardObjectives:{type:"array",maxItems:6,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},specialQualityStandards:{type:"array",maxItems:6,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},awardClauses:{type:"array",maxItems:6,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},greenBuildingGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},smartSiteGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},assemblyRate:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},systematicBenchmarks:{type:"array",maxItems:8,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},frontScheduleClauses:{type:"array",maxItems:12,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},dateFabricationProhibited:{type:"boolean"},prohibitionNotes:{type:"array",maxItems:8,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},pageLimit:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},evaluationScheme:{type:"object",properties:{text:{type:"string",minLength:4,maxLength:400},coreTerms:{type:"array",maxItems:6,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}}};function ao(a){if(a?.text&&!(a.text.trim().length<2))return{text:a.text.trim(),coreTerms:(a.coreTerms||[]).map(a=>a.trim()).filter(a=>a.length>=2&&a.length<=16).slice(0,4),source:a.source?.trim()||void 0}}function ap(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){let a=ao(d);if(!a)continue;let e=a.text;b.has(e)||(b.add(e),c.push(a))}return c}async function aq(a,b={}){let c,d=function(a=!1){return{awardObjectives:[],specialQualityStandards:[],awardClauses:[],systematicBenchmarks:[],frontScheduleClauses:[],dateFabricationProhibited:!1,prohibitionNotes:[],extracted:a}}(!1);if(!a||0===a.length)return d;let e=[],f=0,g=[];for(let b of a){if(!b.content||!b.content.trim())continue;let a=`【${b.filePath||"资料"}|${b.sectionTitle||"正文"}】
|
|
26
26
|
${Y(b.content)}`;e.length>0&&f+a.length>1e5&&(g.push(e),e=[],f=0),e.push(a),f+=a.length}async function h(a){let c=a.join("\n\n");if(!c.trim())return d;let e=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),f=await (0,N.bb)('你是招标文件“要求与标准”结构化提取器。\n从施工项目绑定资料(招标文件/合同条款/技术标准/检查规范等)中提取文本性评分项要求——这些是评标专家会核对文档是否响应、且影响否决与得分的实质要求。\n只提取资料中明确写出的要求,绝不臆造;资料没有该类别时输出空数组或缺省。\ncoreTerms 是用于在正文中核对该要求是否被响应的核心词(2-4 个),必须选最能代表该要求的专有名词/等级/体系名(如“黄山杯”“二星级”“六个百分百”),不要泛化词。\ndateFabricationProhibited:资料写明“以开工令为准/开工日期以监理开工令为准/不得自定开工日期”时为 true,否则 false。\nsystematicBenchmarks 提取体系化基准要求(如“扬尘治理六个百分百”“四节一环保”),单条零散要求放 prohibitionNotes。\nfrontScheduleClauses:从“投标人须知前附表/投标人须知”章节提取施工组织设计必须响应的实质条款——计划工期与质量要求、创优目标与奖惩(如“确保黄山杯,支付300万元”)、缺陷责任期与质保金、履约担保、工期延误赔偿、项目经理/关键人员要求、分包限制、装配式/绿色建筑/智慧工地等级、安全文明与扬尘要求、付款方式(影响资金安排)。只提取施组正文需要写入或必须遵守的条款;投标程序类条款(开标时间地点、保证金账户、投标文件递交/解密方式、评标委员会组成等纯程序信息)一律不提取。\npageLimit:资料含篇幅/编制要求(如“不超过 50 页”)时提取。\nevaluationScheme:从评标办法章节提取结构性评分信息——评标办法类型、分值构成(技术文件/商务文件/报价文件分值)、技术文件详细评审内容项(逐项列出)、评分档位线(一般/良好/优秀分值区间)。text 用“;”分隔罗列原文关键信息;资料无评标办法章节时省略。\n工程量清单的项目特征描述不是评分项要求,不要提取。\n必须输出且仅输出一个 JSON 对象,字段结构如下(没有内容的字段输出空数组 [] 或省略可选字段,绝不输出其他字段名):\n{\n "awardObjectives": [{ "text": "创优目标原文", "coreTerms": ["核心词"], "source": "来源文件" }],\n "specialQualityStandards": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "awardClauses": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "greenBuildingGrade": { "text": "...", "coreTerms": [], "source": "..." },\n "smartSiteGrade": { "text": "...", "coreTerms": [], "source": "..." },\n "assemblyRate": { "text": "...", "coreTerms": [], "source": "..." },\n "systematicBenchmarks": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "frontScheduleClauses": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "dateFabricationProhibited": false,\n "prohibitionNotes": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "pageLimit": { "text": "...", "coreTerms": [], "source": "..." },\n "evaluationScheme": { "text": "...", "coreTerms": [], "source": "..." }\n}\n只返回 JSON。',c,{maxTokens:16e3,temperature:.1,signal:b.signal,diagnostics:b.diagnostics,schema:an,taskKind:"structuredGeneration"});return f?{awardObjectives:ap(f.awardObjectives),specialQualityStandards:ap(f.specialQualityStandards),awardClauses:ap(f.awardClauses),greenBuildingGrade:ao(f.greenBuildingGrade),smartSiteGrade:ao(f.smartSiteGrade),assemblyRate:ao(f.assemblyRate),systematicBenchmarks:ap(f.systematicBenchmarks),frontScheduleClauses:ap(f.frontScheduleClauses),dateFabricationProhibited:!0===f.dateFabricationProhibited,prohibitionNotes:ap(f.prohibitionNotes),pageLimit:ao(f.pageLimit),evaluationScheme:ao(f.evaluationScheme),extracted:!0,sourceHash:e}:{...d,sourceHash:e}}for(let a of(e.length>0&&g.push(e),g)){let b=await h(a);c=c?at(c,b):b}return c||d}let ar=["工程创优奖项申报要求:争创或确保获得市级、省级或国家级优质工程奖,含具体奖项名称","绿色建筑星级等级要求","智慧工地等级要求","装配式建筑装配率要求","特殊质量标准与质量要求条款","扬尘治理六个百分百要求","质量目标必须确保达到合格或优良标准的要求"];async function as(a){if(0===a.length)return[];let b=a.map(a=>Y(`${a.sectionTitle||""}
|
|
27
27
|
${a.content||""}`)),c=await (0,M.Mv)(ar,b),d=a.map((a,d)=>({item:a,text:b[d],score:Math.max(...ar.map(a=>c(a,b[d])))})).filter(a=>a.score>=.5).sort((a,b)=>b.score-a.score),e=new Set,f=[];for(let a of d){let b=Y(`${a.item.sectionTitle||""}
|
|
28
|
-
${a.item.content||""}`),c=`${a.item.filePath}|${a.item.sectionTitle||""}|${b.slice(0,120)}`;e.has(c)||(e.add(c),f.push({...a.item,content:b}))}return f}function at(a,b){let c=(a,b)=>a.length>0?a:b;return{...a,awardObjectives:c(a.awardObjectives,b.awardObjectives),specialQualityStandards:c(a.specialQualityStandards,b.specialQualityStandards),awardClauses:c(a.awardClauses,b.awardClauses),greenBuildingGrade:a.greenBuildingGrade||b.greenBuildingGrade,smartSiteGrade:a.smartSiteGrade||b.smartSiteGrade,assemblyRate:a.assemblyRate||b.assemblyRate,systematicBenchmarks:c(a.systematicBenchmarks,b.systematicBenchmarks),frontScheduleClauses:c(a.frontScheduleClauses,b.frontScheduleClauses),prohibitionNotes:c(a.prohibitionNotes,b.prohibitionNotes),pageLimit:a.pageLimit||b.pageLimit,evaluationScheme:a.evaluationScheme||b.evaluationScheme,dateFabricationProhibited:a.dateFabricationProhibited||b.dateFabricationProhibited,extracted:a.extracted||b.extracted}}function au(a){return!!a&&(a.awardObjectives.length>0||a.specialQualityStandards.length>0||a.awardClauses.length>0||!!a.greenBuildingGrade||!!a.smartSiteGrade||!!a.assemblyRate||a.systematicBenchmarks.length>0||a.frontScheduleClauses.length>0||a.dateFabricationProhibited||a.prohibitionNotes.length>0||!!a.evaluationScheme)}function av(a){return a.coreTerms.length>0?a.coreTerms.join(" "):a.text}function aw(a){if(!a)return[];let b=[];for(let c of a.awardObjectives)b.push({kind:"创优目标",item:c});for(let c of a.specialQualityStandards)b.push({kind:"特殊质量标准",item:c});for(let c of a.awardClauses)b.push({kind:"奖项条款",item:c});for(let c of a.systematicBenchmarks)b.push({kind:"体系基准要求",item:c});for(let c of a.frontScheduleClauses)b.push({kind:"前附表响应条款",item:c});return a.greenBuildingGrade&&b.push({kind:"绿色建筑等级",item:a.greenBuildingGrade}),a.smartSiteGrade&&b.push({kind:"智慧工地等级",item:a.smartSiteGrade}),a.assemblyRate&&b.push({kind:"装配率要求",item:a.assemblyRate}),b}let ax={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},responsive:{type:"boolean",required:!0}}}}}};async function ay(a,b={}){let c=a.map(a=>({kind:a.kind,text:a.text.trim()})).filter(a=>a.text.length>0);if(0===c.length)return new Map;let d=await (0,N.bb)("你是招标文件要求项程序性/实质性分类器。\n对每个要求项判定其是否属于施工组织设计正文必须响应的实质要求:\n- 实质要求(responsive=true):创优目标与奖项、质量/工期/安全/环保目标、绿色建筑/智慧工地/装配式等级、扬尘治理、四节一环保、人员与分包要求、付款履约约束等施组需写入或遵守的条款\n- 程序性条款(responsive=false):开标时间地点、保证金账户、投标文件递交/解密方式、评标委员会组成、投标有效期等纯投标程序信息\n只输出 JSON,不得输出其他内容。",c.map((a,b)=>`${b+1}. [${a.kind}] ${a.text}`).join("\n"),{maxTokens:2e3,temperature:.1,signal:b.signal,diagnostics:b.diagnostics,schema:ax,taskKind:"structuredGeneration"});if(!d?.results?.length)return new Map(c.map((a,b)=>[b,!0]));let e=new Map;for(let a of d.results)"number"==typeof a.index&&e.set(a.index,!1!==a.responsive);return new Map(c.map((a,b)=>[b,e.get(b)??!0]))}async function az(a,b,c){let d=[],e=aw(b);if(0===e.length)return d;let f=a.replace(/\s+/gu,""),g=a.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>aA(a)).filter(Boolean).slice(0,80),h=await ay(e.map(a=>({kind:a.kind,text:a.item.text})),{signal:c.signal,diagnostics:c.diagnostics}),i=c.bodyTexts&&c.bodyTexts.length>0?[...g,...c.bodyTexts]:g;for(let[a,{kind:b,item:
|
|
28
|
+
${a.item.content||""}`),c=`${a.item.filePath}|${a.item.sectionTitle||""}|${b.slice(0,120)}`;e.has(c)||(e.add(c),f.push({...a.item,content:b}))}return f}function at(a,b){let c=(a,b)=>a.length>0?a:b;return{...a,awardObjectives:c(a.awardObjectives,b.awardObjectives),specialQualityStandards:c(a.specialQualityStandards,b.specialQualityStandards),awardClauses:c(a.awardClauses,b.awardClauses),greenBuildingGrade:a.greenBuildingGrade||b.greenBuildingGrade,smartSiteGrade:a.smartSiteGrade||b.smartSiteGrade,assemblyRate:a.assemblyRate||b.assemblyRate,systematicBenchmarks:c(a.systematicBenchmarks,b.systematicBenchmarks),frontScheduleClauses:c(a.frontScheduleClauses,b.frontScheduleClauses),prohibitionNotes:c(a.prohibitionNotes,b.prohibitionNotes),pageLimit:a.pageLimit||b.pageLimit,evaluationScheme:a.evaluationScheme||b.evaluationScheme,dateFabricationProhibited:a.dateFabricationProhibited||b.dateFabricationProhibited,extracted:a.extracted||b.extracted}}function au(a){return!!a&&(a.awardObjectives.length>0||a.specialQualityStandards.length>0||a.awardClauses.length>0||!!a.greenBuildingGrade||!!a.smartSiteGrade||!!a.assemblyRate||a.systematicBenchmarks.length>0||a.frontScheduleClauses.length>0||a.dateFabricationProhibited||a.prohibitionNotes.length>0||!!a.evaluationScheme)}function av(a){return a.coreTerms.length>0?a.coreTerms.join(" "):a.text}function aw(a){if(!a)return[];let b=[];for(let c of a.awardObjectives)b.push({kind:"创优目标",item:c});for(let c of a.specialQualityStandards)b.push({kind:"特殊质量标准",item:c});for(let c of a.awardClauses)b.push({kind:"奖项条款",item:c});for(let c of a.systematicBenchmarks)b.push({kind:"体系基准要求",item:c});for(let c of a.frontScheduleClauses)b.push({kind:"前附表响应条款",item:c});return a.greenBuildingGrade&&b.push({kind:"绿色建筑等级",item:a.greenBuildingGrade}),a.smartSiteGrade&&b.push({kind:"智慧工地等级",item:a.smartSiteGrade}),a.assemblyRate&&b.push({kind:"装配率要求",item:a.assemblyRate}),b}let ax={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},responsive:{type:"boolean",required:!0}}}}}};async function ay(a,b={}){let c=a.map(a=>({kind:a.kind,text:a.text.trim()})).filter(a=>a.text.length>0);if(0===c.length)return new Map;let d=await (0,N.bb)("你是招标文件要求项程序性/实质性分类器。\n对每个要求项判定其是否属于施工组织设计正文必须响应的实质要求:\n- 实质要求(responsive=true):创优目标与奖项、质量/工期/安全/环保目标、绿色建筑/智慧工地/装配式等级、扬尘治理、四节一环保、人员与分包要求、付款履约约束等施组需写入或遵守的条款\n- 程序性条款(responsive=false):开标时间地点、保证金账户、投标文件递交/解密方式、评标委员会组成、投标有效期等纯投标程序信息\n只输出 JSON,不得输出其他内容。",c.map((a,b)=>`${b+1}. [${a.kind}] ${a.text}`).join("\n"),{maxTokens:2e3,temperature:.1,signal:b.signal,diagnostics:b.diagnostics,schema:ax,taskKind:"structuredGeneration"});if(!d?.results?.length)return new Map(c.map((a,b)=>[b,!0]));let e=new Map;for(let a of d.results)"number"==typeof a.index&&e.set(a.index,!1!==a.responsive);return new Map(c.map((a,b)=>[b,e.get(b)??!0]))}async function az(a,b,c){let d=[],e=aw(b);if(0===e.length)return d;let f=a.replace(/\s+/gu,""),g=a.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>aA(a)).filter(Boolean).slice(0,80),h=await ay(e.map(a=>({kind:a.kind,text:a.item.text})),{signal:c.signal,diagnostics:c.diagnostics}),i=c.bodyTexts&&c.bodyTexts.length>0?[...g,...c.bodyTexts]:g;for(let[a,{kind:b,item:g}]of e.entries()){if(!1===h.get(a))continue;let e=av(g),j=0;for(let a of i){let b=c.semanticSimilarity(e,a);b>j&&(j=b)}j>=.6||!function(a,b){for(let c of a.coreTerms){let a=c.replace(/\s+/gu,"");if(a.length>=2&&b.includes(a))return!0}let c=a.text.replace(/\s+/gu,""),d=/(?:\d+(?:\.\d+)?\s*(?:%|%|天|日|万元|亿元|元|米|m|M|mm|毫米|层|年|个|月|周|小时|分钟|项|处|台|套|辆|人|家|次|遍|道|吨|kPa|MPa))/giu.exec(c);if(d&&b.includes(d[0].replace(/\s+/gu,"")))return!0;let e=/[\u4e00-\u9fa5]{2,6}[杯奖星]/gu.exec(c);return!!(e&&b.includes(e[0]))}(g,f)&&d.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`评分项要求未响应:${b}“${g.text}”在正文中零命中(最佳语义相似度 ${j.toFixed(2)})`,suggestion:`招标文件明确要求的${b}必须显性响应:在对应章节补写“${g.text}”及配套保证措施。`})}if(b){let a=[...b.awardObjectives,...b.awardClauses].map(a=>a.text);if(a.length>0){let b=a=>{let b=a;for(;;){let a=b.replace(/^(?:争创|争取|力争|争获|确保|获得|创建|力创|评为|荣获|标为|目标为|承诺|为)/u,"");if(a===b||!a)break;b=a}return b},c=new Set;for(let a of f.matchAll(/[杯奖]/gu)){let d=(a.index||0)+1,e=f.slice(Math.max(0,d-13),d-1),g=e.match(/(?:(|\(|\u201c)([\u4e00-\u9fa5]{2,6})$/u),h=g?g[1]:e.match(/[\u4e00-\u9fa5]{2,6}$/u)?.[0];if(!h)continue;let i=b(h)+a[0];/^[\u4e00-\u9fa5]{2,7}$/u.test(i)&&c.add(i)}for(let b of c)!/优质工程|优良工程|样板工程|示范工程|文明工地|标准化工地/u.test(b)&&(a.some(a=>a.includes(b))||d.unshift({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`奖项名称疑似杜撰/替换:正文出现“${b}”,不在招标文件奖项要求原文中(招标文件要求:${a.map(a=>a.slice(0,60)).join(";")})`,suggestion:`奖项名称必须与招标文件原文逐字一致:把正文“${b}”改为招标文件原文奖项名称,禁止替换、降级或省略;招标文件“确保/达到”类要求不得弱化为“争创/争取”。`}));if(a.some(a=>/确保|必须|须/u.test(a)))for(let b of c)a.some(a=>a.includes(b))&&RegExp(`(?:争创|争取|力争|争获)${b}`).test(f)&&d.unshift({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`奖项承诺强度弱化:“${b}”前使用了争取类措辞(争创/争取/力争),招标文件要求为“确保/必须”级别`,suggestion:`招标文件“确保/达到”类等级要求不得弱化为“争创/争取”:把正文争取类措辞改为“确保${b}”并配套创优保证措施。`})}}return d.slice(0,8)}function aA(a){return a.trim().replace(/^#{2,4}\s+/u,"").replace(/^\d+(?:\.\d+)*[\s、.]+/u,"").trim()}async function aB(a,b,c,d={}){let e=[];if(!a)return e;let f=b.map(a=>aA(a.title)).filter(Boolean);if(0===f.length)return e;let g=aw(a),h=await ay(g.map(a=>({kind:a.kind,text:a.item.text})),{signal:d.signal,diagnostics:d.diagnostics});for(let[a,{kind:b,item:d}]of g.entries()){if(!1===h.get(a))continue;let g=av(d),i="",j=0;for(let a of f){let b=c(g,a);b>j&&(j=b,i=a)}j>=.45&&e.push({kind:b,item:d,chapterTitle:i,score:j})}return e}function aC(a){if(!a)return[];let b=[];return a.extracted&&b.push(`已从绑定资料结构化提取评分项要求(哈希 ${a.sourceHash?.slice(0,8)})`),a.awardObjectives.length&&b.push(`创优目标 ${a.awardObjectives.length} 条:${a.awardObjectives.map(a=>a.text).join("、")}`),a.specialQualityStandards.length&&b.push(`特殊质量标准 ${a.specialQualityStandards.length} 条`),a.awardClauses.length&&b.push(`奖项条款 ${a.awardClauses.length} 条`),a.greenBuildingGrade&&b.push(`绿色建筑等级:${a.greenBuildingGrade.text}`),a.smartSiteGrade&&b.push(`智慧工地等级:${a.smartSiteGrade.text}`),a.assemblyRate&&b.push(`装配率:${a.assemblyRate.text}`),a.systematicBenchmarks.length&&b.push(`体系基准 ${a.systematicBenchmarks.length} 条:${a.systematicBenchmarks.map(a=>a.text).join("、")}`),a.frontScheduleClauses.length&&b.push(`前附表响应条款 ${a.frontScheduleClauses.length} 条:${a.frontScheduleClauses.map(a=>a.text).slice(0,8).join("、")}`),a.evaluationScheme&&b.push(`评标办法:${a.evaluationScheme.text.slice(0,80)}`),a.dateFabricationProhibited&&b.push("禁编日期:以开工令为准"),a.pageLimit&&b.push(`篇幅建议:${a.pageLimit.text}`),a.extracted||b.push("评分项要求未提取(无绑定资料或模型不可用),零响应检测跳过"),b}let aD=["计划总工期为300日历天","合同工期为300日历天","施工总工期为300日历天","招标控制价为6000万元","合同估算价为6000万元","投资估算为6000万元","总建筑面积为28000平方米","总用地面积为15000平方米","总占地面积为15000平方米","建设规模为28000平方米"],aE=["专项应急演练4次","每日巡查2次","每周检查1次","每月安全培训2次","监理旁站24小时","三级安全教育培训20学时"];function aF(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}async function aG(){let a=(0,M.VN)(),[b,c]=await Promise.all([a.embedDocuments([...aD]),a.embedDocuments([...aE])]);if(b.length!==aD.length||c.length!==aE.length)throw Error(`本地语义模型锚点嵌入数量不一致:范围锚点 ${b.length}/${aD.length},计数锚点 ${c.length}/${aE.length}`);return{async batchClassify(d){if(0===d.length)return[];let e=await a.embedDocuments(d);return d.map((a,d)=>{let f=e[d];if(!f||0===f.length)return"other";let g=Math.max(...b.map(a=>aF(f,a))),h=Math.max(...c.map(a=>aF(f,a)));return h>=.62&&h>g?"other":g>=.6?"scope":"other"})}}}let aH={factuality:["本章关键数据以招标文件、工程量清单与施工图纸为依据","正文引用的工期、面积、金额与绑定资料口径一致","施工内容与项目实际工程范围对应而非通用模板描述"],structure:["内容按施工准备、工艺流程、施工方法、验收标准的顺序组织","章节内有清晰的工作阶段划分与工序步骤","段落之间有先后衔接与层次递进关系"],depth:["包含关键工序控制点、隐蔽工程验收与检验批划分","关键技术环节给出工艺参数与质量标准","针对本项目特点展开专业分析而非通用做法罗列"],executable:["明确责任主体、检查频次与记录台账要求","给出可执行的资源进场、调配与投入安排","措施可落地执行并配验收复核机制"],specificity:["结合本项目建设地点、工程规模与计划工期展开","引用本项目工程量数据支撑施工部署","措施针对本项目工程特点制定而非通用套话"],consistency:["章节间工期、质量、安全数据口径一致","本章内容与总进度计划、质量目标相互呼应","章节内前后表述无矛盾冲突"]},aI={schedule:["采用关键线路法编制进度计划,明确关键节点与动态纠偏措施","计划节点与资源投入相匹配,含穿插施工与资源保障安排"],quality:["材料进场验收与复验、隐蔽工程验收、质量问题整改与复验闭环","质量资料归档与检验批验收记录"],safety:["风险源辨识、临电消防管理、安全检查与隐患整改闭环","应急预案、应急物资与演练安排"],resource:["劳动力、材料、设备进场计划、验收、保管与调配","资源投入与进度节点相匹配"],construction:["施工准备、工艺流程、工序控制点与验收标准交底","施工方法与工艺参数明确具体"]},aJ=["材料进场验收、工序控制点、隐蔽工程验收记录","检验批划分、技术交底、整改复查闭环","引用本项目工程量清单与设计图纸参数"],aK=["自检互检交接检、整改复查、资料归档","风险辨识、专项交底、现场检查、隐患整改、复查销项","计划分解、偏差识别、资源纠偏、节点复核"];function aL(a,b){let c=0;for(let d of a)for(let a of b){let b=function(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}(d,a);b>c&&(c=b)}return c}async function aM(){let a=(0,M.VN)(),b=[...Object.keys(aH).map(a=>[`dimension:${a}`,aH[a]]),...Object.keys(aI).map(a=>[`need:${a}`,aI[a]]),["concrete",[...aJ]],["closedLoop",[...aK]]],c=new Map;for(let[d,e]of b){let b=await a.embedDocuments(e);if(b.length!==e.length)throw Error(`本地语义模型锚点嵌入数量不一致:${d} ${b.length}/${e.length}`);c.set(d,b)}let d=new Map,e=async b=>{let c=d.get(b);if(void 0!==c)return c;let e=function(a){let b=a.split(/\n+/u).map(a=>a.trim()).filter(Boolean),c=[],d="";for(let a of b)d&&d.length+a.length+1>400?(c.push(d),d=a):d=d?`${d}
|
|
29
29
|
${a}`:a;if(d&&c.push(d),c.length<=20)return c;let e=[c[0]],f=(c.length-2)/18;for(let a=1;a<19;a+=1)e.push(c[Math.min(c.length-2,Math.round(1+(a-1)*f))]);return e.push(c[c.length-1]),e}(b),f=await a.embedDocuments(e);return d.set(b,f),f};return{async analyze(a){if(!a.trim())return;let b=await e(a);if(0!==b.length)return{dimensions:function(a,b){let c={};for(let d of Object.keys(aH)){let e=b.get(`dimension:${d}`)||[];c[d]=aL(a,e)>=M.Eh}return c}(b,c),contentNeeds:function(a,b){let c={};for(let d of Object.keys(aI)){let e=b.get(`need:${d}`)||[];c[d]=aL(a,e)>=M.Eh}return c}(b,c),concrete:aL(b,c.get("concrete")||[])>=M.Eh,closedLoop:aL(b,c.get("closedLoop")||[])>=M.Eh}}}}let aN=[{pattern:/概况|总体|理解|说明|编制/u,goal:"以项目资料已确认的事实卡片展开工程概况与总体理解,不得空泛概述",mustCover:["工程名称、建设地点、建设规模、计划工期、质量标准等资料已确认事实","现场条件与招标范围边界","编制依据与适用范围"]},{pattern:/主要施工内容/u,goal:"按专业工程展开施工概况、施工流程、施工方法三段式卡片,落到工程量与工艺参数",mustCover:["资料识别的专业工程(不少于5个)","每个专业工程的施工概况/施工流程/施工方法","工程量、材料设备规格、检测验收与资料闭环"]},{pattern:/主要分部分项工程施工方案|主要施工方法/u,goal:"按分项工程方案展开施工概况、工艺流程、施工方法三段式,落到工艺参数与工序顺序",mustCover:["资料明确的专业工程范围(逐项展开分项工程方案)","每个分项方案的施工概况/工艺流程/施工方法","每个分项方案不少于4个工艺参数与至少1处3环节以上工序顺序表达","工艺参数来自绑定材料或行业通用规范值,不得编造"]},{pattern:/重点|难点/u,goal:"识别项目重点难点并给出针对性对策,每项落到责任岗位与验收节点",mustCover:["重点难点成因与影响范围","对应施工内容与专项措施","责任岗位、检查频次、整改闭环"]},{pattern:/部署|总体|流水|顺序/u,goal:"明确施工部署逻辑、流水段划分与资源调配机制",mustCover:["施工区段与流水划分","各阶段施工顺序与穿插关系","资源动态调配机制"]},{pattern:/进度|工期/u,goal:"围绕总工期与关键节点展开进度保障",mustCover:["总进度计划与关键节点","周/日计划分解","进度偏差识别与纠偏措施"]},{pattern:/质量/u,goal:"覆盖材料验收、过程控制、隐蔽验收、整改复验的质量闭环",mustCover:["质量目标与验收依据","三检制度与样板引路","隐蔽工程验收与材料复试","质量通病防治与闭环整改","保修与缺陷责任期承诺"]},{pattern:/安全|危大|风险/u,goal:"覆盖风险识别、危大工程专项方案、检查整改与应急响应",mustCover:["危险源辨识与风险分级","危大工程清单与专项方案","安全交底与隐患排查闭环"]},{pattern:/资源|材料|设备|劳动力|人材机/u,goal:"说明资源配置依据、进场验收与保管调配",mustCover:["机械设备投入计划","分阶段劳动力计划","材料进场计划与验收"]},{pattern:/文明|绿色|环保|扬尘|噪声/u,goal:"覆盖扬尘噪声管控、四节一环保与智慧监测",mustCover:["扬尘噪声分时段管控","四节一环保措施","监测预警与台账"]},{pattern:/应急|预案/u,goal:"覆盖应急组织、物资储备与专项预案",mustCover:["应急组织架构","应急物资储备","专项预案与演练计划"]},{pattern:/竣工|验收|移交|保修/u,goal:"覆盖竣工清理、验收移交与保修响应",mustCover:["竣工清理与垃圾外运","缺陷修补与复查销项","验收移交与保修响应"]},{pattern:/工资|劳务|实名/u,goal:"覆盖劳务实名制与农民工工资保障闭环",mustCover:["劳务实名制管理","工资专用账户与银行代发","考勤与工资支付台账"]}];var aO=c(8667);async function aP(a){(0,z.Te)(a.signal);let b=[];if(0===a.scopedFilePaths.length)return b;let c=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.chapter.title),d=(c?1.6:1)*(/[、,,与和及]/.test(a.chapter.title)?1.4:1),e=Math.ceil((a.highRisk?18:10)*d),f=Math.ceil((a.highRisk?24:14)*(c?1.4:1)),g=Math.ceil((a.highRisk?72:42)*d),h=Math.ceil((a.highRisk?72e3:42e3)*d),i=(a.requiredNeeds||[]).slice(0,8),j=(function(a,b=[]){let c=a.sections||[],d=[...a.requiredFacts,...b],e=(0,A.Cr)(c,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-sections").selected,f=(0,A.Cr)(d,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-facts").selected,g=/[、,,与和及]/.test(a.title),h=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.title),i=/进度|工期|节点/u.test(a.title)?["合同工期","计划工期","日历天","开工","竣工","关键线路","进度计划","施工进度"]:/质量|验收/u.test(a.title)?["质量标准","验收规范","检验批","复验","合格","质量保证","隐蔽验收"]:/安全|危大|风险/u.test(a.title)?["安全措施","风险源","危大工程","应急","检查整改","安全防护","应急预案"]:h?["工程量清单","项目特征","材料设备","规格型号","数量单位","劳动力","机械设备","进场计划","资源保障","主要材料","施工机具","材料供应","设备配置"]:/施工|方案|方法|技术|工艺/u.test(a.title)?["施工方法","工艺流程","技术标准","构造做法","控制要点","施工准备"]:["工程范围","施工方法","控制要点","验收要求"],j=g?[...i,...a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4)]:i,k=[...new Set([a.title,...e,...f,...j].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】\-/]+/u)).map(a=>a.trim()).filter(a=>a.length>=2))],l=(0,A.Cr)(k,a=>(0,A.Ox)(a),{maxItems:36,maxChars:1200},"retrieval-tokens").selected,m=g?a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4).map(a=>`${a} ${e.slice(0,6).join(" ")} ${f.slice(0,4).join(" ")}`.trim()):[];return[...new Set([`${a.title} ${e.join(" ")}`.trim(),...f.map(b=>`${a.title} ${b}`.trim()),...e.map(b=>`${a.title} ${b} ${f.slice(0,6).join(" ")}`.trim()),`${a.title} ${j.join(" ")}`.trim(),...m,l.join(" ")].filter(Boolean))]})(a.chapter,a.requiredNeeds).slice(0,e),k=[...i.map(b=>`${a.chapter.title} ${b} ${(a.chapter.sections||[]).join(" ")}`.trim()).filter(a=>!j.includes(a)).map(a=>({text:a,boost:2,source:"required-fact-evidence"})),...j.map(a=>({text:a,boost:2.4,source:"deep-retrieval"}))];return b.push(...(await (0,z.l$)(k,async b=>{var c;(0,z.Te)(a.signal);let d=await a.manager.search(a.projectRoot,b.text,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:f,weights:{keyword:.62,vector:.32,rewrite:.9,hybridBonus:.28},generationMode:!1});return(c={chapter:a.chapter,results:d.results.filter(b=>a.scopedFilePaths.includes(b.filePath)),fileRoleByPath:a.fileRoleByPath,fileProcessingByPath:a.fileProcessingByPath,boost:b.boost,source:b.source}).results.map(a=>{let b=c.fileProcessingByPath.get(a.filePath);return{chapterId:c.chapter.id,filePath:a.filePath,score:a.score+c.boost+("table"===b?3:"structured_data"===b?2.6:3.2*("bill_of_quantities"===b)),content:a.content,roleId:c.fileRoleByPath.get(a.filePath),processingType:b,sectionTitle:a.sectionTitle,source:c.source}})},{kind:"deepRetrieval",highRisk:a.highRisk})).flat()),[...(0,s.QR)(b.filter(a=>"required-fact-evidence"===a.source),{maxItems:Math.max(6,3*i.length),maxChars:18e3,preservePinned:!0}),...(0,s.QR)(b.filter(a=>"required-fact-evidence"!==a.source),{maxItems:g,maxChars:h,preservePinned:!0})]}var aQ=c(80439),aR=c(34680),aS=c(79227),aT=c(2773),aU=c(92817),aV=c(3063);function aW(a){return(0,t.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function aX(a,b){let c=aW(a);return!!(c.length<4||c.length>60||c===aW(b)||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|占位|提示|概述|总体要求)$/u.test(c)||/如需|应由|大模型|提示词|上下文|OUTLINE|JSON|小节标题/u.test(c)||/(.)\1/u.test(c))}function aY(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(b),e=[...c(a)];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function aZ(a){return/工期|进度|节点|计划|纠偏|预警/u.test(a)?"工期进度":/质量|验收|三检|样板|隐蔽|复试|实测|通病/u.test(a)?"质量验收":/安全|危大|风险|隐患|应急|临边|洞口|消防|临电/u.test(a)?"安全风险":/文明|扬尘|噪声|绿色|废水|垃圾|环保|智慧/u.test(a)?"文明绿色":/劳务|工资|实名|银行|考勤|人员|岗位|组织|职责/u.test(a)?"组织劳务":/资源|材料|设备|机械|人材机|调配/u.test(a)?"资源保障":/施工|工艺|流程|顺序|穿插|部署|区段|流水/u.test(a)?"施工组织":"综合管理"}function a$(a){let b=new Set,c=[];for(let d of a.sections||[]){let e=aW(d);if(!e||aX(e,a.title))continue;let f=e.replace(/\s+/gu,"");b.has(f)||(b.add(f),c.push(e))}return c}function a_(a,b){let c=a.replace(/\s+/gu,""),d=b.replace(/\s+/gu,"");return c===d||c.includes(d)||d.includes(c)}function a0(a,b,c){let d=new Map;for(let b of a){let a=aZ(b),c=d.get(a)||[];c.push(b),d.set(a,c)}let e=a=>{let b=[];for(let c of a){let a=b[b.length-1],d=a?a.sources[a.sources.length-1]:"";!(0,aV.tZ)(c)&&a&&(a_(c,d)||aY(c,d)>=.75)?(a.sources.push(c),c.length>a.title.length&&(a.title=c)):b.push({title:c,sources:[c]})}return b},f=[];for(let a of d.values()){let d=e(a);for(let a=0;a<d.length;a+=6){let e=d.slice(a,a+6),g=d.length;f.push({title:e[0].title||b,subPoints:e,facts:[],targetWords:Math.min(4e3,Math.max(1200,Math.floor(c/Math.max(1,Math.ceil(g/6)))))})}}return{blocks:f,coveredSections:a.slice(),fallbackSections:[],llmPlanned:!1}}let a1={type:"object",required:["title","subPoints"],properties:{title:{type:"string",required:!0,minLength:2,maxLength:80},subPoints:{type:"array",required:!0,minItems:1,maxItems:6,items:{type:"object",required:!0,properties:{title:{type:"string",required:!0,minLength:2,maxLength:60},sources:{type:"array",required:!0,maxItems:8,items:{type:"string",maxLength:120}}}}},facts:{type:"array",maxItems:2,items:{type:"string",maxLength:100}}}};async function a2(a){let b=a$(a.chapter);if(b.length<=8)return;let c=await (0,M.Mv)(b,b,a.semanticEmbedder),d=function(a,b){let c=new Map;for(let b of a){let a=aZ(b),d=c.get(a)||[];d.push(b),c.set(a,d)}let d=[];for(let a of c.values()){let c=[];for(let d of a){let a,e=-1;for(let f of c){if(f.length>=8)continue;let c=Math.max(...f.map(a=>b(d,a)));c>e&&(e=c,a=f)}a&&e>=.5?a.push(d):c.push([d])}d.push(...c)}return d}(b,c),e=Math.max(800,Math.floor(a.targetWords/Math.max(1,d.length))),f=async(b,c)=>{let d=function(a,b){let c=a.flatMap(a=>[a.slice(0,4),a.slice(-4)]).filter(a=>a.length>=2);return b.map(a=>({item:a,score:c.reduce((b,c)=>b+ +!!a.content.includes(c),0)})).sort((a,b)=>b.score-a.score).map(a=>a.item)}(b,a.evidence),f=(0,s.ks)((0,s.QO)(a.chapter,d)),g=["你是专业施工组织设计文档结构规划专家。","任务:把一个主题块内的输入细目重排为 H4 要点结构;语义相近、内容连贯的细目必须合并进同一个 H4 要点。","硬性规则:",`1. 合并决策:语义相近、内容连贯的输入细目必须合并进同一个 H4 要点;H4 要点标题必须重写为更概括、更专业的标题(16 字以内),不得直接照抄任一输入细目标题;每个 H4 要点的 sources 字段逐字列出它所覆盖的全部输入细目标题,不得改写、不得遗漏、不得重复映射。例外:含评标必查关键词的输入细目(${aV.Dr.join("/")}等)必须保留为独立 H4 要点,不得与其他细目合并吞并,其 H4 标题必须保留该关键词。`,`2. 合并依据:优先参考项目图谱与文档蓝图,把对应同一套工程对象/管理闭环的细目合并(如「三检制度」「样板引路」「隐蔽工程验收」同属质量管控闭环);不得把内容无关的细目强行合并。`,`3. 主题块标题必须具体、专业、能承载其要点(16 字以内),不得使用"目标与范围""资料依据""总体要求"等通用占位标题。`,`4. 数量约束:本主题块 1~6 个 H4 要点。`,"5. facts 字段:从绑定资料中摘取与本主题块直接相关的关键事实短句(每条 ≤60 字,0~2 条)。","6. 只返回 JSON,不要输出任何其他文字。",'JSON 格式:{"title":"主题块标题","subPoints":[{"title":"H4要点标题","sources":["输入细目原文"]}],"facts":["事实短句"]}'],h=[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.graphContext?`项目图谱(本章定向):${a.graphContext}`:"",a.blueprintContext?`文档蓝图(本章任务卡与实施方案):${a.blueprintContext}`:"",a.projectContext?`上下文:${a.projectContext}`:"",a.roleContext?`角色要求:${a.roleContext}`:"",f?`真实绑定资料:${f}`:"",`输入细目清单(本主题块共 ${b.length} 条,必须全部覆盖,允许合并进同一 H4):${b.join("、")}`,`请输出 1 个主题块,1~6 个 H4 要点,确保所有输入细目被覆盖。`],i={},j=await (0,N.bb)(g.join("\n"),h.filter(Boolean).join("\n\n"),{maxTokens:4096,temperature:.1,signal:a.signal,diagnostics:a.diagnostics,schema:a1,disableThinkingBoost:!0,outFailure:i});if(!j){let d=i.value?`第 ${c+1} 块未通过校验(${i.value})`:`第 ${c+1} 块 LLM 无响应`;return{blocks:a0(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:d}}let k=function(a,b,c){let d=aW(a.title||"");if(!d||aX(d,c))return;let e=(a.subPoints||[]).map(a=>{let c=Array.isArray(a.sources)&&a.sources.length>0?a.sources:a.source?[a.source]:[],d=[];for(let a of c){let c=aW(a||"");!(c.length<4)&&b.some(a=>a_(c,a))&&(d.some(a=>a_(a,c))||d.push(c))}let e=aW(a.title||"");return!e||e.length<4?d.length>0?{title:d[0],sources:d}:void 0:{title:e&&!d.some(a=>a_(e,a))?e:d[0]||e,sources:d}}).filter(a=>!!a);if(0!==e.length)return{title:d,subPoints:e,facts:(a.facts||[]).map(a=>a.trim()).filter(Boolean),targetWords:1200}}(j,b,a.chapter.title);return k?{blocks:[k],llmPlanned:!0}:{blocks:a0(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:`第 ${c+1} 块 LLM 结构无效(title/subPoints 缺失或未对齐)`}},g=await Promise.all(d.map((a,b)=>f(a,b))),h=g.flatMap(a=>a.blocks),i=g.map(a=>a.failure).filter(Boolean);return 0===h.length?{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:i.join(";")||"未知原因"}:(!function(a,b){for(let c=0;c<2&&a.length>0&&!(4e3>=Math.floor(b/a.length));c+=1){let b=a.reduce((a,b)=>b.subPoints.length>a.subPoints.length?b:a,a[0]);if(b.subPoints.length<2)break;let c=Math.ceil(b.subPoints.length/2);a.push({title:b.subPoints[c].title||b.title,subPoints:b.subPoints.slice(c),facts:[],targetWords:0}),b.subPoints=b.subPoints.slice(0,c)}let c=a.reduce((a,b)=>a+b.subPoints.length,0)||a.length;for(let d of a){let e=Math.floor(.75*Math.max(1200,Math.floor(b/Math.max(1,a.length)))+.25*b*(d.subPoints.length/c));d.targetWords=Math.min(4e3,Math.max(1200,e))}}(h,a.targetWords),{...function(a){let b=[],c=a.blocks.map(a=>({...a,subPoints:a.subPoints.map(a=>{let c=a.sources.filter(a=>!b.some(b=>a_(b,a))&&(b.push(a),!0));return{...a,sources:c}}).filter(a=>a.sources.length>0)}));return{...a,blocks:c}}(function(a,b){let c=[],d=[],e=b.map(a=>({...a,subPoints:[...a.subPoints]}));for(let b of a){let a,f;if(e.some(a=>(function(a,b){return!!a_(b.title,a)||b.subPoints.some(b=>b.sources.some(b=>a_(b,a))||a_(b.title,a))})(b,a))){c.push(b);continue}let g=-1;for(let c of e)for(let d of c.subPoints){let e=Math.max(aY(b,d.title),...d.sources.map(a=>aY(b,a)));e>g&&(g=e,a=d,f=c)}if((0,aV.tZ)(b)){let a=f||e[e.length-1];if(a){a.subPoints.push({title:b,sources:[b]}),d.push(b);continue}}a&&g>=.5?(a.sources.push(b),d.push(b)):f?(f.subPoints.push({title:b,sources:[b]}),d.push(b)):c.push(b)}return{blocks:e,coveredSections:c,fallbackSections:d,llmPlanned:b.length>0}}(b,h)),llmPlanned:g.some(a=>a.llmPlanned),llmFailure:i.length>0?`块级降级(${i.join(";")})`:void 0})}async function a3(a){let b=await a2(a).catch(a=>({blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:a instanceof Error?a.message:String(a)}))??{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:"LLM 调用异常"};return b.blocks.length>0?b:{...a0(a$(a.chapter),a.chapter.title,a.targetWords),llmFailure:b.llmFailure||"LLM 调用异常"}}function a4(a){let b=(0,v.r4)(a.content);return 0===b.length?[]:b.flatMap(b=>{let c=b.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),d=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),e=d?.[1]||"",f=(0,aU.AI)(b,(0,aU.Ym)(b,a.chapter,a.evidence)),g=(0,aU.uQ)(b,e,f);return g?[`${b}:${g}`]:[]})}function a5(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function a6(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function a7(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function a8(a){(0,z.Te)(a.signal);let b=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}
|
|
30
30
|
数值口径清单:${c||"(未提取到总量口径数字)"}
|
|
31
31
|
正文摘要:${b.slice(0,600)}`}).join("\n\n---\n\n"),c=function(a){let b=Math.ceil(a.totalChars/Math.max(1e3,a.chunkChars)),c="chapter"===a.phase?a7("DOCUMENT_CHAPTER_REVIEW_MAX_CHUNKS")||Math.min(Math.max(2,Math.floor(a.totalChars/a.chapterCount/4e3)),b):"global"===a.phase?a7("DOCUMENT_GLOBAL_REVIEW_MAX_CHUNKS")||Math.min(4,b):a7("DOCUMENT_FINAL_REVIEW_MAX_CHUNKS")||Math.min(6,b);return{chunks:c,budgetPerChunk:Math.ceil(a.totalChars/Math.max(1,c)),maxIssues:Math.max(4,Math.min(28,Math.ceil(2.5*c)))}}({totalChars:b.length,chapterCount:a.chapters.length,chunkChars:16e3,phase:"global"}),d=a5(b,16e3).map((a,c)=>`**第 ${c+1}/${a5(b,16e3).length} 部分**
|