@customize-agent/server 4.21.3 → 4.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +20 -20
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/1001.js +2 -2
- package/.next/server/chunks/208.js +19 -14
- package/.next/server/chunks/{1821.js → 4931.js} +54 -43
- package/.next/server/chunks/5284.js +8 -8
- package/.next/server/chunks/8163.js +3 -3
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +1 -1
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/refine.js +3 -3
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +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 +31 -31
- package/.next/static/07Y_5mRHzJpxIj7CoRu6M/_buildManifest.js +1 -0
- package/.next/static/chunks/{224-790cf01fcf6820ee.js → 224-0415408fff1d1c8b.js} +1 -1
- package/.next/static/chunks/260-580088826d643423.js +1 -0
- package/.next/static/chunks/{289-42781fb699646699.js → 289-fc1b25371e004552.js} +1 -1
- package/.next/static/chunks/788-dca0d550ad6bd8b2.js +1 -0
- package/.next/static/chunks/pages/documents-96aba8e9ca0fa12c.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-33782c4b41f33750.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +1 -0
- package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +1 -0
- package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +1 -0
- package/package.json +1 -1
- package/.next/static/5uqlqajt_C07XmRfZF8DD/_buildManifest.js +0 -1
- package/.next/static/chunks/260-244c94eacd903620.js +0 -1
- package/.next/static/chunks/788-e98701da4d6ca319.js +0 -1
- package/.next/static/chunks/pages/documents-17e14ac7de90dd8b.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-98ec72061cdb64d3.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +0 -1
- package/.next/static/chunks/pages/prompt-839287c514595765.js +0 -1
- package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +0 -1
- /package/.next/static/{5uqlqajt_C07XmRfZF8DD → 07Y_5mRHzJpxIj7CoRu6M}/_ssgManifest.js +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
${q}
|
|
9
9
|
|
|
10
10
|
资料:
|
|
11
|
-
${o}`,{signal:e,maxTokens:1800,temperature:.1,diagnostics:f});return((0,n.Te)(e),s?.facts?.length)?{facts:s.facts.filter(a=>a.key&&a.value).map(a=>{let b=p.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,n.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 抽取 ${s.facts.length} 条事实`}]}:{facts:[],stages:g}}let B=["投标保证金的金额、收款账户名称、开户行与账号","电子投标文件加密方式与解密方式","开标时间、开标地点与开标程序","评标委员会组成与评标办法","招标人联系人、联系电话、邮箱与地址","投标文件递交方式与递交截止时间","空白表格填写说明与上传下载指引","公共资源交易平台监督管理部门"],C=/签章|盖章|联系人|联系电话|电话|邮箱|解密方式|开标时间|开标地点|评标办法|评标委员会|投标保证金|保证金账户|电子交易系统|空白|填写|上传|下载|递交方式|递交截止|公共资源交易监督管理|监管部门|开评标程序|采购范围|是否|符合/u;async function D(a,b,c=h.p4,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=(0,h.oC)(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,n.lG)(a.value).trim()).filter(a=>C.test(a)))],g=await (0,o.Mv)(f,B,d),i=a=>B.some(b=>g(a,b)>=.6),j=[];for(let b of e){let d=a.filter(a=>a.key===b||a.fieldName===b||(0,h.oC)(c,a.fieldName||a.key)?.name===b),e=new Map;for(let a of d){let b=function(a,b,c){let d=(0,n.lG)(a).trim();if((0,h.d2)(b,d)||(0,h.rF)(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,k.K3)((0,n.lG)(d));return!f||f.length>80||!/[\d年月日%]|合格|一星|二星|三星|总价合同|单价合同|承台|框架|装配式/u.test(d)||C.test(d)&&c?.(d)?"":f}(a.value,c,i);b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].slice(0,4).map(a=>`${(0,n.lG)(a[0].value).slice(0,120)}(${[...new Set(a.map(a=>a.sourceFile))].slice(0,3).join("、")})`).join(" vs ");j.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return j.slice(0,8)}function E(a){return(0,n.lG)(a).replace(/\s*[##]{1,6}\s*/gu,"")}function F(a){return(0,n.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 G=[{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},{fieldId:"labor_peak",key:"劳动力高峰人数",fieldName:"劳动力高峰人数",pattern:/(?:劳动力|用工|作业人员|施工人员)[^。;;\n]{0,40}?(?:高峰|峰值)[^。;;\n]{0,20}?(\d+(?:\.\d+)?\s*人)/u},{fieldId:"labor_peak",key:"劳动力高峰人数",fieldName:"劳动力高峰人数",pattern:/(?:高峰(?:期)?(?:劳动力|用工|人数|作业人员)|高峰期人数)[^。;;\n]{0,20}?(\d+(?:\.\d+)?\s*人)/u},{fieldId:"assembly_rate",key:"装配率",fieldName:"装配率",pattern:/(?:装配率|装配式建筑占比|装配式比例|装配式建筑面积占比)[^。;;\n]{0,16}?(\d+(?:\.\d+)?\s*%)/u},{fieldId:"foundation_support_form",key:"基坑支护形式",fieldName:"基坑支护形式",pattern:/(?:基坑支护(?:形式|方式|方案)?|支护(?:形式|方式))[^。;;\n]{0,10}?(?:采用|为|:|:|\s)([^。;;\n]{2,60})/u},{fieldId:"award_clause",key:"创优奖惩条款",fieldName:"创优奖惩条款",pattern:/(?:创优(?:目标|奖惩)?|优质优价)[^。;;\n]{0,60}?(\d+(?:\.\d+)?\s*万元)/u},{fieldId:"award_clause",key:"创优奖惩条款",fieldName:"创优奖惩条款",pattern:/(?:确保|争创|力争|争获)?[\u4e00-\u9fa5]{2,6}[杯奖][^。;;\n]{0,60}?(\d+(?:\.\d+)?\s*万元)/u}];function H(a,b){let c=F((0,n.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)&&!/(?<=[日天])\s*[0-9]+(?:\.[0-9]+)?(?=[\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)&&c.length<=80&&!/\.\d+$/u.test(c):"project_scale"===a?c.length<=100&&/(?:m²|㎡|平方米|m2|km|米|公里|亩|公顷|栋|幢|座|处|户|层|个)/u.test(c)&&!/招标范围/u.test(c):"project_investment_estimate"===a?c.length<=100&&/\d+(?:\.\d+)?\s*(?:万元|元)/u.test(c):"labor_peak"===a?c.length<=40&&/\d+(?:\.\d+)?\s*人/u.test(c):"assembly_rate"===a?c.length<=20&&/\d+(?:\.\d+)?\s*%/u.test(c):"foundation_support_form"===a?c.length<=60&&/支护|放坡|锚|桩|喷|开挖|护坡/u.test(c):"award_clause"===a?c.length<=120&&/\d+(?:\.\d+)?\s*万元/u.test(c)&&!/评标|保证金/u.test(c):c.length<=220)}let I=/\||第\s*\d+\s*页|共\s*\d+\s*页|[##]{1,6}| 资料参数行摘要|(?<=[日天])\s*[0-9]+(?:\.[0-9]+)?(?=[\s]*(?:招标|建设|质量|合同|项目|工程|资金|投标|开标|评标|付款|工期|开工|计划|计价|现场|资质|标段|[0-9]{1,3}[.、.]|[,,。;;]|$))/u,J=/规模|范围|工期|周期|project_scope|project_scale/iu,K=/^[A-Za-z0-9\-_.()()]+$/u,L=/(?:招标项目编号|项目编号|工程编号|标段编号|合同编号|编号)[::为是]*([A-Za-z0-9][A-Za-z0-9\-_.()()]{3,79})/gu;function M(a,b,c){let d,e=[];for(let f of a){let a=(0,n.lG)(f.value).trim();if(!a)continue;let g=I.exec(a),h=a;g&&(h=a.slice(0,g.index).replace(/[\s::,,、;;\-—|]+$/u,"").trim());let i=h!==a;if(h.length<2){c.dropped+=1;continue}let j="project_code"===f.fieldId||/编号|代码/u.test(`${f.fieldName||""}${f.key||""}`);if(j&&!K.test(h)||h.length>120&&!J.test(`${f.fieldId||""} ${f.fieldName||""} ${f.key||""}`)){c.dropped+=1;continue}let k=!1;if(j&&h.length>=4){let a=[...(d||=function(a){let b=new Map;for(let c of a)for(let a of E((0,n.lG)(c.content)).replace(/\s+/gu,"").matchAll(L)){let c=a[1];c&&b.set(c,(b.get(c)||0)+1)}return b}(b)).entries()].filter(([a])=>a.length>=h.length+2&&a.startsWith(h)),c=a.sort((a,b)=>b[1]-a[1]||a[0].length-b[0].length)[0]?.[0];c&&(h=c,k=!0)}i&&(c.truncated+=1),k&&(c.repaired+=1),e.push(h===a?f:{...f,value:h})}return e}function N(a){let b={localFacts:(0,q.am)(function(a,b,c){let d=(0,j.Uy)(b,c),e=d.map(a=>({field:a,pattern:function(a){let b=a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),c=/规模|scale|工期|周期/iu.test(a)?"[^。]{2,220}":"[^\n,。;;]+";return RegExp(`${b}[::\\s]+(${c})`,"u")}(a.name)})),f=d.map(a=>a.name).filter(Boolean),g=[];for(let b of a)for(let{field:a,pattern:c}of e){if(!(0,j.I2)(b,a))continue;let d=b.content.match(c),e=d?.[1]?.trim();if(!e)continue;e=(e=E(e).replace(/\s+/gu,"")).replace(/(?<=[日天])[0-9]+(?:\.[0-9]+)?(?=(?:招标范围|质量标准|建设规模|计划工期|合同估算|项目名称|项目编号|建设地点|招标人|资金来源|投标人资格|资质要求|开标|评标|付款|计价|现场条件|开工日期|合同工期|工期要求|[0-9]{1,3}[.、.]|[,,。;;]|$))/u,"");let i=f.filter(b=>b!==a.name).map(a=>e.indexOf(a)).filter(a=>a>0);i.length>0&&(e=e.slice(0,Math.min(...i))),!e||!(e.length<=220)||(0,h.rF)(h.p4,e)||(0,h.d2)(h.p4,e)||g.some(b=>b.fieldId===a.id&&b.value===e)||g.push({key:a.name,fieldId:a.id,fieldName:a.name,value:e,sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}return g}(a.evidence,a.template,a.spec),a.scope),projectBasicFacts:(0,q.am)(function(a){let b=[],c=new Set;for(let d of a)for(let a of E((0,n.lG)(d.content)).replace(/(\d)\s*\r?\n\s*(日历天|天|个月|月|年|万元|元|㎡|平方米|米|m|mm|MPa|kPa|%)/giu,"$1$2").replace(/([\d,,.]+(?:平方|立方|㎡|m²|m2|m)?)\s*\r?\n\s*(米|m|㎡|m2|m²)/gu,"$1$2").split(/\r?\n/u).flatMap(a=>{let b=F(a);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 G){let f=e.pattern.exec(a),g=f?.[1]?.trim();if(!g||!H(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)}(a.evidence),a.scope),preciseFacts:(0,q.am)(function(a,b=h.p4){let c=[],d=new Set;for(let e of a){let a=`${e.roleId||""} ${e.processingType||""} ${e.filePath} ${e.sectionTitle||""}`;if(!/structured_data|\bdraw(?:ing)?\b|\btable\b|\bbill\b|\bboq\b|\bsheet\b|\bspec\b|\bstandard\b|\brecord\b|\breport\b|表格|数据|规格|参数|标准|记录|报告|清单|图纸|说明/u.test(a)&&e.score<.75)continue;let f=(0,n.lG)(e.content).replace(/\s+/gu," ");for(let a of f.matchAll(m._W)){let g=a[0].trim();if(!g||(0,h.rF)(b,g))continue;let i=Math.max(0,(a.index||0)-40),j=Math.min(f.length,(a.index||0)+g.length+40),k=f.slice(i,j);if((0,h.d2)(b,k)||(0,h.E1)(b,k))continue;let l=`${e.filePath}:${g}`;d.has(l)||(d.add(l),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)}(a.evidence,a.profile||h.p4),a.scope),structuredTables:(0,q.am)(u(a.evidence),a.scope)},c={truncated:0,dropped:0,repaired:0};if(b.localFacts=M(b.localFacts,a.evidence,c),b.projectBasicFacts=M(b.projectBasicFacts,a.evidence,c),b.preciseFacts=M(b.preciseFacts,a.evidence,c),a.diagnostics&&(c.truncated>0||c.dropped>0||c.repaired>0)){let b=a.diagnostics.factSanitize||={truncated:0,dropped:0,repaired:0};b.truncated+=c.truncated,b.dropped+=c.dropped,b.repaired+=c.repaired}return{...b,factSanitize:c}}function O(a){return`${a.key} ${a.fieldName||""} ${a.value} ${a.roleId} ${a.processingType||""} ${a.sourceFile}`}function P(a){return/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价/u.test(a)}function Q(a){let b=O(a);return!P(b)&&/投标保证金|发票类型|开标时间|公共资源交易监督管理|不良行为记录|投诉举报|资质投诉|投标承诺|违约金|中标服务费|交易平台|保证金账户|投标有效期|报价明细|投标报价|单价|合价|税率|增值税|利润|结算/u.test(b)}function R(a){return(0,n.lG)(a).replace(/\s+/gu," ").trim()}function S(a,b=[]){return[...new Set([a,...b,...a.split(/[\s、,。;;::/\\_-]+/u)].map(R).filter(a=>a.length>=2))]}function T(a,b,c){var d,e;let f=R(c.label);if(!f||(0,h.rF)(b,f)||(0,h.d2)(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)}`),i=c.queries?.length?c.queries.map(R).filter(Boolean):S(f),j=a.find(a=>a.id===g||a.label===f);if(j){j.required=j.required||c.required,j.queries=[...new Set([...j.queries,...i])];return}a.push({...c,id:g,label:f,queries:i})}function U(a,b,c,d,e,f=[]){"do_not_use"!==c.usagePolicy&&"diagnostic_only"!==c.usagePolicy&&"forbidden"!==c.derivationPolicy&&T(a,b,{label:c.name,category:c.category,required:e,source:d,fieldId:c.id,queries:S(c.name,[...c.aliases,...f])})}function V(a){let b=a.profile||h.p4,c=[],d=[a.template.name,a.template.outputTitle,a.chapter.title,a.chapter.purpose,...a.chapter.sections||[],...a.chapter.requiredFacts||[]].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||[])T(c,b,{label:d,category:(0,h.oC)(b,d)?.category||"required",required:!0,source:"template"});for(let d of a.chapter.sections||[])T(c,b,{label:d,category:"section",required:!1,source:"section",queries:S(d,[a.chapter.title])});for(let d of a.plan?.requiredContents||[])T(c,b,{label:d,category:(0,h.oC)(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of a.plan?.evidenceNeeds||[])T(c,b,{label:d,category:(0,h.oC)(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&&T(c,b,{label:e.name,category:(0,h.oC)(b,e.name)?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:S(e.name,[e.extractionHint||"",e.validationHint||""])})}for(let e of a.spec?.factFields||[]){if(!e.required)continue;let f=(0,h.oC)(b,e.name),g=`${e.name} ${e.extractionHint||""} ${e.validationHint||""}`;(d.includes(e.name)||S(e.name,f?.aliases||[]).some(a=>d.includes(a))||a.chapter.requiredFacts.some(a=>a.includes(e.name)||e.name.includes(a)))&&T(c,b,{label:e.name,category:f?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:S(e.name,[g])})}for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&d.includes(a))&&U(c,b,a,"profile","must_use"===a.usagePolicy,[d]);let f=R(a.requirement||"");if(f)for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&f.includes(a))&&U(c,b,a,"requirement",!0,[f]);let g=R(a.promptTexts||"");if(g)for(let d of b.factFields)[d.name,...d.aliases].some(a=>a.length>=2&&g.includes(a))&&U(c,b,d,"prompt","must_use"===d.usagePolicy,[a.chapter.title]);return c}function W(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 X(a){let b=a.profile||h.p4,c=a.excludedEvidenceKeys,d=W([...a.factsModel.factIndex.parameterFacts,...a.factsModel.billItemFacts||[],...a.factsModel.factIndex.billFacts,...a.factsModel.factIndex.tableFacts,...a.factsModel.factIndex.drawingFacts,...a.factsModel.factIndex.reliableFacts]);return a.needs.map(e=>{let f=a=>"bill_of_quantities"===a.processingType||"structured_data"===a.processingType||/bill|boq|清单/u.test(O(a))?.05:0,g=W(d.filter(a=>(function(a,b,c){let d=O(a);if(Q(a)||(0,h.rF)(c,d)||(0,h.d2)(c,d))return!1;if(b.fieldId&&a.fieldId===b.fieldId||(0,h.oC)(c,a.fieldName||a.key)?.id===b.fieldId||b.queries.filter(a=>a.length>=2).some(a=>d.includes(a)))return!0;let e=(0,h.oC)(c,b.label);return!!(e&&[e.name,...e.aliases].some(a=>a.length>=2&&d.includes(a)))})(a,e,b))).sort((a,b)=>(b.confidence||0)+f(b)-((a.confidence||0)+f(a))),i=(a.evidence||[]).filter(a=>!c?.has((0,p.hM)(a))&&function(a,b,c){let d=`${a.filePath} ${a.roleId||""} ${a.processingType||""} ${a.sectionTitle||""} ${a.content}`;return!((0,h.rF)(c,d)||(0,h.d2)(c,d))&&b.queries.some(a=>a.length>=2&&d.includes(a))}(a,e,b)),j=Math.max(0,...g.map(a=>a.confidence||0)),k=0===g.length&&0===i.length?"missing":j>0&&j<.58?"low_confidence":"satisfied";return{need:e,facts:g,evidence:i,status:k}})}function Y(a){return W(a.flatMap(a=>a.facts))}function Z(a){let b=a.map(a=>{let b=a.facts.filter((a,b,c)=>c.findIndex(b=>(0,n.lG)(b.value)===(0,n.lG)(a.value))===b).slice(0,5).map(b=>`${b.key||b.fieldName||a.need.label}=${$(b.value)}${b.sourceFile?`(${e.basename(b.sourceFile)})`:""}`),c=a.facts.length?[]:(a.evidence||[]).slice(0,2).map(a=>`证据片段:${$(a.content).slice(0,160)}${a.filePath?`(${e.basename(a.filePath)})`:""}`);return`- ${a.need.required?"必须":"相关"}|${a.need.label}|${a.status}${b.length||c.length?`:${[...b,...c].join(";")}`:":未在已解析资料中确认"}`});return b.length?`事实需求覆盖卡片:
|
|
11
|
+
${o}`,{signal:e,maxTokens:1800,temperature:0,diagnostics:f});return((0,n.Te)(e),s?.facts?.length)?{facts:s.facts.filter(a=>a.key&&a.value).map(a=>{let b=p.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,n.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 抽取 ${s.facts.length} 条事实`}]}:{facts:[],stages:g}}let B=["投标保证金的金额、收款账户名称、开户行与账号","电子投标文件加密方式与解密方式","开标时间、开标地点与开标程序","评标委员会组成与评标办法","招标人联系人、联系电话、邮箱与地址","投标文件递交方式与递交截止时间","空白表格填写说明与上传下载指引","公共资源交易平台监督管理部门"],C=/签章|盖章|联系人|联系电话|电话|邮箱|解密方式|开标时间|开标地点|评标办法|评标委员会|投标保证金|保证金账户|电子交易系统|空白|填写|上传|下载|递交方式|递交截止|公共资源交易监督管理|监管部门|开评标程序|采购范围|是否|符合/u;async function D(a,b,c=h.p4,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=(0,h.oC)(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,n.lG)(a.value).trim()).filter(a=>C.test(a)))],g=await (0,o.Mv)(f,B,d),i=a=>B.some(b=>g(a,b)>=.6),j=[];for(let b of e){let d=a.filter(a=>a.key===b||a.fieldName===b||(0,h.oC)(c,a.fieldName||a.key)?.name===b),e=new Map;for(let a of d){let b=function(a,b,c){let d=(0,n.lG)(a).trim();if((0,h.d2)(b,d)||(0,h.rF)(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,k.K3)((0,n.lG)(d));return!f||f.length>80||!/[\d年月日%]|合格|一星|二星|三星|总价合同|单价合同|承台|框架|装配式/u.test(d)||C.test(d)&&c?.(d)?"":f}(a.value,c,i);b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].slice(0,4).map(a=>`${(0,n.lG)(a[0].value).slice(0,120)}(${[...new Set(a.map(a=>a.sourceFile))].slice(0,3).join("、")})`).join(" vs ");j.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return j.slice(0,8)}function E(a){return(0,n.lG)(a).replace(/\s*[##]{1,6}\s*/gu,"")}function F(a){return(0,n.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 G=[{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},{fieldId:"labor_peak",key:"劳动力高峰人数",fieldName:"劳动力高峰人数",pattern:/(?:劳动力|用工|作业人员|施工人员)[^。;;\n]{0,40}?(?:高峰|峰值)[^。;;\n]{0,20}?(\d+(?:\.\d+)?\s*人)/u},{fieldId:"labor_peak",key:"劳动力高峰人数",fieldName:"劳动力高峰人数",pattern:/(?:高峰(?:期)?(?:劳动力|用工|人数|作业人员)|高峰期人数)[^。;;\n]{0,20}?(\d+(?:\.\d+)?\s*人)/u},{fieldId:"assembly_rate",key:"装配率",fieldName:"装配率",pattern:/(?:装配率|装配式建筑占比|装配式比例|装配式建筑面积占比)[^。;;\n]{0,16}?(\d+(?:\.\d+)?\s*%)/u},{fieldId:"foundation_support_form",key:"基坑支护形式",fieldName:"基坑支护形式",pattern:/(?:基坑支护(?:形式|方式|方案)?|支护(?:形式|方式))[^。;;\n]{0,10}?(?:采用|为|:|:|\s)([^。;;\n]{2,60})/u},{fieldId:"award_clause",key:"创优奖惩条款",fieldName:"创优奖惩条款",pattern:/(?:创优(?:目标|奖惩)?|优质优价)[^。;;\n]{0,60}?(\d+(?:\.\d+)?\s*万元)/u},{fieldId:"award_clause",key:"创优奖惩条款",fieldName:"创优奖惩条款",pattern:/(?:确保|争创|力争|争获)?[\u4e00-\u9fa5]{2,6}[杯奖][^。;;\n]{0,60}?(\d+(?:\.\d+)?\s*万元)/u}];function H(a,b){let c=F((0,n.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)&&!/(?<=[日天])\s*[0-9]+(?:\.[0-9]+)?(?=[\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)&&c.length<=80&&!/\.\d+$/u.test(c):"project_scale"===a?c.length<=100&&/(?:m²|㎡|平方米|m2|km|米|公里|亩|公顷|栋|幢|座|处|户|层|个)/u.test(c)&&!/招标范围/u.test(c):"project_investment_estimate"===a?c.length<=100&&/\d+(?:\.\d+)?\s*(?:万元|元)/u.test(c):"labor_peak"===a?c.length<=40&&/\d+(?:\.\d+)?\s*人/u.test(c):"assembly_rate"===a?c.length<=20&&/\d+(?:\.\d+)?\s*%/u.test(c):"foundation_support_form"===a?c.length<=60&&/支护|放坡|锚|桩|喷|开挖|护坡/u.test(c):"award_clause"===a?c.length<=120&&/\d+(?:\.\d+)?\s*万元/u.test(c)&&!/评标|保证金/u.test(c):c.length<=220)}let I=/\||第\s*\d+\s*页|共\s*\d+\s*页|[##]{1,6}| 资料参数行摘要|(?<=[日天])\s*[0-9]+(?:\.[0-9]+)?(?=[\s]*(?:招标|建设|质量|合同|项目|工程|资金|投标|开标|评标|付款|工期|开工|计划|计价|现场|资质|标段|[0-9]{1,3}[.、.]|[,,。;;]|$))/u,J=/规模|范围|工期|周期|project_scope|project_scale/iu,K=/^[A-Za-z0-9\-_.()()]+$/u,L=/(?:招标项目编号|项目编号|工程编号|标段编号|合同编号|编号)[::为是]*([A-Za-z0-9][A-Za-z0-9\-_.()()]{3,79})/gu;function M(a,b,c){let d,e=[];for(let f of a){let a=(0,n.lG)(f.value).trim();if(!a)continue;let g=I.exec(a),h=a;g&&(h=a.slice(0,g.index).replace(/[\s::,,、;;\-—|]+$/u,"").trim());let i=h!==a;if(h.length<2){c.dropped+=1;continue}let j="project_code"===f.fieldId||/编号|代码/u.test(`${f.fieldName||""}${f.key||""}`);if(j&&!K.test(h)||h.length>120&&!J.test(`${f.fieldId||""} ${f.fieldName||""} ${f.key||""}`)){c.dropped+=1;continue}let k=!1;if(j&&h.length>=4){let a=[...(d||=function(a){let b=new Map;for(let c of a)for(let a of E((0,n.lG)(c.content)).replace(/\s+/gu,"").matchAll(L)){let c=a[1];c&&b.set(c,(b.get(c)||0)+1)}return b}(b)).entries()].filter(([a])=>a.length>=h.length+2&&a.startsWith(h)),c=a.sort((a,b)=>b[1]-a[1]||a[0].length-b[0].length)[0]?.[0];c&&(h=c,k=!0)}i&&(c.truncated+=1),k&&(c.repaired+=1),e.push(h===a?f:{...f,value:h})}return e}function N(a){let b={localFacts:(0,q.am)(function(a,b,c){let d=(0,j.Uy)(b,c),e=d.map(a=>({field:a,pattern:function(a){let b=a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),c=/规模|scale|工期|周期/iu.test(a)?"[^。]{2,220}":"[^\n,。;;]+";return RegExp(`${b}[::\\s]+(${c})`,"u")}(a.name)})),f=d.map(a=>a.name).filter(Boolean),g=[];for(let b of a)for(let{field:a,pattern:c}of e){if(!(0,j.I2)(b,a))continue;let d=b.content.match(c),e=d?.[1]?.trim();if(!e)continue;e=(e=E(e).replace(/\s+/gu,"")).replace(/(?<=[日天])[0-9]+(?:\.[0-9]+)?(?=(?:招标范围|质量标准|建设规模|计划工期|合同估算|项目名称|项目编号|建设地点|招标人|资金来源|投标人资格|资质要求|开标|评标|付款|计价|现场条件|开工日期|合同工期|工期要求|[0-9]{1,3}[.、.]|[,,。;;]|$))/u,"");let i=f.filter(b=>b!==a.name).map(a=>e.indexOf(a)).filter(a=>a>0);i.length>0&&(e=e.slice(0,Math.min(...i))),!e||!(e.length<=220)||(0,h.rF)(h.p4,e)||(0,h.d2)(h.p4,e)||g.some(b=>b.fieldId===a.id&&b.value===e)||g.push({key:a.name,fieldId:a.id,fieldName:a.name,value:e,sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}return g}(a.evidence,a.template,a.spec),a.scope),projectBasicFacts:(0,q.am)(function(a){let b=[],c=new Set;for(let d of a)for(let a of E((0,n.lG)(d.content)).replace(/(\d)\s*\r?\n\s*(日历天|天|个月|月|年|万元|元|㎡|平方米|米|m|mm|MPa|kPa|%)/giu,"$1$2").replace(/([\d,,.]+(?:平方|立方|㎡|m²|m2|m)?)\s*\r?\n\s*(米|m|㎡|m2|m²)/gu,"$1$2").split(/\r?\n/u).flatMap(a=>{let b=F(a);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 G){let f=e.pattern.exec(a),g=f?.[1]?.trim();if(!g||!H(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)}(a.evidence),a.scope),preciseFacts:(0,q.am)(function(a,b=h.p4){let c=[],d=new Set;for(let e of a){let a=`${e.roleId||""} ${e.processingType||""} ${e.filePath} ${e.sectionTitle||""}`;if(!/structured_data|\bdraw(?:ing)?\b|\btable\b|\bbill\b|\bboq\b|\bsheet\b|\bspec\b|\bstandard\b|\brecord\b|\breport\b|表格|数据|规格|参数|标准|记录|报告|清单|图纸|说明/u.test(a)&&e.score<.75)continue;let f=(0,n.lG)(e.content).replace(/\s+/gu," ");for(let a of f.matchAll(m._W)){let g=a[0].trim();if(!g||(0,h.rF)(b,g))continue;let i=Math.max(0,(a.index||0)-40),j=Math.min(f.length,(a.index||0)+g.length+40),k=f.slice(i,j);if((0,h.d2)(b,k)||(0,h.E1)(b,k))continue;let l=`${e.filePath}:${g}`;d.has(l)||(d.add(l),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)}(a.evidence,a.profile||h.p4),a.scope),structuredTables:(0,q.am)(u(a.evidence),a.scope)},c={truncated:0,dropped:0,repaired:0};if(b.localFacts=M(b.localFacts,a.evidence,c),b.projectBasicFacts=M(b.projectBasicFacts,a.evidence,c),b.preciseFacts=M(b.preciseFacts,a.evidence,c),a.diagnostics&&(c.truncated>0||c.dropped>0||c.repaired>0)){let b=a.diagnostics.factSanitize||={truncated:0,dropped:0,repaired:0};b.truncated+=c.truncated,b.dropped+=c.dropped,b.repaired+=c.repaired}return{...b,factSanitize:c}}function O(a){return`${a.key} ${a.fieldName||""} ${a.value} ${a.roleId} ${a.processingType||""} ${a.sourceFile}`}function P(a){return/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价/u.test(a)}function Q(a){let b=O(a);return!P(b)&&/投标保证金|发票类型|开标时间|公共资源交易监督管理|不良行为记录|投诉举报|资质投诉|投标承诺|违约金|中标服务费|交易平台|保证金账户|投标有效期|报价明细|投标报价|单价|合价|税率|增值税|利润|结算/u.test(b)}function R(a){return(0,n.lG)(a).replace(/\s+/gu," ").trim()}function S(a,b=[]){return[...new Set([a,...b,...a.split(/[\s、,。;;::/\\_-]+/u)].map(R).filter(a=>a.length>=2))]}function T(a,b,c){var d,e;let f=R(c.label);if(!f||(0,h.rF)(b,f)||(0,h.d2)(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)}`),i=c.queries?.length?c.queries.map(R).filter(Boolean):S(f),j=a.find(a=>a.id===g||a.label===f);if(j){j.required=j.required||c.required,j.queries=[...new Set([...j.queries,...i])];return}a.push({...c,id:g,label:f,queries:i})}function U(a,b,c,d,e,f=[]){"do_not_use"!==c.usagePolicy&&"diagnostic_only"!==c.usagePolicy&&"forbidden"!==c.derivationPolicy&&T(a,b,{label:c.name,category:c.category,required:e,source:d,fieldId:c.id,queries:S(c.name,[...c.aliases,...f])})}function V(a){let b=a.profile||h.p4,c=[],d=[a.template.name,a.template.outputTitle,a.chapter.title,a.chapter.purpose,...a.chapter.sections||[],...a.chapter.requiredFacts||[]].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||[])T(c,b,{label:d,category:(0,h.oC)(b,d)?.category||"required",required:!0,source:"template"});for(let d of a.chapter.sections||[])T(c,b,{label:d,category:"section",required:!1,source:"section",queries:S(d,[a.chapter.title])});for(let d of a.plan?.requiredContents||[])T(c,b,{label:d,category:(0,h.oC)(b,d)?.category||"plan",required:!0,source:"plan"});for(let d of a.plan?.evidenceNeeds||[])T(c,b,{label:d,category:(0,h.oC)(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&&T(c,b,{label:e.name,category:(0,h.oC)(b,e.name)?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:S(e.name,[e.extractionHint||"",e.validationHint||""])})}for(let e of a.spec?.factFields||[]){if(!e.required)continue;let f=(0,h.oC)(b,e.name),g=`${e.name} ${e.extractionHint||""} ${e.validationHint||""}`;(d.includes(e.name)||S(e.name,f?.aliases||[]).some(a=>d.includes(a))||a.chapter.requiredFacts.some(a=>a.includes(e.name)||e.name.includes(a)))&&T(c,b,{label:e.name,category:f?.category||"spec",required:!0,source:"spec",fieldId:e.id,queries:S(e.name,[g])})}for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&d.includes(a))&&U(c,b,a,"profile","must_use"===a.usagePolicy,[d]);let f=R(a.requirement||"");if(f)for(let a of b.factFields)[a.name,...a.aliases].some(a=>a.length>=2&&f.includes(a))&&U(c,b,a,"requirement",!0,[f]);let g=R(a.promptTexts||"");if(g)for(let d of b.factFields)[d.name,...d.aliases].some(a=>a.length>=2&&g.includes(a))&&U(c,b,d,"prompt","must_use"===d.usagePolicy,[a.chapter.title]);return c}function W(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 X(a){let b=a.profile||h.p4,c=a.excludedEvidenceKeys,d=W([...a.factsModel.factIndex.parameterFacts,...a.factsModel.billItemFacts||[],...a.factsModel.factIndex.billFacts,...a.factsModel.factIndex.tableFacts,...a.factsModel.factIndex.drawingFacts,...a.factsModel.factIndex.reliableFacts]);return a.needs.map(e=>{let f=a=>"bill_of_quantities"===a.processingType||"structured_data"===a.processingType||/bill|boq|清单/u.test(O(a))?.05:0,g=W(d.filter(a=>(function(a,b,c){let d=O(a);if(Q(a)||(0,h.rF)(c,d)||(0,h.d2)(c,d))return!1;if(b.fieldId&&a.fieldId===b.fieldId||(0,h.oC)(c,a.fieldName||a.key)?.id===b.fieldId||b.queries.filter(a=>a.length>=2).some(a=>d.includes(a)))return!0;let e=(0,h.oC)(c,b.label);return!!(e&&[e.name,...e.aliases].some(a=>a.length>=2&&d.includes(a)))})(a,e,b))).sort((a,b)=>(b.confidence||0)+f(b)-((a.confidence||0)+f(a))),i=(a.evidence||[]).filter(a=>!c?.has((0,p.hM)(a))&&function(a,b,c){let d=`${a.filePath} ${a.roleId||""} ${a.processingType||""} ${a.sectionTitle||""} ${a.content}`;return!((0,h.rF)(c,d)||(0,h.d2)(c,d))&&b.queries.some(a=>a.length>=2&&d.includes(a))}(a,e,b)),j=Math.max(0,...g.map(a=>a.confidence||0)),k=0===g.length&&0===i.length?"missing":j>0&&j<.58?"low_confidence":"satisfied";return{need:e,facts:g,evidence:i,status:k}})}function Y(a){return W(a.flatMap(a=>a.facts))}function Z(a){let b=a.map(a=>{let b=a.facts.filter((a,b,c)=>c.findIndex(b=>(0,n.lG)(b.value)===(0,n.lG)(a.value))===b).slice(0,5).map(b=>`${b.key||b.fieldName||a.need.label}=${$(b.value)}${b.sourceFile?`(${e.basename(b.sourceFile)})`:""}`),c=a.facts.length?[]:(a.evidence||[]).slice(0,2).map(a=>`证据片段:${$(a.content).slice(0,160)}${a.filePath?`(${e.basename(a.filePath)})`:""}`);return`- ${a.need.required?"必须":"相关"}|${a.need.label}|${a.status}${b.length||c.length?`:${[...b,...c].join(";")}`:":未在已解析资料中确认"}`});return b.length?`事实需求覆盖卡片:
|
|
12
12
|
${b.join("\n")}`:""}function $(a){return(0,n.lG)(a).replace(/\s+/gu," ").trim().slice(0,220)}let _=/[\u3400-\u4DBF\u{20000}-\u{3FFFF}]/gu,aa=/(?:R\d+C\d+|COL\d+|第\d+行第\d+列)/giu;function ab(a){let b=a.match(/([\u4e00-\u9fa5]{2,8}?(?:镇|乡|县|市|区|街道|村))/u);return b?.[1]}function ac(a,b){for(let c of a.matchAll(/([\u4e00-\u9fa5]{2,8}?(?:镇|乡|县|市|区|街道|村))[^。;;\n]{0,24}?(?:项目|工程)/gu))if(c[1]!==b)return!0;return!1}function ad(a){let b=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,c=F((0,n.lG)(a.value)).trim();if(!c)return a;if(/项目名称|工程名称|project_name/u.test(b)){if(C.test(c))return a;let b=c.replace(/^(?:项目|工程)名称[::]\s*/u,"").trim();if(!(/项目|工程/u.test(b)&&!/(?:[||]|序号|合计|金额|第\d*页|共\d*页)/u.test(b)&&b.length>=3&&b.length<=80))return{...a,value:""}}if(/招标人|建设单位|发包人|tenderee/u.test(b)){if(aa.test(c))return a;let b=c.replace(/^招标人[::]\s*/u,"").trim();if(!(/(?:政府|公司|局|委员会|集团|学院|大学|中心|研究院|设计院|事务所|管理处|指挥部|医院|学校|村委会|居委会)(?:[((][^))]*[))])?$/u.test(b)&&b.length<=60))return{...a,value:""}}return a}async function ae(a,b=[],c=[],d,e=h.p4){a=function(a){let b=a.filter(a=>!function(a){let b=(0,n.lG)(a.value);if(!b)return!1;let c=[...b.matchAll(_)].length;if(c>0){let a=[...b.matchAll(/[\u3400-\u4DBF\u4E00-\u9FFF\u{20000}-\u{3FFFF}]/gu)].length;if(b.length<=40||a>0&&c/a>=.2)return!0}return!!aa.test(b)&&!!(b.replace(aa,"").trim().length<=24)}(a)).map(ad).filter(a=>(0,n.lG)(a.value).trim().length>0),c=b.find(a=>("项目名称"===a.key||"project_name"===a.fieldId)&&(0,n.lG)(a.value).trim().length>=6),d=c?F((0,n.lG)(c.value)).trim():"",e=d?ab(d):void 0;return e?b.map(a=>{let b=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,c=F((0,n.lG)(a.value)).trim();if(!c)return a;if(/招标范围|施工范围/u.test(b)){let b=c.split(/[。;;\n]/u).map(a=>a.trim()).filter(Boolean);if(b.length<=1)return ac(c,e)?{...a,value:""}:a;let d=b.filter(a=>!ac(a,e));return 0===d.length?{...a,value:""}:{...a,value:d.join(";")}}return/项目名称候选|项目名称|工程名称/u.test(b)&&ac(c,e)?{...a,value:""}:a}).filter(a=>(0,n.lG)(a.value).trim().length>0):b}(a);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)),i=a.filter(a=>{let b=`${a.key} ${a.fieldName||""} ${a.value}`;return m.sv.test(b)&&(!(0,h.rF)(e,b)||P(b))&&!(0,h.d2)(e,b)}),j=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}`)),k=v(b).slice(0,600),l=function(a){let b={},c=(a,c,d,e,f)=>{if(!a||!d)return;let g=d.replace(/[,,。\s]+$/u,"").slice(0,40),h=b[a]||=[];h.some(a=>a.location===c&&a.spec===g)||h.push({location:c,spec:g,quantity:e||void 0,sourceFile:f})};for(let b of a){let a=(b.key||"").replace(/^清单条目:/u,"");if(!a)continue;let d=(0,n.lG)(b.value),e=/|工程量:(.+)$/u.exec(d)?.[1]??"",f=d.replace(/|工程量:.+$/u,""),g=function(a){let b=[];for(let c of a.split(/[;;]/u)){let a=c.replace(/^\s*\d+[.、]\s*/u,"").trim(),d=a.search(/[::]/u);if(d>0){let c=a.slice(0,d).trim(),e=a.slice(d+1).trim();c.length>=2&&c.length<=20&&e&&b.push({label:c,value:e})}}return b}(f),h=!1;for(let{label:d,value:f}of g){if(w.some(a=>d.includes(a))){h=!0,c(d,a,f,e,b.sourceFile);continue}let g=f.match(x)?.[0];g&&g!==f&&c(y(g),a,g,e,b.sourceFile)}if(!h)for(let d of f.match(x)||[])c(y(d),a,d,e,b.sourceFile)}return b}(k),o=(function(a){let b=[];for(let c of a){let a=`${c.key||""}${c.fieldName||""}${c.fieldId||""}`,d=(0,n.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),p=function(a,b,c,d){let e=a.filter(a=>(0,h.d2)(d,O(a))||(0,h.E1)(d,O(a))),f=a.filter(a=>{let b=O(a);return a.confidence>=.58&&!Q(a)&&!(0,h.rF)(d,b)&&!(0,h.d2)(d,b)&&!(0,h.E1)(d,b)}),g=[...b.filter(a=>!Q(a)),...f.filter(a=>m.sv.test(O(a)))].filter((a,b,c)=>c.findIndex(b=>b.sourceFile===a.sourceFile&&b.value===a.value&&b.key===a.key)===b).slice(0,360),i=f.filter(a=>"table"===a.processingType||/table|sheet|表格|清单|明细|数据|参数行摘要/u.test(O(a))),j=f.filter(a=>"drawing"===a.processingType||/drawing|dwg|图纸|施工图|设计图|平面图|剖面图|大样图|详图/u.test(O(a)));return{reliableFacts:f.slice(0,500),parameterFacts:g,tableFacts:i.slice(0,240),drawingFacts:j.slice(0,240),billFacts:c.slice(0,240),diagnostics:e.slice(0,120)}}(a,i,j,e);return{project:o,schedule:f(["工期","开工","竣工","节点","周期"]),quality:f(["质量","验收"]),safety:f(["安全","风险"]),resources:f(["劳动力","材料","机械","设备","资源"]),tables:b,drawings:g("drawing"),bills:j,preciseFacts:i,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:p,billItemFacts:k,specAuthorityMap:l,missing:[...new Set(c)],conflicts:await D(a,d,e)}}},1358:(a,b,c)=>{c.d(b,{JV:()=>k,O7:()=>h,QP:()=>l,SR:()=>g,c$:()=>j,e$:()=>i,rj:()=>f,sl:()=>r});var d=c(22157);function e(a){return a.replace(/[\s,,.。::;;||()()《》<>【】"“”'‘’]/gu,"").toLowerCase()}function f(a){let b=a.replace(/[||]\s*(?:[||]\s*)+$/gu,"").replace(/(?:[。;;]|\d+\s*[..、])\s*(?:未尽事宜|其余(?:未尽)?事宜|其他(?:未尽)?事宜|注\s*[::]).*$/u,"").trim();return b=b.replace(/[、,,;;]+\s*$/u,"").trim(),/[||]/u.test(b)&&(b=b.split(/[||]/u)[0]?.trim()||b),b}function g(a){return!(/^(?:见|详见|按|执行|参见|依据).{0,16}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料)$/u.test(a)||/(?:^|[::]\s*)(?:见|详见|按|执行|参见|依据)[^。;;]{0,18}(?:前附表|招标公告|招标文件|合同|协议书|通用条款|专用条款|图纸|清单|附件|资料|补疑|答疑)[^。;;]{0,6}$/u.test(a)||/^见.{0,24}(?:招标范围|招标补疑|补疑|前附表|答疑)/u.test(a)||/^(?:合同协议书|通用条款|专用条款|招标文件|招标公告|投标人须知前附表|附件|资料)$/u.test(a.replace(/[()()\d一二三四五六七八九十、..\s]/gu,""))||/^(?:工程名称|项目名称|建设地点|建设规模|计划工期|质量标准|招标范围|合同估算价|工程概况|项目概况|项目内容)$/u.test(a)||/\|/u.test(a)||/^#+\s*/u.test(a)||/^[一二三四五六七八九十]+[、..]\s*\S{2,}[::]/u.test(a)||/^[((]\s*\d+[))]/u.test(a)&&/具备|证书|考核|资格|人员/u.test(a))&&(!(a.length<4)||!!/\d/u.test(a))}function h(a){let b=String(a.value||"").trim(),c=`${a.label}${b}`;return!(!/项目|工程|编号|地点|规模|范围|工期|质量|安全|资源|材料|设备|验收|\d/u.test(c)||!g(b)||/^(?:技术参数|精确参数)$/u.test(a.label))}function i(a,b){let c=new Set,g=[];for(let h of[...b.project,...b.schedule,...b.quality,...b.safety,...b.resources,...b.preciseFacts,...b.bills,...b.drawings,...b.rules,...b.specifications]){let b=f((0,d.lG)(h.value).replace(/\s+/gu," ").trim()),i=h.fieldName||h.key||h.fieldId||"资料事实",j=`${i}:${b}`;!b||c.has(j)||(c.add(j),g.push({label:i,value:b,sourceFile:h.sourceFile,status:!function(a,b){let c=e(a),d=e(b);if(!d||d.length<2||c.includes(d))return!0;{let a=b.split(/[;;。\n]|、|,|,/u).map(a=>e(a.replace(/^\s*\d+\s*[、..]\s*/u,""))).filter(a=>a.length>=4);if(a.length>=2&&a.some(a=>c.includes(a)))return!0}{let a=b.replace(/[、,,;;||\s]+/gu,"、").split("、").map(a=>e(a.replace(/(?:工程|项目|改造|维修|安装|施工|内容|资料|要求|标准)+$/u,""))).filter(a=>a.length>=2);if(a.length>=1&&(a.length>=2||(a[0]?.length??0)>=3)&&a.every(a=>c.includes(a)))return!0}return(b.match(/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年|万元|元|平方米|㎡|m²|立方米|m³|米|m|mm|cm|台|套|人|项|%|MPa|kPa|个|栋|层|标段|批|处|座|组|道|根|樘|扇)?/giu)||[]).some(a=>e(a).length>=2&&c.includes(e(a)))}(a,b)?"unplaced":"used",confidence:h.confidence}))}return g}function j(a,b={}){let c=a.filter(a=>"unplaced"===a.status&&h(a)),d=b.maxIssues&&b.maxIssues>0?b.maxIssues:c.length;return c.slice(0,d).map(a=>({level:"warning",message:`已确认知识库事实未落位:${a.label}=${a.value}`,suggestion:`请将该事实落位到对应章节,并保持来源 ${a.sourceFile||"结构化事实主表"} 的原始口径。${c.length>d?`(共${c.length}个未落位事实,此处显示前${d}个)`:""}`}))}function k(a,b){let c=b.tables||[],d=[],f=e(a);for(let a of c){let b=a.headers.map(a=>a.replace(/\s+/gu,"").toLowerCase()),c=b.findIndex(a=>/项目名称|名称|清单项|分部分项|项目特征|工程内容|材料名称|设备名称/u.test(a)),g=b.findIndex(a=>/编码|编号|序号|项目编码/u.test(a)),h=b.findIndex(a=>/数量|工程量/u.test(a)),i=b.findIndex(a=>/单位/u.test(a));for(let b of a.rows){let j=c>=0&&b[c]||"",k=g>=0&&b[g]||"";if(!j&&!k){let a=b.findIndex(a=>/^\d{10,12}$/u.test(a)||/^[A-Z]{1,3}\d{8,}$/u.test(a));a>=0&&(k=b[a]||"",j=b[a+1]||"")}let l=h>=0&&b[h]||"",m=i>=0&&b[i]||"";if(!j&&!k)continue;let n=e(j),o=e(k),p=n.length>=3&&f.includes(n.slice(0,12))||o.length>=3&&f.includes(o.slice(0,8));d.push({itemCode:k.slice(0,50),itemName:j.slice(0,200),quantity:l.slice(0,50),unit:m.slice(0,20),sourceFile:a.sourceFile||"",placed:p})}}return d.sort((a,b)=>a.placed===b.placed?0:a.placed?1:-1)}function l(a,b={}){let c=a.filter(a=>!a.placed);if(0===c.length)return[];let d=a.length,e=(d-c.length)/d,f=[];return e<.3?f.push({level:"warning",message:`BOQ 清单行级落位严重不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`清单明细数量较大,建议优先补充主要分部分项、关键规格和大额工程量。未落位清单项示例:${c.slice(0,5).map(a=>`${a.itemName} ${a.quantity}${a.unit}`).join(";")}`}):e<.6&&f.push({level:"warning",message:`BOQ 清单行级落位不足:${d-c.length}/${d} 行(${Math.round(100*e)}%)`,suggestion:`建议补充落位:${c.slice(0,5).map(a=>a.itemName).join("、")}`}),f}let m=/公厕|厕所|过路涵|涵洞|涵管|污水|排水沟|水沟|清淤|沟塘|小菜园|菜园|菜地|花池|树池|挡墙|护栏|路灯|检查井|化粪池|泵站|生态池|生态塘|护坡|驳岸|栈道|步道|管网|管道|道路|铺装|绿化|景观|基础|结构|防水|屋面|外墙|内墙|地面|门窗|栏杆|电梯|电气|给水|排水|消防|通风|空调|智能化|幕墙|基坑/u,n=/^(?:管网|管道|道路|铺装|绿化|景观|基础|结构|防水|屋面|外墙|内墙|地面|门窗|栏杆|电梯|电气|给水|排水|消防|通风|空调|智能化|幕墙|基坑)$/u,o={公厕:["公共厕所","厕所"],厕所:["公厕","公共厕所"],菜地:["菜园","小菜园"],菜园:["菜地"],小菜园:["菜地"]},p=/^(?:挖|回填|运|运输|拆除|清理|浇筑|绑扎|安装|铺设|砌筑|抹灰|刷|喷|摊铺|碾压|夯实|整平|找平|支模|搭设|检测|试验|防腐|除锈)/u,q=/计价|费用|税金|规费|暂列|暂估|合计|汇总|小计|措施项目|其他项目|税金项目/u;function r(a,b,c){if(0===(c.tables||[]).length)return[];let d=b.filter(a=>/施工方法|施工方案|施工工艺|主要施工内容|分部分项/u.test(a.title)),f=d.map(a=>a.content||"").join("\n");if(!f)return[];let g=e(f),h=k(a,c),i=[],j=new Set;for(let a of h){let b=(a.itemName||"").trim();if(!b||q.test(b)||p.test(b))continue;let c=[...b.matchAll(RegExp(m.source,"gu"))].map(a=>a[0]);if(0===c.length)continue;let d=c.filter(a=>!n.test(a));if(0===d.length)continue;let f=a=>g.includes(e(a))||(o[a]||[]).some(a=>g.includes(e(a)));if(d.some(f))continue;let h=b.slice(0,12);j.has(h)||(j.add(h),i.push(`${b.slice(0,30)}${a.quantity?` ${a.quantity}${a.unit}`:""}`))}return 0===i.length?[]:[{level:"error",severity:"blocker",category:"evidence_coverage",owner:"llm",repairability:"llm_repairable",chapterId:d[0]?.id,message:`施工方法章分项覆盖缺失:${i.slice(0,6).join(";")}${i.length>6?` 等共 ${i.length} 个清单分项`:""}`,suggestion:"施工方法章必须逐项覆盖工程量清单中的全部分部分项(含公厕/过路涵/污水管网/排水沟/沟塘清淤/小菜园等专项分项):为每个缺失分项补齐施工方法小节(施工概况/施工流程/施工方法三要素齐全),禁止只写道路、铺装、绿化等大类而遗漏清单独有分项。"}]}},8667:(a,b,c)=>{function d(a,b,c,e,f=!0){return{name:a,sourceDomain:b,sourceHint:c,fallbackPolicy:e,required:f}}c.d(b,{w9:()=>j,El:()=>k,Gl:()=>o,Xi:()=>m,T4:()=>n,nn:()=>l});let e=[{id:"project-overview",title:"工程概况一览表",moduleTitles:["编制说明与工程概况"],required:!0,triggerKeywords:["工程概况","概况","编制说明","建设规模","工期"],fields:[d("工程名称","project","从项目名称、招标范围提取","projectFactOnly"),d("建设地点","project","从建设地点资料提取","projectFactOnly"),d("建设规模","project","建筑面积、结构形式、层数等从资料提取","projectFactOnly"),d("计划工期","schedule","从工期节点或资料提取","projectFactOnly"),d("质量标准","standards","从招标要求或质量标准提取","standardAllowed"),d("招标范围","requirements","从招标范围与工作内容提取","deriveFromContext")]},{id:"project-difficulty",title:"项目重难点识别表",moduleTitles:["编制说明与工程概况"],required:!0,triggerKeywords:["重点","难点","重难点","风险"],fields:[d("重难点","risks","从图谱风险、现场条件、项目要求中提取","deriveFromContext"),d("形成原因","siteConditions","结合现场条件、工期、周边环境、施工范围说明","deriveFromContext"),d("影响范围","works","关联受影响的分部分项、区域、工序或周边对象","deriveFromContext"),d("专项措施","methods","结合工艺方法、风险 mitigation 和标准措施填写","standardAllowed"),d("责任岗位","standard","按项目经理、技术负责人、施工员、安全员、质量员等职责填写","standardAllowed")]},{id:"site-layout-zones",title:"现场总平面分区布置表",moduleTitles:["施工现场平面布置与临设管理"],required:!0,triggerKeywords:["总平面","平面布置","临设","材料堆场"],fields:[d("区域名称","siteConditions","从现场条件、临设、加工区、办公生活区等识别","deriveFromContext"),d("位置","siteConditions","从现场平面、道路、场地条件或资料描述提取","projectFactOnly",!1),d("功能","standard","按办公、生活、加工、堆放、通行等功能填写","standardAllowed"),d("面积","project","仅资料明确时填写,不得编造","projectFactOnly",!1),d("搭设标准","standards","按临设、安全文明、消防、环保标准填写","standardAllowed"),d("拆除时间","schedule","结合施工阶段或竣工清理阶段填写","deriveFromContext",!1)]},{id:"temporary-electric-load",title:"临时用电负荷统计表",moduleTitles:["施工现场平面布置与临设管理"],required:!0,triggerKeywords:["临时用电","临电","三级配电","设备功率"],fields:[d("设备名称","resources","从设备资源、机械投入计划中提取","deriveFromContext"),d("功率","resources","仅资料或设备参数明确时填写","projectFactOnly",!1),d("数量","resources","从设备数量或资源计划提取","projectFactOnly",!1),d("总功率","resources","仅功率和数量明确时计算,否则不编造","projectFactOnly",!1),d("负荷等级","standard","按临电管理和设备重要性判断","standardAllowed",!1),d("检查频次","standards","按临电巡查制度填写","standardAllowed")]},{id:"progress-milestones",title:"关键施工节点控制计划表",moduleTitles:["进度计划与工期保障"],required:!0,triggerKeywords:["进度","工期","节点","计划"],fields:[d("关键节点","schedule","从工期节点、里程碑、施工阶段提取","projectFactOnly"),d("计划完成时间","schedule","仅资料明确时填写日期或工期节点","projectFactOnly",!1),d("责任岗位","standard","按施工组织管理职责填写","standardAllowed"),d("投入资源","resources","关联劳动力、机械、材料资源","deriveFromContext"),d("检查频次","standard","按日计划、周计划、月计划检查机制填写","standardAllowed"),d("滞后纠偏措施","methods","结合资源调配、穿插施工和备用资源填写","standardAllowed")]},{id:"equipment-plan",title:"主要施工机械设备投入计划表",moduleTitles:["资源配置计划"],required:!0,triggerKeywords:["机械设备","设备投入","资源配置"],fields:[d("设备名称","resources","从 equipment 类型资源提取","deriveFromContext"),d("规格型号","resources","从资源规格型号提取","projectFactOnly",!1),d("数量","resources","从资源数量提取","projectFactOnly",!1),d("使用阶段","schedule","结合施工阶段和适用工程内容填写","deriveFromContext"),d("用途","works","关联适用分部分项或工序","deriveFromContext"),d("进退场时间","schedule","仅资料明确时填写,否则按施工阶段表达","deriveFromContext",!1)]},{id:"labor-plan",title:"分阶段劳动力动态投入计划表",moduleTitles:["资源配置计划"],required:!0,triggerKeywords:["劳动力","人员投入","班组"],fields:[d("施工阶段","schedule","从施工阶段和进度节点提取","deriveFromContext"),d("工种","resources","从 labor 类型资源、工序需求推导","deriveFromContext"),d("人数","resources","基于各阶段工程量、工期与工序流水,按定额工效推导各阶段各工种人数(投标人编制类数值,资料不会提供,必须推导并落到具体数字)","deriveFromProject"),d("主要工作内容","works","关联对应分部分项工程","deriveFromContext"),d("调配原则","standard","按工期节点、穿插施工和资源动态调配填写","standardAllowed")]},{id:"quality-hidden-acceptance",title:"隐蔽工程验收清单表",moduleTitles:["质量管理体系与质量保证措施"],required:!0,triggerKeywords:["隐蔽工程","隐蔽验收","质量验收"],fields:[d("隐蔽部位","works","从分部分项工程、图纸做法和工序识别","deriveFromContext"),d("验收内容","methods","结合工艺步骤和质量控制点填写","deriveFromContext"),d("验收时机","schedule","按工序完成、覆盖前、下道工序前填写","standardAllowed"),d("验收要点","standards","从验收规范、质量标准和材料要求提取","standardAllowed"),d("影像留存","standard","按隐蔽验收资料归档要求填写","standardAllowed")]},{id:"quality-common-defects",title:"质量通病防治清单表",moduleTitles:["质量管理体系与质量保证措施"],required:!0,triggerKeywords:["质量通病","防治","质量控制"],fields:[d("通病问题","risks","从质量风险、常见工序问题和项目类型推导","deriveFromContext"),d("产生原因","methods","结合施工工艺、材料、环境和操作因素填写","deriveFromContext"),d("预防措施","methods","按工艺控制、样板引路、材料复试等填写","standardAllowed"),d("整改标准","standards","从验收规范和质量标准提取","standardAllowed"),d("复查频次","standard","按质量检查制度填写","standardAllowed")]},{id:"risk-grade-control",title:"危险源辨识与风险分级管控清单",moduleTitles:["安全管理、风险分级与危大工程管控"],required:!0,triggerKeywords:["安全","风险","危险源","危大"],fields:[d("危险源","risks","从项目图谱 risks 和施工工序识别","deriveFromContext"),d("风险等级","risks","使用图谱风险等级或按影响程度判断","deriveFromContext"),d("存在部位","works","关联风险所在工程部位、区域或工序","deriveFromContext"),d("管控措施","risks","优先使用 mitigation,必要时按标准安全措施补充","standardAllowed"),d("监测频次","standards","按安全巡查和专项监测制度填写","standardAllowed"),d("闭环要求","standard","按隐患整改、复查、销项、归档填写","standardAllowed")]},{id:"dangerous-workflow",title:"危大工程全流程闭环管控表",moduleTitles:["安全管理、风险分级与危大工程管控"],required:!0,triggerKeywords:["危大工程","专项施工方案","专家论证"],fields:[d("危大项目","risks","从危大工程、深基坑、高支模、起重吊装等风险识别","deriveFromContext"),d("方案编制","standard","按专项方案编制要求填写","standardAllowed"),d("审批交底","standard","按审核审批、专家论证、技术交底流程填写","standardAllowed"),d("旁站监测","standard","按实施过程旁站、监测、验收要求填写","standardAllowed"),d("验收闭环","standard","按联合验收、挂牌使用、整改销项填写","standardAllowed")]},{id:"environment-control",title:"环境污染物管控指标一览表",moduleTitles:["文明施工、扬尘、噪声与绿色施工"],required:!0,triggerKeywords:["文明施工","扬尘","噪声","绿色施工","环保"],fields:[d("污染源","siteConditions","从扬尘、噪声、废水、垃圾等施工影响识别","deriveFromContext"),d("控制指标","requirements","从招标环保要求、地方监管或标准要求提取","standardAllowed"),d("监测方式","standard","按在线监测、巡查、台账记录填写","standardAllowed"),d("管控措施","methods","按湿法作业、覆盖、冲洗、封闭、沉淀处理填写","standardAllowed"),d("责任岗位","standard","按文明施工管理员、安全员、施工员等填写","standardAllowed")]},{id:"construction-waste",title:"建筑垃圾分类管理表",moduleTitles:["文明施工、扬尘、噪声与绿色施工"],required:!0,triggerKeywords:["建筑垃圾","垃圾分类","绿色施工"],fields:[d("垃圾类别","standard","按可回收材料、建筑垃圾、生活垃圾、危险废弃物分类","standardAllowed"),d("堆放区域","siteConditions","结合现场平面和堆放分区填写","deriveFromContext"),d("处理方式","standard","按回收利用、外运消纳、资质单位处置填写","standardAllowed"),d("清运频次","standard","按现场保洁和垃圾日产日清要求填写","standardAllowed"),d("责任人","standard","按材料员、施工员、安全员、保洁员等填写","standardAllowed")]},{id:"wage-control",title:"农民工工资管控台账表",moduleTitles:["农民工工资保障与劳务管理"],required:!0,triggerKeywords:["农民工工资","工资保障","劳务实名制"],fields:[d("管理环节","requirements","按实名登记、考勤、核算、公示、代发、归档填写","standardAllowed"),d("执行要求","requirements","从工资支付、实名制和专户要求提取","standardAllowed"),d("责任岗位","standard","按劳资员、项目经理、班组长等填写","standardAllowed"),d("形成资料","standard","按考勤表、工资表、银行流水、公示记录等填写","standardAllowed"),d("闭环要求","standard","按争议受理、核查、整改、销项归档填写","standardAllowed")]},{id:"pipeline-protection",title:"临近建筑地下管线保护清单表",moduleTitles:["周边环境、管线与既有建构筑物保护"],required:!1,triggerKeywords:["地下管线","管线保护","既有建筑","周边环境"],fields:[d("保护对象","siteConditions","从地下管线、临近建筑、道路、居民区等识别","deriveFromContext"),d("位置关系","siteConditions","从现场条件、图纸或踏勘资料提取","projectFactOnly",!1),d("风险影响","risks","结合开挖、振动、沉降、交通等影响填写","deriveFromContext"),d("保护措施","methods","按探测、标识、支护、监测、应急抢修填写","standardAllowed"),d("监测频次","standards","按风险等级和施工阶段填写","standardAllowed"),d("应急处置","risks","按停工警戒、抢修联络、复查恢复填写","standardAllowed")]},{id:"seasonal-resource",title:"季节性施工资源配置表",moduleTitles:["季节性施工保障"],required:!0,triggerKeywords:["季节性施工","雨季","冬季","高温","防汛"],fields:[d("季节/天气类型","siteConditions","结合施工季节、当地气候和工期节点填写","deriveFromContext"),d("影响工序","works","关联受雨季、高温、冬季影响的工序","deriveFromContext"),d("配置资源","resources","结合排水、防暑、防冻、防风等物资设备填写","standardAllowed"),d("检查频次","standard","按天气预警、班前检查、雨后复查填写","standardAllowed"),d("应急措施","risks","按防汛、排水、防雷、大风停工等填写","standardAllowed")]},{id:"emergency-materials",title:"应急物资储备清单表",moduleTitles:["应急管理体系"],required:!0,triggerKeywords:["应急","应急物资","应急救援"],fields:[d("物资名称","resources","从应急物资或按风险场景配置","standardAllowed"),d("规格型号","resources","资料明确时填写,否则按通用应急物资表达","standardAllowed",!1),d("数量","resources","仅资料明确时填写","projectFactOnly",!1),d("存放位置","siteConditions","结合现场平面和应急点位填写","deriveFromContext",!1),d("用途","risks","关联火灾、触电、坍塌、暴雨、高温等风险场景","deriveFromContext"),d("检查周期","standard","按应急物资定期检查制度填写","standardAllowed")]},{id:"bim-smart-site",title:"BIM智慧工地应用点表",moduleTitles:["BIM、智慧工地与创新加分模块"],required:!1,triggerKeywords:["BIM","智慧工地","在线监测","数字化"],fields:[d("应用点","requirements","从 BIM、智慧工地、监测要求或加分点识别","deriveFromContext"),d("应用内容","methods","按管线综合、4D模拟、视频监控、扬尘监测等填写","standardAllowed"),d("实施阶段","schedule","结合深化设计、施工准备、全过程管控等阶段填写","deriveFromContext"),d("输出成果","standard","按模型、图纸、台账、预警记录等填写","standardAllowed"),d("作用","standard","按减少返工、校核工期、联动喷淋、风险预警等填写","standardAllowed")]},{id:"master-schedule",title:"施工总进度计划表",moduleTitles:["进度计划与工期保障"],required:!0,triggerKeywords:["总进度","横道图","网络图","总工期","进度计划"],fields:[d("施工阶段/分部分项","schedule","从工期节点、施工阶段与分部分项工程划分提取","deriveFromContext"),d("开始时间","schedule","基于总工期与工序逻辑倒排推导(投标人编制类数值,资料不会提供,必须推导)","deriveFromProject"),d("结束时间","schedule","基于总工期与工序逻辑倒排推导","deriveFromProject"),d("持续时间","schedule","由开始与结束时间推算,须与总工期自洽","deriveFromProject"),d("关键线路工序","methods","按关键路径与工期保障要求判断","deriveFromContext")]},{id:"material-arrival",title:"主要材料进场计划表",moduleTitles:["资源配置计划"],required:!0,triggerKeywords:["材料进场","材料计划","材料供应"],fields:[d("材料名称","resources","从 material 类型资源提取","deriveFromContext"),d("规格型号","resources","从资源规格型号提取","projectFactOnly",!1),d("使用阶段","schedule","关联材料使用工序与施工阶段","deriveFromContext"),d("进场时间","schedule","按使用阶段提前备料推导","deriveFromProject"),d("质量验收要求","standards","按进场复试、见证取样要求填写","standardAllowed")]},{id:"labor-total-stat",title:"劳动力需求总量与高峰统计表",moduleTitles:["资源配置计划"],required:!0,triggerKeywords:["劳动力","高峰人数","总工日"],fields:[d("施工阶段","schedule","从施工阶段和进度节点提取","deriveFromContext"),d("投入工种数","resources","按阶段工序需求统计工种数量","deriveFromProject"),d("阶段平均人数","resources","按阶段工程量与工效定额推导(投标人编制类数值,必须推导)","deriveFromProject"),d("阶段高峰人数","resources","按平行作业与穿插施工推导","deriveFromProject"),d("劳动力总量(工日)","resources","按总工期与平均人数推算","deriveFromProject")]},{id:"inspection-lot",title:"检验批划分计划表",moduleTitles:["质量管理体系与质量保证措施"],required:!0,triggerKeywords:["检验批","检验批划分","质量验收"],fields:[d("分部工程","works","从分部分项工程划分提取","deriveFromContext"),d("分项工程","works","从分部分项工程划分提取","deriveFromContext"),d("检验批划分原则","standards","按验收规范按层、按跨、按流水段划分填写","standardAllowed"),d("验收标准","standards","从验收规范和设计标准提取","standardAllowed"),d("验收组织","standard","按监理、专业监理工程师、施工单位质检人员填写","standardAllowed")]},{id:"quality-target-decompose",title:"质量目标分解与验收计划表",moduleTitles:["质量管理体系与质量保证措施"],required:!0,triggerKeywords:["质量目标","目标分解","创优"],fields:[d("分解层级","standard","按单位工程、分部、分项工程层级填写","standardAllowed"),d("质量目标","standards","从招标质量标准与创优要求提取并逐级分解","deriveFromContext"),d("责任人","standard","按项目经理、技术负责人、质量员、班组长填写","standardAllowed"),d("验收方式","standard","按自检、互检、交接检、监理验收填写","standardAllowed"),d("检查频次","standard","按日检、周检、月度检查制度填写","standardAllowed")]},{id:"new-tech-application",title:"新技术新工艺应用计划表",moduleTitles:["新技术、新工艺、新材料、新设备的应用"],required:!1,triggerKeywords:["新技术","新工艺","新材料","新设备","四新","创新"],fields:[d("技术名称","methods","从项目适用工艺方法、专项技术与创新点识别","deriveFromContext"),d("应用部位","works","关联适用分部分项与部位","deriveFromContext"),d("与传统做法对比","methods","说明技术原理与先进性","deriveFromContext"),d("预期效果","standards","按质量、工期、成本、安全、绿色目标填写","standardAllowed"),d("实施保障","standard","按技术交底、样板引路、验收评价填写","standardAllowed")]},{id:"major-works-quantity",title:"主要工程量汇总表",moduleTitles:["编制说明与工程概况"],required:!1,triggerKeywords:["工程量","工程数量","主要工程量"],fields:[d("分部分项工程","works","从图谱 works 节点提取","deriveFromContext"),d("工程内容","works","从图谱 works 节点提取","deriveFromContext"),d("计量单位","works","从工程量清单计量单位提取","deriveFromContext"),d("工程量","works","仅资料或清单明确时填写,不得编造","projectFactOnly",!1),d("备注","works","说明工作内容与包含关系","deriveFromContext",!1)]},{id:"product-protection",title:"成品保护措施表",moduleTitles:["成品保护与竣工收尾"],required:!1,triggerKeywords:["成品保护","成品防护","竣工交付"],fields:[d("保护对象","works","从已完成分部分项与易损成品识别","deriveFromContext"),d("易受损环节","methods","关联交叉作业、工序交接与后续施工","deriveFromContext"),d("保护措施","methods","按覆盖、包裹、隔离、警示、专人看护填写","standardAllowed"),d("责任岗位","standard","按施工员、班组长、成品保护员填写","standardAllowed"),d("检查频次","standard","按每日巡查与工序交接检查填写","standardAllowed")]},{id:"survey-instruments",title:"测量与试验检测仪器配置表",moduleTitles:["施工测量与试验检测"],required:!1,triggerKeywords:["测量仪器","试验检测","仪器设备"],fields:[d("仪器名称","resources","从测量、试验检测设备资源识别","deriveFromContext"),d("规格型号","resources","从设备资源规格提取","projectFactOnly",!1),d("数量","resources","按测量与检测工作量推导配置","deriveFromProject"),d("用途","methods","关联放线、标高、沉降观测、材料复试等","deriveFromContext"),d("检定状态","standard","按计量检定与校准周期要求填写","standardAllowed")]}];function f(a){return a.replace(/\s+/gu,"").toLowerCase()}function g(a){return[...new Set(a)]}function h(a){return f([a.title,a.purpose,...a.sections||[],...a.tableSections||[],...a.requiredFacts||[],...a.queries||[]].join(" "))}function i(a,b,c){return"factsModel"===a?!!(c&&Object.keys(c.byKey||{}).length>0):!!b&&("project"===a?Object.keys(c?.byKey||{}).length>0||b.requirements.length>0:"works"===a?b.works.length>0:"methods"===a?b.methods.length>0:"resources"===a?b.resources.length>0:"schedule"===a?b.schedule.length>0||!!c?.schedule.duration:"standards"===a?b.standards.length>0:"risks"===a?b.risks.length>0:"requirements"===a?b.requirements.length>0:"siteConditions"!==a||b.siteConditions.length>0)}function j(a){var b;let c=(b=a.projectGraph)?f([...b.works.flatMap(a=>[a.name,a.scope,...a.relatedItems]),...b.methods.flatMap(a=>[a.name,...a.steps,...a.applicableWorks]),...b.resources.flatMap(a=>[a.name,a.type,a.spec,a.quantity,a.unit]),...b.schedule.flatMap(a=>[a.milestone,a.duration,a.startDate,a.endDate]),...b.standards.flatMap(a=>[a.code,a.description]),...b.risks.flatMap(a=>[a.risk,a.level,a.mitigation]),...b.requirements.flatMap(a=>[a.category,a.detail]),...b.siteConditions.flatMap(a=>[a.condition,a.impact]),...b.addendumChanges.flatMap(a=>[a.originalPath,a.original,a.revised]),...b.gaps].join(" ")):"";return a.chapters.map(b=>{var d;let j=`${c} ${!(d=a.canonicalFacts)?"":f(Object.values(d.byKey||{}).map(a=>`${a.label} ${a.value}`).join(" "))}`,k=e.map(c=>{if(!function(a,b){let c=h(b);return!!((b.tableSections||[]).some(b=>b===a.title||a.title.includes(b)||b.includes(a.title))||a.moduleTitles.some(a=>c.includes(f(a)))||a.triggerKeywords.some(a=>c.includes(f(a))))}(c,b))return null;let d=g(c.fields.map(a=>a.sourceDomain)),e=function(a,b,c,d){let e=h(b);if(a.required||(b.tableSections||[]).some(b=>b===a.title||a.title.includes(b)))return"must";let g=a.moduleTitles.some(a=>e.includes(f(a)))||a.triggerKeywords.some(a=>e.includes(f(a)));return(d?!!a.triggerKeywords.some(a=>c.includes(f(a)))||("equipment-plan"===a.id?d.resources.some(a=>"equipment"===a.type):"labor-plan"===a.id||"labor-total-stat"===a.id?d.resources.some(a=>"labor"===a.type):"progress-milestones"===a.id||"master-schedule"===a.id?d.schedule.length>0||d.works.length>0:"risk-grade-control"===a.id?d.risks.length>0:"pipeline-protection"===a.id?d.siteConditions.some(a=>/管线|道路|居民|学校|医院|商业|既有|周边/u.test(`${a.condition}${a.impact}`)):"bim-smart-site"===a.id?d.requirements.some(a=>/BIM|智慧|数字|监测|视频|实名制/u.test(`${a.category}${a.detail}`)):a.required):a.required)||g?"should":"conditional"}(c,b,j,a.projectGraph),k=function(a,b,c){let d=a.fields.filter(a=>a.required),e=a.fields.filter(a=>a.required&&"projectFactOnly"===a.fallbackPolicy&&!i(a.sourceDomain,b,c)).map(a=>a.name),f=a.fields.filter(a=>"projectFactOnly"!==a.fallbackPolicy||i(a.sourceDomain,b,c)).length,g="generate_with_confirmed_facts";return e.length>0&&f>0&&(g="generate_with_review_notes"),e.length===d.length&&d.length>0&&(g="convert_to_text"),0===f&&(g="skip_with_reason"),{requiredFieldCount:d.length,confirmedFieldCount:f,missingProjectFactFields:e,canGenerate:"skip_with_reason"!==g,fallbackPolicy:g}}(c,a.projectGraph,a.canonicalFacts),l="must"===e?{shouldOutput:!0,outputType:"markdown_table",decisionReason:"章节必要管控表,按项目资料、图谱事实与投标人编制内容输出。"}:"should"===e?{shouldOutput:!0,outputType:"markdown_table",decisionReason:"项目图谱和章节语义均触发,按资料与编制推导输出。"}:k.canGenerate?{shouldOutput:!0,outputType:"markdown_table",decisionReason:"章节已承接该管理对象,按已有事实与编制推导输出表格。"}:{shouldOutput:!1,outputType:"skip",decisionReason:"全部事实字段均缺资料支撑,暂不输出。"};return{id:c.id,title:c.title,chapterTitle:b.title,moduleTitle:c.moduleTitles[0]||b.title,required:l.shouldOutput&&("must"===e||c.required),reason:function(a,b){let c=[];return b?.schedule.length&&a.fields.some(a=>"schedule"===a.sourceDomain)&&c.push("项目图谱包含工期与关键节点"),b?.resources.length&&a.fields.some(a=>"resources"===a.sourceDomain)&&c.push("项目图谱包含资源投入信息"),b?.risks.length&&a.fields.some(a=>"risks"===a.sourceDomain)&&c.push("项目图谱包含风险与管控要求"),b?.requirements.length&&a.fields.some(a=>"requirements"===a.sourceDomain)&&c.push("项目图谱包含招标/管理要求"),b?.siteConditions.length&&a.fields.some(a=>"siteConditions"===a.sourceDomain)&&c.push("项目图谱包含现场条件约束"),c.length?c.join(";"):`章节包含“${a.moduleTitles.join("、")}”模块,按施工组织设计标准表格库生成。`}(c,a.projectGraph),fields:c.fields,sourceDomains:d,necessity:e,belongsToChapter:!0,scopeExplanation:`表格归属于“${b.title}”中“${c.moduleTitles.join("、")}”相关管理对象。`,triggerFacts:Object.values(a.canonicalFacts?.byKey||{}).filter(a=>c.triggerKeywords.some(b=>f(`${a.label}${a.value}`).includes(f(b)))).map(a=>`${a.label}=${a.value}`),triggerGraphNodes:c.triggerKeywords.filter(a=>j.includes(f(a))),fillability:k,outputDecision:l,rowSeeds:function(a,b,c){let d=[],e=(b,c,e,g)=>{if(!f(`${b}${e}`)||d.some(a=>f(a.rowLabel)===f(b)))return;let h=a.fields.filter(a=>f(e).includes(f(a.name))||"projectFactOnly"!==a.fallbackPolicy).map(a=>a.name),i=a.fields.filter(a=>a.required&&!h.includes(a.name)&&"projectFactOnly"===a.fallbackPolicy).map(a=>a.name);d.push({rowLabel:b,source:c,confirmedFields:h,missingFields:i,sourceRef:g})};for(let b of Object.values(c?.byKey||{}))a.triggerKeywords.some(a=>f(`${b.label}${b.value}`).includes(f(a)))&&e(b.label,"canonicalFact",b.value,b.sourceFile);for(let c of b?.resources||[])(a.fields.some(a=>"resources"===a.sourceDomain)||a.triggerKeywords.some(a=>f(`${c.name}${c.type}`).includes(f(a))))&&e(c.name,"equipment"===c.type||"material"===c.type||"labor"===c.type?"projectGraph":"standard",[c.spec,c.quantity,c.unit].filter(Boolean).join(" "),c.sourceFiles?.[0]);for(let c of b?.risks||[])(a.fields.some(a=>"risks"===a.sourceDomain)||a.triggerKeywords.some(a=>f(c.risk).includes(f(a))))&&e(c.risk,"projectGraph",[c.level,c.mitigation].filter(Boolean).join(" "),c.sourceFiles?.[0]);for(let c of b?.schedule||[])a.fields.some(a=>"schedule"===a.sourceDomain)&&e(c.milestone,"projectGraph",[c.duration,c.startDate,c.endDate].filter(Boolean).join(" "),c.sourceFiles?.[0]);return d.slice(0,24)}(c,a.projectGraph,a.canonicalFacts)}}).filter(a=>!!a),l=new Map((b.tablePlans||[]).map(a=>[a.id,a]));for(let a of k)l.set(a.id,a);let m=[...l.values()],n=g([...b.tableSections||[],...m.map(a=>a.title)]),o=g([...b.tableRequirements||[],...m.map(a=>{let b=a.fields.filter(a=>"deriveFromProject"===a.fallbackPolicy),c=a.fields.filter(a=>"projectFactOnly"===a.fallbackPolicy),d=b.length?`表中“${b.map(a=>a.name).join("、")}”属于投标人计划编制类字段,资料不会提供,必须基于项目工程量、工期与工序流水按定额工效推导具体数值,不得留空、不得写“按需配置”等占位话术。`:"",e=c.length?"项目特有数字、日期、工程量、规格必须来自资料或项目图谱,不得编造。":"";return`${a.title}:表头必须为“${a.fields.map(a=>a.name).join("、")}”;${[d,e].filter(Boolean).join("")||"可按施工组织设计标准流程填写。"}`})]);return{...b,tableSections:n,tableRequirements:o,tablePlans:m}})}function k(a,b){let c=(a.tablePlans||[]).filter(a=>a.outputDecision?.shouldOutput);if(0===c.length)return[];let d=f(b||"");return d?c.filter(a=>{let b=f(a.moduleTitle||""),c=f(a.title);if(b&&(d.includes(b)||b.includes(d))||c&&(d.includes(c)||c.includes(d)))return!0;let e=c.replace(/表$/u,"");return!!(e&&(d.includes(e)||e.includes(d))||(a.triggerGraphNodes||[]).some(a=>d.includes(f(a)))||e&&function(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}(d,e)>=.6)}):c}function l(a,b){let c=(a.tablePlans||[]).filter(a=>a.outputDecision?.shouldOutput);return 0===c.length?[]:c.filter(c=>!b.some(b=>k(a,b).some(a=>a.id===c.id)))}function m(a,b){let c=[];for(let d of a){let a=(d.tablePlans||[]).filter(a=>a.outputDecision?.shouldOutput);if(0===a.length)continue;let e=b.find(a=>a.title===d.title)||b.find(a=>d.title.includes(a.title)||a.title.includes(d.title));if(!e)continue;let f=function(a){let b=0;for(let c of a.split(/\r?\n/u))/^\s*\|?\s*:?-{3,}:?/u.test(c)&&c.includes("|")&&(b+=1);return b}(e.content);f>=.6*a.length||a.length-f<2||c.push({chapterTitle:d.title,planned:a.length,actual:f,plans:a})}return c}function n(a){let b=a.tablePlans||[];if(0===b.length)return"";let c=b.some(a=>a.fields.some(a=>"deriveFromProject"===a.fallbackPolicy))?"\n【投标人编制类字段授权】表中 fallbackPolicy=deriveFromProject 的字段(人数、台班、进度时间、进场时间等)资料不会提供具体数值,这是投标人自己的计划编制内容:必须基于项目工程量、总工期与工序流水,按定额工效推导并落到具体数字;不得留空、不得写“按需配置”“根据进度灵活调配”等空话。项目事实类字段(面积、工程量、规格、质量标准)仍必须来自资料,不得编造。":"";return["【本章表格/清单结构化生成要求(硬性验收项)】","以下表格来自项目图谱、事实主权模型与施工组织设计标准表格库的治理决策;不得按数量机械增减,必须按必要性、章节归属、证据可填性和输出形态执行。","每个应输出(必写/应写)的表格都必须真实输出为 markdown 表格;输出后按本清单逐表自检,缺失即视为正文不足。","【表格排版硬约束】每个 markdown 表格必须独立成行:表头行必须以“|”开头单独占一行,下一行紧跟“|---|”分隔行,数据行逐行以“|”开头;严禁把表头接在正文段落同一行(如“正文……。| 表头1 | 表头2 |”),输出表格前必须先换行。","每个表格前必须写 1~2 句引导叙述(说明该表的作用、数据口径与关键结论),表格不能替代所在小节全部正文;表格输出后还应围绕表中关键节点、责任分工与纠偏措施展开至少一段实施性正文。","只输出表格/清单本体和用户提示词明确要求的文字;不得输出系统来源说明、后台溯源列、固定表前后说明或占位话术。",...b.map((b,c)=>[`${c+1}. ${b.required?"必写":b.outputDecision?.shouldOutput?"应写":"参考"}:${b.title}`,` - 必要性:${b.necessity||(b.required?"must":"conditional")};输出形态:${b.outputDecision?.outputType||"markdown_table"};决策:${b.outputDecision?.decisionReason||"按章节内容需要输出。"}`,` - 适用模块:${b.moduleTitle}`,` - 章节归属:${b.scopeExplanation||`归属于${a.title}`}`,` - 生成原因:${b.reason}`,` - 表头字段:${b.fields.map(a=>a.name).join(" | ")}`,` - 字段来源:${b.fields.map(a=>`${a.name}←${a.sourceDomain}(${a.sourceHint})`).join(";")}`,b.fillability?.missingProjectFactFields.length?` - 字段约束:${b.fillability.missingProjectFactFields.join("、")} 必须继续从项目图谱、可信事实和绑定资料中取值;不得写固定占位话术。`:` - 可填性:已确认字段 ${b.fillability?.confirmedFieldCount??b.fields.length}/${b.fields.length}。`,b.rowSeeds?.length?` - 行级填充计划:${b.rowSeeds.slice(0,8).map(a=>`${a.rowLabel}(${a.source}${a.missingFields.length?`,字段待从资料补齐:${a.missingFields.join("/")}`:""})`).join(";")}`:"",` - 约束:${b.fields.some(a=>"projectFactOnly"===a.fallbackPolicy)?"projectFactOnly 字段必须来自项目资料、项目图谱或可信事实;不得编造,不得写占位话术。":"可按标准施工组织流程填写,但必须贴合本章和项目场景。"}${b.fields.some(a=>"deriveFromProject"===a.fallbackPolicy)?" deriveFromProject 字段必须按上方“投标人编制类字段授权”推导具体数值。":""}`].filter(Boolean).join("\n")),c].filter(Boolean).join("\n")}function o(a,b){if(!a.length)return"";let c=a.some(a=>a.fields.some(a=>"deriveFromProject"===a.fallbackPolicy))?"\n【投标人编制类字段授权】表中 fallbackPolicy=deriveFromProject 的字段(人数、台班、进度时间等)资料不会提供具体数值,这是投标人自己的计划编制内容:必须基于项目工程量、总工期与工序流水按定额工效推导并落到具体数字;不得留空、不得写“按需配置”“根据进度灵活调配”等空话。项目事实类字段仍必须来自资料,不得编造。":"";return[`【本节“${b}”必须输出的表格(硬性验收项)】`,"以下表格治理决策归属于本节,必须真实输出为 markdown 表格(紧跟相关三级小节);输出后逐表自检,缺失即视为正文不足。","【表格排版硬约束】每个 markdown 表格必须独立成行:表头行必须以“|”开头单独占一行,下一行紧跟“|---|”分隔行,数据行逐行以“|”开头;严禁把表头接在正文段落同一行,输出表格前必须先换行。","每个表格前必须写 1~2 句引导叙述(说明该表的作用、数据口径与关键结论),表格不能替代本节全部正文;表格输出后还应围绕表中关键节点、责任分工与纠偏措施展开至少一段实施性正文。",...a.map((a,b)=>[`${b+1}. ${a.required?"必写":"应写"}:${a.title}`,` - 输出形态:${a.outputDecision?.outputType||"markdown_table"};决策:${a.outputDecision?.decisionReason||"按章节内容需要输出。"}`,` - 表头字段:${a.fields.map(a=>a.name).join(" | ")}`,` - 字段来源:${a.fields.map(a=>`${a.name}←${a.sourceDomain}(${a.sourceHint})`).join(";")}`,a.fillability?.missingProjectFactFields.length?` - 字段约束:${a.fillability.missingProjectFactFields.join("、")} 必须继续从项目图谱、可信事实和绑定资料中取值;不得写固定占位话术。`:"",a.rowSeeds?.length?` - 行级填充计划:${a.rowSeeds.slice(0,8).map(a=>`${a.rowLabel}(${a.source}${a.missingFields.length?`,字段待从资料补齐:${a.missingFields.join("/")}`:""})`).join(";")}`:"",` - 约束:${a.fields.some(a=>"projectFactOnly"===a.fallbackPolicy)?"projectFactOnly 字段必须来自项目资料、项目图谱或可信事实;不得编造。":"可按标准施工组织流程填写,但必须贴合本章和项目场景。"}${a.fields.some(a=>"deriveFromProject"===a.fallbackPolicy)?" deriveFromProject 字段必须按下方“投标人编制类字段授权”推导具体数值。":""}`].filter(Boolean).join("\n")),c].filter(Boolean).join("\n")}},22213:(a,b,c)=>{c.d(b,{Bk:()=>w,DD:()=>h,Dz:()=>t,Ep:()=>v,I6:()=>z,KJ:()=>I,Uz:()=>L,YK:()=>A,ab:()=>C,ap:()=>M,eB:()=>B,eK:()=>G,eL:()=>q,ev:()=>H,g6:()=>F,h$:()=>l,hf:()=>K,iA:()=>y,qj:()=>D,sE:()=>i,sh:()=>x,uV:()=>N,xu:()=>r,y7:()=>E,zJ:()=>J});var d=c(70933),e=c(1218);c(70208);var f=c(22157),g=c(3063);function h(a){return a.replace(/^#{3,4}\s+.*\n+/u,"").trim()}function i(a,b){let c=a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),d=b.match(RegExp(`^#{3,4}\\s+(?:\\d+(?:\\.\\d+)*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^###\\s+|^##\\s+|(?![\\s\\S]))`,"mu"));return d?d[0]:b}function j(a){let b=new Set;for(let c of a.match(/[\u4e00-\u9fa5]{2,}/gu)||[]){if(2===c.length){b.add(c);continue}for(let a=0;a<=c.length-2;a+=1)b.add(c.slice(a,a+2))}return b}let k=new Set(["采用","安装","控制","检测","检查","验收","记录","施工","要求","完成","进行","实测","形成","复核","处理","保护","清理","准备","组织","安全","质量","部位","范围","内容","工作","项目","工程","材料","设备","分别","规范","图纸","设计","依据","确认","资料","技术","文件","标准","合格","偏差","允许","符合","确保","防止","严禁","不得","统一","配备","设置","使用","作业","过程","移交","闭环","整改","问题","发现","及时","后续","工序","环节","位置","高度","间距","严格","必须","所有","相关","执行","落实","到位","同步","相应","重点","加强","管理","隐蔽","报告","签字","填写","留置","保养","维修"]);function l(a){let b=a.match(/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?(?:项目主要施工\s*内容|主要施工\s*内容)\s*\n([\s\S]*?)(?=^###\s+|^##\s+|(?!(\s|\S)))/mu);if(!b)return a;let c=b[0],d=c.indexOf("\n"),e=c.slice(d+1).split(/^(?=####\s+)/mu),f=[];for(let a of e){let b=a.match(/^####\s+(.+?)\s*\n([\s\S]*)$/u);if(!b)continue;let c=b[1].trim(),d=c.replace(/^\d+\.\d+\.\d+\s*/u,""),e=b[2].split(/(?=施工概况|施工流程|施工方法)/u).filter(Boolean).map(a=>j(a.replace(/^施工(?:概况|流程|方法)[::]?/u,"")));f.push({title:c,cleanTitle:d,body:b[2],isWorkPackage:/工作包\s*$/u.test(d),titleGrams:j(d),segGrams:e})}let g=f.filter(a=>a.isWorkPackage),h=f.filter(a=>!a.isWorkPackage);if(0===g.length||0===h.length)return a;let i=new Set;for(let a of g){let b,c=0;for(let d of h){if(i.has(d))continue;let e=function(a,b){let c=0;for(let d of a)b.has(d)&&(c+=1);return c}(a.titleGrams,d.titleGrams);if(e<2)continue;let f=Array.from({length:Math.min(a.segGrams.length,d.segGrams.length)},(b,c)=>(function(a,b){let c=0;for(let d of a)!k.has(d)&&b.has(d)&&(c+=1);return c})(a.segGrams[c],d.segGrams[c])).filter(a=>a>=4).length;if(f<2)continue;let g=e+2*f;g>c&&(c=g,b=d)}if(!b)continue;let d=b,e=a=>a.replace(/平方米/gu,"m2").replace(/m²|㎡/gu,"m2").replace(/立方米/gu,"m3").replace(/m³/gu,"m3").replace(/毫米/gu,"mm").replace(/\s+/gu,""),f=e(d.body),g=/\d+(?:\.\d+)?(?:平方米|立方米|毫米|m2|m3|mm|㎡|m²|m³|米|台|套|个|座|根|扇|樘|块|件|组|吨|kg|t|%)/gu,j=a=>{let b=a.match(g);return!!b&&0!==b.length&&b.every(a=>f.includes(e(a)))},l=[];for(let b of a.body.split(/[。;,,\n]/u).map(a=>a.trim()).filter(Boolean)){if(!/\d/u.test(b))continue;let a=b.replace(/^施工(?:概况|流程|方法)[::]?/u,"").trim();a&&(j(a)||l.push(a))}l.length>0&&(d.body=`${d.body.trimEnd()}${l.join("。")}。
|
|
13
13
|
`),i.add(a)}let l=f.filter(a=>!i.has(a));if(l.length===f.length)return a;let m=l.every(a=>/^\d+\.\d+\.\d+\s+/u.test(a.title)),n=l.map((a,c)=>{let d=m?`#### ${a.title.replace(/^\d+\.\d+\.\d+\s*/u,`${b[0].split("\n")[0].match(/\d+\.\d+/u)?.[0]||"1.1"}.${c+1} `)}`:`#### ${a.cleanTitle}`;return`${d}
|
|
14
14
|
${a.body.trimEnd()}`}),o=c.slice(0,d+1);return a.replace(c,`${o}${n.join("\n")}
|
|
@@ -36,7 +36,7 @@ ${k.map(a=>`- ${a.key||a.fieldName}:${(0,f.eE)((0,i.lG)(a.value))}${a.sourceFi
|
|
|
36
36
|
项目基本信息表必须使用固定表头:| 信息项 | 内容 |,不得使用“序号|项目名称|内容参数”表头,不得输出后台溯源列。`:"",a.factNeedsPrompt||"",j.length?`全局资料事实索引匹配到的本章可写事实:
|
|
37
37
|
${j.join("\n")}`:"",o.length?`本章材料规格-部位对照表(同一材料的多种规格必须按所属部位/分部分项分别使用,禁止全文统一为一种规格;对照关系以工程量清单为准,写错部位视同数据错误):
|
|
38
38
|
${o.join("\n")}`:"",l.length?`本章资料中可直接使用的可靠精确参数/编号:${l.join("、")}。这些参数来自绑定资料,不属于编造;涉及对应对象、部位、工序、材料、设备、项目概况、质量验收或安全控制时必须自然写入正文,并保持原样或等价专业表达。量化参数落位是硬性验收项:本章正文必须达到每千字不少于 2 个不同量化参数的密度(以上方清单参数优先),同一参数不得反复堆砌凑数,参数种类不足将被打回重写。项目基础事实中的合同估算价、计划工期可用于项目概况;不得写入报价明细、单价、税率、预留金。`:"",n.length?`当前事实需求仍未充分确认:${n.join("、")}。未确认项不得编造;但已满足事实需求中的资料事实必须写入对应小节。`:"",a.missingFacts.length?`模板显式要求中当前检索未充分命中的项:${a.missingFacts.join("、")}。未命中项不得编造,但不得因此省略上方已经明确的可靠参数。`:"",`本章可用材料来源约 ${m} 个文件,正文必须按事实需求把可用事实内化到对应小节,不得单列后台资料清单。`].filter(Boolean).join("\n")}function y(a){let b=function(a){if(!a)return[];let b=[];for(let c of a.split(/\r?\n|[。;;]/u)){let a=c.trim();if(!(a.length<4)&&!(a.length>240)&&/计划工期|合同工期|工期|日历天|建设地点|工程地点|建设规模|工程规模|建筑面积|质量标准|质量目标|招标范围|施工范围|工作内容|合同估算|投资估算|最高投标限价|招标控制价|暂列金额|安全目标|文明施工目标|项目名称|工程名称/u.test(a)&&(!/(?:请|务必|不得|禁止|不要|要求你|你需要|生成|输出|格式|模板)/u.test(a)||/(?:日历天|㎡|m2|平方米|万元|元|米|天|%|层|栋|台|套)/u.test(a))&&(b.push(a),b.length>=24))break}return[...new Set(b)]}(a);return 0===b.length?"":["【用户提示词明确给定的事实——最高优先级,必须原样写入正文相关小节】",...b.map(a=>`- ${a}`),"这些事实来自用户要求;若与绑定材料中的数值冲突,以绑定材料为准。"].join("\n")}function z(a){let b=(0,t.z)().factCoverageCap;if(0===b)return a;let c=Number.isFinite(b)&&b>0?Math.floor(b):26e3;if(!a||a.length<=c)return a;let d=[],e=0;for(let b of a.split("\n")){if(e+b.length+1>c)break;d.push(b),e+=b.length+1}return`${d.join("\n")}
|
|
39
|
-
(本章事实索引过长已截断,其余事实见绑定材料与证据,正文以材料为准)`}async function A(a){let b=a.sections.length?a.sections.map((a,b)=>`${b+1}. ${a}`).join("\n"):"(本章无预设小节,请按材料自然归纳 2-5 个主题作为大纲小节)",c=[(0,g.y4)("你是文档事实规划专家。先通读绑定材料,再为本章每个小节列出「可写事实」,供 Writer 逐条落位。"),"事实必须逐字来自绑定材料:数值、单位、标准编号必须原样保留,不得改写、换算或编造;不得把写作要求当作事实。","quantifiedFacts 中规格类事实(混凝土强度等级/砂浆强度等级/抗渗等级/厚度/砖规格等)必须标注所属部位或分部分项;同一材料出现多种规格时必须逐条保留各自部位,不得合并为一种规格。","quantifiedFacts 放含数字/单位/编号的事实;missingFacts 放该小节需要但材料中确实找不到的事实(供 Writer
|
|
39
|
+
(本章事实索引过长已截断,其余事实见绑定材料与证据,正文以材料为准)`}async function A(a){let b=a.sections.length?a.sections.map((a,b)=>`${b+1}. ${a}`).join("\n"):"(本章无预设小节,请按材料自然归纳 2-5 个主题作为大纲小节)",c=[(0,g.y4)("你是文档事实规划专家。先通读绑定材料,再为本章每个小节列出「可写事实」,供 Writer 逐条落位。"),"事实必须逐字来自绑定材料:数值、单位、标准编号必须原样保留,不得改写、换算或编造;不得把写作要求当作事实。","quantifiedFacts 中规格类事实(混凝土强度等级/砂浆强度等级/抗渗等级/厚度/砖规格等)必须标注所属部位或分部分项;同一材料出现多种规格时必须逐条保留各自部位,不得合并为一种规格。","quantifiedFacts 放含数字/单位/编号的事实;missingFacts 放该小节需要但材料中确实找不到的事实(供 Writer 用公共专业知识补做法与要求;补做法时不得引入任何具体数值、规格、型号、品牌、参数,此类内容一律不得出现在 missingFacts 或补做表述中)。","只返回 JSON,不要返回 markdown。"].filter(Boolean).join("\n\n"),d=[a.promptTexts?`配置写作主控提示词:
|
|
40
40
|
${a.promptTexts}`:"",`文档模板:${a.template.name}`,`章节目的:${a.chapter.purpose}`,a.requiredFacts.length?`模板要求覆盖的事实:${a.requiredFacts.join("、")}`:"",a.missingFacts.length?`当前检索未充分命中的事实(如材料中确实没有,写入对应小节的 missingFacts):${a.missingFacts.join("、")}`:"",'返回 JSON:{"sections":[{"title":"小节名","facts":["可写事实(必须来自材料)"],"quantifiedFacts":["含数值/单位/编号的事实(必须原样)"],"missingFacts":["该小节需要但材料缺失的事实"]}]}',`章节标题:${a.chapter.title}`,`预设小节:
|
|
41
41
|
${b}`,`绑定材料:
|
|
42
42
|
${a.evidenceText}`].filter(Boolean).join("\n\n"),e={l0:c.length,l1:(0,h.CX)([a.promptTexts?`配置写作主控提示词:
|
|
@@ -46,15 +46,15 @@ ${a.evidenceText}`])};for(let b=0;b<2;b+=1){let b=await (0,h.bb)(c,d,{maxTokens:
|
|
|
46
46
|
${a.content}`).join("\n"),d=a.split(/[\s、,,。;;::()()【】[\]《》]/u).map(a=>a.trim()).filter(a=>a.length>=4);return 0!==d.length&&(d.filter(a=>c.includes(a)).length>=2||[...new Set(a.match(/.{6,}/gu)||[])].some(a=>c.includes(a)))}(a,e)))).size<a.length&&(u=`${u}
|
|
47
47
|
|
|
48
48
|
【定向补充检索】以下大纲缺失事实已找到对应材料并追加在上方,请一并落位:${a.filter(a=>!x.has(a)).join("、")}`)}else x=new Set(a)}else x=new Set(a);D=x,w=["【事实大纲——由事实规划阶段生成,写作时必须逐条落位】","大纲事实全部来自绑定材料,落位不构成编造;数值、单位、标准编号必须与大纲完全一致。",...o.sections.map(a=>{let b=[...new Set([...a.facts||[],...a.quantifiedFacts||[]])].filter(Boolean),c=(a.missingFacts||[]).filter(a=>a&&D.has(a));return[`### ${a.title||"正文"}`,b.length?`必须写入的事实(数值必须原样):
|
|
49
|
-
${b.map(a=>`- ${a}`).join("\n")}`:"",c.length
|
|
49
|
+
${b.map(a=>`- ${a}`).join("\n")}`:"",c.length?`材料缺失(禁止编造具体值;可用公共专业知识补做法与要求,补做法不得引入任何数值/规格/型号/参数):${c.join("、")}`:""].filter(Boolean).join("\n")})].join("\n\n");{let a=Math.floor(.6*(0,f.Pc)(n.targetWords||n.minWords,n.evidenceFloorChars,n.evidenceCeilingChars)),c=u.split("\n\n【定向补充检索】")[1];u=(0,f.ks)((0,f.QO)(b,z),{maxChars:a,...r})+(c?`
|
|
50
50
|
|
|
51
51
|
【定向补充检索】${c}`:"")}}}let E=y(j),F=b.sections?.length?`本章小节由生成前规划得到,请完整包含并展开以下小节:
|
|
52
52
|
${b.sections.map(a=>`- ${a}`).join("\n")}`:"本章没有预设小节;请按用户提示词、模板章节、角色要求和绑定材料自然组织正文。",G=function(a,b){let c=C(a,b);return 0===c.length?"":["本章小节篇幅计划(首轮生成应尽量一次达成,避免后续补写):",...c.map(a=>`- ${a.title}:约 ${a.targetWords} 字,至少达到 ${Math.floor(.9*a.targetWords)} 字,并写入与该小节相关的材料事实、适用边界和必要说明。`)].join("\n")}(b,n.targetWords||n.minWords||0),H=(0,l.T4)(b),I=(0,m.Ls)(b),J=(0,m.db)(b),K=(0,s.vN)(b.title,b.sections||[]),L=n.compactProjectContext?n.scopedProjectContext?S(i):R(i):i,M=[(0,g.b_)(g.rd),n.forbidDrawingImages?"图片类材料只作为文本事实依据;禁止插入图片或 Markdown 图片语法。":""].filter(Boolean).join("\n\n"),N=[e?`配置写作主控提示词:
|
|
53
53
|
${e}`:"",`文档模板:${a.name}`,`章节目的:${b.purpose}`,j?`用户要求:${j}`:"",E,n.blueprintDataText||"",n.blueprintSliceText||"",i?`上下文/历史记忆(仅作偏好、历史纠偏和连续性参考;如与知识库证据冲突,以知识库证据为准):
|
|
54
|
-
${L}`:"",n.sharedFactLayerText||"",n.factCoverageContext||"",d.length?`需要特别补足的信息:${d.join("、")}`:"",n.chapterLevelContext||"",w,"请生成可直接导出的 Markdown 章节,要求:","-
|
|
54
|
+
${L}`:"",n.sharedFactLayerText||"",n.factCoverageContext||"",d.length?`需要特别补足的信息:${d.join("、")}`:"",n.chapterLevelContext||"",w,"请生成可直接导出的 Markdown 章节,要求:","- 内容必须遵循用户提示词、模板章节、提示词角色、项目资料包和自动识别的资料类型;不得编造材料未提供的项目专属事实;任何带数值、工程量、规格、型号、品牌、参数的表述必须逐字来自绑定材料、蓝图参数桶或清单事实锁,材料中没有对应值时不得猜测填充、不得以行业惯例或公共知识为由虚构数值;公共知识豁免仅限法律法规名称、标准规范名称与编号(不带本项目数值)以及通用工艺做法表述,可依据现行有效版本直接引用。","- 将材料要点自然融入正文;不要输出系统证据清单、中间分析过程或后台流程话术。",g.KX,`章节标题:${b.title}`,`- 保留章节标题;内容不少于 ${n.minWords||1e3} 字${n.targetWords?`,目标约 ${n.targetWords} 字`:""}${n.maxWords?`,最多不超过 ${n.maxWords} 字`:""}。`,b.sections?.length?"- 必须完整包含已规划小节;不要新增未规划的二级小节。":"- 未预设小节时,不要为了凑结构强行新增小节。",b.tablePlans?.length?"- 本章存在结构化表格规划时,必须输出正式 Markdown 表格;表头必须严格使用规划字段,不得擅自改字段、删字段或增加后台溯源列。":b.tableSections?.length?`- 以下小节可使用表格辅助表达:${b.tableSections.join("、")}。`:"",b.tablePlans?.length?"- 表格字段值必须优先来自项目图谱、可信事实和绑定材料;projectFactOnly 字段不得编造,也不得写任何固定占位话术。":"",F,G,H,I,J,...K,k||"","",u?"绑定材料:":"",u,n.userWriterRules?`
|
|
55
55
|
【用户写作指令——必须严格遵守】
|
|
56
56
|
${n.userWriterRules}`:""].filter(Boolean).join("\n"),O={l0:M.length,l1:(0,h.CX)([e?`配置写作主控提示词:
|
|
57
|
-
${e}`:"",j?`用户要求:${j}`:"",E,n.blueprintDataText||"",n.blueprintSliceText||"","请生成可直接导出的 Markdown 章节,要求:","-
|
|
57
|
+
${e}`:"",j?`用户要求:${j}`:"",E,n.blueprintDataText||"",n.blueprintSliceText||"","请生成可直接导出的 Markdown 章节,要求:","- 内容必须遵循用户提示词、模板章节、提示词角色、项目资料包和自动识别的资料类型;不得编造材料未提供的项目专属事实;任何带数值、工程量、规格、型号、品牌、参数的表述必须逐字来自绑定材料、蓝图参数桶或清单事实锁,材料中没有对应值时不得猜测填充、不得以行业惯例或公共知识为由虚构数值;公共知识豁免仅限法律法规名称、标准规范名称与编号(不带本项目数值)以及通用工艺做法表述,可依据现行有效版本直接引用。","- 将材料要点自然融入正文;不要输出系统证据清单、中间分析过程或后台流程话术。",g.KX]),l2:(0,h.CX)([`文档模板:${a.name}`,`章节目的:${b.purpose}`,i?`上下文/历史记忆(仅作偏好、历史纠偏和连续性参考;如与知识库证据冲突,以知识库证据为准):
|
|
58
58
|
${L}`:"",n.sharedFactLayerText||"",n.factCoverageContext||"",d.length?`需要特别补足的信息:${d.join("、")}`:"",n.chapterLevelContext||"",w]),l3:(0,h.CX)([`章节标题:${b.title}`,`- 保留章节标题;内容不少于 ${n.minWords||1e3} 字${n.targetWords?`,目标约 ${n.targetWords} 字`:""}${n.maxWords?`,最多不超过 ${n.maxWords} 字`:""}。`,b.sections?.length?"- 必须完整包含已规划小节;不要新增未规划的二级小节。":"- 未预设小节时,不要为了凑结构强行新增小节。",b.tablePlans?.length?"- 本章存在结构化表格规划时,必须输出正式 Markdown 表格;表头必须严格使用规划字段,不得擅自改字段、删字段或增加后台溯源列。":b.tableSections?.length?`- 以下小节可使用表格辅助表达:${b.tableSections.join("、")}。`:"",b.tablePlans?.length?"- 表格字段值必须优先来自项目图谱、可信事实和绑定材料;projectFactOnly 字段不得编造,也不得写任何固定占位话术。":"",F,G,H,I,J,...K,k||"",u?"绑定材料:":"",u,n.userWriterRules?`
|
|
59
59
|
【用户写作指令——必须严格遵守】
|
|
60
60
|
${n.userWriterRules}`:""])},P=await (0,h.rI)(M,N,!1,{maxTokens:n.maxTokens,signal:n.signal,diagnostics:n.diagnostics,disableThinkingBoost:n.disableThinkingBoost,contextLayers:O,prefixKey:`writer-block:${b.id}`});if(P&&!(P.length<120))return(0,g.kT)((0,g.FD)(P.startsWith("## ")?P:`## ${b.title}
|
|
@@ -80,11 +80,11 @@ ${p}`:""].filter(Boolean).join("\n\n"),A=[(0,g.b_)("你是专业文档的小节
|
|
|
80
80
|
${a.promptTexts}`:"",a.requirement?`用户要求:${a.requirement}`:"",y(a.requirement),a.blueprintDataText||"",a.blueprintSliceText||"","本章节结构已由系统按模板和提示词锁定;不得删除、重命名、合并或重排当前节标题;每个节下必须自然展开三级小节,三级小节承载正文。",g.KX]),l2:(0,h.CX)([`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.projectContext?`上下文:
|
|
81
81
|
${q}`:"",a.factCoverageContext||"",a.sharedFactLayerText||"",a.roleContext,a.missingFacts.length?`需要特别补足的信息:${a.missingFacts.join("、")}`:""]),l3:(0,h.CX)([`当前二级小节:${a.sectionTitle}`,(0,k.av)(a.chapter.title,a.sectionTitle),a.tablePlanInstruction||"",c.prompt,function(a,b,c){if(!/基坑|危大/u.test(a))return"";let d=[...`${b||""}
|
|
82
82
|
${c||""}`.matchAll(/(?:开挖深度|基坑深度|坡底线|坑底标高)[^。;;\n\d]{0,16}?-?(\d+(?:\.\d+)?)/gu)].map(a=>Math.abs(Number(a[1]))).filter(a=>Number.isFinite(a)&&a>=1&&a<50),e=d.length>0?Math.max(...d):void 0;return["【危大工程判定规则卡】依据住建部《危险性较大的分部分项工程安全管理规定》(住建部令第37号):开挖深度≥3m 的基坑工程属危大工程,必须编制专项施工方案并组织专家论证以外的审核流程;开挖深度≥5m 的基坑工程属超过一定规模的危大工程,专项施工方案必须经专家论证。",void 0!==e?`本工程资料基坑开挖深度为 ${e}m${e>=5?"(属超过一定规模的危大工程,专项方案必须专家论证)":e>=3?"(属危大工程,必须编制专项施工方案)":"(未达危大工程判定阈值,仍须按一般土方工程管控)"}`:"资料中暂未锁定本工程基坑开挖深度数值:不得编造深度数值,必须从绑定证据(基坑支护设计图/地质勘察报告)锁定实际深度后落位危大分级结论。","本节基坑内容必须同时写明:①本工程实际开挖深度数值,②对应的危大分级判定结论(危大工程/超过一定规模的危大工程+专家论证)与管控要求,不得只写判定规则不落地本项目深度与分级。\n本节若涉及基坑支护形式与做法,必须写明具体支护参数并与资料支护形式一致:土钉墙写明土钉规格(钢管Φ及壁厚)、长度、竖向/水平间距、喷射混凝土面层厚度与钢筋网规格;放坡开挖写明放坡坡率(如1:0.75)与坡面防护做法;禁止「按设计坡率」「放坡或支护」类参数留白或两可表述。"].join("\n")}(a.sectionTitle,a.projectContext,c.prompt),...(0,s.zC)(a.sectionTitle),w,x,`请只生成当前节内容,使用“### ${a.sectionTitle}”作为节标题;正文必须下沉到若干“#### 三级小节标题”下面,不得在 ### 标题后直接写大段正文。目标约 ${a.targetWords} 字${a.maxWords?`,最多不超过 ${a.maxWords} 字`:""}。`,a.qualityFeedback?`上轮小节未通过质量检查,必须修正:${a.qualityFeedback}`:"",p?`绑定材料:
|
|
83
|
-
${p}`:""])},C=()=>(0,h.rI)(A,z,!1,{maxTokens:Math.min(8192,Math.max(2800,Math.ceil(2.6*a.targetWords))),temperature
|
|
83
|
+
${p}`:""])},C=()=>(0,h.rI)(A,z,!1,{maxTokens:Math.min(8192,Math.max(2800,Math.ceil(2.6*a.targetWords))),temperature:0,signal:a.signal,diagnostics:a.diagnostics,contextLayers:B,prefixKey:`writer-section:${a.chapter.id}`}),D=a.diagnostics?await (0,j.X6)(a.diagnostics,`section-draft:${a.chapter.id}:${a.sectionTitle}`,C):await C();if(!D||D.length<80)return;let F=(0,g.kT)((0,g.FD)(D.startsWith("### ")?D:`### ${a.sectionTitle}
|
|
84
84
|
|
|
85
85
|
${D}`,a.forbidDrawingImages)).replace(/^##\s+.*\n+/u,"").trim(),G=(0,o.ap)(a.sectionTitle),H=Math.min(Math.max(Math.floor(.7*a.targetWords),G),Math.max(500,a.targetWords)),I=(0,o.eK)(a.sectionTitle,F),J=F,K=s.Yp.test(a.sectionTitle)||s.gG.test(a.sectionTitle);if(K){let b=(0,o.YK)((0,o.DD)(J));b&&(I||=b);let c=(0,o.I6)(J);c!==J&&(J=c,I=(0,o.eK)(a.sectionTitle,J))}if(I&&/项目主要施工内容/u.test(a.sectionTitle)){let b=(0,o.g6)(F);b===F||(0,o.eK)(a.sectionTitle,b)||(I="",J=b)}if(I&&a.allowLenientStructureGate&&K){let b=(0,o.sE)(a.sectionTitle,J),c=(b.match(/^####\s+/gmu)||[]).length,d=b.split(/^####\s+/gmu).slice(1).map(a=>a.trim()).filter(Boolean),f=d.length>0&&d.every(a=>(0,i._R)(a)),g=(0,o.y7)((0,o.DD)(b));c>=3&&f&&!g&&(0,e.V7)(J)>=H&&(I="")}if(I){a.diagnostics&&(a.diagnostics.llm.lastError=`${I}:${a.chapter.title} / ${a.sectionTitle}`);return}if((0,o.zJ)(a.sectionTitle)&&(0,e.V7)(J)<H){a.diagnostics&&(a.diagnostics.llm.lastError=`section writer 正文不足:${a.chapter.title} / ${a.sectionTitle} / ${(0,e.V7)(J)}/${H}字`);return}let L=/项目主要施工内容/u.test(a.sectionTitle)?(0,o.h$)(J):J;return(0,o.ev)(a.sectionTitle,L)}async function U(a){let b=((0,o.hf)(a.sectionTitle)?[...E(a.sectionTitle,a.chapter,a.evidence),...a.evidence]:E(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=await P(a.sectionTitle,b),d=b.map((a,b)=>`${b+1}. ${(0,f.T3)((0,f.eE)(a.content),900)}`).filter(Boolean).join("\n"),e=a.diagnostics?.llm.lastError,i=[(0,g.b_)("你是专业文档节内小节 Writer。只生成一个指定节,不生成整章。\n\n"+g.rd+"\n\n"+g.KX),"必须直接输出 Markdown:先输出指定 ### 节标题,再在其下生成若干 #### 三级小节承载正文;不得在 ### 后直接写大段正文;不得解释过程,不得输出资料不足、待确认、兜底等话术。"].join("\n\n"),j={l0:i.length,l1:(0,h.CX)([a.requirement?`用户要求:${a.requirement}`:"","禁止写“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列话术;直接写项目事实、施工内容、控制措施和验收要求。"]),l2:(0,h.CX)([`章节标题:${a.chapter.title}`]),l3:(0,h.CX)([`指定节标题:### ${a.sectionTitle}`,(0,o.Uz)(a.sectionTitle),(0,k.av)(a.chapter.title,a.sectionTitle),...(0,s.zC)(a.sectionTitle),a.tablePlanInstruction||"",c.prompt,`目标正文约 ${a.targetWords} 字,最多 ${a.maxWords||Math.ceil(1.18*a.targetWords)} 字。正文必须分布在 #### 三级小节下,包含对象范围、执行措施、检查验收和资料闭环;没有精确数值时写正式过程控制,不编造数值。`,(0,o.hf)(a.sectionTitle)?"该小节属于施工组织设计通用管理小节:允许基于项目基础事实、招标范围、工期质量目标、现场组织要求和施工总承包管理逻辑形成正式措施,但不得编造具体姓名、品牌、型号、金额或不存在的日期。":"",a.qualityFeedback||"",d?`压缩证据:
|
|
86
86
|
${d}`:""])},l=await (0,h.rI)(i,[`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.blueprintDataText||"",a.blueprintSliceText||"","禁止写“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列话术;直接写项目事实、施工内容、控制措施和验收要求。",`指定节标题:### ${a.sectionTitle}`,(0,o.Uz)(a.sectionTitle),(0,k.av)(a.chapter.title,a.sectionTitle),...(0,s.zC)(a.sectionTitle),a.tablePlanInstruction||"",c.prompt,`目标正文约 ${a.targetWords} 字,最多 ${a.maxWords||Math.ceil(1.18*a.targetWords)} 字。正文必须分布在 #### 三级小节下,包含对象范围、执行措施、检查验收和资料闭环;没有精确数值时写正式过程控制,不编造数值。`,(0,o.hf)(a.sectionTitle)?"该小节属于施工组织设计通用管理小节:允许基于项目基础事实、招标范围、工期质量目标、现场组织要求和施工总承包管理逻辑形成正式措施,但不得编造具体姓名、品牌、型号、金额或不存在的日期。":"",a.qualityFeedback||"",d?`压缩证据:
|
|
87
|
-
${d}`:""].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(6e3,Math.max(3e3,Math.ceil(2.4*a.targetWords))),temperature
|
|
87
|
+
${d}`:""].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(6e3,Math.max(3e3,Math.ceil(2.4*a.targetWords))),temperature:0,signal:a.signal,diagnostics:a.diagnostics,contextLayers:j,prefixKey:`writer-focused:${a.chapter.id}`});if(!l||l.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 m=(0,g.kT)((0,g.FD)(l.startsWith("### ")?l:`### ${a.sectionTitle}
|
|
88
88
|
|
|
89
89
|
${l}`,a.forbidDrawingImages)),n=(0,o.DD)(m);if(n.length<40){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 正文过短:${a.chapter.title} / ${a.sectionTitle} / ${n.length}字`);return}let p=(0,o.eK)(a.sectionTitle,m);if(p){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer ${p}:${a.chapter.title} / ${a.sectionTitle}`);return}return(0,o.ev)(a.sectionTitle,m.replace(/^##\s+.*\n+/u,"").trim())}async function V(a){let b=(0,e.V7)(a.currentContent),c=(0,o.ap)(a.sectionTitle),d=Math.max(a.targetWords,c)-b,i=E(a.sectionTitle,a.chapter,a.evidence),j=await P(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),1e3,1e3),requiredFacts:a.chapter.requiredFacts,skipT0:!!a.sharedFactLayerText,skipT2Catalog:!0,rankBoost:a.sectionRankBoost,onlyRankBoosted:!!a.sectionRankBoost,diagnostics:a.diagnostics}),m=Math.max(500,d),n=[(0,g.b_)("你是专业文档小节补写专家。只做补写,不重写全文。\n\n"+g.rd+"\n\n"+g.KX),"必须保留已有正文中的事实、参数、编号和结构;只补充缺口段落,不删除、不压缩已有内容。"].filter(Boolean).join("\n\n"),p={l0:n.length,l1:(0,h.CX)([a.promptTexts?`配置写作主控提示词:
|
|
90
90
|
${a.promptTexts}`:"",a.requirement?`用户要求:${a.requirement}`:"",`当前小节约 ${b} 字,目标约 ${a.targetWords} 字,本轮补充约 ${m} 字。`,"请输出可直接追加或插入到本小节的补充段落;不要重复小节标题,不要解释生成过程;优先使用绑定资料中的事实和量化参数,不得输出“该小节围绕”等模板化占位句。"]),l2:(0,h.CX)([`章节标题:${a.chapter.title}`,a.factCoverageContext||"",(0,k.av)(a.chapter.title,a.sectionTitle)]),l3:(0,h.CX)([`当前小节:${a.sectionTitle}`,j.prompt,l?`绑定材料:
|
|
@@ -92,7 +92,7 @@ ${l}`:"",`已有小节正文:
|
|
|
92
92
|
${(0,o.DD)(a.currentContent).slice(0,12e3)}`])},q=await (0,h.rI)(n,[a.promptTexts?`配置写作主控提示词:
|
|
93
93
|
${a.promptTexts}`:"",`章节标题:${a.chapter.title}`,`当前小节:${a.sectionTitle}`,a.requirement?`用户要求:${a.requirement}`:"",a.blueprintDataText||"",a.blueprintSliceText||"",a.factCoverageContext||"",(0,k.av)(a.chapter.title,a.sectionTitle),j.prompt,`当前小节约 ${b} 字,目标约 ${a.targetWords} 字,本轮补充约 ${m} 字。`,"请输出可直接追加或插入到本小节的补充段落;不要重复小节标题,不要解释生成过程;优先使用绑定资料中的事实和量化参数,不得输出“该小节围绕”等模板化占位句。",l?`绑定材料:
|
|
94
94
|
${l}`:"",`已有小节正文:
|
|
95
|
-
${(0,o.DD)(a.currentContent).slice(0,12e3)}`].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(8192,Math.max(2800,Math.ceil(2.6*m))),temperature
|
|
95
|
+
${(0,o.DD)(a.currentContent).slice(0,12e3)}`].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(8192,Math.max(2800,Math.ceil(2.6*m))),temperature:0,signal:a.signal,diagnostics:a.diagnostics,contextLayers:p,prefixKey:`writer-supplement:${a.chapter.id}`}),r=(0,g.kT)((0,g.FD)(q||"",a.forbidDrawingImages)).replace(/^#{3,4}\s+.*\n+/u,"").trim();return r?`${a.currentContent.trim()}
|
|
96
96
|
|
|
97
97
|
${r}`:a.currentContent}async function W(a){if((0,o.hf)(a.sectionTitle)){let b=await U({...a,targetWords:a.targetWords,maxWords:Math.ceil(1.22*a.targetWords),qualityFeedback:`本小节使用 focused writer 优先成稿。必须直接输出“### ${a.sectionTitle}”及正式正文。`}).catch(b=>{a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 异常:${a.chapter.title} / ${a.sectionTitle} / ${b instanceof Error?b.message:String(b)}`)});if(b)return(0,g.kT)((0,g.FD)(b,a.forbidDrawingImages))}let b=function(a,b){if(/项目主要施工内容/u.test(a))return[{sectionTitle:a,taskTitle:a,targetWords:Math.max(b,2200),index:1,total:1}];let c=(0,o.zJ)(a)?760:Math.max(1400,Math.floor((0,t.z)().writingTaskMaxWords??2800)),d=(0,o.zJ)(a)?Math.max(3,Math.ceil(b/c)):b>1.5*c?Math.ceil(b/c):1,e=Math.max(800,Math.ceil(b/d));return d<=1?[{sectionTitle:a,taskTitle:a,targetWords:b,index:1,total:1}]:Array.from({length:d},(b,c)=>({sectionTitle:a,taskTitle:function(a,b,c){if(/项目特点.*重点.*难点|重点.*难点.*分析/u.test(a))return["项目特点与基础事实","施工重点识别","施工难点成因与影响","应对措施与责任闭环","重点难点与施工内容对应关系"][b%5];if(/项目主要施工内容/u.test(a))return["专业工程识别与作业对象","专业工程工序顺序","专业工程施工方法与工艺参数","工程量参数与资源穿插","验收检测与资料闭环"][b%5];if(/主要分部分项工程施工方案|主要施工方法/u.test(a))return["当前项目分部分项对象","主要工艺流程与施工顺序","材料设备与参数控制","质量安全控制点","验收移交与资料闭环"][b%5];let d=a.toLowerCase(),e=/资源|材料|设备|人材机/u.test(a)?["资源配置依据","材料设备规格与数量","进场组织与保管要求","使用调配与过程核验","验收记录与动态调整"]:/施工|工艺|技术|安装|土建|结构|给排水|电气/u.test(a)||/method|technical/u.test(d)?["施工准备与技术依据","主要工艺流程","材料设备与参数控制","质量验收要点","成品保护与问题处置"]:/安全|文明|危大|风险/u.test(a)?["风险识别与控制边界","防护设施与作业条件","人员设备安全管理","检查频次与整改闭环","应急响应与资料留存"]:/质量|验收|标准/u.test(a)?["质量目标与验收依据","过程控制点","材料设备复核","检验批与验收资料","问题整改与成品保护"]:["资料依据与适用范围","对象范围与关键参数","实施方法与组织安排","质量安全控制要求","检查验收与闭环管理"];return c<=1?a:`${a}:${e[b%e.length]}`}(a,c,d),targetWords:e,index:c+1,total:d}))}(a.sectionTitle,a.targetWords),c=Array(b.length),d=async b=>{let c,d;(0,i.Te)(a.signal);let e=b.total>1?2:3;for(let f=0;f<e&&!c;f+=1){let g=b.targetWords;try{c=await T({...a,sectionTitle:b.sectionTitle,targetWords:g,maxWords:Math.ceil(1.18*g),qualityFeedback:[b.total>1?`这是首轮生成的主题任务 ${b.index}/${b.total},只聚焦“${b.taskTitle}”。不得重复同小节其他主题的通用表述;优先写入与本主题相关的资料事实、规格、数量、标准、检查要求和执行动作。`:a.qualityFeedback,f>0?`上一轮未生成有效正文${d?`(被拒原因:${d})`:""}。本轮必须直接输出“### ${a.sectionTitle}”及正式正文,逐条修正被拒原因,优先完成可审查、可落位事实的核心内容。`:""].filter(Boolean).join("\n")})}catch{c=void 0}if(c||(d=a.diagnostics?.llm.lastError),!c&&f===e-1)try{c=await U({...a,sectionTitle:b.sectionTitle,targetWords:g,maxWords:Math.ceil(1.18*g),qualityFeedback:`前序 Writer 未完成${d?`(被拒原因:${d})`:""}。本轮使用轻量定向 Writer,只完成“${a.sectionTitle}”正式正文,逐条修正被拒原因;保留已有正确内容,只补缺失要素段(作业对象与工程量/工序顺序/施工方法,缺哪项补哪项)。`})}catch(d){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 后置异常:${a.chapter.title} / ${b.sectionTitle} / ${d instanceof Error?d.message:String(d)}`),c=void 0}}return c?(0,o.DD)(c):void 0},f=(0,t.z)().writingTaskConcurrency||2,h=Math.max(1,Math.min(b.length,2,Number.isFinite(f)?Math.floor(f):2));for(let e=0;e<b.length;e+=h){(0,i.Te)(a.signal);let f=b.slice(e,e+h);(await Promise.all(f.map(a=>d(a)))).forEach((a,b)=>{c[e+b]=a})}let j=c.filter(a=>!!a);if(0===j.length){a.diagnostics&&!a.diagnostics.llm.lastError&&(a.diagnostics.llm.lastError=`task writer 未产出有效正文:${a.chapter.title} / ${a.sectionTitle}`);return}let k=`### ${a.sectionTitle}
|
|
98
98
|
|