@customize-agent/server 4.18.5 → 4.18.6
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/208.js +1 -1
- package/.next/server/chunks/5284.js +7 -7
- package/.next/server/chunks/8865.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/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages/template-references.html +1 -1
- package/.next/server/pages-manifest.json +29 -29
- package/.next/static/chunks/{224-0415408fff1d1c8b.js → 224-790cf01fcf6820ee.js} +1 -1
- package/.next/static/chunks/260-244c94eacd903620.js +1 -0
- package/.next/static/chunks/{289-fc1b25371e004552.js → 289-42781fb699646699.js} +1 -1
- package/.next/static/chunks/788-e98701da4d6ca319.js +1 -0
- package/.next/static/chunks/pages/documents-7e063a1115c053eb.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-98ec72061cdb64d3.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +1 -0
- package/.next/static/chunks/pages/prompt-839287c514595765.js +1 -0
- package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +1 -0
- package/.next/static/{ydAAx9JNRPdo0Wsrs-Rqo → mJGget74xAKOGvhgTaIXm}/_buildManifest.js +1 -1
- package/package.json +1 -1
- package/.next/static/chunks/260-580088826d643423.js +0 -1
- package/.next/static/chunks/788-dca0d550ad6bd8b2.js +0 -1
- package/.next/static/chunks/pages/documents-66057ee3c8ffff6d.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-33782c4b41f33750.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +0 -1
- package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +0 -1
- package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +0 -1
- /package/.next/static/{ydAAx9JNRPdo0Wsrs-Rqo → mJGget74xAKOGvhgTaIXm}/_ssgManifest.js +0 -0
|
@@ -21,7 +21,7 @@ ${j.join("\n")}`,...d].filter(Boolean).join("\n")}var P=c(35882),Q=c(23021),R=c(
|
|
|
21
21
|
${n}
|
|
22
22
|
|
|
23
23
|
资料:
|
|
24
|
-
${l}`,{signal:e,maxTokens:1800,temperature:.1,diagnostics:f});return((0,z.Te)(e),o?.facts?.length)?{facts:o.facts.filter(a=>a.key&&a.value).map(a=>{let b=m.find(b=>b.id===a.fieldId||b.name===a.fieldName||b.name===a.key);return{key:b?.name||a.key,fieldId:b?.id||a.fieldId,fieldName:b?.name||a.fieldName,value:(0,z.lG)(a.value),sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}}}),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 按动态 schema 抽取 ${o.facts.length} 条事实`}]}:{facts:[],stages:g}}let ag=["投标保证金的金额、收款账户名称、开户行与账号","电子投标文件加密方式与解密方式","开标时间、开标地点与开标程序","评标委员会组成与评标办法","招标人联系人、联系电话、邮箱与地址","投标文件递交方式与递交截止时间","空白表格填写说明与上传下载指引","公共资源交易平台监督管理部门"],ah=/签章|盖章|联系人|联系电话|电话|邮箱|解密方式|开标时间|开标地点|评标办法|评标委员会|投标保证金|保证金账户|电子交易系统|空白|填写|上传|下载|递交方式|递交截止|公共资源交易监督管理|监管部门|开评标程序|采购范围|是否|符合/u;async function ai(a,b,c=l,d){let e=(b?.factFields.map(a=>a.name)||[...new Set(a.map(a=>a.fieldName||a.key))]).filter(a=>(function(a,b){let c=n(b,a);return c?"single"===c.cardinality&&"ignore"!==c.conflictPolicy&&"allow_multiple"!==c.conflictPolicy:/项目名称|工程名称|招标人|建设地点|建筑面积|结构形式|层数|工期|质量标准|合同价格形式|绿色建筑等级|投标有效期|质保期|劳动力高峰|装配率|支护形式|创优奖惩/u.test(a)})(a,c)),f=[...new Set(a.map(a=>(0,z.lG)(a.value).trim()).filter(a=>ah.test(a)))],g=await (0,R.Mv)(f,ag,d),h=a=>ag.some(b=>g(a,b)>=.6),i=[];for(let b of e){let d=a.filter(a=>a.key===b||a.fieldName===b||n(c,a.fieldName||a.key)?.name===b),e=new Map;for(let a of d){let b=function(a,b,c){let d=(0,z.lG)(a).trim();if(p(b,d)||o(b,d)||(d.match(/�|/gu)?.length||0)>=2||Array.from(d).some(a=>{let b=a.charCodeAt(0);return 65533===b||b<32&&9!==b&&10!==b&&13!==b})||/\|/u.test(d)||/^#+\s*/u.test(d)||/见(?:招标公告|投标人须知|前附表|本项目|补疑)|资料参数行摘要/u.test(d))return"";let e=d.match(/\d+\s*日历天/u)?.[0]?.replace(/\s+/gu,"");if(e&&/工期|日历天|开工日期|竣工/u.test(d))return e;let f=(0,W.K3)((0,z.lG)(d));return!f||f.length>80||!/[\d年月日%]|合格|一星|二星|三星|总价合同|单价合同|承台|框架|装配式/u.test(d)||ah.test(d)&&c?.(d)?"":f}(a.value,c,h);b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].slice(0,4).map(a=>`${(0,z.lG)(a[0].value).slice(0,120)}(${[...new Set(a.map(a=>a.sourceFile))].slice(0,3).join("、")})`).join(" vs ");i.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return i.slice(0,8)}function aj(a){return(0,z.lG)(a).replace(/\s*[##]{1,6}\s*/gu,"")}function ak(a){return(0,z.lG)(a).replace(/[\u00A0\u2002-\u200B\u3000]/gu," ").replace(/([\p{Script=Han}])\s+([\p{Script=Han}])/gu,"$1$2").replace(/(\d)\s+(日历天|天|个月|月|年|万元|元|㎡|平方米|米|m|mm|MPa|kPa|%)/giu,"$1$2").replace(/(合同|投资|工程|项目)\s*估\s*算\s*(?:价格|价)/gu,"$1估算价").replace(/计划\s*工\s*期/gu,"计划工期").replace(/合同\s*工\s*期/gu,"合同工期").replace(/质量\s*标\s*准/gu,"质量标准").replace(/建设\s*地\s*点/gu,"建设地点").replace(/建设\s*规\s*模/gu,"建设规模").replace(/招标\s*范\s*围/gu,"招标范围").replace(/最高\s*投\s*标\s*限\s*价/gu,"最高投标限价").replace(/招标\s*控\s*制\s*价/gu,"招标控制价").replace(/[::]\s*/gu,":").replace(/\s+/gu," ").trim()}let al=[{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 am(a,b){let c=ak((0,z.lG)(b));return!(!a||!c||c.length>260||/###|第\s*\d+\s*页|共\s*\d+\s*页|律师代理费|投标文件的编制|备选投标方案|投标将被否决|投标人提供|投标有效期|电子交易系统|公共资源交易监督管理部门|中标候选|评标委员会|实质性内容作出响应/u.test(c)||/签章|盖章|联系人|联系电话|电话|邮箱|解密|开标|评标|保证金|交易系统|空白|填写|上传|下载|递交/u.test(c))&&("schedule_requirement"===a?c.length<=90&&/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年)/u.test(c):"quality_standard"===a?c.length<=40&&/合格|优良|一次性验收|国家.*验收|达到/u.test(c)&&!/工期|投标|技术标准|\d[..、]/u.test(c):"owner"===a?c.length>=4&&c.length<=80&&/公司|局|委员会|中心|处|院|所|校|集团|有限|股份|责任|管理/u.test(c)&&!/将报|监督管理部门|投标人|中标|负责解释|见招标|详见|空白|填写/u.test(c):"project_location"===a?c.length<=120&&!/见招标公告|详见|投标/u.test(c):"project_scope"===a?c.length<=220&&!/^[((]\s*\d+[))]/u.test(c)&&!/具备.{0,24}(?:证书|考核合格|安全生产考核)/u.test(c)&&!/^见(?:招标|投标人|前附)/u.test(c):"project_code"===a?/^[A-Za-z0-9\-_.()()]+$/u.test(c):"project_investment_estimate"===a?c.length<=100&&/\d+(?:\.\d+)?\s*(?:万元|元)/u.test(c):"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 an=/\||第\s*\d+\s*页|共\s*\d+\s*页|[##]{1,6}|资料参数行摘要/u,ao=/规模|范围|工期|周期|project_scope|project_scale/iu,ap=/^[A-Za-z0-9\-_.()()]+$/u,aq=/(?:招标项目编号|项目编号|工程编号|标段编号|合同编号|编号)[::为是]*([A-Za-z0-9][A-Za-z0-9\-_.()()]{3,79})/gu;function ar(a,b,c){let d,e=[];for(let f of a){let a=(0,z.lG)(f.value).trim();if(!a)continue;let g=an.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&&!ap.test(h)||h.length>120&&!ao.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 aj((0,z.lG)(c.content)).replace(/\s+/gu,"").matchAll(aq)){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 as(a){let b={localFacts:ab(function(a,b,c){let d=(0,u.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,u.I2)(b,a))continue;let d=b.content.match(c),e=d?.[1]?.trim();if(!e)continue;e=aj(e).replace(/\s+/gu,"");let h=f.filter(b=>b!==a.name).map(a=>e.indexOf(a)).filter(a=>a>0);h.length>0&&(e=e.slice(0,Math.min(...h))),!e||!(e.length<=220)||o(l,e)||p(l,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:ab(function(a){let b=[],c=new Set;for(let d of a)for(let a of aj((0,z.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=ak(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 al){let f=e.pattern.exec(a),g=f?.[1]?.trim();if(!g||!am(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:ab(function(a,b=l){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,z.lG)(e.content).replace(/\s+/gu," ");for(let a of f.matchAll(X._W)){let g=a[0].trim();if(!g||o(b,g))continue;let h=Math.max(0,(a.index||0)-40),i=Math.min(f.length,(a.index||0)+g.length+40),j=f.slice(h,i);if(p(b,j)||q(b,j))continue;let k=`${e.filePath}:${g}`;d.has(k)||(d.add(k),c.push({key:"精确参数",fieldName:"技术参数",fieldId:"technical_parameter",value:g,sourceFile:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",confidence:Math.max(.7,e.score||.7),sourceRef:{filePath:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",sectionTitle:e.sectionTitle}}))}}return c.slice(0,240)}(a.evidence,a.profile||l),a.scope),structuredTables:ab(function(a){let b=[],c=new Set;for(let d of a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType)){if(c.has(d.filePath))continue;c.add(d.filePath);let a=(0,g.aY)(),f=(0,g.NW)(a),h=e.isAbsolute(d.filePath)?d.filePath:T.existsSync(e.join(f,d.filePath))?e.join(f,d.filePath):e.join(a,d.filePath),i=e.extname(d.filePath).toLowerCase();if(T.existsSync(h)&&[".xlsx",".xls",".csv"].includes(i))try{b.push(...function(a,b){if("0"===process.env.DOCUMENT_TABLE_PARSE_CACHE)return ae(a,b);let c=T.statSync(a),d=`${a}:${b.roleId||"table"}`,e=ad.get(d);if(e&&e.mtimeMs===c.mtimeMs&&e.size===c.size)return e.tables;let f=ae(a,b);return ad.size>500&&ad.clear(),ad.set(d,{mtimeMs:c.mtimeMs,size:c.size,tables:f}),f}(h,d));continue}catch{}let j=d.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let k=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",l=j.map(a=>a.split(k).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);l.length<2||b.push({tableType:d.roleId||"table",headers:l[0],rows:l.slice(1),sourceFile:d.filePath,sourceRange:d.sectionTitle})}return b}(a.evidence),a.scope)},c={truncated:0,dropped:0,repaired:0};if("0"===process.env.DOCUMENT_FACT_SANITIZE)return{...b,factSanitize:c};if(b.localFacts=ar(b.localFacts,a.evidence,c),b.projectBasicFacts=ar(b.projectBasicFacts,a.evidence,c),b.preciseFacts=ar(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 at(a){return`${a.key} ${a.fieldName||""} ${a.value} ${a.roleId} ${a.processingType||""} ${a.sourceFile}`}function au(a){return/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价/u.test(a)}function av(a){let b=at(a);return!au(b)&&/投标保证金|发票类型|开标时间|公共资源交易监督管理|不良行为记录|投诉举报|资质投诉|投标承诺|违约金|中标服务费|交易平台|保证金账户|投标有效期|报价明细|投标报价|单价|合价|税率|增值税|利润|结算/u.test(b)}function aw(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim()}function ax(a,b=[]){return[...new Set([a,...b,...a.split(/[\s、,。;;::/\\_-]+/u)].map(aw).filter(a=>a.length>=2))]}function ay(a,b,c){var d,e;let f=aw(c.label);if(!f||o(b,f)||p(b,f))return;let g=c.id||(d=c.source,e=c.fieldId,`${d}:${e||f}`.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-|-$/gu,"")||`${d}-${Math.random().toString(36).slice(2,8)}`),h=c.queries?.length?c.queries.map(aw).filter(Boolean):ax(f),i=a.find(a=>a.id===g||a.label===f);if(i){i.required=i.required||c.required,i.queries=[...new Set([...i.queries,...h])];return}a.push({...c,id:g,label:f,queries:h})}function az(a,b,c,d,e,f=[]){"do_not_use"!==c.usagePolicy&&"diagnostic_only"!==c.usagePolicy&&"forbidden"!==c.derivationPolicy&&ay(a,b,{label:c.name,category:c.category,required:e,source:d,fieldId:c.id,queries:ax(c.name,[...c.aliases,...f])})}function aA(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 aB(a){let b=a.profile||l,c=a.excludedEvidenceKeys,d=aA([...a.factsModel.factIndex.parameterFacts,...a.factsModel.factIndex.tableFacts,...a.factsModel.factIndex.drawingFacts,...a.factsModel.factIndex.billFacts,...a.factsModel.factIndex.reliableFacts]);return a.needs.map(e=>{let f=aA(d.filter(a=>(function(a,b,c){let d=at(a);if(av(a)||o(c,d)||p(c,d))return!1;if(b.fieldId&&a.fieldId===b.fieldId||n(c,a.fieldName||a.key)?.id===b.fieldId||b.queries.filter(a=>a.length>=2).some(a=>d.includes(a)))return!0;let e=n(c,b.label);return!!(e&&[e.name,...e.aliases].some(a=>a.length>=2&&d.includes(a)))})(a,e,b))).sort((a,b)=>(b.confidence||0)-(a.confidence||0)),g=(a.evidence||[]).filter(a=>!c?.has((0,S.hM)(a))&&function(a,b,c){let d=`${a.filePath} ${a.roleId||""} ${a.processingType||""} ${a.sectionTitle||""} ${a.content}`;return!(o(c,d)||p(c,d))&&b.queries.some(a=>a.length>=2&&d.includes(a))}(a,e,b)),h=Math.max(0,...f.map(a=>a.confidence||0)),i=0===f.length&&0===g.length?"missing":h>0&&h<.58?"low_confidence":"satisfied";return{need:e,facts:f,evidence:g,status:i}})}function aC(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim().slice(0,220)}async function aD(a,b=[],c=[],d,e=l){let f=b=>a.filter(a=>b.some(b=>`${a.key} ${a.fieldName||""}`.includes(b))),g=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b)),h=a.filter(a=>{let b=`${a.key} ${a.fieldName||""} ${a.value}`;return X.sv.test(b)&&(!o(e,b)||au(b))&&!p(e,b)}),i=a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType||/bill|boq|table|sheet|data|表格|列表|明细|数据/u.test(`${a.roleId} ${a.sourceFile}`)),j=(function(a){let b=[];for(let c of a){let a=`${c.key||""}${c.fieldName||""}${c.fieldId||""}`,d=(0,z.lG)(c.value);if(/建设规模/u.test(a)&&/占地|用地/u.test(d)&&/建筑面积/u.test(d)){let a=d.search(/(?:总)?占地/u),e=d.search(/(?:单体)?总?建筑面积/u);if(a>=0&&e>a){let f=d.slice(a,e).replace(/^[,,、\s]+/u,"").replace(/[,,、\s]+$/u,"").trim(),g=d.slice(e).trim();if(f&&g){b.push({...c,key:"总占地面积",fieldName:"总占地面积",fieldId:void 0,value:f}),b.push({...c,key:"单体建筑面积",fieldName:"单体建筑面积",value:g});continue}}}b.push(c)}return b})(a.filter(a=>/项目名称|工程名称|项目编号|招标项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|计划工期|合同工期|周期要求|质量标准|合同估算|投资估算|最高投标限价|招标控制价/u.test(`${a.key||""}${a.fieldName||""}${a.fieldId||""}`))).slice(0,80),k=function(a,b,c,d){let e=a.filter(a=>p(d,at(a))||q(d,at(a))),f=a.filter(a=>{let b=at(a);return a.confidence>=.58&&!av(a)&&!o(d,b)&&!p(d,b)&&!q(d,b)}),g=[...b.filter(a=>!av(a)),...f.filter(a=>X.sv.test(at(a)))].filter((a,b,c)=>c.findIndex(b=>b.sourceFile===a.sourceFile&&b.value===a.value&&b.key===a.key)===b).slice(0,360),h=f.filter(a=>"table"===a.processingType||/table|sheet|表格|清单|明细|数据|参数行摘要/u.test(at(a))),i=f.filter(a=>"drawing"===a.processingType||/drawing|draw|dwg|图纸|设计|尺寸|标高|管径|做法/u.test(at(a)));return{reliableFacts:f.slice(0,500),parameterFacts:g,tableFacts:h.slice(0,240),drawingFacts:i.slice(0,240),billFacts:c.slice(0,240),diagnostics:e.slice(0,120)}}(a,h,i,e);return{project:j,schedule:f(["工期","开工","竣工","节点","周期"]),quality:f(["质量","验收"]),safety:f(["安全","风险"]),resources:f(["劳动力","材料","机械","设备","资源"]),tables:b,drawings:g("drawing"),bills:i,preciseFacts:h,rules:g("rule"),specifications:g("specification"),schemaFacts:function(a,b){let c={};for(let d of b?.factFields||[])c[d.id]=a.filter(a=>a.fieldId===d.id||a.key===d.name||a.fieldName===d.name);return c}(a,d),factIndex:k,missing:[...new Set(c)],conflicts:await ai(a,d,e)}}function aE(a=!1){return{awardObjectives:[],specialQualityStandards:[],awardClauses:[],systematicBenchmarks:[],frontScheduleClauses:[],dateFabricationProhibited:!1,prohibitionNotes:[],extracted:a}}let aF={type:"object",required:["awardObjectives","specialQualityStandards","awardClauses","systematicBenchmarks","prohibitionNotes"],properties:{awardObjectives:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},specialQualityStandards:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},awardClauses:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},greenBuildingGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},smartSiteGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},assemblyRate:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},systematicBenchmarks:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},frontScheduleClauses:{type:"array",maxItems:20,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},dateFabricationProhibited:{type:"boolean"},prohibitionNotes:{type:"array",maxItems:12,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}}}};function aG(a){if(a?.text&&!(a.text.trim().length<2))return{text:a.text.trim(),coreTerms:(a.coreTerms||[]).map(a=>a.trim()).filter(a=>a.length>=2&&a.length<=16).slice(0,4),source:a.source?.trim()||void 0}}function aH(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){let a=aG(d);if(!a)continue;let e=a.text;b.has(e)||(b.add(e),c.push(a))}return c}async function aI(a,b={}){let c,d=aE(!1);if(!a||0===a.length)return d;let e=[...a].sort((a,b)=>{let c=`${a.sectionTitle||""}
|
|
24
|
+
${l}`,{signal:e,maxTokens:1800,temperature:.1,diagnostics:f});return((0,z.Te)(e),o?.facts?.length)?{facts:o.facts.filter(a=>a.key&&a.value).map(a=>{let b=m.find(b=>b.id===a.fieldId||b.name===a.fieldName||b.name===a.key);return{key:b?.name||a.key,fieldId:b?.id||a.fieldId,fieldName:b?.name||a.fieldName,value:(0,z.lG)(a.value),sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}}}),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 按动态 schema 抽取 ${o.facts.length} 条事实`}]}:{facts:[],stages:g}}let ag=["投标保证金的金额、收款账户名称、开户行与账号","电子投标文件加密方式与解密方式","开标时间、开标地点与开标程序","评标委员会组成与评标办法","招标人联系人、联系电话、邮箱与地址","投标文件递交方式与递交截止时间","空白表格填写说明与上传下载指引","公共资源交易平台监督管理部门"],ah=/签章|盖章|联系人|联系电话|电话|邮箱|解密方式|开标时间|开标地点|评标办法|评标委员会|投标保证金|保证金账户|电子交易系统|空白|填写|上传|下载|递交方式|递交截止|公共资源交易监督管理|监管部门|开评标程序|采购范围|是否|符合/u;async function ai(a,b,c=l,d){let e=(b?.factFields.map(a=>a.name)||[...new Set(a.map(a=>a.fieldName||a.key))]).filter(a=>(function(a,b){let c=n(b,a);return c?"single"===c.cardinality&&"ignore"!==c.conflictPolicy&&"allow_multiple"!==c.conflictPolicy:/项目名称|工程名称|招标人|建设地点|建筑面积|结构形式|层数|工期|质量标准|合同价格形式|绿色建筑等级|投标有效期|质保期|劳动力高峰|装配率|支护形式|创优奖惩/u.test(a)})(a,c)),f=[...new Set(a.map(a=>(0,z.lG)(a.value).trim()).filter(a=>ah.test(a)))],g=await (0,R.Mv)(f,ag,d),h=a=>ag.some(b=>g(a,b)>=.6),i=[];for(let b of e){let d=a.filter(a=>a.key===b||a.fieldName===b||n(c,a.fieldName||a.key)?.name===b),e=new Map;for(let a of d){let b=function(a,b,c){let d=(0,z.lG)(a).trim();if(p(b,d)||o(b,d)||(d.match(/�|/gu)?.length||0)>=2||Array.from(d).some(a=>{let b=a.charCodeAt(0);return 65533===b||b<32&&9!==b&&10!==b&&13!==b})||/\|/u.test(d)||/^#+\s*/u.test(d)||/见(?:招标公告|投标人须知|前附表|本项目|补疑)|资料参数行摘要/u.test(d))return"";let e=d.match(/\d+\s*日历天/u)?.[0]?.replace(/\s+/gu,"");if(e&&/工期|日历天|开工日期|竣工/u.test(d))return e;let f=(0,W.K3)((0,z.lG)(d));return!f||f.length>80||!/[\d年月日%]|合格|一星|二星|三星|总价合同|单价合同|承台|框架|装配式/u.test(d)||ah.test(d)&&c?.(d)?"":f}(a.value,c,h);b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].slice(0,4).map(a=>`${(0,z.lG)(a[0].value).slice(0,120)}(${[...new Set(a.map(a=>a.sourceFile))].slice(0,3).join("、")})`).join(" vs ");i.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return i.slice(0,8)}function aj(a){return(0,z.lG)(a).replace(/\s*[##]{1,6}\s*/gu,"")}function ak(a){return(0,z.lG)(a).replace(/[\u00A0\u2002-\u200B\u3000]/gu," ").replace(/([\p{Script=Han}])\s+([\p{Script=Han}])/gu,"$1$2").replace(/(\d)\s+(日历天|天|个月|月|年|万元|元|㎡|平方米|米|m|mm|MPa|kPa|%)/giu,"$1$2").replace(/(合同|投资|工程|项目)\s*估\s*算\s*(?:价格|价)/gu,"$1估算价").replace(/计划\s*工\s*期/gu,"计划工期").replace(/合同\s*工\s*期/gu,"合同工期").replace(/质量\s*标\s*准/gu,"质量标准").replace(/建设\s*地\s*点/gu,"建设地点").replace(/建设\s*规\s*模/gu,"建设规模").replace(/招标\s*范\s*围/gu,"招标范围").replace(/最高\s*投\s*标\s*限\s*价/gu,"最高投标限价").replace(/招标\s*控\s*制\s*价/gu,"招标控制价").replace(/[::]\s*/gu,":").replace(/\s+/gu," ").trim()}let al=[{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 am(a,b){let c=ak((0,z.lG)(b));return!(!a||!c||c.length>260||/###|第\s*\d+\s*页|共\s*\d+\s*页|律师代理费|投标文件的编制|备选投标方案|投标将被否决|投标人提供|投标有效期|电子交易系统|公共资源交易监督管理部门|中标候选|评标委员会|实质性内容作出响应/u.test(c)||/签章|盖章|联系人|联系电话|电话|邮箱|解密|开标|评标|保证金|交易系统|空白|填写|上传|下载|递交/u.test(c))&&("schedule_requirement"===a?c.length<=90&&/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年)/u.test(c):"quality_standard"===a?c.length<=40&&/合格|优良|一次性验收|国家.*验收|达到/u.test(c)&&!/工期|投标|技术标准|\d[..、]/u.test(c):"owner"===a?c.length>=4&&c.length<=80&&/公司|局|委员会|中心|处|院|所|校|集团|有限|股份|责任|管理/u.test(c)&&!/将报|监督管理部门|投标人|中标|负责解释|见招标|详见|空白|填写/u.test(c):"project_location"===a?c.length<=120&&!/见招标公告|详见|投标/u.test(c):"project_scope"===a?c.length<=220&&!/^[((]\s*\d+[))]/u.test(c)&&!/具备.{0,24}(?:证书|考核合格|安全生产考核)/u.test(c)&&!/^见(?:招标|投标人|前附)/u.test(c):"project_code"===a?/^[A-Za-z0-9\-_.()()]+$/u.test(c):"project_investment_estimate"===a?c.length<=100&&/\d+(?:\.\d+)?\s*(?:万元|元)/u.test(c):"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 an=/\||第\s*\d+\s*页|共\s*\d+\s*页|[##]{1,6}|资料参数行摘要/u,ao=/规模|范围|工期|周期|project_scope|project_scale/iu,ap=/^[A-Za-z0-9\-_.()()]+$/u,aq=/(?:招标项目编号|项目编号|工程编号|标段编号|合同编号|编号)[::为是]*([A-Za-z0-9][A-Za-z0-9\-_.()()]{3,79})/gu;function ar(a,b,c){let d,e=[];for(let f of a){let a=(0,z.lG)(f.value).trim();if(!a)continue;let g=an.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&&!ap.test(h)||h.length>120&&!ao.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 aj((0,z.lG)(c.content)).replace(/\s+/gu,"").matchAll(aq)){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 as(a){let b={localFacts:ab(function(a,b,c){let d=(0,u.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,u.I2)(b,a))continue;let d=b.content.match(c),e=d?.[1]?.trim();if(!e)continue;e=aj(e).replace(/\s+/gu,"");let h=f.filter(b=>b!==a.name).map(a=>e.indexOf(a)).filter(a=>a>0);h.length>0&&(e=e.slice(0,Math.min(...h))),!e||!(e.length<=220)||o(l,e)||p(l,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:ab(function(a){let b=[],c=new Set;for(let d of a)for(let a of aj((0,z.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=ak(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 al){let f=e.pattern.exec(a),g=f?.[1]?.trim();if(!g||!am(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:ab(function(a,b=l){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,z.lG)(e.content).replace(/\s+/gu," ");for(let a of f.matchAll(X._W)){let g=a[0].trim();if(!g||o(b,g))continue;let h=Math.max(0,(a.index||0)-40),i=Math.min(f.length,(a.index||0)+g.length+40),j=f.slice(h,i);if(p(b,j)||q(b,j))continue;let k=`${e.filePath}:${g}`;d.has(k)||(d.add(k),c.push({key:"精确参数",fieldName:"技术参数",fieldId:"technical_parameter",value:g,sourceFile:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",confidence:Math.max(.7,e.score||.7),sourceRef:{filePath:e.filePath,roleId:e.roleId||"precise_fact",processingType:e.processingType||"precise",sectionTitle:e.sectionTitle}}))}}return c.slice(0,240)}(a.evidence,a.profile||l),a.scope),structuredTables:ab(function(a){let b=[],c=new Set;for(let d of a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType)){if(c.has(d.filePath))continue;c.add(d.filePath);let a=(0,g.aY)(),f=(0,g.NW)(a),h=e.isAbsolute(d.filePath)?d.filePath:T.existsSync(e.join(f,d.filePath))?e.join(f,d.filePath):e.join(a,d.filePath),i=e.extname(d.filePath).toLowerCase();if(T.existsSync(h)&&[".xlsx",".xls",".csv"].includes(i))try{b.push(...function(a,b){if("0"===process.env.DOCUMENT_TABLE_PARSE_CACHE)return ae(a,b);let c=T.statSync(a),d=`${a}:${b.roleId||"table"}`,e=ad.get(d);if(e&&e.mtimeMs===c.mtimeMs&&e.size===c.size)return e.tables;let f=ae(a,b);return ad.size>500&&ad.clear(),ad.set(d,{mtimeMs:c.mtimeMs,size:c.size,tables:f}),f}(h,d));continue}catch{}let j=d.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let k=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",l=j.map(a=>a.split(k).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);l.length<2||b.push({tableType:d.roleId||"table",headers:l[0],rows:l.slice(1),sourceFile:d.filePath,sourceRange:d.sectionTitle})}return b}(a.evidence),a.scope)},c={truncated:0,dropped:0,repaired:0};if("0"===process.env.DOCUMENT_FACT_SANITIZE)return{...b,factSanitize:c};if(b.localFacts=ar(b.localFacts,a.evidence,c),b.projectBasicFacts=ar(b.projectBasicFacts,a.evidence,c),b.preciseFacts=ar(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 at(a){return`${a.key} ${a.fieldName||""} ${a.value} ${a.roleId} ${a.processingType||""} ${a.sourceFile}`}function au(a){return/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|项目估算价|最高投标限价|招标控制价/u.test(a)}function av(a){let b=at(a);return!au(b)&&/投标保证金|发票类型|开标时间|公共资源交易监督管理|不良行为记录|投诉举报|资质投诉|投标承诺|违约金|中标服务费|交易平台|保证金账户|投标有效期|报价明细|投标报价|单价|合价|税率|增值税|利润|结算/u.test(b)}function aw(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim()}function ax(a,b=[]){return[...new Set([a,...b,...a.split(/[\s、,。;;::/\\_-]+/u)].map(aw).filter(a=>a.length>=2))]}function ay(a,b,c){var d,e;let f=aw(c.label);if(!f||o(b,f)||p(b,f))return;let g=c.id||(d=c.source,e=c.fieldId,`${d}:${e||f}`.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-|-$/gu,"")||`${d}-${Math.random().toString(36).slice(2,8)}`),h=c.queries?.length?c.queries.map(aw).filter(Boolean):ax(f),i=a.find(a=>a.id===g||a.label===f);if(i){i.required=i.required||c.required,i.queries=[...new Set([...i.queries,...h])];return}a.push({...c,id:g,label:f,queries:h})}function az(a,b,c,d,e,f=[]){"do_not_use"!==c.usagePolicy&&"diagnostic_only"!==c.usagePolicy&&"forbidden"!==c.derivationPolicy&&ay(a,b,{label:c.name,category:c.category,required:e,source:d,fieldId:c.id,queries:ax(c.name,[...c.aliases,...f])})}function aA(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 aB(a){let b=a.profile||l,c=a.excludedEvidenceKeys,d=aA([...a.factsModel.factIndex.parameterFacts,...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(at(a))?.05:0,g=aA(d.filter(a=>(function(a,b,c){let d=at(a);if(av(a)||o(c,d)||p(c,d))return!1;if(b.fieldId&&a.fieldId===b.fieldId||n(c,a.fieldName||a.key)?.id===b.fieldId||b.queries.filter(a=>a.length>=2).some(a=>d.includes(a)))return!0;let e=n(c,b.label);return!!(e&&[e.name,...e.aliases].some(a=>a.length>=2&&d.includes(a)))})(a,e,b))).sort((a,b)=>(b.confidence||0)+f(b)-((a.confidence||0)+f(a))),h=(a.evidence||[]).filter(a=>!c?.has((0,S.hM)(a))&&function(a,b,c){let d=`${a.filePath} ${a.roleId||""} ${a.processingType||""} ${a.sectionTitle||""} ${a.content}`;return!(o(c,d)||p(c,d))&&b.queries.some(a=>a.length>=2&&d.includes(a))}(a,e,b)),i=Math.max(0,...g.map(a=>a.confidence||0)),j=0===g.length&&0===h.length?"missing":i>0&&i<.58?"low_confidence":"satisfied";return{need:e,facts:g,evidence:h,status:j}})}function aC(a){return(0,z.lG)(a).replace(/\s+/gu," ").trim().slice(0,220)}async function aD(a,b=[],c=[],d,e=l){let f=b=>a.filter(a=>b.some(b=>`${a.key} ${a.fieldName||""}`.includes(b))),g=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b)),h=a.filter(a=>{let b=`${a.key} ${a.fieldName||""} ${a.value}`;return X.sv.test(b)&&(!o(e,b)||au(b))&&!p(e,b)}),i=a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType||/bill|boq|table|sheet|data|表格|列表|明细|数据/u.test(`${a.roleId} ${a.sourceFile}`)),j=(function(a){let b=[];for(let c of a){let a=`${c.key||""}${c.fieldName||""}${c.fieldId||""}`,d=(0,z.lG)(c.value);if(/建设规模/u.test(a)&&/占地|用地/u.test(d)&&/建筑面积/u.test(d)){let a=d.search(/(?:总)?占地/u),e=d.search(/(?:单体)?总?建筑面积/u);if(a>=0&&e>a){let f=d.slice(a,e).replace(/^[,,、\s]+/u,"").replace(/[,,、\s]+$/u,"").trim(),g=d.slice(e).trim();if(f&&g){b.push({...c,key:"总占地面积",fieldName:"总占地面积",fieldId:void 0,value:f}),b.push({...c,key:"单体建筑面积",fieldName:"单体建筑面积",value:g});continue}}}b.push(c)}return b})(a.filter(a=>/项目名称|工程名称|项目编号|招标项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|计划工期|合同工期|周期要求|质量标准|合同估算|投资估算|最高投标限价|招标控制价/u.test(`${a.key||""}${a.fieldName||""}${a.fieldId||""}`))).slice(0,80),k=function(a,b,c,d){let e=a.filter(a=>p(d,at(a))||q(d,at(a))),f=a.filter(a=>{let b=at(a);return a.confidence>=.58&&!av(a)&&!o(d,b)&&!p(d,b)&&!q(d,b)}),g=[...b.filter(a=>!av(a)),...f.filter(a=>X.sv.test(at(a)))].filter((a,b,c)=>c.findIndex(b=>b.sourceFile===a.sourceFile&&b.value===a.value&&b.key===a.key)===b).slice(0,360),h=f.filter(a=>"table"===a.processingType||/table|sheet|表格|清单|明细|数据|参数行摘要/u.test(at(a))),i=f.filter(a=>"drawing"===a.processingType||/drawing|dwg|图纸|施工图|设计图|平面图|剖面图|大样图|详图/u.test(at(a)));return{reliableFacts:f.slice(0,500),parameterFacts:g,tableFacts:h.slice(0,240),drawingFacts:i.slice(0,240),billFacts:c.slice(0,240),diagnostics:e.slice(0,120)}}(a,h,i,e);return{project:j,schedule:f(["工期","开工","竣工","节点","周期"]),quality:f(["质量","验收"]),safety:f(["安全","风险"]),resources:f(["劳动力","材料","机械","设备","资源"]),tables:b,drawings:g("drawing"),bills:i,preciseFacts:h,rules:g("rule"),specifications:g("specification"),schemaFacts:function(a,b){let c={};for(let d of b?.factFields||[])c[d.id]=a.filter(a=>a.fieldId===d.id||a.key===d.name||a.fieldName===d.name);return c}(a,d),factIndex:k,missing:[...new Set(c)],conflicts:await ai(a,d,e)}}function aE(a=!1){return{awardObjectives:[],specialQualityStandards:[],awardClauses:[],systematicBenchmarks:[],frontScheduleClauses:[],dateFabricationProhibited:!1,prohibitionNotes:[],extracted:a}}let aF={type:"object",required:["awardObjectives","specialQualityStandards","awardClauses","systematicBenchmarks","prohibitionNotes"],properties:{awardObjectives:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},specialQualityStandards:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},awardClauses:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},greenBuildingGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},smartSiteGrade:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},assemblyRate:{type:"object",properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}},systematicBenchmarks:{type:"array",maxItems:10,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:120},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},frontScheduleClauses:{type:"array",maxItems:20,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}},dateFabricationProhibited:{type:"boolean"},prohibitionNotes:{type:"array",maxItems:12,items:{type:"object",required:!0,properties:{text:{type:"string",minLength:2,maxLength:200},coreTerms:{type:"array",maxItems:4,items:{type:"string",maxLength:24}},source:{type:"string",maxLength:80}}}}}};function aG(a){if(a?.text&&!(a.text.trim().length<2))return{text:a.text.trim(),coreTerms:(a.coreTerms||[]).map(a=>a.trim()).filter(a=>a.length>=2&&a.length<=16).slice(0,4),source:a.source?.trim()||void 0}}function aH(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){let a=aG(d);if(!a)continue;let e=a.text;b.has(e)||(b.add(e),c.push(a))}return c}async function aI(a,b={}){let c,d=aE(!1);if(!a||0===a.length)return d;let e=[...a].sort((a,b)=>{let c=`${a.sectionTitle||""}
|
|
25
25
|
${a.content||""}`,d=`${b.sectionTitle||""}
|
|
26
26
|
${b.content||""}`;return Number(aK.test(d))-Number(aK.test(c))}),f=[],g=0,h=[];for(let a of e){if(!a.content||!a.content.trim())continue;let b=`【${a.filePath||"资料"}|${a.sectionTitle||"正文"}】
|
|
27
27
|
${aj(a.content)}`;f.length>0&&g+b.length>4e4&&(h.push(f),f=[],g=0),f.push(b),g+=b.length}async function i(a){let c=a.join("\n\n");if(!c.trim())return d;let e=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(c),f=await (0,U.bb)([(0,v.y4)("你是招标文件“要求与标准”结构化提取器。"),'从施工项目绑定资料(招标文件/合同条款/技术标准/检查规范等)中提取文本性评分项要求——这些是评标专家会核对文档是否响应、且影响否决与得分的实质要求。\n只提取资料中明确写出的要求,绝不臆造;资料没有该类别时输出空数组或缺省。\ncoreTerms 是用于在正文中核对该要求是否被响应的核心词(2-4 个),必须选最能代表该要求的专有名词/等级/体系名(如“黄山杯”“二星级”“六个百分百”),不要泛化词。\ndateFabricationProhibited:资料写明“以开工令为准/开工日期以监理开工令为准/不得自定开工日期”时为 true,否则 false。\nsystematicBenchmarks 提取体系化基准要求(如“扬尘治理六个百分百”“四节一环保”),单条零散要求放 prohibitionNotes。\nfrontScheduleClauses:从“投标人须知前附表/投标人须知”章节提取施工组织设计必须响应的实质条款——计划工期与质量要求、创优目标与奖惩(如“确保黄山杯,支付300万元”)、缺陷责任期与质保金、履约担保、工期延误赔偿、项目经理/关键人员要求、分包限制、装配式/绿色建筑/智慧工地等级、安全文明与扬尘要求、付款方式(影响资金安排)。只提取施组正文需要写入或必须遵守的条款;投标程序类条款(开标时间地点、保证金账户、投标文件递交/解密方式、评标委员会组成等纯程序信息)一律不提取。\n工程量清单的项目特征描述不是评分项要求,不要提取。\n必须输出且仅输出一个 JSON 对象,字段结构如下(没有内容的字段输出空数组 [] 或省略可选字段,绝不输出其他字段名):\n{\n "awardObjectives": [{ "text": "创优目标原文", "coreTerms": ["核心词"], "source": "来源文件" }],\n "specialQualityStandards": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "awardClauses": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "greenBuildingGrade": { "text": "...", "coreTerms": [], "source": "..." },\n "smartSiteGrade": { "text": "...", "coreTerms": [], "source": "..." },\n "assemblyRate": { "text": "...", "coreTerms": [], "source": "..." },\n "systematicBenchmarks": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "frontScheduleClauses": [{ "text": "...", "coreTerms": [], "source": "..." }],\n "dateFabricationProhibited": false,\n "prohibitionNotes": [{ "text": "...", "coreTerms": [], "source": "..." }]\n}\n只返回 JSON。'].join("\n"),c,{maxTokens:16e3,temperature:.1,signal:b.signal,diagnostics:b.diagnostics,schema:aF,taskKind:"structuredGeneration"});return f?{awardObjectives:aH(f.awardObjectives),specialQualityStandards:aH(f.specialQualityStandards),awardClauses:aH(f.awardClauses),greenBuildingGrade:aG(f.greenBuildingGrade),smartSiteGrade:aG(f.smartSiteGrade),assemblyRate:aG(f.assemblyRate),systematicBenchmarks:aH(f.systematicBenchmarks),frontScheduleClauses:aH(f.frontScheduleClauses).filter(a=>!(0,z.hh)(a.text)),dateFabricationProhibited:!0===f.dateFabricationProhibited,prohibitionNotes:aH(f.prohibitionNotes).filter(a=>!(0,z.hh)(a.text)),extracted:!0,sourceHash:e}:{...d,sourceHash:e}}for(let a of(f.length>0&&h.push(f),h)){let b=await i(a);c=c?function(a,b){let c,d,e,f,g,h;return{...a,awardObjectives:a_(a.awardObjectives,b.awardObjectives),specialQualityStandards:a_(a.specialQualityStandards,b.specialQualityStandards),awardClauses:a_(a.awardClauses,b.awardClauses),greenBuildingGrade:(c=a.greenBuildingGrade,d=b.greenBuildingGrade,c||d),smartSiteGrade:(e=a.smartSiteGrade,f=b.smartSiteGrade,e||f),assemblyRate:(g=a.assemblyRate,h=b.assemblyRate,g||h),systematicBenchmarks:a_(a.systematicBenchmarks,b.systematicBenchmarks),frontScheduleClauses:a_(a.frontScheduleClauses,b.frontScheduleClauses),prohibitionNotes:a_(a.prohibitionNotes,b.prohibitionNotes),dateFabricationProhibited:a.dateFabricationProhibited||b.dateFabricationProhibited,extracted:a.extracted||b.extracted}}(c,b):b}return c||d}let aJ=["工程创优奖项申报要求:争创或确保获得市级、省级或国家级优质工程奖,含具体奖项名称","绿色建筑星级等级要求","智慧工地等级要求","装配式建筑装配率要求","特殊质量标准与质量要求条款","扬尘治理六个百分百要求","质量目标必须确保达到合格或优良标准的要求"],aK=/确保|争创|创优|获得.{0,10}[杯奖]|优质工程奖|绿色建筑|星级|智慧工地|装配率|装配式|六个百分百|四节一环保/u,aL={specialQualityStandards:{label:"特殊质量标准",lexical:/特殊质量标准|质量标准和要求的约定|质量要求.{0,12}(?:为|是|满足)/u,hint:"特殊质量标准与质量要求条款(除创优/等级外的实质质量约束)"},frontScheduleClauses:{label:"前附表响应条款",lexical:/计划工期|日历天|缺陷责任期|履约担保|质保金|工期延误|项目经理|技术负责人|分包|转包|付款方式|支付.{0,10}万|[杯奖]|创优|奖项/u,hint:"投标人须知前附表施组响应实质条款(工期/质量/创优奖惩/人员/分包/付款等)"},dateFabricationProhibited:{label:"禁编日期条款",lexical:/开工令|以开工令|不得.{0,12}(?:自定|自行确定|编造)/u,hint:"以开工令为准的禁编日期条款(布尔字段)"},prohibitionNotes:{label:"禁止性要求",lexical:/不得|禁止|严禁|不允许/u,hint:"禁止/不得类条款与零散约束要求"}},aM={awardObjectives:{label:"创优目标",lexical:/创优|争创|确保获得|确保.{0,8}[杯奖]|优质工程奖/u},awardClauses:{label:"奖项条款",lexical:/获得.{0,12}[杯奖]|支付.{0,10}万|不予支付|奖项的约定/u},greenBuildingGrade:{label:"绿色建筑等级",lexical:/绿色建筑.{0,20}(?:等级|星级|标准|要求)|[一二三]星级/u},smartSiteGrade:{label:"智慧工地等级",lexical:/智慧工地.{0,20}(?:等级|要求|基本级|优良级|良好级)/u},assemblyRate:{label:"装配率",lexical:/装配率.{0,20}(?:%|不低于|不少于|为|要求)|装配式.{0,20}装配率/u},systematicBenchmarks:{label:"体系基准",lexical:/六个百分百|四节一环保|文明施工专项费用|围挡出入口.{0,12}冲洗|扬尘.{0,12}(?:冲洗|防治|治理)/u},...aL},aN=["awardObjectives","awardClauses","greenBuildingGrade","smartSiteGrade","assemblyRate","systematicBenchmarks"];function aO(a){return aM[a].label}function aP(a){if(!a)return[...aN];let b=[];return 0===a.awardObjectives.length&&b.push("awardObjectives"),0===a.awardClauses.length&&b.push("awardClauses"),a.greenBuildingGrade||b.push("greenBuildingGrade"),a.smartSiteGrade||b.push("smartSiteGrade"),a.assemblyRate||b.push("assemblyRate"),0===a.systematicBenchmarks.length&&b.push("systematicBenchmarks"),b}function aQ(a){if(!a)return["awardObjectives","specialQualityStandards","awardClauses","greenBuildingGrade","smartSiteGrade","assemblyRate","systematicBenchmarks","frontScheduleClauses","dateFabricationProhibited","prohibitionNotes"];let b=[];return 0===a.awardObjectives.length&&b.push("awardObjectives"),0===a.specialQualityStandards.length&&b.push("specialQualityStandards"),0===a.awardClauses.length&&b.push("awardClauses"),a.greenBuildingGrade||b.push("greenBuildingGrade"),a.smartSiteGrade||b.push("smartSiteGrade"),a.assemblyRate||b.push("assemblyRate"),0===a.systematicBenchmarks.length&&b.push("systematicBenchmarks"),0===a.frontScheduleClauses.length&&b.push("frontScheduleClauses"),a.dateFabricationProhibited||b.push("dateFabricationProhibited"),0===a.prohibitionNotes.length&&b.push("prohibitionNotes"),b}let aR={awardObjectives:'"awardObjectives": [{ "text": "创优目标原文", "coreTerms": ["核心词"], "source": "来源文件" }]',awardClauses:'"awardClauses": [{ "text": "条款原文", "coreTerms": [], "source": "..." }]',greenBuildingGrade:'"greenBuildingGrade": { "text": "...", "coreTerms": [], "source": "..." }',smartSiteGrade:'"smartSiteGrade": { "text": "...", "coreTerms": [], "source": "..." }',assemblyRate:'"assemblyRate": { "text": "...", "coreTerms": [], "source": "..." }',systematicBenchmarks:'"systematicBenchmarks": [{ "text": "...", "coreTerms": [], "source": "..." }]',specialQualityStandards:'"specialQualityStandards": [{ "text": "...", "coreTerms": [], "source": "..." }]',frontScheduleClauses:'"frontScheduleClauses": [{ "text": "...", "coreTerms": [], "source": "..." }]',dateFabricationProhibited:'"dateFabricationProhibited": true',prohibitionNotes:'"prohibitionNotes": [{ "text": "...", "coreTerms": [], "source": "..." }]'},aS={type:"object",properties:aF.properties};async function aT(a,b,c={}){let d=a,e=aQ(d),f=[];for(let a=0;a<2&&e.length>0;a+=1){let a=new Map;for(let c of e){if(f.includes(c))continue;let d=function(a,b){let c=[];for(let d of a){let a=aj(`${d.sectionTitle||""}
|
|
@@ -44,7 +44,7 @@ ${b}
|
|
|
44
44
|
请输出需要新增的小节;没有需要新增的章节不要出现在 additions 中,整体无新增则输出空数组。
|
|
45
45
|
|
|
46
46
|
JSON 格式:{"additions":[{"chapterTitle":"章标题(必须与上方章节名一致)","sections":["新增小节标题"]}]}`,{maxTokens:2e3,temperature:.1,signal:a.signal}),d=[],e=0;for(let b of c?.additions||[]){if(!b?.chapterTitle||!Array.isArray(b.sections))continue;let c=function(a,b){let c=(0,bi.nz)(b);if(!c)return -1;let d=a.findIndex(a=>(0,t.GQ)(a.title)===c||(0,bi.nz)(a.title)===c);return d>=0?d:a.findIndex(a=>{let b=(0,bi.nz)(a.title);return b.length>=4&&(b.includes(c)||c.includes(b))})}(a.chapters,b.chapterTitle);if(c<0)continue;let f=a.chapters[c],g=[];for(let a of b.sections){let b=(0,bi.EN)((0,bi.nz)(String(a||"")));!(!b||(0,bi.tQ)(b,f.title)||(0,t.mq)(b)||(0,S.dn)(b)||(0,S.xb)(b)||(f.sections||[]).some(a=>(0,bi.kw)(a,b)))&&(g.some(a=>(0,bi.kw)(a,b))||g.push(b))}let h=Math.min(2,g.length,Math.max(0,8-e)),i=g.slice(0,h);if(0!==i.length&&(e+=i.length,d.push({chapterTitle:f.title,sections:i}),e>=8))break}return d}let bk=["计划总工期为300日历天","合同工期为300日历天","施工总工期为300日历天","招标控制价为6000万元","合同估算价为6000万元","投资估算为6000万元","总建筑面积为28000平方米","总用地面积为15000平方米","总占地面积为15000平方米","建设规模为28000平方米"],bl=["专项应急演练4次","每日巡查2次","每周检查1次","每月安全培训2次","监理旁站24小时","三级安全教育培训20学时"];function bm(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}async function bn(){let a=(0,R.VN)(),[b,c]=await Promise.all([a.embedDocuments([...bk]),a.embedDocuments([...bl])]);if(b.length!==bk.length||c.length!==bl.length)throw Error(`本地语义模型锚点嵌入数量不一致:范围锚点 ${b.length}/${bk.length},计数锚点 ${c.length}/${bl.length}`);return{async batchClassify(d){if(0===d.length)return[];let e=await a.embedDocuments(d);return d.map((a,d)=>{let f=e[d];if(!f||0===f.length)return"other";let g=Math.max(...b.map(a=>bm(f,a))),h=Math.max(...c.map(a=>bm(f,a)));return h>=.62&&h>g?"other":g>=.6?"scope":"other"})}}}let bo={factuality:["本章关键数据以招标文件、工程量清单与施工图纸为依据","正文引用的工期、面积、金额与绑定资料口径一致","施工内容与项目实际工程范围对应而非通用模板描述"],structure:["内容按施工准备、工艺流程、施工方法、验收标准的顺序组织","章节内有清晰的工作阶段划分与工序步骤","段落之间有先后衔接与层次递进关系"],depth:["包含关键工序控制点、隐蔽工程验收与检验批划分","关键技术环节给出工艺参数与质量标准","针对本项目特点展开专业分析而非通用做法罗列"],executable:["明确责任主体、检查频次与记录台账要求","给出可执行的资源进场、调配与投入安排","措施可落地执行并配验收复核机制"],specificity:["结合本项目建设地点、工程规模与计划工期展开","引用本项目工程量数据支撑施工部署","措施针对本项目工程特点制定而非通用套话"],consistency:["章节间工期、质量、安全数据口径一致","本章内容与总进度计划、质量目标相互呼应","章节内前后表述无矛盾冲突"]},bp={schedule:["采用关键线路法编制进度计划,明确关键节点与动态纠偏措施","计划节点与资源投入相匹配,含穿插施工与资源保障安排"],quality:["材料进场验收与复验、隐蔽工程验收、质量问题整改与复验闭环","质量资料归档与检验批验收记录"],safety:["风险源辨识、临电消防管理、安全检查与隐患整改闭环","应急预案、应急物资与演练安排"],resource:["劳动力、材料、设备进场计划、验收、保管与调配","资源投入与进度节点相匹配"],construction:["施工准备、工艺流程、工序控制点与验收标准交底","施工方法与工艺参数明确具体"]},bq=["材料进场验收、工序控制点、隐蔽工程验收记录","检验批划分、技术交底、整改复查闭环","引用本项目工程量清单与设计图纸参数"],br=["自检互检交接检、整改复查、资料归档","风险辨识、专项交底、现场检查、隐患整改、复查销项","计划分解、偏差识别、资源纠偏、节点复核"];function bs(a,b){let c=0;for(let d of a)for(let a of b){let b=function(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}(d,a);b>c&&(c=b)}return c}async function bt(){let a=(0,R.VN)(),b=[...Object.keys(bo).map(a=>[`dimension:${a}`,bo[a]]),...Object.keys(bp).map(a=>[`need:${a}`,bp[a]]),["concrete",[...bq]],["closedLoop",[...br]]],c=new Map;for(let[d,e]of b){let b=await a.embedDocuments(e);if(b.length!==e.length)throw Error(`本地语义模型锚点嵌入数量不一致:${d} ${b.length}/${e.length}`);c.set(d,b)}let d=new Map,e=async b=>{let c=d.get(b);if(void 0!==c)return c;let e=function(a){let b=a.split(/\n+/u).map(a=>a.trim()).filter(Boolean),c=[],d="";for(let a of b)d&&d.length+a.length+1>400?(c.push(d),d=a):d=d?`${d}
|
|
47
|
-
${a}`:a;if(d&&c.push(d),c.length<=20)return c;let e=[c[0]],f=(c.length-2)/18;for(let a=1;a<19;a+=1)e.push(c[Math.min(c.length-2,Math.round(1+(a-1)*f))]);return e.push(c[c.length-1]),e}(b),f=await a.embedDocuments(e);return d.set(b,f),f};return{async analyze(a){if(!a.trim())return;let b=await e(a);if(0!==b.length)return{dimensions:function(a,b){let c={};for(let d of Object.keys(bo)){let e=b.get(`dimension:${d}`)||[];c[d]=bs(a,e)>=R.Eh}return c}(b,c),contentNeeds:function(a,b){let c={};for(let d of Object.keys(bp)){let e=b.get(`need:${d}`)||[];c[d]=bs(a,e)>=R.Eh}return c}(b,c),concrete:bs(b,c.get("concrete")||[])>=R.Eh,closedLoop:bs(b,c.get("closedLoop")||[])>=R.Eh}}}}let bu=[{pattern:/概况|总体|理解|说明|编制/u,goal:"以项目资料已确认的事实卡片展开工程概况与总体理解,不得空泛概述",mustCover:["工程名称、建设地点、建设规模、计划工期、质量标准等资料已确认事实","现场条件与招标范围边界","编制依据与适用范围"]},{pattern:/主要施工内容/u,goal:"按专业工程展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工程量与工艺参数",mustCover:["资料识别的专业工程(不少于5个)","每个专业工程的作业对象与工程量/工序顺序/施工方法三方面要素","工程量、材料设备规格、检测验收与资料闭环"]},{pattern:/主要分部分项工程施工方案|主要施工方法/u,goal:"按分项工程方案展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工艺参数与工序顺序",mustCover:["资料明确的专业工程范围(逐项展开分项工程方案)","每个分项方案的作业对象与工程量/工序顺序/施工方法三方面要素","每个分项方案不少于4个工艺参数与至少1处3环节以上工序顺序表达","工艺参数来自绑定材料或行业通用规范值,不得编造"]},{pattern:/重点|难点/u,goal:"识别项目重点难点并给出针对性对策,每项落到责任岗位与验收节点",mustCover:["重点难点成因与影响范围","对应施工内容与专项措施","责任岗位、检查频次、整改闭环"]},{pattern:/部署|总体|流水|顺序/u,goal:"明确施工部署逻辑、流水段划分与资源调配机制",mustCover:["施工区段与流水划分","各阶段施工顺序与穿插关系","资源动态调配机制"]},{pattern:/进度|工期/u,goal:"围绕总工期与关键节点展开进度保障",mustCover:["总进度计划与关键节点","周/日计划分解","进度偏差识别与纠偏措施"]},{pattern:/质量/u,goal:"覆盖材料验收、过程控制、隐蔽验收、整改复验的质量闭环",mustCover:["质量目标与验收依据","三检制度与样板引路","隐蔽工程验收与材料复试","质量通病防治与闭环整改","保修与缺陷责任期承诺"]},{pattern:/安全|危大|风险/u,goal:"覆盖风险识别、危大工程专项方案、检查整改与应急响应",mustCover:["危险源辨识与风险分级","危大工程清单与专项方案","安全交底与隐患排查闭环"]},{pattern:/资源|材料|设备|劳动力|人材机/u,goal:"说明资源配置依据、进场验收与保管调配",mustCover:["机械设备投入计划","分阶段劳动力计划","材料进场计划与验收"]},{pattern:/文明|绿色|环保|扬尘|噪声/u,goal:"覆盖扬尘噪声管控、四节一环保与智慧监测",mustCover:["扬尘噪声分时段管控","四节一环保措施","监测预警与台账"]},{pattern:/应急|预案/u,goal:"覆盖应急组织、物资储备与专项预案",mustCover:["应急组织架构","应急物资储备","专项预案与演练计划"]},{pattern:/竣工|验收|移交|保修/u,goal:"覆盖竣工清理、验收移交与保修响应",mustCover:["竣工清理与垃圾外运","缺陷修补与复查销项","验收移交与保修响应"]},{pattern:/工资|劳务|实名/u,goal:"覆盖劳务实名制与农民工工资保障闭环",mustCover:["劳务实名制管理","工资专用账户与银行代发","考勤与工资支付台账"]}];var bv=c(8667);async function bw(a){(0,z.Te)(a.signal);let b=[];if(0===a.scopedFilePaths.length)return b;let c=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.chapter.title),d=(c?1.6:1)*(/[、,,与和及]/.test(a.chapter.title)?1.4:1),e=Math.ceil((a.highRisk?18:10)*d),f=Math.ceil((a.highRisk?24:14)*(c?1.4:1)),g=Math.ceil((a.highRisk?72:42)*d),h=Math.ceil((a.highRisk?72e3:42e3)*d),i=(a.requiredNeeds||[]).slice(0,8),j=(function(a,b=[]){let c=a.sections||[],d=[...a.requiredFacts,...b],e=(0,A.Cr)(c,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-sections").selected,f=(0,A.Cr)(d,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-facts").selected,g=/[、,,与和及]/.test(a.title),h=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.title),i=/进度|工期|节点/u.test(a.title)?["合同工期","计划工期","日历天","开工","竣工","关键线路","进度计划","施工进度"]:/质量|验收/u.test(a.title)?["质量标准","验收规范","检验批","复验","合格","质量保证","隐蔽验收"]:/安全|危大|风险/u.test(a.title)?["安全措施","风险源","危大工程","应急","检查整改","安全防护","应急预案","基坑支护","基坑开挖","基坑底标高","坡率","支护形式","降水","开挖深度","高支模","专项方案"]:h?["工程量清单","项目特征","材料设备","规格型号","数量单位","劳动力","机械设备","进场计划","资源保障","主要材料","施工机具","材料供应","设备配置"]:/施工|方案|方法|技术|工艺/u.test(a.title)?["施工方法","工艺流程","技术标准","构造做法","控制要点","施工准备"]:["工程范围","施工方法","控制要点","验收要求"],j=g?[...i,...a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4)]:i,k=[...new Set([a.title,...e,...f,...j].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】\-/]+/u)).map(a=>a.trim()).filter(a=>a.length>=2))],l=(0,A.Cr)(k,a=>(0,A.Ox)(a),{maxItems:36,maxChars:1200},"retrieval-tokens").selected,m=g?a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4).map(a=>`${a} ${e.slice(0,6).join(" ")} ${f.slice(0,4).join(" ")}`.trim()):[];return[...new Set([`${a.title} ${e.join(" ")}`.trim(),...f.map(b=>`${a.title} ${b}`.trim()),...e.map(b=>`${a.title} ${b} ${f.slice(0,6).join(" ")}`.trim()),`${a.title} ${j.join(" ")}`.trim(),...m,l.join(" ")].filter(Boolean))]})(a.chapter,a.requiredNeeds).slice(0,e),k=[...i.map(b=>`${a.chapter.title} ${b} ${(a.chapter.sections||[]).join(" ")}`.trim()).filter(a=>!j.includes(a)).map(a=>({text:a,boost:2,source:"required-fact-evidence"})),...j.map(a=>({text:a,boost:2.4,source:"deep-retrieval"}))];return b.push(...(await (0,z.l$)(k,async b=>{var c;(0,z.Te)(a.signal);let d=await a.manager.search(a.projectRoot,b.text,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:f,weights:{keyword:.62,vector:.32,rewrite:.9,hybridBonus:.28},generationMode:!0,disableReranker:!0});return(c={chapter:a.chapter,results:d.results.filter(b=>a.scopedFilePaths.includes(b.filePath)),fileRoleByPath:a.fileRoleByPath,fileProcessingByPath:a.fileProcessingByPath,boost:b.boost,source:b.source}).results.map(a=>{let b=c.fileProcessingByPath.get(a.filePath);return{chapterId:c.chapter.id,filePath:a.filePath,score:a.score+c.boost+("table"===b?3:"structured_data"===b?2.6:3.2*("bill_of_quantities"===b)),content:a.content,roleId:c.fileRoleByPath.get(a.filePath),processingType:b,sectionTitle:a.sectionTitle,source:c.source}})},{kind:"deepRetrieval",highRisk:a.highRisk})).flat()),[...(0,s.QR)(b.filter(a=>"required-fact-evidence"===a.source),{maxItems:Math.max(6,3*i.length),maxChars:18e3,preservePinned:!0}),...(0,s.QR)(b.filter(a=>"required-fact-evidence"!==a.source),{maxItems:g,maxChars:h,preservePinned:!0})]}var bx=c(80439),by=c(46482),bz=c(79227),bA=c(2773),bB=c(92817),bC=c(3063);function bD(a){return(0,t.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function bE(a,b){let c=bD(a);return!!(c.length<4||c.length>60||c===bD(b)||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|占位|提示|概述|总体要求)$/u.test(c)||/如需|应由|大模型|提示词|上下文|OUTLINE|JSON|小节标题/u.test(c)||/\d+\s*分(?:赋分|评[分判]|得)?|赋分|评分细则|评[分判]标准/u.test(c)||/(.)\1/u.test(c))}function bF(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(b),e=[...c(a)];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function bG(a){return/工期|进度|节点|计划|纠偏|预警/u.test(a)?"工期进度":/质量|验收|三检|样板|隐蔽|复试|实测|通病/u.test(a)?"质量验收":/安全|危大|风险|隐患|应急|临边|洞口|消防|临电/u.test(a)?"安全风险":/文明|扬尘|噪声|绿色|废水|垃圾|环保|智慧/u.test(a)?"文明绿色":/劳务|工资|实名|银行|考勤|人员|岗位|组织|职责/u.test(a)?"组织劳务":/资源|材料|设备|机械|人材机|调配/u.test(a)?"资源保障":/施工|工艺|流程|顺序|穿插|部署|区段|流水/u.test(a)?"施工组织":"综合管理"}function bH(a){return/^(?:确保\s*)?[人材机](?:员|力|料|械|工)?\s*的保障体系与措施$/u.test(a)}function bI(a){let b=new Set,c=[];for(let d of a.sections||[]){let e=bD(d);if(!e||bE(e,a.title))continue;let f=e.replace(/\s+/gu,"");b.has(f)||(b.add(f),c.push(e))}return c}function bJ(a,b){let c=a.replace(/\s+/gu,""),d=b.replace(/\s+/gu,"");return c===d||c.includes(d)||d.includes(c)}function bK(a,b,c){let d=new Map,e=[];for(let b of a){if(bH(b)){e.push(b);continue}let a=bG(b),c=d.get(a)||[];c.push(b),d.set(a,c)}let f=a=>{let b=[];for(let c of a){let a=b[b.length-1],d=a?a.sources[a.sources.length-1]:"";!(0,bC.tZ)(c)&&!bH(c)&&a&&(bJ(c,d)||bF(c,d)>=.75)?(a.sources.push(c),c.length>a.title.length&&(a.title=c)):b.push({title:c,sources:[c]})}return b},g=e.map(a=>({title:a,subPoints:[{title:a,sources:[a]}],facts:[],targetWords:1200}));for(let a of d.values()){let c=f(a);for(let a=0;a<c.length;a+=6){let d=c.slice(a,a+6);g.push({title:d[0].title||b,subPoints:d,facts:[],targetWords:1200})}}return bL(g,c),{blocks:g,coveredSections:a.slice(),fallbackSections:[],llmPlanned:!1}}function bL(a,b){for(let c=0;c<2&&a.length>0&&!(4e3>=Math.floor(b/a.length));c+=1){let b=a.reduce((a,b)=>b.subPoints.length>a.subPoints.length?b:a,a[0]);if(b.subPoints.length<2)break;let c=Math.ceil(b.subPoints.length/2);a.push({title:b.subPoints[c].title||b.title,subPoints:b.subPoints.slice(c),facts:[],targetWords:0}),b.subPoints=b.subPoints.slice(0,c)}let c=a.reduce((a,b)=>a+b.subPoints.length,0)||a.length;for(let d of a){let e=Math.floor(.75*Math.max(1200,Math.floor(b/Math.max(1,a.length)))+.25*b*(d.subPoints.length/c));d.targetWords=Math.min(4e3,Math.max(1200,e))}}let bM={type:"object",required:["title","subPoints"],properties:{title:{type:"string",required:!0,minLength:2,maxLength:80},subPoints:{type:"array",required:!0,minItems:1,maxItems:6,items:{type:"object",required:!0,properties:{title:{type:"string",required:!0,minLength:2,maxLength:60},sources:{type:"array",required:!0,maxItems:8,items:{type:"string",maxLength:120}}}}},facts:{type:"array",maxItems:2,items:{type:"string",maxLength:100}}}};async function bN(a){let b=bI(a.chapter),c=await (0,R.Mv)(b,b,a.semanticEmbedder),d=function(a,b){let c=new Map,d=[];for(let b of a){if(bH(b)){d.push([b]);continue}let a=bG(b),e=c.get(a)||[];e.push(b),c.set(a,e)}let e=[];for(let a of c.values()){let c=[];for(let d of a){let a,e=-1;for(let f of c){if(f.length>=8)continue;let c=Math.max(...f.map(a=>b(d,a)));c>e&&(e=c,a=f)}a&&e>=.5?a.push(d):c.push([d])}e.push(...c)}return[...d,...e]}(b,c),e=Math.max(800,Math.floor(a.targetWords/Math.max(1,d.length))),f=async(b,c)=>{let d=function(a,b){let c=a.flatMap(a=>[a.slice(0,4),a.slice(-4)]).filter(a=>a.length>=2);return b.map(a=>({item:a,score:c.reduce((b,c)=>b+ +!!a.content.includes(c),0)})).sort((a,b)=>b.score-a.score).map(a=>a.item)}(b,a.evidence),f=(0,s.ks)((0,s.QO)(a.chapter,d),{maxChars:(0,s.Pc)(e,5e3,12e3),requiredFacts:a.chapter.requiredFacts,diagnostics:a.diagnostics}),g=[(0,v.y4)("你是专业施工组织设计文档结构规划专家。"),"任务:把一个主题块内的输入细目重排为 H4 要点结构;语义相近、内容连贯的细目必须合并进同一个 H4 要点。","硬性规则:",`1. 合并决策:语义相近、内容连贯的输入细目必须合并进同一个 H4 要点;H4 要点标题必须重写为更概括、更专业的标题(16 字以内),不得直接照抄任一输入细目标题;每个 H4 要点的 sources 字段逐字列出它所覆盖的全部输入细目标题,不得改写、不得遗漏、不得重复映射。例外:含评标必查关键词的输入细目(${bC.Dr.join("/")}等)必须保留为独立 H4 要点,不得与其他细目合并吞并,其 H4 标题必须保留该关键词。`,`2. 合并依据:优先参考项目图谱与文档蓝图,把对应同一套工程对象/管理闭环的细目合并(如「三检制度」「样板引路」「隐蔽工程验收」同属质量管控闭环);不得把内容无关的细目强行合并。`,`3. 主题块标题必须具体、专业、能承载其要点(16 字以内),不得使用"目标与范围""资料依据""总体要求"等通用占位标题。`,`4. 数量约束:本主题块 1~6 个 H4 要点。`,"5. facts 字段:从绑定资料中摘取与本主题块直接相关的关键事实短句(每条 ≤60 字,0~2 条)。","6. 只返回 JSON,不要输出任何其他文字。",'JSON 格式:{"title":"主题块标题","subPoints":[{"title":"H4要点标题","sources":["输入细目原文"]}],"facts":["事实短句"]}'],h=[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.graphContext?`项目图谱(本章定向):${a.graphContext}`:"",a.blueprintContext?`文档蓝图(本章任务卡与实施方案):${a.blueprintContext}`:"",a.projectContext?`上下文:${a.projectContext}`:"",a.roleContext?`角色要求:${a.roleContext}`:"",f?`真实绑定资料:${f}`:"",`输入细目清单(本主题块共 ${b.length} 条,必须全部覆盖,允许合并进同一 H4):${b.join("、")}`,`请输出 1 个主题块,1~6 个 H4 要点,确保所有输入细目被覆盖。`],i={},j={l0:g.join("\n").length,l2:(0,U.CX)([`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.graphContext?`项目图谱(本章定向):${a.graphContext}`:"",a.blueprintContext?`文档蓝图(本章任务卡与实施方案):${a.blueprintContext}`:"",a.projectContext?`上下文:${a.projectContext}`:"",a.roleContext?`角色要求:${a.roleContext}`:""]),l3:(0,U.CX)([f?`真实绑定资料:${f}`:"",`输入细目清单(本主题块共 ${b.length} 条,必须全部覆盖,允许合并进同一 H4):${b.join("、")}`,`请输出 1 个主题块,1~6 个 H4 要点,确保所有输入细目被覆盖。`])},k=await (0,U.bb)(g.join("\n"),h.filter(Boolean).join("\n\n"),{maxTokens:4096,temperature:.1,signal:a.signal,diagnostics:a.diagnostics,schema:bM,disableThinkingBoost:!0,outFailure:i,contextLayers:j,prefixKey:`plan-block:${a.chapter.id}`});if(!k){let d=i.value?`第 ${c+1} 块未通过校验(${i.value})`:`第 ${c+1} 块 LLM 无响应`;return{blocks:bK(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:d}}let l=function(a,b,c){let d=bD(a.title||"");if(!d||bE(d,c))return;let e=(a.subPoints||[]).map(a=>{let c=Array.isArray(a.sources)&&a.sources.length>0?a.sources:a.source?[a.source]:[],d=[];for(let a of c){let c=bD(a||"");!(c.length<4)&&b.some(a=>bJ(c,a))&&(d.some(a=>bJ(a,c))||d.push(c))}let e=bD(a.title||"");return!e||e.length<4?d.length>0?{title:d[0],sources:d}:void 0:{title:e&&!d.some(a=>bJ(e,a))?e:d[0]||e,sources:d}}).filter(a=>!!a);if(0!==e.length)return{title:d,subPoints:e,facts:(a.facts||[]).map(a=>a.trim()).filter(Boolean),targetWords:1200}}(k,b,a.chapter.title);return l?{blocks:[l],llmPlanned:!0}:{blocks:bK(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:`第 ${c+1} 块 LLM 结构无效(title/subPoints 缺失或未对齐)`}},g=await Promise.all(d.map((a,b)=>f(a,b))),h=g.flatMap(a=>a.blocks),i=g.map(a=>a.failure).filter(Boolean);if(0===h.length)return{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:i.join(";")||"未知原因"};bL(h,a.targetWords);let j=function(a){let b=[],c=new Map;for(let d of a.blocks){let a=d.title.replace(/\s+/gu,"");if(!a){b.push({blocks:[d]});continue}let e=c.get(a);if(void 0===e){c.set(a,b.length),b.push({blocks:[d]});continue}b[e].blocks.push(d)}let d=[];for(let a of b){if(1===a.blocks.length){d.push({...a.blocks[0],subPoints:[...a.blocks[0].subPoints]});continue}let b=a.blocks[0],c=[],e=[];for(let b of a.blocks){for(let a of b.subPoints){let b=a.title.replace(/\s+/gu,"");c.some(a=>a.title.replace(/\s+/gu,"")===b)||c.push(a)}for(let a of b.facts)e.includes(a)||e.push(a)}let f=a.blocks.reduce((a,b)=>a+b.targetWords,0);if(c.length<=3){d.push({...b,subPoints:c,facts:e,targetWords:f});continue}let g=Math.ceil(c.length/Math.ceil(c.length/3)),h=["一","二","三","四","五"];for(let a=0,i=0;a<c.length;a+=g,i+=1)d.push({...b,title:`${b.title}(${h[i]})`,subPoints:c.slice(a,a+g),facts:0===i?e:[],targetWords:f})}return{...a,blocks:d}}(function(a){let b=[],c=a.blocks.map(a=>({...a,subPoints:a.subPoints.map(a=>{let c=a.sources.filter(a=>!b.some(b=>bJ(b,a))&&(b.push(a),!0));return{...a,sources:c}}).filter(a=>a.sources.length>0)}));return{...a,blocks:c}}(function(a,b){let c=[],d=[],e=b.map(a=>({...a,subPoints:[...a.subPoints]}));for(let b of a){let a,f;if(e.some(a=>(function(a,b){return!!bJ(b.title,a)||b.subPoints.some(b=>b.sources.some(b=>bJ(b,a))||bJ(b.title,a))})(b,a))){c.push(b);continue}let g=-1;for(let c of e)for(let d of c.subPoints){let e=Math.max(bF(b,d.title),...d.sources.map(a=>bF(b,a)));e>g&&(g=e,a=d,f=c)}if((0,bC.tZ)(b)||bH(b)){let a=f||e[e.length-1];if(a){a.subPoints.push({title:b,sources:[b]}),d.push(b);continue}}a&&g>=.5?(a.sources.push(b),d.push(b)):f?(f.subPoints.push({title:b,sources:[b]}),d.push(b)):c.push(b)}return{blocks:e,coveredSections:c,fallbackSections:d,llmPlanned:b.length>0}}(b,h)));return bL(j.blocks,a.targetWords),{...j,llmPlanned:g.some(a=>a.llmPlanned),llmFailure:i.length>0?`块级降级(${i.join(";")})`:void 0}}async function bO(a){let b=await bN(a).catch(a=>({blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:a instanceof Error?a.message:String(a)}))??{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:"LLM 规划未返回有效结构"};return b.blocks.length>0?b:{...bK(bI(a.chapter),a.chapter.title,a.targetWords),llmFailure:b.llmFailure||"LLM 调用异常"}}async function bP(a,b){let c=(0,v.r4)(a.content);if(0===c.length)return[];let d=[];for(let e of c){let c=e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),f=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),g=f?.[1]||"",h=await (0,bB.AI)(e,(0,bB.Ym)(e,a.chapter,a.evidence),b),i=(0,bB.uQ)(e,g,h);i&&d.push(`${e}:${i}`)}return d}function bQ(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function bR(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function bS(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function bT(a){var b;(0,z.Te)(a.signal);let c=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}
|
|
47
|
+
${a}`:a;if(d&&c.push(d),c.length<=20)return c;let e=[c[0]],f=(c.length-2)/18;for(let a=1;a<19;a+=1)e.push(c[Math.min(c.length-2,Math.round(1+(a-1)*f))]);return e.push(c[c.length-1]),e}(b),f=await a.embedDocuments(e);return d.set(b,f),f};return{async analyze(a){if(!a.trim())return;let b=await e(a);if(0!==b.length)return{dimensions:function(a,b){let c={};for(let d of Object.keys(bo)){let e=b.get(`dimension:${d}`)||[];c[d]=bs(a,e)>=R.Eh}return c}(b,c),contentNeeds:function(a,b){let c={};for(let d of Object.keys(bp)){let e=b.get(`need:${d}`)||[];c[d]=bs(a,e)>=R.Eh}return c}(b,c),concrete:bs(b,c.get("concrete")||[])>=R.Eh,closedLoop:bs(b,c.get("closedLoop")||[])>=R.Eh}}}}let bu=[{pattern:/概况|总体|理解|说明|编制/u,goal:"以项目资料已确认的事实卡片展开工程概况与总体理解,不得空泛概述",mustCover:["工程名称、建设地点、建设规模、计划工期、质量标准等资料已确认事实","现场条件与招标范围边界","编制依据与适用范围"]},{pattern:/主要施工内容/u,goal:"按专业工程展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工程量与工艺参数",mustCover:["资料识别的专业工程(不少于5个)","每个专业工程的作业对象与工程量/工序顺序/施工方法三方面要素","工程量、材料设备规格、检测验收与资料闭环"]},{pattern:/主要分部分项工程施工方案|主要施工方法/u,goal:"按分项工程方案展开作业对象与工程量、工序顺序、施工方法三方面要素(呈现形式不限),落到工艺参数与工序顺序",mustCover:["资料明确的专业工程范围(逐项展开分项工程方案)","每个分项方案的作业对象与工程量/工序顺序/施工方法三方面要素","每个分项方案不少于4个工艺参数与至少1处3环节以上工序顺序表达","工艺参数来自绑定材料或行业通用规范值,不得编造"]},{pattern:/重点|难点/u,goal:"识别项目重点难点并给出针对性对策,每项落到责任岗位与验收节点",mustCover:["重点难点成因与影响范围","对应施工内容与专项措施","责任岗位、检查频次、整改闭环"]},{pattern:/部署|总体|流水|顺序/u,goal:"明确施工部署逻辑、流水段划分与资源调配机制",mustCover:["施工区段与流水划分","各阶段施工顺序与穿插关系","资源动态调配机制"]},{pattern:/进度|工期/u,goal:"围绕总工期与关键节点展开进度保障",mustCover:["总进度计划与关键节点","周/日计划分解","进度偏差识别与纠偏措施"]},{pattern:/质量/u,goal:"覆盖材料验收、过程控制、隐蔽验收、整改复验的质量闭环",mustCover:["质量目标与验收依据","三检制度与样板引路","隐蔽工程验收与材料复试","质量通病防治与闭环整改","保修与缺陷责任期承诺"]},{pattern:/安全|危大|风险/u,goal:"覆盖风险识别、危大工程专项方案、检查整改与应急响应",mustCover:["危险源辨识与风险分级","危大工程清单与专项方案","安全交底与隐患排查闭环"]},{pattern:/资源|材料|设备|劳动力|人材机/u,goal:"说明资源配置依据、进场验收与保管调配",mustCover:["机械设备投入计划","分阶段劳动力计划","材料进场计划与验收"]},{pattern:/文明|绿色|环保|扬尘|噪声/u,goal:"覆盖扬尘噪声管控、四节一环保与智慧监测",mustCover:["扬尘噪声分时段管控","四节一环保措施","监测预警与台账"]},{pattern:/应急|预案/u,goal:"覆盖应急组织、物资储备与专项预案",mustCover:["应急组织架构","应急物资储备","专项预案与演练计划"]},{pattern:/竣工|验收|移交|保修/u,goal:"覆盖竣工清理、验收移交与保修响应",mustCover:["竣工清理与垃圾外运","缺陷修补与复查销项","验收移交与保修响应"]},{pattern:/工资|劳务|实名/u,goal:"覆盖劳务实名制与农民工工资保障闭环",mustCover:["劳务实名制管理","工资专用账户与银行代发","考勤与工资支付台账"]}];var bv=c(8667);async function bw(a){(0,z.Te)(a.signal);let b=[];if(0===a.scopedFilePaths.length)return b;let c=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.chapter.title),d=(c?1.6:1)*(/[、,,与和及]/.test(a.chapter.title)?1.4:1),e=Math.ceil((a.highRisk?18:10)*d),f=Math.ceil((a.highRisk?24:14)*(c?1.4:1)),g=Math.ceil((a.highRisk?72:42)*d),h=Math.ceil((a.highRisk?72e3:42e3)*d),i=(a.requiredNeeds||[]).slice(0,8),j=(function(a,b=[]){let c=a.sections||[],d=[...a.requiredFacts,...b],e=(0,A.Cr)(c,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-sections").selected,f=(0,A.Cr)(d,a=>(0,A.Ox)(a),{maxItems:16,maxChars:1200},"retrieval-facts").selected,g=/[、,,与和及]/.test(a.title),h=/资源|人|材|机|材料|设备|清单|工程量|BOQ|报价/u.test(a.title),i=/进度|工期|节点/u.test(a.title)?["合同工期","计划工期","日历天","开工","竣工","关键线路","进度计划","施工进度"]:/质量|验收/u.test(a.title)?["质量标准","验收规范","检验批","复验","合格","质量保证","隐蔽验收"]:/安全|危大|风险/u.test(a.title)?["安全措施","风险源","危大工程","应急","检查整改","安全防护","应急预案","基坑支护","基坑开挖","基坑底标高","坡率","支护形式","降水","开挖深度","高支模","专项方案"]:h?["工程量清单","项目特征","材料设备","规格型号","数量单位","劳动力","机械设备","进场计划","资源保障","主要材料","施工机具","材料供应","设备配置"]:/施工|方案|方法|技术|工艺/u.test(a.title)?["施工方法","工艺流程","技术标准","构造做法","控制要点","施工准备"]:["工程范围","施工方法","控制要点","验收要求"],j=g?[...i,...a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4)]:i,k=[...new Set([a.title,...e,...f,...j].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】\-/]+/u)).map(a=>a.trim()).filter(a=>a.length>=2))],l=(0,A.Cr)(k,a=>(0,A.Ox)(a),{maxItems:36,maxChars:1200},"retrieval-tokens").selected,m=g?a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4).map(a=>`${a} ${e.slice(0,6).join(" ")} ${f.slice(0,4).join(" ")}`.trim()):[];return[...new Set([`${a.title} ${e.join(" ")}`.trim(),...f.map(b=>`${a.title} ${b}`.trim()),...e.map(b=>`${a.title} ${b} ${f.slice(0,6).join(" ")}`.trim()),`${a.title} ${j.join(" ")}`.trim(),...m,l.join(" ")].filter(Boolean))]})(a.chapter,a.requiredNeeds).slice(0,e),k=[...i.map(b=>`${a.chapter.title} ${b} ${(a.chapter.sections||[]).join(" ")}`.trim()).filter(a=>!j.includes(a)).map(a=>({text:a,boost:2,source:"required-fact-evidence"})),...j.map(a=>({text:a,boost:2.4,source:"deep-retrieval"}))];return b.push(...(await (0,z.l$)(k,async b=>{var c;(0,z.Te)(a.signal);let d=await a.manager.search(a.projectRoot,b.text,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:f,weights:{keyword:.62,vector:.32,rewrite:.9,hybridBonus:.28},generationMode:!0,disableReranker:!0});return(c={chapter:a.chapter,results:d.results.filter(b=>a.scopedFilePaths.includes(b.filePath)),fileRoleByPath:a.fileRoleByPath,fileProcessingByPath:a.fileProcessingByPath,boost:b.boost,source:b.source}).results.map(a=>{let b=c.fileProcessingByPath.get(a.filePath);return{chapterId:c.chapter.id,filePath:a.filePath,score:a.score+c.boost+("table"===b?3:"structured_data"===b?2.6:3.2*("bill_of_quantities"===b)),content:a.content,roleId:c.fileRoleByPath.get(a.filePath),processingType:b,sectionTitle:a.sectionTitle,source:c.source}})},{kind:"deepRetrieval",highRisk:a.highRisk})).flat()),[...(0,s.QR)(b.filter(a=>"required-fact-evidence"===a.source),{maxItems:Math.max(6,3*i.length),maxChars:18e3,preservePinned:!0}),...(0,s.QR)(b.filter(a=>"required-fact-evidence"!==a.source),{maxItems:g,maxChars:h,preservePinned:!0})]}var bx=c(80439),by=c(46482),bz=c(79227),bA=c(2773),bB=c(92817),bC=c(3063);function bD(a){return(0,t.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function bE(a,b){let c=bD(a);return!!(c.length<4||c.length>60||c===bD(b)||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|占位|提示|概述|总体要求)$/u.test(c)||/如需|应由|大模型|提示词|上下文|OUTLINE|JSON|小节标题/u.test(c)||/\d+\s*分(?:赋分|评[分判]|得)?|赋分|评分细则|评[分判]标准/u.test(c)||/(.)\1/u.test(c))}function bF(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(b),e=[...c(a)];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function bG(a){return/工期|进度|节点|计划|纠偏|预警/u.test(a)?"工期进度":/质量|验收|三检|样板|隐蔽|复试|实测|通病/u.test(a)?"质量验收":/安全|危大|风险|隐患|应急|临边|洞口|消防|临电/u.test(a)?"安全风险":/文明|扬尘|噪声|绿色|废水|垃圾|环保|智慧/u.test(a)?"文明绿色":/劳务|工资|实名|银行|考勤|人员|岗位|组织|职责/u.test(a)?"组织劳务":/资源|材料|设备|机械|人材机|调配/u.test(a)?"资源保障":/施工|工艺|流程|顺序|穿插|部署|区段|流水/u.test(a)?"施工组织":"综合管理"}function bH(a){return/^(?:确保\s*)?[人材机](?:员|力|料|械|工)?\s*的保障体系与措施$/u.test(a)}function bI(a){let b=new Set,c=[];for(let d of a.sections||[]){let e=bD(d);if(!e||bE(e,a.title))continue;let f=e.replace(/\s+/gu,"");b.has(f)||(b.add(f),c.push(e))}return c}function bJ(a,b){let c=a.replace(/\s+/gu,""),d=b.replace(/\s+/gu,"");return c===d||c.includes(d)||d.includes(c)}function bK(a,b,c){let d=new Map,e=[],f=[];for(let b of a){if(bH(b)){e.push(b);continue}if(bC.Yp.test(b)||bC.gG.test(b)){f.push(b);continue}let a=bG(b),c=d.get(a)||[];c.push(b),d.set(a,c)}let g=a=>{let b=[];for(let c of a){let a=b[b.length-1],d=a?a.sources[a.sources.length-1]:"";!(0,bC.tZ)(c)&&!bH(c)&&a&&(bJ(c,d)||bF(c,d)>=.75)?(a.sources.push(c),c.length>a.title.length&&(a.title=c)):b.push({title:c,sources:[c]})}return b},h=[...e,...f].map(a=>({title:a,subPoints:[{title:a,sources:[a]}],facts:[],targetWords:1200}));for(let a of d.values()){let c=g(a);for(let a=0;a<c.length;a+=6){let d=c.slice(a,a+6);h.push({title:d[0].title||b,subPoints:d,facts:[],targetWords:1200})}}return bL(h,c),{blocks:h,coveredSections:a.slice(),fallbackSections:[],llmPlanned:!1}}function bL(a,b){for(let c=0;c<2&&a.length>0&&!(4e3>=Math.floor(b/a.length));c+=1){let b=a.reduce((a,b)=>b.subPoints.length>a.subPoints.length?b:a,a[0]);if(b.subPoints.length<2)break;let c=Math.ceil(b.subPoints.length/2);a.push({title:b.subPoints[c].title||b.title,subPoints:b.subPoints.slice(c),facts:[],targetWords:0}),b.subPoints=b.subPoints.slice(0,c)}let c=a.reduce((a,b)=>a+b.subPoints.length,0)||a.length;for(let d of a){let e=Math.floor(.75*Math.max(1200,Math.floor(b/Math.max(1,a.length)))+.25*b*(d.subPoints.length/c));d.targetWords=Math.min(4e3,Math.max(1200,e)),(bC.Yp.test(d.title)||bC.gG.test(d.title))&&(d.targetWords=Math.min(4e3,Math.max(d.targetWords,3600)))}}let bM={type:"object",required:["title","subPoints"],properties:{title:{type:"string",required:!0,minLength:2,maxLength:80},subPoints:{type:"array",required:!0,minItems:1,maxItems:6,items:{type:"object",required:!0,properties:{title:{type:"string",required:!0,minLength:2,maxLength:60},sources:{type:"array",required:!0,maxItems:8,items:{type:"string",maxLength:120}}}}},facts:{type:"array",maxItems:2,items:{type:"string",maxLength:100}}}};async function bN(a){let b=bI(a.chapter),c=await (0,R.Mv)(b,b,a.semanticEmbedder),d=function(a,b){let c=new Map,d=[];for(let b of a){if(bH(b)){d.push([b]);continue}let a=bG(b),e=c.get(a)||[];e.push(b),c.set(a,e)}let e=[];for(let a of c.values()){let c=[];for(let d of a){let a,e=-1;for(let f of c){if(f.length>=8)continue;let c=Math.max(...f.map(a=>b(d,a)));c>e&&(e=c,a=f)}a&&e>=.5?a.push(d):c.push([d])}e.push(...c)}return[...d,...e]}(b,c),e=Math.max(800,Math.floor(a.targetWords/Math.max(1,d.length))),f=async(b,c)=>{let d=function(a,b){let c=a.flatMap(a=>[a.slice(0,4),a.slice(-4)]).filter(a=>a.length>=2);return b.map(a=>({item:a,score:c.reduce((b,c)=>b+ +!!a.content.includes(c),0)})).sort((a,b)=>b.score-a.score).map(a=>a.item)}(b,a.evidence),f=(0,s.ks)((0,s.QO)(a.chapter,d),{maxChars:(0,s.Pc)(e,5e3,12e3),requiredFacts:a.chapter.requiredFacts,diagnostics:a.diagnostics}),g=[(0,v.y4)("你是专业施工组织设计文档结构规划专家。"),"任务:把一个主题块内的输入细目重排为 H4 要点结构;语义相近、内容连贯的细目必须合并进同一个 H4 要点。","硬性规则:",`1. 合并决策:语义相近、内容连贯的输入细目必须合并进同一个 H4 要点;H4 要点标题必须重写为更概括、更专业的标题(16 字以内),不得直接照抄任一输入细目标题;每个 H4 要点的 sources 字段逐字列出它所覆盖的全部输入细目标题,不得改写、不得遗漏、不得重复映射。例外:含评标必查关键词的输入细目(${bC.Dr.join("/")}等)必须保留为独立 H4 要点,不得与其他细目合并吞并,其 H4 标题必须保留该关键词。`,`2. 合并依据:优先参考项目图谱与文档蓝图,把对应同一套工程对象/管理闭环的细目合并(如「三检制度」「样板引路」「隐蔽工程验收」同属质量管控闭环);不得把内容无关的细目强行合并。`,`3. 主题块标题必须具体、专业、能承载其要点(16 字以内),不得使用"目标与范围""资料依据""总体要求"等通用占位标题。`,`4. 数量约束:本主题块 1~6 个 H4 要点。`,"5. facts 字段:从绑定资料中摘取与本主题块直接相关的关键事实短句(每条 ≤60 字,0~2 条)。","6. 只返回 JSON,不要输出任何其他文字。",'JSON 格式:{"title":"主题块标题","subPoints":[{"title":"H4要点标题","sources":["输入细目原文"]}],"facts":["事实短句"]}'],h=[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.graphContext?`项目图谱(本章定向):${a.graphContext}`:"",a.blueprintContext?`文档蓝图(本章任务卡与实施方案):${a.blueprintContext}`:"",a.projectContext?`上下文:${a.projectContext}`:"",a.roleContext?`角色要求:${a.roleContext}`:"",f?`真实绑定资料:${f}`:"",`输入细目清单(本主题块共 ${b.length} 条,必须全部覆盖,允许合并进同一 H4):${b.join("、")}`,`请输出 1 个主题块,1~6 个 H4 要点,确保所有输入细目被覆盖。`],i={},j={l0:g.join("\n").length,l2:(0,U.CX)([`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.requirement?`用户要求:${a.requirement}`:"",a.graphContext?`项目图谱(本章定向):${a.graphContext}`:"",a.blueprintContext?`文档蓝图(本章任务卡与实施方案):${a.blueprintContext}`:"",a.projectContext?`上下文:${a.projectContext}`:"",a.roleContext?`角色要求:${a.roleContext}`:""]),l3:(0,U.CX)([f?`真实绑定资料:${f}`:"",`输入细目清单(本主题块共 ${b.length} 条,必须全部覆盖,允许合并进同一 H4):${b.join("、")}`,`请输出 1 个主题块,1~6 个 H4 要点,确保所有输入细目被覆盖。`])},k=await (0,U.bb)(g.join("\n"),h.filter(Boolean).join("\n\n"),{maxTokens:4096,temperature:.1,signal:a.signal,diagnostics:a.diagnostics,schema:bM,disableThinkingBoost:!0,outFailure:i,contextLayers:j,prefixKey:`plan-block:${a.chapter.id}`});if(!k){let d=i.value?`第 ${c+1} 块未通过校验(${i.value})`:`第 ${c+1} 块 LLM 无响应`;return{blocks:bK(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:d}}let l=function(a,b,c){let d=bD(a.title||"");if(!d||bE(d,c))return;let e=(a.subPoints||[]).map(a=>{let c=Array.isArray(a.sources)&&a.sources.length>0?a.sources:a.source?[a.source]:[],d=[];for(let a of c){let c=bD(a||"");!(c.length<4)&&b.some(a=>bJ(c,a))&&(d.some(a=>bJ(a,c))||d.push(c))}let e=bD(a.title||"");return!e||e.length<4?d.length>0?{title:d[0],sources:d}:void 0:{title:e&&!d.some(a=>bJ(e,a))?e:d[0]||e,sources:d}}).filter(a=>!!a);if(0!==e.length)return{title:d,subPoints:e,facts:(a.facts||[]).map(a=>a.trim()).filter(Boolean),targetWords:1200}}(k,b,a.chapter.title);return l?{blocks:[l],llmPlanned:!0}:{blocks:bK(b,a.chapter.title,e).blocks,llmPlanned:!1,failure:`第 ${c+1} 块 LLM 结构无效(title/subPoints 缺失或未对齐)`}},g=await Promise.all(d.map((a,b)=>f(a,b))),h=g.flatMap(a=>a.blocks),i=g.map(a=>a.failure).filter(Boolean);if(0===h.length)return{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:i.join(";")||"未知原因"};bL(h,a.targetWords);let j=function(a){let b=[],c=new Map;for(let d of a.blocks){let a=d.title.replace(/\s+/gu,"");if(!a){b.push({blocks:[d]});continue}let e=c.get(a);if(void 0===e){c.set(a,b.length),b.push({blocks:[d]});continue}b[e].blocks.push(d)}let d=[];for(let a of b){if(1===a.blocks.length){d.push({...a.blocks[0],subPoints:[...a.blocks[0].subPoints]});continue}let b=a.blocks[0],c=[],e=[];for(let b of a.blocks){for(let a of b.subPoints){let b=a.title.replace(/\s+/gu,"");c.some(a=>a.title.replace(/\s+/gu,"")===b)||c.push(a)}for(let a of b.facts)e.includes(a)||e.push(a)}let f=a.blocks.reduce((a,b)=>a+b.targetWords,0);if(c.length<=3){d.push({...b,subPoints:c,facts:e,targetWords:f});continue}let g=Math.ceil(c.length/Math.ceil(c.length/3)),h=["一","二","三","四","五"];for(let a=0,i=0;a<c.length;a+=g,i+=1)d.push({...b,title:`${b.title}(${h[i]})`,subPoints:c.slice(a,a+g),facts:0===i?e:[],targetWords:f})}return{...a,blocks:d}}(function(a){let b=[],c=a.blocks.map(a=>({...a,subPoints:a.subPoints.map(a=>{let c=a.sources.filter(a=>!b.some(b=>bJ(b,a))&&(b.push(a),!0));return{...a,sources:c}}).filter(a=>a.sources.length>0)}));return{...a,blocks:c}}(function(a,b){let c=[],d=[],e=b.map(a=>({...a,subPoints:[...a.subPoints]}));for(let b of a){let a,f;if(e.some(a=>(function(a,b){return!!bJ(b.title,a)||b.subPoints.some(b=>b.sources.some(b=>bJ(b,a))||bJ(b.title,a))})(b,a))){c.push(b);continue}let g=-1;for(let c of e)for(let d of c.subPoints){let e=Math.max(bF(b,d.title),...d.sources.map(a=>bF(b,a)));e>g&&(g=e,a=d,f=c)}if(bH(b)||bC.Yp.test(b)||bC.gG.test(b)){for(let a of e)a.subPoints=a.subPoints.filter(a=>!bJ(a.title,b)&&!a.sources.some(a=>bJ(a,b)));e.push({title:b,subPoints:[{title:b,sources:[b]}],facts:[],targetWords:1200}),d.push(b);continue}if((0,bC.tZ)(b)){let a=f||e[e.length-1];if(a){a.subPoints.push({title:b,sources:[b]}),d.push(b);continue}}a&&g>=.5?(a.sources.push(b),d.push(b)):f?(f.subPoints.push({title:b,sources:[b]}),d.push(b)):c.push(b)}return{blocks:e,coveredSections:c,fallbackSections:d,llmPlanned:b.length>0}}(b,h)));return bL(j.blocks,a.targetWords),{...j,llmPlanned:g.some(a=>a.llmPlanned),llmFailure:i.length>0?`块级降级(${i.join(";")})`:void 0}}async function bO(a){let b=await bN(a).catch(a=>({blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:a instanceof Error?a.message:String(a)}))??{blocks:[],coveredSections:[],fallbackSections:[],llmPlanned:!1,llmFailure:"LLM 规划未返回有效结构"};return b.blocks.length>0?b:{...bK(bI(a.chapter),a.chapter.title,a.targetWords),llmFailure:b.llmFailure||"LLM 调用异常"}}async function bP(a,b){let c=(0,v.r4)(a.content);if(0===c.length)return[];let d=[];for(let e of c){let c=e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),f=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),g=f?.[1]||"",h=await (0,bB.AI)(e,(0,bB.Ym)(e,a.chapter,a.evidence),b),i=(0,bB.uQ)(e,g,h);i&&d.push(`${e}:${i}`)}return d}function bQ(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function bR(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function bS(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function bT(a){var b;(0,z.Te)(a.signal);let c=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}
|
|
48
48
|
数值口径清单:${c||"(未提取到总量口径数字)"}
|
|
49
49
|
正文摘要:${b.slice(0,600)}`}).join("\n\n---\n\n"),d=function(a){let b=Math.ceil(a.totalChars/Math.max(1e3,a.chunkChars)),c="chapter"===a.phase?bS("DOCUMENT_CHAPTER_REVIEW_MAX_CHUNKS")||Math.min(Math.max(2,Math.floor(a.totalChars/a.chapterCount/4e3)),b):"global"===a.phase?bS("DOCUMENT_GLOBAL_REVIEW_MAX_CHUNKS")||Math.min(4,b):bS("DOCUMENT_FINAL_REVIEW_MAX_CHUNKS")||Math.min(6,b);return{chunks:c,budgetPerChunk:Math.ceil(a.totalChars/Math.max(1,c)),maxIssues:Math.max(4,Math.min(28,Math.ceil(2.5*c)))}}({totalChars:c.length,chapterCount:a.chapters.length,chunkChars:16e3,phase:"global"}),e=bQ(c,16e3).map((a,b)=>`**第 ${b+1}/${bQ(c,16e3).length} 部分**
|
|
50
50
|
|
|
@@ -73,7 +73,7 @@ ${k}`:""}
|
|
|
73
73
|
${g}`:"",h?`【章节/格式提示词】
|
|
74
74
|
${h}`:""].filter(Boolean).join("\n\n"),promptDetails:f}}function dX(a){return ak(a).replace(/[\s,,.。::;;||()()《》<>【】"“”'‘’]/gu,"").split("[").join("").split("]").join("").toLowerCase()}function dY(a){return/工程造价|造价|报价|投标报价|报价明细|综合单价|单价|合价|金额|税率|增值税|利润|预留金|暂列金额|最高投标限价|招标控制价|合同估算价|合同估算价格|投资估算|估算价/u.test(a)}function dZ(a){let b=dv((0,z.lG)(a));return!b||/资料未明确|系统暂未从知识库确认|未确认|待确认|无|暂无/u.test(b)||/###|第\s*\d+\s*页|共\s*\d+\s*页|新版交易系统|操作帮助|登录页面|见招标公告|未尽事宜|详见图纸|招标文件补疑|政府相关文件|规范等其它资料/u.test(b)||/^\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m3|m³|%|元|万元)?$/iu.test(b)||dY(b)||b.length>160?"":b}function d$(a,b,c={}){let d=b.filter(a=>{let b=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,c=(0,z.lG)(a.value);return!(dY(`${b}${c}`)||!dZ(c)||/第\s*\d+\s*页|新版交易系统|操作帮助|见招标公告|未尽事宜|详见图纸|招标文件补疑|政府相关文件|规范等其它资料/u.test(`${b}${c}${a.sourceFile||""}`))&&(/项目名称|工程名称|项目编号|招标项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|计划工期|合同工期|质量标准|质量目标/u.test(b)||/危大|安全|资源|材料|机械|设备/u.test(b)&&!/^\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m3|m³|%|元|万元)?$/iu.test(c))}),e=new Set,f=[];for(let b of d){let d=dZ(b.value);if(!d)continue;let g=b.fieldName||b.key||b.fieldId||"资料事实",h=`${g}:${d}`;if(!e.has(h)&&(e.add(h),!function(a,b){let c=dX(a),d=dX(b);if(!d||d.length<2||c.includes(d))return!0;let e=b.match(/\d+(?:\.\d+)?\s*(?:日历天|天|个月|月|年|万元|元|平方米|㎡|m²|立方米|m³|米|m|mm|cm|台|套|人|项|%|MPa|kPa)?/giu)||[];return e.length>0&&e.some(a=>dX(a).length>=2&&c.includes(dX(a)))}(a,d)&&(f.push({fact:b,label:g,value:d}),c.maxItems&&f.length>=c.maxItems)))break}return f}function d_(a,b,c={}){return d$(a,b,{maxItems:c.maxIssues}).map(a=>({level:"warning",message:`已确认事实未在正文中落位:${a.label}=${a.value}`,suggestion:"请将该事实自然写入对应章节或小节,不得改变原始数值和单位。"}))}function d0(a){return/概况|项目|工程|地点|规模|工期|质量|估算/u.test(a)?{keyword:.65,vector:.25,rewrite:.8,hybridBonus:.2}:/人|材|机|资源|材料|设备|机械|劳动力/u.test(a)?{keyword:.55,vector:.35,rewrite:.75,hybridBonus:.18}:/危大|安全|文明|风险/u.test(a)?{keyword:.5,vector:.4,rewrite:.8,hybridBonus:.2}:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}}function d1(a,b){let c=`${a.title} ${(a.sections||[]).join(" ")} ${a.requiredFacts.join(" ")}`;return"reference"===b?.55:"table"===b?/清单|工程量|数量|材料|设备|资源|费用|造价|范围|统计|表/u.test(c)?1.45:.95:"rule"===b?/要求|规则|招标|评审|响应|质量|安全|验收|标准|工期|进度|风险|约束/u.test(c)?1.35:.95:"drawing"===b?/图纸|设计|布置|位置|平面|剖面|立面|空间|施工方法|做法/u.test(c)?1.35:.85:"specification"===b&&/技术|规范|标准|参数|做法|质量|验收|施工方法/u.test(c)?1.3:1}function d2(a,b){let c=`${b.sectionTitle||""}
|
|
75
75
|
${b.filePath}
|
|
76
|
-
${b.content}`;return Math.min(1.8,.16*[...new Set([a.title,...a.sections||[],...a.requiredFacts].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】-]+/u)).map(a=>a.trim()).filter(a=>a.length>=2).slice(0,36))].filter(a=>c.includes(a)).length)}function d3(a){return`${a.sectionTitle||""}${a.content}`.slice(0,600)}function d4(a,b,c,d){let e=b.map(b=>{let d=(0,s.A1)(b,a.requiredFacts)*d1(a,b.processingType)+d2(a,b),e=c.semantic?c.semantic.similarity(c.semantic.queryText,d3(b)):0;return{...b,score:.5*d+10*e}});return(0,s.QR)(e,c,d)}function d5(a,b,c){let d=(a.sections||[]).slice(0,10).join(" "),e=a.requiredFacts.slice(0,10).join(" "),f=a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4);return[...new Set([...f.length>=2?[`${a.title} ${d} ${e}`.trim(),...f.map(b=>`${b} ${(a.sections||[]).slice(0,6).join(" ")}`.trim()),`${f.slice(0,3).join(" ")} ${e}`.trim()]:[`${a.title} ${d} ${e}`.trim()],...b,...c].filter(Boolean))]}async function d6(a){if((0,z.Te)(a.signal),0===a.scopedFilePaths.length)return[];let b=`${a.chapter.title} ${a.sectionTitle}`.trim(),c=await a.manager.search(a.projectRoot,b,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:20,weights:d0(b),generationMode:!0});return(0,s.QR)(c.results.filter(b=>a.scopedFilePaths.includes(b.filePath)).map(b=>({chapterId:a.chapter.id,filePath:b.filePath,score:b.score+1.2,content:b.content,roleId:a.fileRoleByPath.get(b.filePath),processingType:a.fileProcessingByPath.get(b.filePath),sectionTitle:b.sectionTitle,source:"section-evidence"})),{preservePinned:!0})}function d7(a,b,c=12){if(0===b.length)return[];let d=b.slice(0,c).map(a=>e.basename(a)),f=b.length>c?` 等 ${b.length} 个文件`:"";return[`${a}:${d.join("、")}${f}`]}function d8(a,b=5){return a?Object.entries(a).sort((a,b)=>b[1].inputChars-a[1].inputChars).slice(0,b):[]}function d9(a,b,c){if(Number.isFinite(c)&&c>0)return Math.ceil(c);let d=new Set(b.filter(Boolean)),e=a.listFiles?.().filter(a=>0===d.size||d.has(a.relativePath)).reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0)??0;return e>0?e:Math.max(1,d.size)}let ea=[{pattern:/本小节围绕.+展开,结合绑定项目资料/u,label:"模板化开篇套话"},{pattern:/明确适用范围、控制目标、责任岗位与过程要求/u,label:"泛化目标罗列"},{pattern:/实施前应完成资料核对、技术交底和作业条件确认/u,label:"泛化前置条件"},{pattern:/交底覆盖率按\s*100%?\s*控制/u,label:"空泛交底承诺"},{pattern:/关键问题在\s*24\s*小时内形成整改责任/u,label:"空泛整改时限"},{pattern:/按施工准备→过程实施→检查验收→问题整改→资料归档的闭环组织/u,label:"通用闭环套话"},{pattern:/按作业条件确认→技术交底→过程实施→自检互检→整改复查/u,label:"通用流程套话"},{pattern:/依据本项目已确认资料中的项目边界/u,label:"资料依据套话"},{pattern:/执行日巡查、周复核和节点验收制度/u,label:"泛化巡查制度"},{pattern:/一般问题\s*7\s*日内闭环/u,label:"泛化整改时限"},{pattern:/由项目经理、技术负责人和专职安全员联合复核/u,label:"岗位名单堆砌"},{pattern:/确保与总体施工部署、工期计划和验收要求保持一致/u,label:"原则性呼应"},{pattern:/结合现场实际情况(?:,|,)?合理(?:组织|安排|布置|配置)/u,label:"结合实际套话"},{pattern:/严格(?:执行|落实|按照)国家(?:现行)?(?:有关)?(?:规范|标准|规程)/u,label:"规范泛引用"},{pattern:/做到(?:文明施工|安全生产|质量第一|安全第一)/u,label:"口号式承诺"},{pattern:/(?:确保|保证)工程(?:质量|安全|进度|文明施工)/u,label:"目标口号"},{pattern:/建立(?:健全)?(?:完善)?(?:的)?(?:管理)?体系(?:和|,)?(?:落实|确保|保证)/u,label:"体系空话"}],eb=RegExp(ea.map(a=>`(?:${a.pattern.source})`).join("|"),"u"),ec=["本小节围绕以下内容展开并结合绑定项目资料","明确适用范围控制目标责任岗位与过程要求","实施前应完成资料核对技术交底和作业条件确认","交底覆盖率按100%控制","关键问题在24小时内形成整改责任","按施工准备过程实施检查验收问题整改资料归档的闭环组织","依据本项目已确认资料中的项目边界","执行日巡查周复核和节点验收制度","一般问题7日内闭环","由项目经理技术负责人和专职安全员联合复核","确保与总体施工部署工期计划和验收要求保持一致","结合现场实际情况合理组织安排","严格执行国家现行有关规范标准","做到文明施工安全生产质量第一","确保工程质量和安全进度","建立健全管理体系并落实相关制度"],ed=["每道工序完成后由质检员实测实量并记录数据","混凝土浇筑完成后每天洒水养护不少于两次","每周组织不少于一次的现场安全专项检查"];async function ee(a){return(0,cz.A)({prototypes:[...ec],negativePrototypes:[...ed],lexicalHints:eb,embedDocuments:a})}let ef=[/主要分部分项工程施工方案/u,/主要施工方法/u,/主要施工内容/u,/施工方案/u],eg=/(?:建筑面积|面积|总建筑面积)[约]?\s*\d+(?:\.\d+)?\s*(?:㎡|m²)|计划工期\s*\d+|日历天|地上\s*\d+\s*层|框架结构|质量标准[::]?\s*合格/giu;function eh(a){let b=a.split("\n"),c=[],d="",e=[];for(let a of b){let b=/^#{3,4}\s+(.+)$/u.exec(a.trim());b?((d||e.length>0)&&c.push({heading:d,body:e.join("\n")}),d=b[1].trim(),e=[]):e.push(a)}return(d||e.length>0)&&c.push({heading:d,body:e.join("\n")}),c}function ei(a){let b=[],c=new Map;for(let b of a)for(let a of eh(b.content)){let d=a.heading||b.title;for(let e of a.body.replace(/^#{1,6}\s+.*$/gmu,"").replace(/^\s*\|.*\|\s*$/gmu,"").replace(/^\s*[-|]\s*$/gmu,"").replace(/^\s*\[.*?\]\(.*?\)\s*$/gmu,"").split(/\n{1,}/u).map(a=>a.trim()).filter(a=>a.length>=60&&a.length<=400&&!/^\s*[-*]\s+/u.test(a))){let a=e.replace(/[,。,.;;::、()()【】[\]《》“”"'`\s]/gu,"");if(a.length<60)continue;let f=c.get(a)||[];f.some(a=>a.chapter===b.title&&a.section===d)||f.push({chapter:b.title,section:d}),c.set(a,f)}}let d=new Set;for(let[a,e]of c){let c=e.filter((a,b,c)=>c.findIndex(b=>b.chapter===a.chapter&&b.section===a.section)===b);if(c.length<2)continue;let f=c.map(a=>`${a.chapter}::${a.section}`).sort().join("|");if(d.has(f))continue;d.add(f);let g=e[0],h=g?`(如:${g.section} 中「${a.slice(0,30)}…」)`:"";if(b.push({level:c.length>=3?"error":"warning",severity:c.length>=3?"blocker":"warning",message:`发现相同段落出现在 ${c.length} 个不同小节:${c.map(a=>a.section).slice(0,6).join("、")}${h}`,suggestion:"每个小节必须针对其标题写专属内容,不得复制粘贴相同段落;重复小节应合并或删除后重写。"}),b.length>=8)break}return b}async function ej(a,b){let c=[],d=await ee(b);for(let b of a){let a=eh(b.content),e=[];for(let b of a){let a=b.body.split(/[。;;]/u).map(a=>a.trim()).filter(a=>a.length>=12);if(0===a.length)continue;let c=await d(a);a.forEach((a,b)=>{if(c[b])for(let{pattern:b,label:c}of ea)b.test(a)&&!e.includes(c)&&e.push(c)})}e.length>=3?c.push({level:"error",severity:"blocker",message:`${b.title} 存在大量模板化空话(${e.slice(0,6).join("、")})`,suggestion:'删除"本小节围绕…展开""按100%控制"式套话,按"责任岗位+执行动作+量化标准+检查频次+整改时限"重写。'}):e.length>0&&c.push({level:"warning",severity:"warning",message:`${b.title} 存在模板化空话:${e.join("、")}`,suggestion:"替换为具体量化做法;同一小节不得重复出现套话段落。"})}return c}async function ek(a,b){let c=[],d=await ee(b);for(let b of a){let a=0,e=new Set;for(let f of eh(b.content)){let g=f.body.split(/[。;;]/u).map(a=>a.trim()).filter(a=>a.length>=12);if(0===g.length)continue;let h=await d(g);for(let d=0;d<g.length;d+=1)!h[d]||e.has(g[d])||a>=12||(e.add(g[d]),a+=1,c.push({chapterId:b.id,chapterTitle:b.title,section:f.heading||b.title,sentence:g[d]}))}if(c.length>=60)break}return c.slice(0,60)}function el(a){let b=[];for(let c of a)for(let a of eh(c.content)){if(!ef.some(b=>b.test(a.heading)||b.test(c.title)))continue;let d=new Set(a.body.match(X.aX)||[]),e=new Set(a.body.match(eg)||[]),f=new Set(a.body.match(X.LT)||[]),g=a.body.length;if(g<400)continue;let h=d.size/(g/1e3),i=/拆除|清理|清底|清运|弃置|运输|搬运/u.test(a.heading);if(0===d.size){if(f.size>=6){b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 以设备配置参数为主:设备型号/容量参数 ${f.size} 项,工艺参数待补充`,suggestion:"设备清单型小节保留型号规格参数即可;如补充安装工艺(试验压力、坡度、间距、偏差),应同步写入工艺参数与验收节点。"});continue}if(i){b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 以工程量与保护措施为主,建议补充拆除深度偏差、保护挑网宽度、警戒距离等参数`,suggestion:"拆除类作业补充拆除厚度偏差(mm)、防护挑网/安全网宽度(m)、警戒区距离(m)等安全与技术参数即可,不强制 mm/MPa 级工艺参数。"});continue}b.push({level:"error",severity:"blocker",message:`${c.title} / ${a.heading} 无工艺参数:全文只有概况性数字,缺乏 mm/MPa/间距/偏差/试验压力等工艺级参数`,suggestion:"必须写入工艺参数(如桩位偏差≤50mm、搭接宽度≥100mm、闭水试验48h),参数来自绑定资料或行业规范值。"})}else h<(i?.3:1.5)&&b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 工艺参数密度偏低:每千字 ${d.size} 个工艺参数(概况数字 ${e.size} 个)`,suggestion:"增加工艺级参数落位;概况数字(面积、工期、层数)不能替代工艺参数。"})}return b}function em(a){let b=[];for(let c of a){let a=c.content.split("\n");for(let d=0;d<a.length;d+=1){let e=a[d].trim();if(!/^#{3}\s+[^\n]*(?:主要分部分项工程施工方案|主要施工方法)/u.test(e))continue;let f=a.length;for(let b=d+1;b<a.length;b+=1)if(/^#{2,3}\s+/u.test(a[b].trim())){f=b;break}let g=a.slice(d+1,f).join("\n").split(/^####\s+/gmu).slice(1).map(a=>a.trim()).filter(Boolean);if(0===g.length)continue;let h=g.filter(a=>!(0,z.Jb)(a));h.length>0&&b.push({level:"warning",severity:"warning",message:`${c.title} / ${e.replace(/^#{3}\s+(?:\d+(?:\.\d+)*\s+)?/u,"")} 有 ${h.length}/${g.length} 个分部分项内容要素不全(作业对象与工程量/工序顺序/施工方法至少缺一)`,suggestion:"每个分项方案需覆盖作业对象与工程量、工序安排、施工方法三方面要素,可分段用“施工概况/工艺流程/施工方法”标签组织,也可自然成文;工序顺序表达形式不限(顺序词叙述、编号步骤、列表或箭头链均可)。"})}}return b}async function en(a,b="",c){return[...ei(a),...await ej(a,c),...el(a),...em(a),...function(a,b=""){let c=[],d=(b||a.map(a=>a.content).join("\n\n")).split("\n"),e=0,f=0;for(;f<d.length;){let a=d[f].trim();if(!/^\|.+\|$/u.test(a)){f+=1;continue}let b=[];for(;f<d.length&&/^\|.+\|$/u.test(d[f].trim());)b.push(d[f].trim()),f+=1;if(b.length<3)continue;e+=1;let g=b[0].split("|").length-2,h=b.filter((a,b)=>0!==b&&a.replace(/\|/gu,"").replace(/[\s\-:]/gu,"").length>0),i=h.reduce((a,b)=>a+b.split("|").slice(1,-1).map(a=>a.trim()).filter(a=>""===a||"-"===a||"—"===a||"/"===a).length,0),j=h.length*Math.max(1,g);if(i>0&&i/Math.max(1,j)>=.4&&c.push({level:"warning",severity:"warning",message:`第 ${e} 个表格存在 ${i} 个空单元格(${h.length} 行),表格信息不完整`,suggestion:"表格每一列都必须填写,缺失字段应从资料补齐;无法确认的字段应删除该行而非留空。"}),c.length>=5)break}return c}(a,b)]}function eo(a){return Math.max(0,Math.min(100,Math.round(a)))}async function ep(a){let b=await ej(a),c=a.reduce((a,b)=>a+(b.content.match(/本小节围绕|交底覆盖率按100%|24小时内形成整改责任|按施工准备→过程实施→检查验收→问题整改→资料归档的闭环组织|按作业条件确认→技术交底→过程实施|依据本项目已确认资料中的项目边界/gu)||[]).length,0),d=await (0,cO.Bt)(a.map(a=>a.content).join("\n")),e=400*Math.max(0,d.ratio-.1);return{score:eo(100-15*c-25*b.filter(a=>"error"===a.level).length-e),detail:`模板化空话命中 ${c} 处,套话句占比 ${(100*d.ratio).toFixed(1)}%(docx 达标线 ≤10%),废话段问题 ${b.length} 项`}}async function eq(a,b="",c={}){let d=function(a){let b=a.map(a=>`${a.title} ${(a.sections||[]).join(" ")} ${a.content}`).join("\n"),c=[{label:"工程概况",pattern:/工程概况|项目概况|基本概况/u},{label:"主要施工内容",pattern:/主要施工内容/u},{label:"重难点分析",pattern:/重点.{0,4}难点/u},{label:"施工部署",pattern:/施工部署|总体部署|流水/u},{label:"进度计划",pattern:/进度计划|工期保障|工期计划/u},{label:"质量保证",pattern:/质量保证|质量管理|质量控制/u},{label:"安全文明",pattern:/安全.{0,8}(?:管理|措施|文明)|文明施工/u},{label:"资源配置",pattern:/劳动力|机械设备|材料.{0,4}计划|资源配置/u},{label:"绿色环保",pattern:/绿色施工|扬尘|噪声|环保/u},{label:"应急管理",pattern:/应急/u}],d=c.filter(a=>a.pattern.test(b)),e=eo(d.length/c.length*100),f=c.filter(a=>!a.pattern.test(b)).map(a=>a.label);return{score:e,detail:`覆盖 ${d.length}/${c.length} 个核心结构组${f.length?`;缺失:${f.join("、")}`:""}`}}(a),e=function(a){let b=a.map(a=>a.content).join("\n"),c=new Set(b.match(X.s2)||[]),d=new Set(b.match(/工程量|材料|设备|范围|流程|验收|检测|复试|调试|隐蔽|检验批|资料|记录|系统|部位|接口|规格|标准/gu)||[]),e=Math.max(1,b.length),f=c.size/(e/1e3);return{score:eo(Math.min(100,22*f+d.size/18*15)),detail:`量化参数 ${c.size} 项(每千字 ${f.toFixed(1)}),专业事实词 ${d.size}/18 类`}}(a),f=function(a){let b=a.map(a=>a.content).join("\n"),c=new Set(b.match(X.aX)||[]),d=Math.max(1,b.length),e=c.size/(d/1e3);return{score:eo(Math.min(100,20*e+40)),detail:`工艺参数 ${c.size} 项(每千字 ${e.toFixed(1)})`}}(a),g=function(a,b=""){let c=(b||a.map(a=>a.content).join("\n\n")).split("\n"),d=0,e=0,f=0;for(;f<c.length;){let a=c[f].trim();if(!/^\|.+\|$/u.test(a)){f+=1;continue}let b=[];for(;f<c.length&&/^\|.+\|$/u.test(c[f].trim());)b.push(c[f].trim()),f+=1;b.length<3||(d+=1,0===b.slice(1).filter(a=>a.replace(/\|/gu,"").replace(/[\s\-:]/gu,"").length>0).reduce((a,b)=>a+b.split("|").slice(1,-1).map(a=>a.trim()).filter(a=>""===a||"-"===a||"—"===a||"/"===a).length,0)&&(e+=1))}return{score:0===d?40:eo(e/d*100),detail:`表格 ${d} 个,其中字段完整 ${e} 个`}}(a,b),h=await ep(a),i=function(a){let b=ei(a);return{score:eo(100-20*b.length-20*b.filter(a=>"error"===a.level).length),detail:`重复段落问题 ${b.length} 项`}}(a),j=function(a,b=""){let c=b||a.map(a=>a.content).join("\n\n"),d=[{label:"质量标准",pattern:/质量标准|质量要求|合格率/u},{label:"计划工期",pattern:/计划工期|工期要求|日历天/u},{label:"保修",pattern:/缺陷责任期|保修|质保/u},{label:"安全目标",pattern:/安全.{0,8}目标|文明.{0,8}目标/u},{label:"项目经理",pattern:/项目经理|项目负责人/u}],e=d.filter(a=>a.pattern.test(c)),f=d.filter(a=>!a.pattern.test(c));return{score:eo(e.length/d.length*100),detail:`招标硬性要求响应 ${e.length}/${d.length} 项${f.length?`(未响应:${f.map(a=>a.label).join("、")})`:""}`}}(a,b),k=[{key:"structure",label:"结构完整度",score:d.score,detail:d.detail,weight:.18},{key:"factLanding",label:"事实落位率",score:e.score,detail:e.detail,weight:.18},{key:"processParameter",label:"工艺参数密度",score:f.score,detail:f.detail,weight:.16},{key:"table",label:"表格完整度",score:g.score,detail:g.detail,weight:.12},{key:"filler",label:"废话控制",score:h.score,detail:h.detail,weight:.14},{key:"duplication",label:"重复控制",score:i.score,detail:i.detail,weight:.12},{key:"reviewResponse",label:"评标响应度",score:j.score,detail:j.detail,weight:.1}],l=eo(k.reduce((a,b)=>a+b.score*b.weight,0)),m=c.templating?.level==="heavy"?Math.min(l,54):c.templating?.level==="medium"?Math.min(l,69):l,n=m>=85?"专业":m>=70?"良好":m>=55?"合格":"待提升",o=[...ei(a),...await ej(a),...el(a),...em(a)].slice(0,5).map(a=>a.message),p=k.filter(a=>a.score<70).map(a=>`${a.label}(${a.score}分)`);return{total:m,grade:n,dimensions:k,summary:`施工组织设计专业度评分 ${m} 分(${n})${c.templating&&"light"!==c.templating.level?`;模板化等级:${"heavy"===c.templating.level?"重度":"中度"}(降档已生效)`:""}${p.length?`;待提升:${p.join("、")}`:""}`,topIssues:o}}async function er(a){var b;if(!("heavy"===(b=a.templating).level||b.vagueHitCount>0||b.difficultyHeavyTemplated))return{issues:[],reviewed:!1};let c=(0,cO.T4)(a.markdown),d=[`确定性检测信号:模板化等级=${a.templating.level},套话句占比=${(100*a.templating.fillerRatio).toFixed(1)}%,模糊应答词命中=${a.templating.vagueHitCount}(${a.templating.vaguePhrases.join("、")||"无"}),重难点归因+量化双达标占比=${(100*a.templating.difficultyCountermeasureRatio).toFixed(0)}%,跨项目残留=${a.templating.crossProjectResidue.join("、")||"无"}${c.found.length?`,四新技术命中=${c.found.join("、")}`:""}`,`待复核正文(节选):
|
|
76
|
+
${b.content}`;return Math.min(1.8,.16*[...new Set([a.title,...a.sections||[],...a.requiredFacts].flatMap(a=>a.split(/[\s、,,。;;::()()《》【】-]+/u)).map(a=>a.trim()).filter(a=>a.length>=2).slice(0,36))].filter(a=>c.includes(a)).length)}function d3(a){return`${a.sectionTitle||""}${a.content}`.slice(0,600)}function d4(a,b,c,d){let e=b.map(b=>{let d=(0,s.A1)(b,a.requiredFacts)*d1(a,b.processingType)+d2(a,b),e=c.semantic?c.semantic.similarity(c.semantic.queryText,d3(b)):0;return{...b,score:.5*d+10*e}});return(0,s.QR)(e,c,d)}function d5(a,b,c){let d=(a.sections||[]).slice(0,10).join(" "),e=a.requiredFacts.slice(0,10).join(" "),f=a.title.split(/[、,,与和及]+/u).map(a=>a.trim()).filter(a=>a.length>=4);return[...new Set([...f.length>=2?[`${a.title} ${d} ${e}`.trim(),...f.map(b=>`${b} ${(a.sections||[]).slice(0,6).join(" ")}`.trim()),`${f.slice(0,3).join(" ")} ${e}`.trim()]:[`${a.title} ${d} ${e}`.trim()],...b,...c].filter(Boolean))]}async function d6(a){if((0,z.Te)(a.signal),0===a.scopedFilePaths.length)return[];let b=`${a.chapter.title} ${a.sectionTitle}`.trim(),c=await a.manager.search(a.projectRoot,b,{scope:"project",filters:{filePaths:a.scopedFilePaths},limit:20,weights:d0(b),generationMode:!0});return(0,s.QR)(c.results.filter(b=>a.scopedFilePaths.includes(b.filePath)).map(b=>({chapterId:a.chapter.id,filePath:b.filePath,score:b.score+1.2,content:b.content,roleId:a.fileRoleByPath.get(b.filePath),processingType:a.fileProcessingByPath.get(b.filePath),sectionTitle:b.sectionTitle,source:"section-evidence"})),{preservePinned:!0})}function d7(a,b,c=12){if(0===b.length)return[];let d=b.slice(0,c).map(a=>e.basename(a)),f=b.length>c?` 等 ${b.length} 个文件`:"";return[`${a}:${d.join("、")}${f}`]}function d8(a,b=5){return a?Object.entries(a).sort((a,b)=>b[1].inputChars-a[1].inputChars).slice(0,b):[]}function d9(a,b,c){if(Number.isFinite(c)&&c>0)return Math.ceil(c);let d=new Set(b.filter(Boolean)),e=a.listFiles?.().filter(a=>0===d.size||d.has(a.relativePath)).reduce((a,b)=>a+Math.max(0,Math.ceil(Number(b.chunkCount)||0)),0)??0;return e>0?e:Math.max(1,d.size)}let ea=[{pattern:/本小节围绕.+展开,结合绑定项目资料/u,label:"模板化开篇套话"},{pattern:/明确适用范围、控制目标、责任岗位与过程要求/u,label:"泛化目标罗列"},{pattern:/实施前应完成资料核对、技术交底和作业条件确认/u,label:"泛化前置条件"},{pattern:/交底覆盖率按\s*100%?\s*控制/u,label:"空泛交底承诺"},{pattern:/关键问题在\s*24\s*小时内形成整改责任/u,label:"空泛整改时限"},{pattern:/按施工准备→过程实施→检查验收→问题整改→资料归档的闭环组织/u,label:"通用闭环套话"},{pattern:/按作业条件确认→技术交底→过程实施→自检互检→整改复查/u,label:"通用流程套话"},{pattern:/依据本项目已确认资料中的项目边界/u,label:"资料依据套话"},{pattern:/执行日巡查、周复核和节点验收制度/u,label:"泛化巡查制度"},{pattern:/一般问题\s*7\s*日内闭环/u,label:"泛化整改时限"},{pattern:/由项目经理、技术负责人和专职安全员联合复核/u,label:"岗位名单堆砌"},{pattern:/确保与总体施工部署、工期计划和验收要求保持一致/u,label:"原则性呼应"},{pattern:/结合现场实际情况(?:,|,)?合理(?:组织|安排|布置|配置)/u,label:"结合实际套话"},{pattern:/严格(?:执行|落实|按照)国家(?:现行)?(?:有关)?(?:规范|标准|规程)/u,label:"规范泛引用"},{pattern:/做到(?:文明施工|安全生产|质量第一|安全第一)/u,label:"口号式承诺"},{pattern:/(?:确保|保证)工程(?:质量|安全|进度|文明施工)/u,label:"目标口号"},{pattern:/建立(?:健全)?(?:完善)?(?:的)?(?:管理)?体系(?:和|,)?(?:落实|确保|保证)/u,label:"体系空话"}],eb=RegExp(ea.map(a=>`(?:${a.pattern.source})`).join("|"),"u"),ec=["本小节围绕以下内容展开并结合绑定项目资料","明确适用范围控制目标责任岗位与过程要求","实施前应完成资料核对技术交底和作业条件确认","交底覆盖率按100%控制","关键问题在24小时内形成整改责任","按施工准备过程实施检查验收问题整改资料归档的闭环组织","依据本项目已确认资料中的项目边界","执行日巡查周复核和节点验收制度","一般问题7日内闭环","由项目经理技术负责人和专职安全员联合复核","确保与总体施工部署工期计划和验收要求保持一致","结合现场实际情况合理组织安排","严格执行国家现行有关规范标准","做到文明施工安全生产质量第一","确保工程质量和安全进度","建立健全管理体系并落实相关制度"],ed=["每道工序完成后由质检员实测实量并记录数据","混凝土浇筑完成后每天洒水养护不少于两次","每周组织不少于一次的现场安全专项检查"];async function ee(a){return(0,cz.A)({prototypes:[...ec],negativePrototypes:[...ed],lexicalHints:eb,embedDocuments:a})}let ef=[/主要分部分项工程施工方案/u,/主要施工方法/u,/主要施工内容/u,/施工方案/u],eg=/(?:建筑面积|面积|总建筑面积)[约]?\s*\d+(?:\.\d+)?\s*(?:㎡|m²)|计划工期\s*\d+|日历天|地上\s*\d+\s*层|框架结构|质量标准[::]?\s*合格/giu;function eh(a){let b=a.split("\n"),c=[],d="",e=[];for(let a of b){let b=/^#{3,4}\s+(.+)$/u.exec(a.trim());b?((d||e.length>0)&&c.push({heading:d,body:e.join("\n")}),d=b[1].trim(),e=[]):e.push(a)}return(d||e.length>0)&&c.push({heading:d,body:e.join("\n")}),c}function ei(a){let b=[],c=new Map;for(let b of a)for(let a of eh(b.content)){let d=a.heading||b.title;for(let e of a.body.replace(/^#{1,6}\s+.*$/gmu,"").replace(/^\s*\|.*\|\s*$/gmu,"").replace(/^\s*[-|]\s*$/gmu,"").replace(/^\s*\[.*?\]\(.*?\)\s*$/gmu,"").split(/\n{1,}/u).map(a=>a.trim()).filter(a=>a.length>=60&&a.length<=400&&!/^\s*[-*]\s+/u.test(a))){let a=e.replace(/[,。,.;;::、()()【】[\]《》“”"'`\s]/gu,"");if(a.length<60)continue;let f=c.get(a)||[];f.some(a=>a.chapter===b.title&&a.section===d)||f.push({chapter:b.title,section:d}),c.set(a,f)}}let d=new Set;for(let[a,e]of c){let c=e.filter((a,b,c)=>c.findIndex(b=>b.chapter===a.chapter&&b.section===a.section)===b);if(c.length<2)continue;let f=c.map(a=>`${a.chapter}::${a.section}`).sort().join("|");if(d.has(f))continue;d.add(f);let g=e[0],h=g?`(如:${g.section} 中「${a.slice(0,30)}…」)`:"";if(b.push({level:c.length>=3?"error":"warning",severity:c.length>=3?"blocker":"warning",message:`发现相同段落出现在 ${c.length} 个不同小节:${c.map(a=>a.section).slice(0,6).join("、")}${h}`,suggestion:"每个小节必须针对其标题写专属内容,不得复制粘贴相同段落;重复小节应合并或删除后重写。"}),b.length>=8)break}return b}async function ej(a,b){let c=[],d=await ee(b);for(let b of a){let a=eh(b.content),e=[];for(let b of a){let a=b.body.split(/[。;;]/u).map(a=>a.trim()).filter(a=>a.length>=12);if(0===a.length)continue;let c=await d(a);a.forEach((a,b)=>{if(c[b])for(let{pattern:b,label:c}of ea)b.test(a)&&!e.includes(c)&&e.push(c)})}e.length>=3?c.push({level:"error",severity:"blocker",message:`${b.title} 存在大量模板化空话(${e.slice(0,6).join("、")})`,suggestion:'删除"本小节围绕…展开""按100%控制"式套话,按"责任岗位+执行动作+量化标准+检查频次+整改时限"重写。'}):e.length>0&&c.push({level:"warning",severity:"warning",message:`${b.title} 存在模板化空话:${e.join("、")}`,suggestion:"替换为具体量化做法;同一小节不得重复出现套话段落。"})}return c}async function ek(a,b){let c=[],d=await ee(b);for(let b of a){let a=0,e=new Set;for(let f of eh(b.content)){let g=f.body.split(/[。;;]/u).map(a=>a.trim()).filter(a=>a.length>=12);if(0===g.length)continue;let h=await d(g);for(let d=0;d<g.length;d+=1)!h[d]||e.has(g[d])||a>=12||(e.add(g[d]),a+=1,c.push({chapterId:b.id,chapterTitle:b.title,section:f.heading||b.title,sentence:g[d]}))}if(c.length>=60)break}return c.slice(0,60)}function el(a){let b=[];for(let c of a)for(let a of eh(c.content)){if(!ef.some(b=>b.test(a.heading)||b.test(c.title)))continue;let d=new Set(a.body.match(X.aX)||[]),e=new Set(a.body.match(eg)||[]),f=new Set(a.body.match(X.LT)||[]),g=a.body.length;if(g<400)continue;let h=d.size/(g/1e3),i=/拆除|清理|清底|清运|弃置|运输|搬运/u.test(a.heading);if(0===d.size){if(f.size>=6){b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 以设备配置参数为主:设备型号/容量参数 ${f.size} 项,工艺参数待补充`,suggestion:"设备清单型小节保留型号规格参数即可;如补充安装工艺(试验压力、坡度、间距、偏差),应同步写入工艺参数与验收节点。"});continue}if(i){b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 以工程量与保护措施为主,建议补充拆除深度偏差、保护挑网宽度、警戒距离等参数`,suggestion:"拆除类作业补充拆除厚度偏差(mm)、防护挑网/安全网宽度(m)、警戒区距离(m)等安全与技术参数即可,不强制 mm/MPa 级工艺参数。"});continue}b.push({level:"error",severity:"blocker",message:`${c.title} / ${a.heading} 无工艺参数:全文只有概况性数字,缺乏 mm/MPa/间距/偏差/试验压力等工艺级参数`,suggestion:"必须写入工艺参数(如桩位偏差≤50mm、搭接宽度≥100mm、闭水试验48h),参数来自绑定资料或行业规范值。"})}else h<(i?.3:1.5)&&b.push({level:"warning",severity:"warning",message:`${c.title} / ${a.heading} 工艺参数密度偏低:每千字 ${d.size} 个工艺参数(概况数字 ${e.size} 个)`,suggestion:"增加工艺级参数落位;概况数字(面积、工期、层数)不能替代工艺参数。"})}return b}function em(a){let b=[];for(let c of a){let a=c.content.split("\n");for(let d=0;d<a.length;d+=1){let e=a[d].trim();if(!/^#{3}\s+[^\n]*(?:主要分部分项工程施工方案|主要施工方法)/u.test(e))continue;let f=a.length;for(let b=d+1;b<a.length;b+=1)if(/^#{2,3}\s+/u.test(a[b].trim())){f=b;break}let g=a.slice(d+1,f).join("\n").split(/^####\s+/gmu).slice(1).map(a=>a.trim()).filter(Boolean);if(0===g.length)continue;let h=g.filter(a=>!(0,z.Jb)(a));h.length>0&&b.push({level:"error",severity:"blocker",message:`${c.title} / ${e.replace(/^#{3}\s+(?:\d+(?:\.\d+)*\s+)?/u,"")} 有 ${h.length}/${g.length} 个分部分项内容要素不全(作业对象与工程量/工序顺序/施工方法至少缺一)`,suggestion:"每个分项方案需覆盖作业对象与工程量、工序安排、施工方法三方面要素,可分段用“施工概况/工艺流程/施工方法”标签组织,也可自然成文;工序顺序表达形式不限(顺序词叙述、编号步骤、列表或箭头链均可)。"})}}return b}async function en(a,b="",c){return[...ei(a),...await ej(a,c),...el(a),...em(a),...function(a,b=""){let c=[],d=(b||a.map(a=>a.content).join("\n\n")).split("\n"),e=0,f=0;for(;f<d.length;){let a=d[f].trim();if(!/^\|.+\|$/u.test(a)){f+=1;continue}let b=[];for(;f<d.length&&/^\|.+\|$/u.test(d[f].trim());)b.push(d[f].trim()),f+=1;if(b.length<3)continue;e+=1;let g=b[0].split("|").length-2,h=b.filter((a,b)=>0!==b&&a.replace(/\|/gu,"").replace(/[\s\-:]/gu,"").length>0),i=h.reduce((a,b)=>a+b.split("|").slice(1,-1).map(a=>a.trim()).filter(a=>""===a||"-"===a||"—"===a||"/"===a).length,0),j=h.length*Math.max(1,g);if(i>0&&i/Math.max(1,j)>=.4&&c.push({level:"warning",severity:"warning",message:`第 ${e} 个表格存在 ${i} 个空单元格(${h.length} 行),表格信息不完整`,suggestion:"表格每一列都必须填写,缺失字段应从资料补齐;无法确认的字段应删除该行而非留空。"}),c.length>=5)break}return c}(a,b)]}function eo(a){return Math.max(0,Math.min(100,Math.round(a)))}async function ep(a){let b=await ej(a),c=a.reduce((a,b)=>a+(b.content.match(/本小节围绕|交底覆盖率按100%|24小时内形成整改责任|按施工准备→过程实施→检查验收→问题整改→资料归档的闭环组织|按作业条件确认→技术交底→过程实施|依据本项目已确认资料中的项目边界/gu)||[]).length,0),d=await (0,cO.Bt)(a.map(a=>a.content).join("\n")),e=400*Math.max(0,d.ratio-.1);return{score:eo(100-15*c-25*b.filter(a=>"error"===a.level).length-e),detail:`模板化空话命中 ${c} 处,套话句占比 ${(100*d.ratio).toFixed(1)}%(docx 达标线 ≤10%),废话段问题 ${b.length} 项`}}async function eq(a,b="",c={}){let d=function(a){let b=a.map(a=>`${a.title} ${(a.sections||[]).join(" ")} ${a.content}`).join("\n"),c=[{label:"工程概况",pattern:/工程概况|项目概况|基本概况/u},{label:"主要施工内容",pattern:/主要施工内容/u},{label:"重难点分析",pattern:/重点.{0,4}难点/u},{label:"施工部署",pattern:/施工部署|总体部署|流水/u},{label:"进度计划",pattern:/进度计划|工期保障|工期计划/u},{label:"质量保证",pattern:/质量保证|质量管理|质量控制/u},{label:"安全文明",pattern:/安全.{0,8}(?:管理|措施|文明)|文明施工/u},{label:"资源配置",pattern:/劳动力|机械设备|材料.{0,4}计划|资源配置/u},{label:"绿色环保",pattern:/绿色施工|扬尘|噪声|环保/u},{label:"应急管理",pattern:/应急/u}],d=c.filter(a=>a.pattern.test(b)),e=eo(d.length/c.length*100),f=c.filter(a=>!a.pattern.test(b)).map(a=>a.label);return{score:e,detail:`覆盖 ${d.length}/${c.length} 个核心结构组${f.length?`;缺失:${f.join("、")}`:""}`}}(a),e=function(a){let b=a.map(a=>a.content).join("\n"),c=new Set(b.match(X.s2)||[]),d=new Set(b.match(/工程量|材料|设备|范围|流程|验收|检测|复试|调试|隐蔽|检验批|资料|记录|系统|部位|接口|规格|标准/gu)||[]),e=Math.max(1,b.length),f=c.size/(e/1e3);return{score:eo(Math.min(100,22*f+d.size/18*15)),detail:`量化参数 ${c.size} 项(每千字 ${f.toFixed(1)}),专业事实词 ${d.size}/18 类`}}(a),f=function(a){let b=a.map(a=>a.content).join("\n"),c=new Set(b.match(X.aX)||[]),d=Math.max(1,b.length),e=c.size/(d/1e3);return{score:eo(Math.min(100,20*e+40)),detail:`工艺参数 ${c.size} 项(每千字 ${e.toFixed(1)})`}}(a),g=function(a,b=""){let c=(b||a.map(a=>a.content).join("\n\n")).split("\n"),d=0,e=0,f=0;for(;f<c.length;){let a=c[f].trim();if(!/^\|.+\|$/u.test(a)){f+=1;continue}let b=[];for(;f<c.length&&/^\|.+\|$/u.test(c[f].trim());)b.push(c[f].trim()),f+=1;b.length<3||(d+=1,0===b.slice(1).filter(a=>a.replace(/\|/gu,"").replace(/[\s\-:]/gu,"").length>0).reduce((a,b)=>a+b.split("|").slice(1,-1).map(a=>a.trim()).filter(a=>""===a||"-"===a||"—"===a||"/"===a).length,0)&&(e+=1))}return{score:0===d?40:eo(e/d*100),detail:`表格 ${d} 个,其中字段完整 ${e} 个`}}(a,b),h=await ep(a),i=function(a){let b=ei(a);return{score:eo(100-20*b.length-20*b.filter(a=>"error"===a.level).length),detail:`重复段落问题 ${b.length} 项`}}(a),j=function(a,b=""){let c=b||a.map(a=>a.content).join("\n\n"),d=[{label:"质量标准",pattern:/质量标准|质量要求|合格率/u},{label:"计划工期",pattern:/计划工期|工期要求|日历天/u},{label:"保修",pattern:/缺陷责任期|保修|质保/u},{label:"安全目标",pattern:/安全.{0,8}目标|文明.{0,8}目标/u},{label:"项目经理",pattern:/项目经理|项目负责人/u}],e=d.filter(a=>a.pattern.test(c)),f=d.filter(a=>!a.pattern.test(c));return{score:eo(e.length/d.length*100),detail:`招标硬性要求响应 ${e.length}/${d.length} 项${f.length?`(未响应:${f.map(a=>a.label).join("、")})`:""}`}}(a,b),k=[{key:"structure",label:"结构完整度",score:d.score,detail:d.detail,weight:.18},{key:"factLanding",label:"事实落位率",score:e.score,detail:e.detail,weight:.18},{key:"processParameter",label:"工艺参数密度",score:f.score,detail:f.detail,weight:.16},{key:"table",label:"表格完整度",score:g.score,detail:g.detail,weight:.12},{key:"filler",label:"废话控制",score:h.score,detail:h.detail,weight:.14},{key:"duplication",label:"重复控制",score:i.score,detail:i.detail,weight:.12},{key:"reviewResponse",label:"评标响应度",score:j.score,detail:j.detail,weight:.1}],l=eo(k.reduce((a,b)=>a+b.score*b.weight,0)),m=c.templating?.level==="heavy"?Math.min(l,54):c.templating?.level==="medium"?Math.min(l,69):l,n=m>=85?"专业":m>=70?"良好":m>=55?"合格":"待提升",o=[...ei(a),...await ej(a),...el(a),...em(a)].slice(0,5).map(a=>a.message),p=k.filter(a=>a.score<70).map(a=>`${a.label}(${a.score}分)`);return{total:m,grade:n,dimensions:k,summary:`施工组织设计专业度评分 ${m} 分(${n})${c.templating&&"light"!==c.templating.level?`;模板化等级:${"heavy"===c.templating.level?"重度":"中度"}(降档已生效)`:""}${p.length?`;待提升:${p.join("、")}`:""}`,topIssues:o}}async function er(a){var b;if(!("heavy"===(b=a.templating).level||b.vagueHitCount>0||b.difficultyHeavyTemplated))return{issues:[],reviewed:!1};let c=(0,cO.T4)(a.markdown),d=[`确定性检测信号:模板化等级=${a.templating.level},套话句占比=${(100*a.templating.fillerRatio).toFixed(1)}%,模糊应答词命中=${a.templating.vagueHitCount}(${a.templating.vaguePhrases.join("、")||"无"}),重难点归因+量化双达标占比=${(100*a.templating.difficultyCountermeasureRatio).toFixed(0)}%,跨项目残留=${a.templating.crossProjectResidue.join("、")||"无"}${c.found.length?`,四新技术命中=${c.found.join("、")}`:""}`,`待复核正文(节选):
|
|
77
77
|
${function(a,b=6e3){return[a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n[\s\S]{0,3500}/u)?.[0]||"",a.replace(/#{1,6}\s+[^\n]*\n/gu,"").replace(/\s+/gu," ").slice(0,b)].filter(Boolean).join("\n\n").slice(0,b+4e3)}(a.markdown)}`,'返回 JSON:{"issues":["问题1","问题2"]}'];try{let b=await (0,U.bb)((0,v.y4)('你是招标技术标评审专家。对施工组织设计做语义级复核,只报告确定性规则覆盖不到的语义问题。\n复核维度(按《施工组织设计全维度校验提示词》判定标尺):\n1. 重难点三级判定:识别精准性(是否点明本项目真实难点而非泛泛而谈)→ 归因合理性(是否说明难点成因/风险来源)→ 对策匹配度(对策是否针对该难点的成因,而非通用措施堆砌);\n2. 术语等效性:同一对象是否前后术语一致(如"砼"与"混凝土"混用需统一),是否出现词面不同但概念等效的双重标准表述;\n3. 四新技术升级价值:若正文声称采用四新技术,其价值表述是否停留在"提升效率"式套话,缺少可对标官方推广目录或替代落后工艺的实质说明。\n每条问题必须包含:问题所在内容简述+判定依据(对应上面哪条维度)+一句话改进建议。\n只报告真实存在的问题,正文无问题时返回空数组;不得编造问题。只返回 JSON。'),d.join("\n\n"),{maxTokens:1200,temperature:.1,signal:a.signal,diagnostics:a.diagnostics,taskKind:"structuredGeneration"});return{issues:Array.isArray(b?.issues)?b.issues.filter(a=>"string"==typeof a&&a.length>0).slice(0,6):[],reviewed:!0}}catch{return{issues:[],reviewed:!1}}}let es={合规红线:"【合规红线定向修复】",内容质量:"【内容质量定向修复】",数据逻辑:"【数据逻辑一致性定向修复】",内容完整:"【内容完整性定向补写】",本地适配:"【属地适配定向修复】",模板化:"【模板化定向改写】",围串标残留:"【跨项目残留定向清理】"},et={合规红线:"该章节正文存在触发废标或硬扣分的合规红线问题。请以局部 patch 方式修复:对照住建部37号令与招标文件实质性条款,将违规/缺失表述改为合规表述(如补写危大分级与审批流程、专家论证安排、实质响应内容),引用现行有效规范编号;不得删除其他合规内容。",内容质量:"该章节正文存在影响得分档位的内容质量问题。请以局部 patch 方式修复:将套话句改写为绑定本项目对象、动作、量化指标与验收闭环的具体表述(每句至少含一个本项目事实或工程对象);术语与清单特征对齐;措施按「具体动作+量化指标+验收标准」格式落地;评分项核心内容前移至小节开头。不得改动事实数据。",数据逻辑:"该章节正文存在前后矛盾或不可量化的数据逻辑问题。请以局部 patch 方式修复:以绑定资料(图纸/工程量清单/规范)为准统一唯一口径,删除矛盾数值;无法反查的数字改为定性表述,禁止编造;控制指标全部改写为可量化、可核查的表述。",内容完整:"该章节正文缺少评分点对应内容或关键要素不完整。请以局部 patch 方式补写缺失内容:内容必须绑定本项目事实与清单特征,按「具体动作+量化指标+验收标准」格式撰写,符合正文已有风格;不新增小节标题、不改动其他内容。",本地适配:"该章节正文缺少属地适配项。请以局部 patch 方式补写:属地创优目标(奖项名称以招标文件要求原文为准)、项目所在地气候专项措施、智慧工地对接项目所在地监管平台、危大属地管控要求等按缺陷描述逐项补齐,与项目实际规模相符,不得编造已获奖项或虚构平台名称。",模板化:"该章节正文被判定为模板化内容(通用表述占比超标/工艺与清单不匹配/通用句式残留)。请以局部 patch 方式改写:将通用表述替换为绑定本项目专属参数(部位、深度、高度、工程量、清单分项)的具体表述;删除“一般来说、通常情况下、按照规范施工”类通用句式;工艺名称逐字对齐清单项目特征。保持段落结构不变。",围串标残留:"该章节正文存在跨项目内容残留(其他项目名称/其他标段参数/其他城市地名/旧模板遗留)。请以局部 patch 方式清理:删除残留内容并改写为绑定本项目的对应表述;如残留内容无本项目对应物,直接删除相关句子。"},eu=[{field:"劳动力高峰人数",pattern:/(?:劳动力|用工)(?:高峰期|高峰|峰值)?[^。;\n\d]{0,18}(\d+(?:\.\d+)?)\s*人/gu},{field:"装配率",pattern:/(?:装配率|预制率)[^。;\n\d%]{0,12}(\d+(?:\.\d+)?)\s*%/gu},{field:"装配率",pattern:/(\d+(?:\.\d+)?)\s*%[^。;\n]{0,6}(?:装配率|预制率)/gu},{field:"支护形式",pattern:/(放坡|喷锚|土钉墙|灌注桩|排桩|地下连续墙|SMW工法桩|钢板桩|复合土钉墙)/gu,contextRequired:/支护|围护|基坑/u},{field:"总工期",pattern:/(?:总工期|计划工期|工期)[^。;\n\d]{0,10}(\d+)\s*(?:个)?(?:日历天|天)/gu},{field:"总建筑面积",pattern:/(?:总建筑面积|单体建筑面积|建筑面积)[^。;\n\d]{0,10}(\d+(?:\.\d+)?)\s*(?:㎡|平方米|m2|m²)/gu},{field:"质量标准",pattern:/质量(?:目标|标准)[^。;\n]{0,14}(合格|优良|省优|国优|市优|[\u4e00-\u9fa5]{2,6}(?:杯|奖))/gu,normalize:a=>a.replace(/^(?:确保|争创|争取|力争|获得|达到|争获|创建|力创|评为|荣获)/u,"")}],ev={否决级:0,高风险:1,中风险:2,低风险:3},ew={type:"object",required:["issues"],properties:{issues:{type:"array",required:!0,maxItems:12,items:{type:"object",required:!0,properties:{dimension:{type:"string",required:!0},location:{type:"string",required:!0},quote:{type:"string",required:!0,minLength:4},riskLevel:{type:"string",required:!0},basis:{type:"string",required:!0},description:{type:"string",required:!0}}}},templatingLevel:{type:"string"}}};function ex(a,b){let c=[],d=[],e=0;for(let f of a){let a=(0,w.V7)(f.content);d.length>0&&e+a>b&&(c.push(d),d=[],e=0),d.push(f),e+=a}return d.length>0&&c.push(d),c}function ey(a,b=9e3,c=7){let d=[];for(let c of a)d.push(...function(a,b){let c=a.content||"";if((0,w.V7)(c)<=b)return[a];let d=c.split(/\n(?=#{2,4}\s+\S)/u).filter(a=>a.trim().length>0),e=[];for(let a of d){if((0,w.V7)(a)<=b){e.push(a);continue}let c=a.split(/\n\n+/u).filter(a=>a.trim().length>0),d="";for(let a of c)d&&(0,w.V7)(d)+(0,w.V7)(a)>b?(e.push(d),d=a):d=d?`${d}
|
|
78
78
|
|
|
79
79
|
${a}`:a;d&&e.push(d)}let f=[],g="";for(let a of e)g&&(0,w.V7)(g)+(0,w.V7)(a)>b?(f.push(g),g=a):g=g?`${g}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-61fe67c7203b6001.js","static/chunks/pages/index-cb27bfa36c212ab5.js"],"/_app":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/css/3854c6b3c59c0c44.css","static/chunks/pages/_app-24bef62eef01afe6.js"],"/_error":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/224-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-61fe67c7203b6001.js","static/chunks/pages/index-cb27bfa36c212ab5.js"],"/_app":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/css/3854c6b3c59c0c44.css","static/chunks/pages/_app-24bef62eef01afe6.js"],"/_error":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/102-881dcc464f983c89.js","static/chunks/289-42781fb699646699.js","static/chunks/994-241f87efc61005b8.js","static/chunks/pages/asset-library-f6319fc04559e43d.js"],"/document-roles":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/787-c18af810af3433f6.js","static/chunks/102-881dcc464f983c89.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/289-42781fb699646699.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/pages/document-roles-4ccb2db16dc4b63c.js"],"/documents":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/787-c18af810af3433f6.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/930-0436dcaa92fb41f6.js","static/chunks/pages/documents-7e063a1115c053eb.js"],"/guide":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/787-c18af810af3433f6.js","static/chunks/986-771dc425e7b25964.js","static/chunks/pages/guide-139f55bcc9c6548b.js"],"/knowledge":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/787-c18af810af3433f6.js","static/chunks/102-881dcc464f983c89.js","static/chunks/289-42781fb699646699.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/850-0f48354694fc6b3e.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/file-detail-3a04722f7720abf5.js"],"/knowledge/files":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/102-881dcc464f983c89.js","static/chunks/289-42781fb699646699.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/files-98ec72061cdb64d3.js"],"/knowledge/manage":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/787-c18af810af3433f6.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/788-e98701da4d6ca319.js","static/chunks/pages/knowledge/manage-558987c599dc4cd5.js"],"/models":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/455-e1b41ac4946d2b6f.js","static/chunks/827-a6dc09e42833e6a3.js","static/chunks/pages/models-1fe7c964edefdd30.js"],"/overview":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-61fe67c7203b6001.js","static/chunks/pages/overview-8713b5d37af0eeb3.js"],"/prompt":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/260-244c94eacd903620.js","static/chunks/pages/prompt-839287c514595765.js"],"/settings":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/pages/settings-17632b1471b4862f.js"],"/system/logs":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/883-506cbca959974997.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/44-d3545eedd5c75ef1.js","static/chunks/224-790cf01fcf6820ee.js","static/chunks/102-881dcc464f983c89.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/289-42781fb699646699.js","static/chunks/pages/system/logs-2e849bcdf371d791.js"],"/template-references":["static/chunks/webpack-4224e970a97a4a86.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-91fb767ebd74c9c1.js","static/chunks/717-743b697a417dd5ee.js","static/chunks/69-34d57b77fd2eed20.js","static/chunks/700-5d29b0475311f590.js","static/chunks/787-c18af810af3433f6.js","static/chunks/102-881dcc464f983c89.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/564-30bfcb28e1d2c309.js","static/chunks/pages/template-references-e0ab1466f28cc4fc.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/3854c6b3c59c0c44.css" as="style"/><link rel="stylesheet" href="/_next/static/css/3854c6b3c59c0c44.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4224e970a97a4a86.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-91fb767ebd74c9c1.js" defer=""></script><script src="/_next/static/chunks/pages/_app-24bef62eef01afe6.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/ydAAx9JNRPdo0Wsrs-Rqo/_buildManifest.js" defer=""></script><script src="/_next/static/ydAAx9JNRPdo0Wsrs-Rqo/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar"><a href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon text-white dark:text-black"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/document-roles"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">角色配置</span></div></a><a href="/documents"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span class="sidebarLabel">工作流模版库</span></div></a><a href="/template-references"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel">模板参考</span></div></a><a href="/asset-library"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="sidebarLabel">生成资源</span></div></a><a href="/system/logs"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg><span class="sidebarLabel">系统日志</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav><div class="sidebarCollapseWrapper"><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button></div></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><span class="ant-badge css-1pi45l5 css-var-_R_16_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"ydAAx9JNRPdo0Wsrs-Rqo","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/3854c6b3c59c0c44.css" as="style"/><link rel="stylesheet" href="/_next/static/css/3854c6b3c59c0c44.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4224e970a97a4a86.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-91fb767ebd74c9c1.js" defer=""></script><script src="/_next/static/chunks/pages/_app-24bef62eef01afe6.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/mJGget74xAKOGvhgTaIXm/_buildManifest.js" defer=""></script><script src="/_next/static/mJGget74xAKOGvhgTaIXm/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar"><a href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon text-white dark:text-black"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/document-roles"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">角色配置</span></div></a><a href="/documents"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span class="sidebarLabel">工作流模版库</span></div></a><a href="/template-references"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel">模板参考</span></div></a><a href="/asset-library"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="sidebarLabel">生成资源</span></div></a><a href="/system/logs"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg><span class="sidebarLabel">系统日志</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav><div class="sidebarCollapseWrapper"><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button></div></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><span class="ant-badge css-1pi45l5 css-var-_R_16_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"mJGget74xAKOGvhgTaIXm","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|