@customize-agent/server 4.12.14 → 4.12.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/208.js +12 -9
- package/.next/server/chunks/2886.js +30 -31
- package/.next/server/chunks/5284.js +3 -3
- package/.next/server/chunks/5726.js +1 -1
- package/.next/server/chunks/6482.js +3 -3
- 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 +24 -24
- package/package.json +1 -1
- /package/.next/static/{8uib-RXdUL8MMG7yUTeMG → E8-6CWYYv3eI-kKzMQw6E}/_buildManifest.js +0 -0
- /package/.next/static/{8uib-RXdUL8MMG7yUTeMG → E8-6CWYYv3eI-kKzMQw6E}/_ssgManifest.js +0 -0
|
@@ -28,7 +28,7 @@ ${k.map(a=>`- ${a.key||a.fieldName}:${(0,f.eE)((0,i.lG)(a.value))}${a.sourceFi
|
|
|
28
28
|
${j.join("\n")}`:"",l.length?`本章资料中可直接使用的可靠精确参数/编号:${l.join("、")}。这些参数来自绑定资料,不属于编造;涉及对应对象、部位、工序、材料、设备、项目概况、质量验收或安全控制时必须自然写入正文,并保持原样或等价专业表达。量化参数落位是硬性验收项:本章正文必须达到每千字不少于 2 个不同量化参数的密度(以上方清单参数优先),同一参数不得反复堆砌凑数,参数种类不足将被打回重写。项目基础事实中的合同估算价、计划工期可用于项目概况;不得写入报价明细、单价、税率、预留金。`:"",n.length?`当前事实需求仍未充分确认:${n.join("、")}。未确认项不得编造;但已满足事实需求中的资料事实必须写入对应小节。`:"",a.missingFacts.length?`模板显式要求中当前检索未充分命中的项:${a.missingFacts.join("、")}。未命中项不得编造,但不得因此省略上方已经明确的可靠参数。`:"",`本章可用材料来源约 ${m} 个文件,正文必须按事实需求把可用事实内化到对应小节,不得单列后台资料清单。`].filter(Boolean).join("\n")}function A(a){let b=function(a){if(!a)return[];let b=[];for(let c of a.split(/\r?\n|[。;;]/u)){let a=c.trim();if(!(a.length<4)&&!(a.length>240)&&/计划工期|合同工期|工期|日历天|建设地点|工程地点|建设规模|工程规模|建筑面积|质量标准|质量目标|招标范围|施工范围|工作内容|合同估算|投资估算|最高投标限价|招标控制价|暂列金额|安全目标|文明施工目标|项目名称|工程名称/u.test(a)&&(!/(?:请|务必|不得|禁止|不要|要求你|你需要|生成|输出|格式|模板)/u.test(a)||/(?:日历天|㎡|m2|平方米|万元|元|米|天|%|层|栋|台|套)/u.test(a))&&(b.push(a),b.length>=24))break}return[...new Set(b)]}(a);return 0===b.length?"":["【用户提示词明确给定的事实——最高优先级,必须原样写入正文相关小节】",...b.map(a=>`- ${a}`),"这些事实来自用户要求;若与绑定材料中的数值冲突,以绑定材料为准。"].join("\n")}async function B(a){let b=a.sections.length?a.sections.map((a,b)=>`${b+1}. ${a}`).join("\n"):"(本章无预设小节,请按材料自然归纳 2-5 个主题作为大纲小节)",c=["你是文档事实规划专家。先通读绑定材料,再为本章每个小节列出「可写事实」,供 Writer 逐条落位。","事实必须逐字来自绑定材料:数值、单位、标准编号必须原样保留,不得改写、换算或编造;不得把写作要求当作事实。","quantifiedFacts 放含数字/单位/编号的事实;missingFacts 放该小节需要但材料中确实找不到的事实(供 Writer 用公共专业知识补做法,禁止编造具体值)。","只返回 JSON,不要返回 markdown。"].filter(Boolean).join("\n\n"),d=[a.promptTexts?`配置写作主控提示词:
|
|
29
29
|
${a.promptTexts}`:"",`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,`章节目的:${a.chapter.purpose}`,`预设小节:
|
|
30
30
|
${b}`,a.requiredFacts.length?`模板要求覆盖的事实:${a.requiredFacts.join("、")}`:"",a.missingFacts.length?`当前检索未充分命中的事实(如材料中确实没有,写入对应小节的 missingFacts):${a.missingFacts.join("、")}`:"",`绑定材料:
|
|
31
|
-
${a.evidenceText}`,'返回 JSON:{"sections":[{"title":"小节名","facts":["可写事实(必须来自材料)"],"quantifiedFacts":["含数值/单位/编号的事实(必须原样)"],"missingFacts":["该小节需要但材料缺失的事实"]}]}'].filter(Boolean).join("\n\n");for(let b=0;b<2;b+=1){let b=await (0,h.bb)(c,d,{maxTokens:1600,temperature:0,signal:a.signal,diagnostics:a.diagnostics});if(b&&Array.isArray(b.sections)&&b.sections.length>0)return b}}async function C(a,b,c,d,e,i,j,k="",n={}){let o,p=(0,f.QO)(b,c),q=(0,f.ks)(p,{maxChars:(0,f.Pc)(n.targetWords||n.minWords,n.evidenceFloorChars,n.evidenceCeilingChars),requiredFacts:b.requiredFacts}),r=process.env.DOCUMENT_TWO_STEP_GENERATION,s=!1!==n.twoStep&&"0"!==r&&c.length>=3&&q.length>0,t="",u=new Set;if(s&&(o=await B({template:a,chapter:b,sections:b.sections?.filter(Boolean)||[],requiredFacts:b.requiredFacts,missingFacts:d,promptTexts:e,evidenceText:q,signal:n.signal,diagnostics:n.diagnostics}))){var w,x;let a=[...new Set(o.sections.flatMap(a=>(a.missingFacts||[]).filter(Boolean)))];if(a.length>0&&n.supplementEvidenceProvider){let d=(await n.supplementEvidenceProvider(a).catch(()=>[])).filter(a=>!c.some(b=>b.filePath===a.filePath&&(b.sectionTitle||"")===(a.sectionTitle||"")));if(d.length>0){let e=[...c,...d];q=(0,f.ks)((0,f.QO)(b,e),{maxChars:(0,f.Pc)(n.targetWords||n.minWords,n.evidenceFloorChars,n.evidenceCeilingChars),requiredFacts:b.requiredFacts}),(u=new Set(a.filter(a=>!function(a,b){let c=b.map(a=>`${a.sectionTitle||""}
|
|
31
|
+
${a.evidenceText}`,'返回 JSON:{"sections":[{"title":"小节名","facts":["可写事实(必须来自材料)"],"quantifiedFacts":["含数值/单位/编号的事实(必须原样)"],"missingFacts":["该小节需要但材料缺失的事实"]}]}'].filter(Boolean).join("\n\n");for(let b=0;b<2;b+=1){let b=await (0,h.bb)(c,d,{maxTokens:1600,temperature:0,signal:a.signal,diagnostics:a.diagnostics});if(b&&Array.isArray(b.sections)&&b.sections.length>0)return b}}async function C(a,b,c,d,e,i,j,k="",n={}){let o,p=(0,f.QO)(b,c),q=(0,f.ks)(p,{maxChars:(0,f.Pc)(n.targetWords||n.minWords,n.evidenceFloorChars,n.evidenceCeilingChars),requiredFacts:b.requiredFacts,diagnostics:n.diagnostics}),r=process.env.DOCUMENT_TWO_STEP_GENERATION,s=!1!==n.twoStep&&"0"!==r&&c.length>=3&&q.length>0,t="",u=new Set;if(s&&(o=await B({template:a,chapter:b,sections:b.sections?.filter(Boolean)||[],requiredFacts:b.requiredFacts,missingFacts:d,promptTexts:e,evidenceText:q,signal:n.signal,diagnostics:n.diagnostics}))){var w,x;let a=[...new Set(o.sections.flatMap(a=>(a.missingFacts||[]).filter(Boolean)))];if(a.length>0&&n.supplementEvidenceProvider){let d=(await n.supplementEvidenceProvider(a).catch(()=>[])).filter(a=>!c.some(b=>b.filePath===a.filePath&&(b.sectionTitle||"")===(a.sectionTitle||"")));if(d.length>0){let e=[...c,...d];q=(0,f.ks)((0,f.QO)(b,e),{maxChars:(0,f.Pc)(n.targetWords||n.minWords,n.evidenceFloorChars,n.evidenceCeilingChars),requiredFacts:b.requiredFacts,diagnostics:n.diagnostics}),(u=new Set(a.filter(a=>!function(a,b){let c=b.map(a=>`${a.sectionTitle||""}
|
|
32
32
|
${a.content}`).join("\n"),d=a.split(/[\s、,,。;;::()()【】[\]《》]/u).map(a=>a.trim()).filter(a=>a.length>=4);return 0!==d.length&&(d.filter(a=>c.includes(a)).length>=2||[...new Set(a.match(/.{6,}/gu)||[])].some(a=>c.includes(a)))}(a,e)))).size<a.length&&(q=`${q}
|
|
33
33
|
|
|
34
34
|
【定向补充检索】以下大纲缺失事实已找到对应材料并追加在上方,请一并落位:${a.filter(a=>!u.has(a)).join("、")}`)}else u=new Set(a)}else u=new Set(a);w=o,x=u,t=["【事实大纲——由事实规划阶段生成,写作时必须逐条落位】","大纲事实全部来自绑定材料,落位不构成编造;数值、单位、标准编号必须与大纲完全一致。",...w.sections.map(a=>{let b=[...new Set([...a.facts||[],...a.quantifiedFacts||[]])].filter(Boolean),c=(a.missingFacts||[]).filter(a=>a&&x.has(a));return[`### ${a.title||"正文"}`,b.length?`必须写入的事实(数值必须原样):
|
|
@@ -57,7 +57,7 @@ ${n.join("\n")}
|
|
|
57
57
|
(上下文已截断,完整信息见绑定材料与证据)`,p=[l,m].filter(Boolean).join("\n");return p?`${p}
|
|
58
58
|
${o(n,Math.max(400,b-p.length-20))}`:o(n,b)}function T(a,b=2e3){let c=a.split(/\r?\n/u).map(a=>a.trim()).filter(Boolean),d=[],e=[],f=[],g=[],h=[],i="body";for(let a of c){if(a.startsWith("【招标文件评分项要求")){i="requirements",d.push(a);continue}if(a.startsWith("可信基础事实主表")){i="facts",e.push(a);continue}if(a.startsWith("章节专业任务卡:")){i="taskCard",f.push(a);continue}if(a.startsWith("章节实施方案:")){i="executionPlan",g.push(a);continue}if("requirements"===i)if(a.startsWith("【"))i="body";else{d.push(a);continue}if("facts"===i){if(a.startsWith("- ")){e.push(a);continue}i="body"}if("taskCard"===i){f.push(a);continue}if("executionPlan"===i){if(a.startsWith("- ")){g.push(a);continue}i="body"}h.push(a)}let j=h.filter(a=>/【.+】/u.test(a)||/=/u.test(a)||/^\d+\.\s+/u.test(a)||/:\S{1,40}$/u.test(a)),k=j.length>=8?j:h,l=[d.join("\n").trim(),e.join("\n").trim(),f.join("\n").trim(),g.join("\n").trim()].filter(Boolean).join("\n"),m=k.join("\n").trim(),n=(a,b)=>a.length<=b?a:`${a.slice(0,b)}
|
|
59
59
|
(上下文已截断,完整信息见绑定材料与证据)`;return l?`${l}
|
|
60
|
-
${n(m,Math.max(400,b-l.length-20))}`:n(m,b)}async function U(a){var b;let c=F(a.sectionTitle,a.chapter,a.evidence),d=await Q(a.sectionTitle,c),i=(0,f.ks)((0,f.QO)(a.chapter,c),{maxChars:(0,f.Pc)(a.targetWords,3500,9e3),requiredFacts:a.chapter.requiredFacts}),l=a.compactProjectContext?a.scopedProjectContext?T(a.projectContext):S(a.projectContext):a.projectContext,m=v.Yp.test(a.sectionTitle)||v.gG.test(a.sectionTitle)?(0,r.Dz)(a.projectContext,c):[],s=m.length>0?function(a,b=[]){let c=new Set;for(let b of a){let a=o.get(b);for(let[d,e]of(a&&c.add(a),o))d.length>=3&&b.includes(d)&&c.add(e);for(let a of q)if(a.pattern.test(b))for(let b of a.cardIds){let a=p.get(b);a&&c.add(a)}}for(let a of n){if(c.size>=16)break;(!a.projectTypes||a.projectTypes.some(a=>b.includes(a)))&&c.add(a)}return[...c].slice(0,16)}(m.map(a=>a.name)):[],t=s.length>0?(b=m.map(a=>a.name),0===s.length?"":["【施工工艺知识卡】",'以下为本领域常见工作包的工艺参考。写作"施工概况/施工流程/施工方法"时:',"1) 工序链必须与本项目资料确认的对象匹配,可裁剪但不得照搬无关工序;",'2) 工艺参数仅作为专业表达参考,只有在绑定资料明确时才写入具体数值,否则写控制方向(如"按规范控制桩位偏差")而非编造数字;','3) 检测验收必须落到记录名称(如"闭水试验记录、隐蔽验收记录、静载试验报告")。',...s.map(a=>{let c=b.some(b=>a.aliases.includes(b)||b===a.name);return`${c?"【直接匹配】":"【项目类型通用】"}${a.name}:
|
|
60
|
+
${n(m,Math.max(400,b-l.length-20))}`:n(m,b)}async function U(a){var b;let c=F(a.sectionTitle,a.chapter,a.evidence),d=await Q(a.sectionTitle,c),i=(0,f.ks)((0,f.QO)(a.chapter,c),{maxChars:(0,f.Pc)(a.targetWords,3500,9e3),requiredFacts:a.chapter.requiredFacts,diagnostics:a.diagnostics}),l=a.compactProjectContext?a.scopedProjectContext?T(a.projectContext):S(a.projectContext):a.projectContext,m=v.Yp.test(a.sectionTitle)||v.gG.test(a.sectionTitle)?(0,r.Dz)(a.projectContext,c):[],s=m.length>0?function(a,b=[]){let c=new Set;for(let b of a){let a=o.get(b);for(let[d,e]of(a&&c.add(a),o))d.length>=3&&b.includes(d)&&c.add(e);for(let a of q)if(a.pattern.test(b))for(let b of a.cardIds){let a=p.get(b);a&&c.add(a)}}for(let a of n){if(c.size>=16)break;(!a.projectTypes||a.projectTypes.some(a=>b.includes(a)))&&c.add(a)}return[...c].slice(0,16)}(m.map(a=>a.name)):[],t=s.length>0?(b=m.map(a=>a.name),0===s.length?"":["【施工工艺知识卡】",'以下为本领域常见工作包的工艺参考。写作"施工概况/施工流程/施工方法"时:',"1) 工序链必须与本项目资料确认的对象匹配,可裁剪但不得照搬无关工序;",'2) 工艺参数仅作为专业表达参考,只有在绑定资料明确时才写入具体数值,否则写控制方向(如"按规范控制桩位偏差")而非编造数字;','3) 检测验收必须落到记录名称(如"闭水试验记录、隐蔽验收记录、静载试验报告")。',...s.map(a=>{let c=b.some(b=>a.aliases.includes(b)||b===a.name);return`${c?"【直接匹配】":"【项目类型通用】"}${a.name}:
|
|
61
61
|
- 工序链:${a.process.join("→")}
|
|
62
62
|
- 工艺参数(参考):${a.params.join(";")}
|
|
63
63
|
- 检测验收:${a.acceptance.join(";")}
|
|
@@ -73,7 +73,7 @@ ${z}`,a.forbidDrawingImages)).replace(/^##\s+.*\n+/u,"").trim(),C=(0,r.ap)(a.sec
|
|
|
73
73
|
${d}`:""])},l=await (0,h.rI)(i,[`章节标题:${a.chapter.title}`,`指定节标题:### ${a.sectionTitle}`,a.requirement?`用户要求:${a.requirement}`:"",(0,k.av)(a.chapter.title,a.sectionTitle),(0,r.Uz)(a.sectionTitle),...(0,v.zC)(a.sectionTitle),a.tablePlanInstruction||"",c.prompt,`目标正文约 ${a.targetWords} 字,最多 ${a.maxWords||Math.ceil(1.18*a.targetWords)} 字。正文必须分布在 #### 三级小节下,包含对象范围、执行措施、检查验收和资料闭环;没有精确数值时写正式过程控制,不编造数值。`,"禁止写“根据/依据招标文件、补疑澄清文件、工程量清单及设计图纸”等资料来源罗列话术;直接写项目事实、施工内容、控制措施和验收要求。",(0,r.hf)(a.sectionTitle)?"该小节属于施工组织设计通用管理小节:允许基于项目基础事实、招标范围、工期质量目标、现场组织要求和施工总承包管理逻辑形成正式措施,但不得编造具体姓名、品牌、型号、金额或不存在的日期。":"",a.qualityFeedback||"",d?`压缩证据:
|
|
74
74
|
${d}`:""].filter(Boolean).join("\n\n"),!1,{maxTokens:Math.min(6e3,Math.max(3e3,Math.ceil(2.4*a.targetWords))),temperature:.2,signal:a.signal,diagnostics:a.diagnostics,contextLayers:j});if(!l||l.length<40){let b=a.diagnostics?.llm.lastError;a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 无正文:${a.chapter.title} / ${a.sectionTitle} / ${b&&b!==e?b:"空响应"}`);return}let m=(0,g.kT)((0,g.FD)(l.startsWith("### ")?l:`### ${a.sectionTitle}
|
|
75
75
|
|
|
76
|
-
${l}`,a.forbidDrawingImages)),n=(0,r.DD)(m);if(n.length<40){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 正文过短:${a.chapter.title} / ${a.sectionTitle} / ${n.length}字`);return}let o=(0,r.eK)(a.sectionTitle,m);if(o){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer ${o}:${a.chapter.title} / ${a.sectionTitle}`);return}return(0,r.ev)(a.sectionTitle,m.replace(/^##\s+.*\n+/u,"").trim())}async function W(a){let b=(0,e.V7)(a.currentContent),c=(0,r.ap)(a.sectionTitle),d=Math.max(a.targetWords,c)-b,i=F(a.sectionTitle,a.chapter,a.evidence),j=await Q(a.sectionTitle,i);if(d<=Math.max(260,Math.floor(.12*a.targetWords)))return a.currentContent;let l=(0,f.ks)((0,f.QO)(a.chapter,i),{maxChars:(0,f.Pc)(Math.min(a.targetWords,2600),3500,9e3),requiredFacts:a.chapter.requiredFacts}),m=Math.max(500,d),n=[(0,g.b_)("你是专业文档小节补写专家。只做补写,不重写全文。\n\n"+g.rd+"\n\n"+g.KX),"必须保留已有正文中的事实、参数、编号和结构;只补充缺口段落,不删除、不压缩已有内容。"].filter(Boolean).join("\n\n"),o={l0:n.length,l1:(0,h.CX)([a.promptTexts?`配置写作主控提示词:
|
|
76
|
+
${l}`,a.forbidDrawingImages)),n=(0,r.DD)(m);if(n.length<40){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer 正文过短:${a.chapter.title} / ${a.sectionTitle} / ${n.length}字`);return}let o=(0,r.eK)(a.sectionTitle,m);if(o){a.diagnostics&&(a.diagnostics.llm.lastError=`focused writer ${o}:${a.chapter.title} / ${a.sectionTitle}`);return}return(0,r.ev)(a.sectionTitle,m.replace(/^##\s+.*\n+/u,"").trim())}async function W(a){let b=(0,e.V7)(a.currentContent),c=(0,r.ap)(a.sectionTitle),d=Math.max(a.targetWords,c)-b,i=F(a.sectionTitle,a.chapter,a.evidence),j=await Q(a.sectionTitle,i);if(d<=Math.max(260,Math.floor(.12*a.targetWords)))return a.currentContent;let l=(0,f.ks)((0,f.QO)(a.chapter,i),{maxChars:(0,f.Pc)(Math.min(a.targetWords,2600),3500,9e3),requiredFacts:a.chapter.requiredFacts,diagnostics:a.diagnostics}),m=Math.max(500,d),n=[(0,g.b_)("你是专业文档小节补写专家。只做补写,不重写全文。\n\n"+g.rd+"\n\n"+g.KX),"必须保留已有正文中的事实、参数、编号和结构;只补充缺口段落,不删除、不压缩已有内容。"].filter(Boolean).join("\n\n"),o={l0:n.length,l1:(0,h.CX)([a.promptTexts?`配置写作主控提示词:
|
|
77
77
|
${a.promptTexts}`:"",a.requirement?`用户要求:${a.requirement}`:"",`当前小节约 ${b} 字,目标约 ${a.targetWords} 字,本轮补充约 ${m} 字。`,"请输出可直接追加或插入到本小节的补充段落;不要重复小节标题,不要解释生成过程;优先使用绑定资料中的事实和量化参数,不得输出“该小节围绕”等模板化占位句。"]),l2:(0,h.CX)([`章节标题:${a.chapter.title}`,a.factCoverageContext||"",(0,k.av)(a.chapter.title,a.sectionTitle)]),l3:(0,h.CX)([`当前小节:${a.sectionTitle}`,j.prompt,l?`绑定材料:
|
|
78
78
|
${l}`:"",`已有小节正文:
|
|
79
79
|
${(0,r.DD)(a.currentContent).slice(0,12e3)}`])},p=await (0,h.rI)(n,[a.promptTexts?`配置写作主控提示词:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";exports.id=5726,exports.ids=[5726],exports.modules={5726:(a,b,c)=>{c.d(b,{pR:()=>A,hK:()=>J,Hd:()=>B,H1:()=>t,Uv:()=>x,Ah:()=>D,Q3:()=>E,$v:()=>K,ze:()=>N,Al:()=>L,$g:()=>C});var d=c(73024),e=c(48161),f=c(76760),g=c(19898),h=c(28103),i=c(37047),j=c(95734);function k(a,b){if(a.length<=b)return a;let c=a.length/b,d=[];for(let e=0;d.length<b&&e<b;e+=1)d.push(a[Math.floor(e*c)]||a[0]);return d}async function l(a,b){let c=k(a,250);if(!(c.length<8))try{let a=b?null:(0,i.VN)(),d=b?await b(c):a?await a.embedDocuments(c):[];if(d.length!==c.length)return;let e=0,f=0;for(let a=0;a<c.length;a+=1)for(let b=a+1;b<c.length;b+=1)f+=1,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]||[],d[b]||[])>=.85&&(e+=1);return{semanticDuplicationRate:f>0?e/f:0,semanticSegmentCount:c.length}}catch{return}}async function m(a){let b=k(a,300);if(0===b.length)return;let c=[];for(let d=0;d<b.length;d+=60){let e=b.slice(d,d+60),f=e.map((a,b)=>`【块${b}】${a.slice(0,400)}`).join("\n"),g=await (0,j.bb)('你是施工组织设计质量标注专家。逐块判定(只依据该块文本,不联想上下文):\n1. fiveElementComplete:该块是否同时具备措施五要素——方案(制定/编制/建立/采用…制度、方案、措施)、流程(工序/步骤/顺序)、责任人(项目经理/技术负责人/施工员/质检员/安全员等具体岗位)、时间节点(每日/每周/每月/不少于X次/24小时等量化频次)、验收标准(验收/整改/复查/销项/闭环/合格)。五要素齐备才判 true,缺任一要素判 false。\n2. arrowChain:该块是否描述施工工序先后关系或流程推进顺序(含"先…再…后…"自然语言表述,不要求出现"→"符号)。\n只输出 JSON,格式:{"blocks":[{"fiveElementComplete":true,"arrowChain":false}]},与输入块顺序一一对应。',f,{maxTokens:4e3,temperature:0,disableThinkingBoost:!0});if(!g?.blocks||0===g.blocks.length)break;let h=[];for(let a=0;a<e.length;a+=1){let b=g.blocks[a];h.push({fiveElementComplete:!!b?.fiveElementComplete,arrowChain:!!b?.arrowChain})}c.push({batch:h,totalBlocks:a.length})}return c.length>0?c:void 0}async function n(a,b){try{let c=a.slice(0,12e3),d=await (0,j.bb)('你是施工组织设计评审专家。基于提供的参考施组样本(节选),输出质量点评 JSON:\n{"highlights":["值得对标的亮点,每条≤40字,最多5条"],"weaknesses":["明显短板,每条≤40字,最多5条"],"benchmarkable":"一段≤80字的最值得对标点总结"}。只输出 JSON。',`章节结构:${b.slice(0,12).join(" / ")}
|
|
2
2
|
|
|
3
3
|
样本节选:
|
|
4
|
-
${c}`,{maxTokens:1200,temperature:0,disableThinkingBoost:!0});if(!d)return;return{highlights:Array.isArray(d.highlights)?d.highlights.slice(0,5):[],weaknesses:Array.isArray(d.weaknesses)?d.weaknesses.slice(0,5):[],benchmarkable:"string"==typeof d.benchmarkable?d.benchmarkable:""}}catch{return}}async function o(a,b,c){let d=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=a.split(/\n{2,}/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=30);if(0===d.length&&0===e.length)return;let f={semanticDuplicationRate:0,semanticSegmentCount:0,enrichedAt:Date.now()},g=await l(d,c);g&&(f.semanticDuplicationRate=g.semanticDuplicationRate,f.semanticSegmentCount=g.semanticSegmentCount);let h=await m(e);if(h){let a=0,b=0,c=0;for(let d of h)a+=d.batch.filter(a=>a.fiveElementComplete).length,b+=d.batch.filter(a=>a.arrowChain).length,c+=d.batch.length;if(c>0){let d=h[0]?.totalBlocks||e.length;f.llmFiveElement={completeBlocks:Math.round(a/c*d),sampledBlocks:c,totalBlocks:d},f.llmArrowChain={chainSegments:b,sampledSegments:c,totalSegments:e.length}}}return f.qualityNotes=await n(a,b),g||h||f.qualityNotes?f:void 0}function p(){let a=f.join(e.homedir(),".customize-agent","template-references");return d.mkdirSync(f.join(a,"files"),{recursive:!0}),a}function q(){return f.join(p(),"references.json")}function r(){try{let a=q();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));return Array.isArray(b)?b:[]}catch{return[]}}function s(a){d.writeFileSync(q(),JSON.stringify(a,null,2),"utf-8")}function t(){return r().sort((a,b)=>b.uploadedAt-a.uploadedAt)}function u(a){return t().filter(b=>b.projectType===a)}async function v(a){let b=d.statSync(a),c=new g.FileClassifier().classify(a,f.basename(a),b),e=new g.ContentExtractor,h=((await e.extract(c)).text||"").trim();if(!h)throw Error("文件未能提取到有效文本(可能是扫描件或加密文件)");return h}let w=null;function x(){return w??=y().finally(()=>{w=null})}async function y(){let a=r(),b=a.filter(a=>"ready"===a.status&&4!==a.profileVersion);if(0===b.length)return;let c=!1;for(let a of b){let b=f.join(p(),a.filePath);if(d.existsSync(b))try{let d=await v(b);a.qualityProfile=await (0,h.WT)(d),a.profileVersion=4,c=!0}catch{}}for(let e of(c&&s(a),b)){let a=f.join(p(),e.filePath);"ready"===e.status&&d.existsSync(a)&&z(e,a)}}async function z(a,b){try{let c=await v(b),d=await o(c,a.qualityProfile?.headingStructure||[]);if(!d)return;let e=r(),f=e.find(b=>b.id===a.id);if(!f||!f.qualityProfile)return;f.qualityProfile={...f.qualityProfile,semantic:d},s(e)}catch{}}async function A(a){let b=p(),c=`ref-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,e=f.extname(a.fileName)||".pdf",g=`${c}${e.toLowerCase()}`,i=f.join(b,"files",g);d.copyFileSync(a.tempFilePath,i);let j=d.statSync(i).size,k={id:c,fileName:a.fileName,projectType:a.projectType||"其他",typeSource:a.projectType?"manual":"auto",uploadedAt:Date.now(),fileSize:j,filePath:f.join("files",g),status:"parsing"},l=r();l.push(k),s(l);try{let a=await v(i);k.qualityProfile=await (0,h.WT)(a),k.profileVersion=4,k.textSlices=function(a,b=8){let c=a.split(/\n{2,}|\r\n\r\n/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=20),d=Math.max(1,Math.floor(c.length/b)),e=[];for(let a=0;a<c.length&&e.length<b;a+=d)e.push(c[a].slice(0,300));return[...new Set(e)]}(a),k.status="ready","auto"===k.typeSource&&(k.projectType=(0,h.aF)(a)),s(l),z(k,i)}catch(a){k.status="failed",k.errorMessage=a instanceof Error?a.message:"解析失败",s(l)}return k}function B(a){let b=r(),c=b.find(b=>b.id===a);if(!c)return!1;s(b.filter(b=>b.id!==a));let e=f.join(p(),c.filePath);try{d.existsSync(e)&&d.unlinkSync(e)}catch{}return!0}function C(a,b){let c=r(),d=c.find(b=>b.id===a);if(d)return d.projectType=b,d.typeSource="manual",s(c),d}function D(a){let b=u(a).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return;let c=b.map(a=>a.qualityProfile),d=I(c),e=c[0];return{profile:{wordCount:F(c.map(a=>a.wordCount)),effectiveWordCount:F(c.map(a=>a.effectiveWordCount)),paramDensity:d.paramDensity.avg,paramCount:Math.round(F(c.map(a=>a.paramCount))),arrowChainCoverage:d.arrowChainCoverage.avg,duplicationRate:d.duplicationRate.avg,tableCount:Math.round(d.tableCount.avg),sectionCount:Math.round(d.sectionCount.avg),subsectionCount:Math.round(d.subsectionCount.avg),subitemCount:Math.round(d.subitemCount.avg),avgSectionWords:d.avgSectionWords.avg,headingStructure:e.headingStructure,tableTitles:e.tableTitles,paramTokens:e.paramTokens,segmentCount:Math.round(F(c.map(a=>a.segmentCount||0))),arrowChainSegmentCount:Math.round(F(c.map(a=>a.arrowChainSegmentCount||0))),duplicatedSegmentCount:Math.round(F(c.map(a=>a.duplicatedSegmentCount||0))),fiveElementCompleteBlocks:Math.max(0,...c.map(a=>a.fiveElementCompleteBlocks||0))},sourceCount:b.length}}function E(a){let b=u(a).filter(a=>"ready"===a.status&&a.qualityProfile?.headingStructure?.length);if(0!==b.length)return{text:H(b.map(a=>(a.qualityProfile.headingStructure||[]).map(a=>({value:a})))).slice(0,12).map(a=>a.value).map((a,b)=>`第${["一","二","三","四","五","六","七","八","九","十","十一","十二"][b]??b+1}章 ${a}`).join("\n"),sourceCount:b.length}}function F(a){return a.length>0?a.reduce((a,b)=>a+b,0)/a.length:0}function G(a){return{avg:F(a),min:a.length?Math.min(...a):0,max:a.length?Math.max(...a):0}}function H(a){let b=new Map;for(let c of a)for(let a of c)b.set(a.value,(b.get(a.value)||0)+(a.weight??1));return[...b.entries()].map(([a,b])=>({value:a,count:b})).sort((a,b)=>b.count-a.count)}function I(a){if(0===a.length){let a={avg:0,min:0,max:0};return{paramDensity:{...a},arrowChainCoverage:{...a},duplicationRate:{...a},tableCount:{...a},sectionCount:{...a},subsectionCount:{...a},subitemCount:{...a},avgSectionWords:{avg:0}}}let b=a.map(a=>a.paramDensity),c=a.map(a=>a.arrowChainCoverage),d=a.map(a=>a.duplicationRate),e=a.reduce((a,b)=>a+(b.effectiveWordCount||b.wordCount),0),f=a.reduce((a,b)=>a+b.paramCount,0),g=a.reduce((a,b)=>a+(b.segmentCount||0),0),h=a.reduce((a,b)=>a+(b.arrowChainSegmentCount||0),0),i=a.reduce((a,b)=>a+(b.duplicatedSegmentCount||0),0),j=a.reduce((a,b)=>a+b.sectionCount,0);return{paramDensity:{avg:e>0?1e3*f/e:0,min:Math.min(...b),max:Math.max(...b)},arrowChainCoverage:{avg:g>0?h/g:0,min:Math.min(...c),max:Math.max(...c)},duplicationRate:{avg:g>0?i/g:0,min:Math.min(...d),max:Math.max(...d)},tableCount:G(a.map(a=>a.tableCount)),sectionCount:G(a.map(a=>a.sectionCount)),subsectionCount:G(a.map(a=>a.subsectionCount||0)),subitemCount:G(a.map(a=>a.subitemCount||0)),avgSectionWords:{avg:j>0?Math.round(e/j):0}}}function J(){let a=t().filter(a=>"ready"===a.status&&a.qualityProfile),b=new Map;for(let c of a){let a=b.get(c.projectType)||[];a.push(c),b.set(c.projectType,a)}let c=[];for(let[a,d]of b){let b=d.map(a=>a.qualityProfile),e=H(b.map(a=>(a.headingStructure||[]).map(a=>({value:a})))),f=H(b.map(a=>(a.tableTitles||[]).map(a=>({value:a})))),g=H(b.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count}))));c.push({projectType:a,sourceCount:d.length,totalWords:b.reduce((a,b)=>a+b.wordCount,0),updatedAt:Math.max(...d.map(a=>a.uploadedAt)),metrics:I(b),typicalHeadings:e.slice(0,16).map(a=>({title:a.value,count:a.count,ratio:d.length>0?Math.min(1,a.count/d.length):0})),commonTables:f.slice(0,10).map(a=>({title:a.value,count:a.count})),frequentParams:g.slice(0,12).map(a=>({token:a.value,count:a.count}))})}return c.sort((a,b)=>b.sourceCount-a.sourceCount)}function K(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" ")),c=u(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return[];let d=c.map(a=>a.qualityProfile),e=c.length,f=F(d.map(a=>a.wordCount)),g=f>0?Math.max(.3,Math.min(2,a.targetWords/f)):1,i=H(d.map(a=>(a.headingStructure||[]).map(a=>({value:a})))).filter(a=>a.count>=Math.ceil(e/2)).slice(0,12),j=H(d.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count})))),k=[`同类工程(${b})参考特征(来自 ${e} 份优秀入围文件画像,仅供软性参考;任何项目专属数字与参数仍必须以知识库证据为准,为对齐特征而编造参数、虚构表格或堆砌无意义内容严格禁止):`],l=I(d),m=l.paramDensity.avg,n=l.arrowChainCoverage.avg,o=l.sectionCount.avg>0?l.tableCount.avg/l.sectionCount.avg:0,p=l.avgSectionWords.avg;k.push(`- 工艺参数密度参考:约 ${(m*g).toFixed(1)} 个/千字(同类工程画像均值 ${m.toFixed(1)},已按本项目篇幅折减);参数应来自已确认事实与专业知识,不得编造。`);let q=Math.max(n,.08);return k.push(`- 工序顺序表达覆盖率参考:含工序顺序表达(顺序词叙述/编号步骤/有序无序列表/箭头链任一形式,形式由模型自然选择)的段落占比不低于 ${Math.round(100*q)}%(同类工程画像均值 ${Math.round(100*n)}%,已按生成侧门禁取下限);施工与流程小节宜用工序顺序表达串联工艺步骤。`),k.push(`- 表格参考:同类工程平均每章约 ${o.toFixed(1)} 张正式表格(在事实允许的前提下合理配置)。`),k.push(`- 章节体量参考:同类工程平均约 ${Math.round(l.sectionCount.avg)} 章、平均每章约 ${p} 字;实际以模板章节与篇幅目标为准。`),i.length>0&&k.push(`- 典型章节结构参考(出现于半数以上样本,仅供结构参考,不强制):${i.map(a=>a.value).join("、")}`),j.length>0&&k.push(`- 高频工艺参数种类参考:${j.slice(0,12).map(a=>a.value).join("、")}(同类型优秀样本中出现频次最高的工艺参数词条,施工方法小节可按专业实际与通用规范自然使用这些参数种类;项目专属数值必须来自知识库证据,不得为凑密度编造)。`),k}function L(a){let b=u((0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" "))).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return[];let c=b.map(a=>a.qualityProfile),d=Math.ceil(b.length/2),e=new Map,f=new Map;for(let a of c){let b=new Set;(a.headingStructure||[]).forEach((a,c)=>{if(f.set(a,(f.get(a)||0)+1),b.has(a))return;b.add(a);let d=e.get(a)||{sum:0,count:0};d.sum+=c,d.count+=1,e.set(a,d)})}let g=[...f.entries()].filter(([,a])=>a>=d).sort((a,b)=>{let c=e.get(a[0]),d=e.get(b[0]);return c.sum/c.count-d.sum/d.count}).map(([a])=>a).slice(0,10),i=c.reduce((a,b)=>a+b.sectionCount,0),j=c.reduce((a,b)=>a+(b.subsectionCount||0),0),k=c.reduce((a,b)=>a+(b.subitemCount||0),0),l=["- 写法骨架参考(同类优秀样本的展开模式,仅供结构参照;样本中的任何数值与原文句子都不得复制):"];g.length>=3&&l.push(`- 章节推进骨架:${g.join(" → ")}(出现于半数以上样本的一级章节按典型顺序排列,仅作结构参照,不强制)。`),i>0&&l.push(`- 分层展开深度:同类样本平均每章约 ${(j/i).toFixed(1)} 个二级小节、${(k/i).toFixed(1)} 个三级子目——范文把方案分层展开到具体措施条目,而不是整段综述概括。`);let m=g.filter(a=>/施工方案|施工方法|施工内容|施工部署|分部分项/u.test(a)).slice(0,4);return m.length>0&&l.push(`- 方案章节典型组织:同类样本中方案类章节以「${m.join("」「")}」等标题独立成章,逐分项展开,不并入项目概况章节。`),l.push("- 分部分项展开模式:同类样本按“施工概况(作业对象、部位、工程量)→工艺流程(工序顺序表达串联关键工序)→施工方法(工具机具、材料规格、工艺参数、验收标准)”三段逐分项展开;方法段正文以工序顺序表达(形式由模型自然选择:顺序词叙述、编号步骤、有序/无序列表或箭头链均可)串联连续工序,工艺参数落位在方法叙述中而非单独罗列清单。"),l}function M(a){return a.replace(/^第[一二三四五六七八九十百千\d]+[章节篇][、..]?\s*/u,"").replace(/^\d+(?:\.\d+)*[、..]?\s*/u,"").trim()}function N(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles].join(" ")),c=u(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return;let d=H(c.map(a=>a.qualityProfile).map(a=>(a.headingStructure||[]).map(a=>({value:a})))),e=new Set(a.chapterTitles.map(M)),f=d.filter(a=>a.count>=Math.ceil(c.length/2)).filter(a=>!e.has(M(a.value))).slice(0,6).map(a=>({title:a.value,ratio:Math.min(1,a.count/c.length)}));return f.length>0?{projectType:b,sourceCount:c.length,missingHeadings:f}:void 0}},22157:(a,b,c)=>{c.d(b,{Kd:()=>t,TP:()=>s,Te:()=>r,V:()=>f,VX:()=>o,W6:()=>i,Xl:()=>k,Z1:()=>g,c6:()=>p,hh:()=>u,jf:()=>w,l$:()=>v,lG:()=>q,tU:()=>n,wq:()=>j});var d=c(77598),e=c(78217);let f=/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u;function g(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,12}顺序|依次|先后|先.{0,12}(?:后|再|然后|最后)|顺序施工|流水顺序/u.test(a)||(a.match(/(?:^|\n)\s*(?:\d+[.、]|[((]\d+[))]|[一二三四五六七八九十]+[、.]|第[一二三四五六七八九十]+步)/gmu)||[]).length>=2||(a.match(/(?:^|\n)\s*(?:[-*•]|\d+\.)\s+\S/gmu)||[]).length>=2||/[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u.test(a))}function h(a){return a.replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"")}function i(a){let b=a.split(/\r?\n/u),c="",d=new Map,e=[];for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(!b)continue;let f=b[1].length;if(2===f){c="";continue}if(3===f){c=b[2].trim();continue}if(4!==f)continue;let g=`${c}::${h(b[2].trim())}`;if(!g)continue;let i=(d.get(g)||0)+1;d.set(g,i),i>=2&&e.push(b[2].trim())}return e}function j(a){let b=a.split(/\r?\n/u),c=[],d="",e=new Set,f=!1;for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(b){let g=b[1].length;if(g<=3&&(d=3===g?b[2].trim():"",e.clear()),f=!1,4===g){let g=`${d}::${h(b[2].trim())}`;if(!g){c.push(a);continue}if(e.has(g)){f=!0;continue}e.add(g)}c.push(a);continue}f||c.push(a)}return c.join("\n")}function k(a,b,c={}){if(!c.fuzzy){let c=l(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||l(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=m(b).replace(/\s+/gu,"").toLowerCase(),g=[],h=-1,i=0,j=!1,k=a=>{if(h<0)return;let b=c.slice(h,a).join("\n").trim();b&&g.push(b),h=-1,i=0,j=!1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,4}\s+/u.test(c[a]))continue;let e=/^\s*(#{2,4})\s+/u.exec(c[a])?.[1].length||3;if(h>=0&&(j||3===i)&&4===e)continue;k(a);let g=m(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||o(c[a],b))&&(h=a+1,i=e,j=e<=4&&f.test(c[a]))}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function l(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let g=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,h=4===g&&f.test(b),i=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=g&&!(h&&b[1].length===g)){i=a;break}}return d.slice(e,i).join("\n")}function m(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function n(a){return m(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function o(a,b){let c=n(a),d=n(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function p(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function q(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function r(a){if(a?.aborted)throw Error("用户中止")}function s(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let t=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标"];function u(a){return!!(t.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}async function v(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||Math.max(1,{total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}.total))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class w{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},28103:(a,b,c)=>{c.d(b,{WT:()=>x,aF:()=>w,cG:()=>e});var d=c(52922);let e=["房建","市政","公路","桥梁与隧道","水利水电","电力","机电安装","装饰装修","园林绿化","铁路","港口与航道","矿山冶金","其他"],f=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d)|(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径))/gu,g=/→|->|=>|按.{0,12}顺序|依次|先后|先.{0,10}后|顺序施工|流水顺序|[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u,h=/^(?:[一二三四五六七八九十\d]+[、..]?\s*)?[\u4e00-\u9fa5()()、,A-Za-z0-9+\-·\s]{2,28}(?:表|清单)(?:[::]|\s*$)/mu,i=/^第([一二三四五六七八九十百千\d]+)[章篇][、..]?\s*(.{2,60})$/mu,j=/^\d+[、..](?!\d)\s*(.{2,20})$/mu,k=/^[一二三四五六七八九十]+[、..]\s*(.{2,20})$/mu,l=/^第[一二三四五六七八九十\d]+[节条][、..]?\s*(.{2,30})$/mu,m=/^(?:[一二三四五六七八九十]+、\s*(.{2,20})|[((][一二三四五六七八九十\d]+[))]\s*(.{2,20})|\d+\.\d+(?:\.\d+)*[、..\s]\s*(.{2,20}))$/mu,n=/\.{4,}|\.{2,}\s*\d{1,3}\s*$|—\d+—|第\s*\d+\s*页|^\d{1,3}$/u,o=/[,、;:]/u,p=/[,。;:?!]/u;function q(a){return a.trim().replace(/^(?:#+\s*)+/u,"").trim()}function r(a){return a.replace(/[\s..·]+\d{1,3}$/u,"").replace(/\s+/gu,"").trim()}function s(a){return a.length>=2&&!o.test(a)&&!/[。,;]$/u.test(a)}function t(a){if(/^\d+$/u.test(a))return Number.parseInt(a,10);let b={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},c=0,d=0,e=!1;for(let f of a){if("十"===f){c+=10*(d||1),d=0,e=!0;continue}if("百"===f){c+=100*(d||1),d=0,e=!0;continue}if("千"===f){c+=1e3*(d||1),d=0,e=!0;continue}let a=b[f];if(void 0===a)return Number.MAX_SAFE_INTEGER;d=a,e=!0}return e?c+d:Number.MAX_SAFE_INTEGER}let u=/(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径)/gu,v=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d))/gu;function w(a){let b,c=[["市政",/市政|管网|排水|给水|雨污|污水|燃气/gu],["公路",/公路|路基|路面|沥青/gu],["桥梁与隧道",/桥梁|隧道/gu],["水利水电",/水利|河道|灌溉|防洪/gu],["电力",/电力|供配电|电压|电缆/gu],["机电安装",/机电|暖通|通风|空调|消防|给排水|智能化|电梯/gu],["装饰装修",/装饰|装修|幕墙/gu],["园林绿化",/园林|绿化|景观|苗木/gu],["铁路",/铁路|轨道/gu],["港口与航道",/港口|航道/gu],["矿山冶金",/矿山|冶金/gu],["房建",/房建|建筑|住宅|楼|结构|砌体|基坑|地下室|主体|层高|户型|公共建筑|产业园|厂房/gu]].map(([b,c])=>(c.lastIndex=0,{type:b,count:(a.match(c)||[]).length})).sort((a,b)=>b.count-a.count),d=c[0],e=0,f=0;for(let[c,d]of[["房建",/产业园|标准厂房|安置房|住宅小区|保障房|卫生院|门诊楼|办公楼/gu],["市政",/老旧小区|海绵城市|雨污分流|管网改造|管廊/gu],["桥梁与隧道",/桥梁|隧道|盾构|箱梁|斜拉|悬索|涵洞/gu],["公路",/公路|路基|路面|沥青|桩号|互通|匝道/gu],["水利水电",/堤防|水库|泵站|水闸|疏浚|节制闸|水电站|大坝|围堰/gu],["电力",/变电站|输电线路|配电|GIS设备|电缆|架空线路|铁塔|箱变/gu],["铁路",/铁路|轨道|道床|站台|信号机|接触网/gu],["港口与航道",/港口|码头|航道|护岸|堆场|泊位/gu],["矿山冶金",/矿山|矿井|选矿|冶炼|尾矿|轧钢/gu]]){d.lastIndex=0;let g=(a.match(d)||[]).length;g>=3&&g>e?(f=e,b=c,e=g):g>f&&(f=g)}if(b){if(f>0&&e<2*f&&d&&d.count>e)return d.type;let a=c.find(a=>a.type===b)?.count||0;return d&&d.type!==b&&d.count>2*a&&d.count>=2*e?d.type:b}return d&&d.count>0?d.type:"其他"}async function x(a){let b=a.replace(/\s/gu,"").length,c=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=c.reduce((a,b)=>a+b.replace(/\s/gu,"").length,0),o=(a.match(f)||[]).length,w=c.filter(a=>g.test(a)).length,x=function(a){let b=0,c=a.split(/\n+/u);for(let a=0;a<c.length;a+=1){let d=q(c[a]||"");if(d){if(h.test(d)||/^┌─/u.test(d)){b+=1;continue}if(/^\|.*\|.*\|$/u.test(d)){let d="";for(let b=a-1;b>=0&&b>=a-3;b-=1){let a=q(c[b]||"");if(a){d=a;break}}/^\|.*\|.*\|$/u.test(d)||h.test(d)||(b+=1)}}}return b}(a),{headings:y,useCnAsChapter:z}=function(a){let b,c=new Map,d=[],e=[],f=a.split(/\n+/u);for(let a=0;a<f.length;a+=1){let b=q(f[a]);if(!b||n.test(b))continue;let d=i.exec(b);if(d){let b=r(d[2]||"");b.length>=2&&!p.test(b)&&c.set(d[1],function(a,b,c){if(a.length<20)return a;let d=q(b[c+1]||"");if(d.length<2||d.length>15||!/[\u4e00-\u9fa5]/u.test(d)||n.test(d)||i.test(d)||l.test(d)||m.test(d)||j.test(d)||k.test(d))return a;let e=a+d;return e.length<=60?e:a}(b,f,a));continue}let g=k.exec(b);if(g){let a=r(g[1]||"");s(a)&&e.push(a)}}if(0===c.size)for(let a of f){let b=q(a);if(!b||n.test(b))continue;let c=j.exec(b);if(c){let a=r(c[1]||"");s(a)&&d.push(a)}}let g=!1;return c.size>0?b=[...c.entries()].sort((a,b)=>t(a[0])-t(b[0])).map(([,a])=>a):d.length>=2?b=d:(b=e,g=!0),{headings:[...new Set(b)],useCnAsChapter:g}}(a),A=y.length,{subsectionCount:B,subitemCount:C}=function(a,b){let c=0,d=0;for(let e of a.split(/\n+/u)){let a=q(e);if(!a||n.test(a))continue;let f=l.exec(a);if(f){s(r(f[1]||""))&&(c+=1);continue}let g=m.exec(a);if(g){if(!s(r(g[1]||g[2]||g[3]||""))||b&&void 0!==g[1])continue;d+=1}}return{subsectionCount:c,subitemCount:d}}(a,z),D=new Map;for(let a of c){let b=a.replace(/[\d\s,。、;:""''()()%…—\-·]/gu,"");b.length<8||D.set(b,(D.get(b)||0)+1)}let E=0;for(let a of D.values())a>1&&(E+=a);let F=await (0,d.Pm)(a);return{wordCount:b,effectiveWordCount:e,paramDensity:e>0?1e3*o/e:0,paramCount:o,arrowChainCoverage:c.length>0?w/c.length:0,duplicationRate:c.length>0?E/c.length:0,tableCount:x,sectionCount:A,subsectionCount:B,subitemCount:C,avgSectionWords:A>0?Math.round(e/A):0,headingStructure:y,tableTitles:function(a){let b=[];for(let c of a.split(/\n+/u)){let a=q(c);a&&!(a.length>40)&&!(a.length<3)&&h.test(a)&&b.push(a)}return[...new Set(b)]}(a),paramTokens:function(a){let b=new Map;for(let c of a.match(u)||[])b.set(c,(b.get(c)||0)+1);let c=(a.match(v)||[]).length;return c>0&&b.set("数值参数(数字+单位)",(b.get("数值参数(数字+单位)")||0)+c),[...b.entries()].map(([a,b])=>({token:a,count:b})).sort((a,b)=>b.count-a.count)}(a),segmentCount:c.length,arrowChainSegmentCount:w,duplicatedSegmentCount:E,fiveElementCompleteBlocks:F.completeBlocks}}},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},37047:(a,b,c)=>{c.d(b,{Bd:()=>k,Eh:()=>g,Mv:()=>n,VN:()=>f});var d=c(19898);let e=null;function f(){return e||(e=new d.LocalTransformersEmbeddingProvider({})),e}let g=.6,h=new Map,i=0,j=0;function k(){return{embedCacheHits:i,embedCacheMisses:j}}async function l(a,b){let c=b?await b(a):await f().embedDocuments(a);if(c.length!==a.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${a.length} 条,实际 ${c.length} 条`);return c}async function m(a,b){if("0"===process.env.DOCUMENT_EMBED_CACHE)return l(a,b);let c=Array(a.length),d=[],e=new Map;for(let b=0;b<a.length;b+=1){let f=a[b];if(f.length<=64){let a=h.get(f);if(a){c[b]=a,i+=1,h.delete(f),h.set(f,a);continue}}let g=e.get(f);g?g.push(b):(e.set(f,[b]),d.push(f))}if(0===d.length)return c;let f=await l(d,b),g=function(){let a=Number(process.env.DOCUMENT_EMBED_CACHE_SIZE||2e3);return Number.isFinite(a)&&a>0?a:2e3}();for(let a=0;a<d.length;a+=1){let b=d[a],i=f[a],k=e.get(b);for(let a of k)c[a]=i;if(b.length<=64&&(j+=k.length,h.set(b,i),h.size>g)){let a=h.keys().next().value;void 0!==a&&h.delete(a)}}return c}async function n(a,b,c){if(0===a.length||0===b.length)return()=>0;let d=[...a,...b],e=await m(d,c),f=new Map;for(let a=0;a<d.length;a++)f.has(d[a])||f.set(d[a],e[a]);return(a,b)=>{let c=f.get(a),d=f.get(b);if(!c||!d)return 0;let e=Math.min(c.length,d.length),g=0;for(let a=0;a<e;a++)g+=c[a]*d[a];return g}}},41991:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(37047);function e(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e++)d+=a[e]*b[e];return d}async function f(a){if(0===a.prototypes.length)return async a=>a.map(()=>!1);let b=a.threshold??d.Eh,c=a.negativePrototypes??[],f=[...a.prototypes,...c],g=a.prototypes.length,h=a.embedDocuments?null:(0,d.VN)(),i=a.embedDocuments?await a.embedDocuments(f):await h.embedDocuments(f);if(i.length!==f.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${f.length} 条,实际 ${i.length} 条`);return async d=>{if(0===d.length)return[];let f=d.map(()=>!1),j=d.map((b,c)=>a.lexicalHints&&!a.lexicalHints.test(b)?-1:c).filter(a=>a>=0);if(0===j.length)return f;let k=j.map(a=>d[a]),l=a.embedDocuments?await a.embedDocuments(k):await h.embedDocuments(k);return j.forEach((a,d)=>{let h=l[d];if(!h)return;let j=Math.max(...i.slice(0,g).map(a=>e(h,a))),k=c.length?Math.max(...i.slice(g).map(a=>e(h,a))):0;j>=b&&(0===c.length||j>k)&&(f[a]=!0)}),f}}},52922:(a,b,c)=>{c.d(b,{Bt:()=>m,JD:()=>A,Pm:()=>o,T4:()=>w,Ye:()=>k,bH:()=>D,gE:()=>r,nY:()=>F});var d=c(37047),e=c(41991);let f=["基本满足","大致符合","力争","原则上","大概","左右","尽可能","尽量满足"],g=/基本|大致|力争|原则上|大概|左右|尽可能|尽量/u,h=["基本满足招标文件要求","大致符合相关规范标准","力争达到优良质量标准","原则上按照规范执行","尽可能保证工程质量","尽量满足工期要求"],i=["结构构件左右对称布置","平面布置左右对称合理","力争上游的企业精神"];async function j(a){return(0,e.A)({prototypes:[...h],negativePrototypes:[...i],lexicalHints:g,embedDocuments:a})}function k(a){return f.filter(b=>a.includes(b)).map(b=>({phrase:b,count:a.split(b).length-1}))}let l=["精心组织、科学管理,确保工程质量","严格执行相关规范和设计要求","根据实际情况适当调整施工安排","建立健全管理体系,加强过程管理","全力保障项目顺利推进"];async function m(a,b){let c=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.trim()).filter(a=>a.length>=12),e=await (0,d.Mv)(c,[...l],b),f=await j(b),h=await f(c),i=c.filter(a=>g.test(a)).length,k=h.filter(Boolean).length,m=c.filter((a,b)=>l.some(b=>e(a,b)>=d.Eh)||h[b]).length,n=c.length?m/c.length:0;return{totalSentences:c.length,fillerSentences:m,ratio:n,level:n>=.4?"heavy":n>=.2?"medium":"light",vagueCandidateSentences:i,vagueSemanticSentences:k}}let n={plan:"制定专项施工方案与管理制度,明确技术措施",process:"施工工序流程与工艺步骤顺序",role:"由项目经理、技术负责人等岗位人员分工负责",frequency:"每日、每周等检查频次与时间节点安排",acceptance:"经检查验收合格后整改销项闭环"};async function o(a,b){let c=a.split(/\n{2,}/u).filter(a=>a.trim().length>=30),e=Object.values(n),f=await (0,d.Mv)(c,e,b),g=/项目经理|技术负责人|施工员|质检员|安全员|材料员|资料员|测量员|劳资员|班组长|监理工程师|试验员/u,h=/每日|每天|每周|每月|每季度|每批|不少于\s*\d+\s*次|至少\s*\d+\s*次|每周\s*\d+\s*次|每日\s*\d+\s*次|每\s*\d+\s*日/u,i=/整改|复查|销项|复验|闭环|返工/u,j=(a,b)=>{let c=(b!==n.role||!!g.test(a))&&(!!(b===n.role&&g.test(a))||(b!==n.frequency||!!h.test(a))&&(!!(b===n.frequency&&h.test(a))||(b!==n.acceptance||!!i.test(a))&&(!!(b===n.acceptance&&i.test(a))||void 0)));return void 0!==c?c:f(a,b)>=d.Eh},k=0,l=0,m=0;for(let a of c)e.filter(b=>j(a,b)).length>=4?k+=1:j(a,n.role)&&j(a,n.frequency)||(l+=1),j(a,n.role)&&j(a,n.frequency)&&j(a,n.acceptance)&&(m+=1);return{blocks:c.length,completeBlocks:k,incompleteBlocks:l,closedLoopBlocks:m}}let p="分析该工程难点的成因与风险来源",q=/\d+(?:\.\d+)?\s*(?:mm|cm|m|米|℃|%|kN|MPa|次|天|小时|h|Hz|m³)/u;async function r(a,b){let c=(function(a){let b=a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n/u);if(!b||void 0===b.index)return"";let c=b.index+b[0].length,d=a.slice(c),e=d.search(/^#{2,3}\s+/mu);return e>=0?d.slice(0,e):d})(a).split(/\n{2,}/u).filter(a=>a.trim().length>=20),e=await (0,d.Mv)(c,[p],b),f=0,g=0,h=0;for(let a of c){let b=e(a,p)>=d.Eh,c=q.test(a);b&&(f+=1),c&&(g+=1),b&&c&&(h+=1)}let i=c.length?h/c.length:0;return{countermeasures:c.length,attributed:f,quantified:g,bothCount:h,ratio:i,heavyTemplated:c.length>0&&i<.5}}let s=/建筑业10项新技术|10项新技术|安徽省住房城乡建设领域新技术推广目录|新技术推广目录|建设领域推广/u,t=/替代|取代|淘汰.{0,10}(?:工艺|技术|做法)|(?:较|比).{0,10}(?:传统|常规|普通)/u,u=/(?:提升|提高|节省|节约|降低|缩短|减少).{0,10}(?:效率|工期|成本|损耗|能耗|人工|周期)|升级价值|效益显著/u,v=["BIM","铝模","附着式升降脚手架","跳仓法","直螺纹","装配式","灌浆套筒","自动化监测","智慧工地","再生利用","非开挖","CCTV","碳纤维","薄贴法","干法施工","液压提升","预制","光伏一体化","BIPV","模块化"];function w(a){let b=v.filter(b=>a.includes(b)),c=s.test(a),d=t.test(a),e=u.test(a),f=[c,d,e].filter(Boolean).length;return{found:[...b],catalogCited:c,replaceClaimed:d,upgradeClaimed:e,effective:b.length>0&&f>=2}}let x=[/基坑|沟槽/u,/模板支撑|高支模/u,/脚手架|悬挑|附着式/u,/起重吊装|吊装/u,/幕墙/u,/人工挖孔桩/u,/装配式|钢结构安装/u,/拆除工程/u,/顶管|盾构|暗挖/u,/有限空间|水下作业/u,/吊篮/u,/塔吊|施工电梯|升降机/u,/沉井/u],y=/超危大|超规模|专家论证|一般危大/u,z=/(?:深度|高度|跨度|开挖).{0,8}\d+(?:\.\d+)?\s*(?:m|米)|(?:重量|吊装).{0,8}\d+(?:\.\d+)?\s*(?:kN|千牛)/u;function A(a){let b=x.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u\w*|\\|\(|\||\)/gu,"")),c=y.test(a),d=z.test(a);return{categories:b,graded:c,paramMatched:d,twoStepComplete:b.length>0&&c&&d}}let B=[{name:"总则",pattern:/总则/u},{name:"组织机构及职责",pattern:/应急(?:组织|领导)|组织机构|应急指挥部|应急小组/u},{name:"风险分析与危险源辨识",pattern:/风险分析|危险源辨识|风险辨识/u},{name:"应急物资设备通讯保障",pattern:/应急物资|物资.{0,8}(?:保障|储备)|通讯保障|通信保障/u},{name:"专项应急预案",pattern:/专项应急预案|专项预案/u},{name:"应急响应流程",pattern:/应急响应|响应流程|响应程序/u},{name:"后期处置",pattern:/后期处置|善后|事故调查/u},{name:"培训演练",pattern:/(?:应急)?演练|培训.{0,6}演练/u}],C=["高处坠落","物体打击","坍塌","触电","火灾","起重","防汛","防台风","中暑","中毒窒息","管线破坏"];function D(a){let b=B.filter(b=>b.pattern.test(a)).map(a=>a.name),c=B.filter(b=>!b.pattern.test(a)).map(a=>a.name),d=C.filter(b=>a.includes(b));return{coveredParts:[...b],missingParts:[...c],coverage:b.length/B.length,planHits:[...d]}}let E=[/其他项目/u,/其他标段/u,/其他城市/u,/本公司(?:其他|承建)/u,/某(?:市|县|区|项目)(?:的)?/u,/他项目/u,/兄弟项目/u];function F(a){return E.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u/gu,""))}},78217:(a,b,c)=>{function d(a,b){return Math.ceil(e(a)/f(b))}function e(a){return a.replace(/<[^>]+>/gu,"").replace(/\s+/gu,"").length}function f(a){let b=Number(String(a&&"typography"in a&&a.typography?.bodySize||"").replace(/[^\d.]/gu,""))||14,c=Number(String(a&&"typography"in a&&a.typography?.lineHeight||"").replace(/[^\d.]/gu,""))||22;return b>=14&&c>=22?900:1050}function g(a){let b=a.trim();if(/^\d+(?:\.\d+)?$/u.test(b))return Number(b);let c={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if("十"===b)return 10;let d=/^([一二两三四五六七八九])?十([一二三四五六七八九])?$/u.exec(b);if(d)return(d[1]?c[d[1]]:1)*10+(d[2]?c[d[2]]:0)}function h(a="",b=""){let c=`${a}${b}`;return/不少于|至少|不低于|以上|起码/u.test(c)?"minimum":/约|大概|左右|大约|约为|附近/u.test(c)?"approximate":"exact"}function i(a){let b=a.replace(/\s+/gu," "),c=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(?:页|頁)\s*(以上|左右|以内|以下)?/gu)],d=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(万)?\s*(?:字|字符)\s*(以上|左右|以内|以下)?/gu)],e=c.map(a=>{let b=g(a[2]||"");return Number.isFinite(b)?{value:b,mode:h(a[1],a[3])}:void 0}).filter(a=>!!a).at(-1),f=d.map(a=>{let b=g(a[2]||"");return b?{value:Math.round(b*(a[3]?1e4:1)),mode:h(a[1],a[4])}:void 0}).filter(a=>!!a).at(-1);return{targetPages:e?.value,pageMode:e?.mode,targetChars:f?.value,charMode:f?.mode}}function j(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?1.3:/概况|结语|附录/u.test(b)?.75:1}function k(a){let b=a.template.generationSettings||a.template.exportSettings,c=f(a.template.exportSettings||a.template.generationSettings),d=i(a.requirement||""),e=i(a.promptTexts||""),g=d.targetChars||d.targetPages?d:e,h=!!(g.targetChars||g.targetPages),k=h?void 0:b?.targetPages?.target||b?.targetPages?.min,l=g.targetPages?g.targetPages*c:void 0,m=g.targetPages||k,n=h?"explicit":k?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",o=h?Math.max(g.targetChars||0,l||0)||void 0:Math.max((k?k*c:void 0)||0)||void 0,p=g.pageMode||"exact",q=g.charMode||p,r=h&&"approximate"===q,s=h&&"minimum"===q,t=h?m?Math.floor(m*(s?1:.9)):void 0:b?.targetPages?.min||(m?Math.floor(.95*m):void 0),u=h&&m&&!s?Math.ceil(m*(r?1.15:1.08)):b?.targetPages?.max,v=o?Math.floor(o*(s?1:.9)):t?t*c:void 0,w=o&&!s?Math.ceil(o*(r?1.15:1.08)):u?u*c:void 0,x=a.chapters.length>0?a.chapters:a.template.chapters,y=x.reduce((a,b)=>a+j(b),0)||1,z=new Map,A=x.map(a=>({chapter:a,target:o?Math.round(o*j(a)/y):0})),B=x.reduce((b,c)=>b+Math.max(a.spec?.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0,o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200),0),C=o&&B>.92*o?Math.max(.45,.92*o/B):1;for(let{chapter:b,target:c}of A){let d=Math.floor(Math.max(Math.max(a.spec?.chapterRules.find(a=>a.id===b.id||a.title===b.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0),o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200)*C);z.set(b.id,Math.max(d,c))}let D=!!(h&&(s||"exact"===q)&&(o||v||0)>=4e4);return{targetPages:m,minPages:t,maxPages:u,targetChars:o,minChars:v,maxChars:w,charsPerPage:c,chapterTargets:z,source:n,mode:q,longformStrict:D}}function l(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function m(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars&&f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}),a.minPages&&d<a.minPages&&f.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${d} 页,目标不少于 ${a.minPages} 页`,suggestion:"建议继续扩写正文,或根据实际导出版式调整目标页数。"}),a.maxPages&&d>a.maxPages&&f.push({level:"warning",message:`正文篇幅超过目标页数区间:预计约 ${d} 页,建议不超过 ${a.maxPages} 页`,suggestion:"建议压缩过度展开内容或调整目标页数。"}),f}c.d(b,{Cv:()=>d,PE:()=>l,V7:()=>e,py:()=>i,q6:()=>f,tF:()=>k,ty:()=>m})},95734:(a,b,c)=>{c.d(b,{$y:()=>u,CX:()=>v,Qf:()=>m,Sq:()=>s,bU:()=>r,bb:()=>A,nz:()=>t,rI:()=>w,t5:()=>n});var d=c(95393),e=c(96770),f=c(29281),g=c(22157);let h=new Map,i=0,j=Number(process.env.DOCUMENT_LLM_MAX_CONCURRENCY),k=Number.isFinite(j)?0===j?1/0:j>0?Math.floor(j):void 0:void 0,l=k??1/0;function m(a){return l}function n(a){return l=k??1/0}let o=0,p=[];function q(){i=Math.max(0,i-1);let a=p.shift();a&&!a.settled&&(a.settled=!0,i+=1,a.resolve(q))}function r(a){return a?.llm?.failureStreak??o}function s(){return l}function t(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/maximum context length|context ?length|context ?window|too many tokens|input.{0,24}too long|prompt.{0,24}too long|请求.{0,16}(超长|过长|超出)|上下文.{0,16}(超长|超出|过长|窗口)/iu.test(b)||/400/u.test(b)&&/context|too ?long|token|length|上下文/iu.test(b)||/JSON.{0,10}被截断|JSON.{0,10}未闭合/iu.test(b)}function u(){let a=(0,f.I)().load(),b=a.models.reasoning.active||a.models.action.active||a.models.reader.active,c=[...a.models.reasoning.list,...a.models.action.list,...a.models.reader.list].find(a=>a.name===b);if(!c)return;let d=a.providers[c.provider];if(d)return{model:c,provider:d}}function v(a){return a.filter(a=>!!a).reduce((a,b)=>a+b.length,0)}async function w(a,b,c=!1,f={}){var j;if(f.diagnostics&&(f.diagnostics.llm.calls+=1,f.diagnostics.llm.inputChars=(f.diagnostics.llm.inputChars||0)+a.length+b.length,f.contextLayers)){let a=f.diagnostics.llm.layerChars??(f.diagnostics.llm.layerChars={l0:0,l1:0,l2:0,l3:0});a.l0+=f.contextLayers.l0||0,a.l1+=f.contextLayers.l1||0,a.l2+=f.contextLayers.l2||0,a.l3+=f.contextLayers.l3||0}let k=await (j=f.signal,new Promise((a,b)=>{if(i<l){i+=1,a(q);return}let c={resolve:a,reject:b,settled:!1};p.push(c);let d=()=>{if(c.settled)return;c.settled=!0;let a=p.indexOf(c);a>=0&&p.splice(a,1),b(Error("用户中止"))};if(j){if(j.aborted)return void d();j.addEventListener("abort",d,{once:!0})}}));f.diagnostics&&(f.diagnostics.llm.maxActive=Math.max(f.diagnostics.llm.maxActive,i));try{let i,j=u();if(!j)return;let{model:k,provider:l}=j,m=(0,g.c6)({provider:k.provider,model:k.name,baseUrl:l.baseUrl,directEndpoint:l.directEndpoint,protocol:l.protocol,apiKeyHash:l.apiKey?(0,g.c6)(l.apiKey):""}),n=h.get(m);n||(n=(0,d.createProvider)(function(a,b){let c=(0,e.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":/deepseek/iu.test(a)?"deepseek":"openai"}(k.provider,l),{baseUrl:l.baseUrl,apiKey:l.apiKey,modelName:k.name,directEndpoint:l.directEndpoint}),h.set(m,n));let p=k.name.toLowerCase(),q=function(a,b,c){let e=(0,d.thinkingCapabilityForModel)(b);return"disabled"===c?e&&"unsupported"!==e.disable?{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:e?.budgetPolicy==="shared"?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),已忽略“强制关闭思考”配置;建议切换 deepseek 或 gpt 系列模型`}:"enabled"!==c&&"structuredGeneration"===a&&e?"unsupported"===e.disable?{disableThinking:!1,budgetMode:"shared"===e.budgetPolicy?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),生成耗时受限;建议切换 deepseek 或 gpt 系列模型`}:{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:"compact"}}(f.taskKind??"structuredGeneration",p,k.thinking);q.warning&&f.diagnostics&&!f.diagnostics.llm.thinkingWarning&&(f.diagnostics.llm.thinkingWarning=q.warning);let r=n.capabilities?.maxOutputTokens||8192,s=/deepseek/iu.test(p)?Math.min(r,8192):r,t="relaxed"===q.budgetMode&&f.maxTokens?Math.min(Math.ceil(6*f.maxTokens),s):f.maxTokens,v=Symbol("empty-content"),w=async(d,e=!1)=>{if(f.signal?.aborted)throw Error("用户中止");let g=await n.chat([{role:"system",content:c?`${a}
|
|
4
|
+
${c}`,{maxTokens:1200,temperature:0,disableThinkingBoost:!0});if(!d)return;return{highlights:Array.isArray(d.highlights)?d.highlights.slice(0,5):[],weaknesses:Array.isArray(d.weaknesses)?d.weaknesses.slice(0,5):[],benchmarkable:"string"==typeof d.benchmarkable?d.benchmarkable:""}}catch{return}}async function o(a,b,c){let d=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=a.split(/\n{2,}/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=30);if(0===d.length&&0===e.length)return;let f={semanticDuplicationRate:0,semanticSegmentCount:0,enrichedAt:Date.now()},g=await l(d,c);g&&(f.semanticDuplicationRate=g.semanticDuplicationRate,f.semanticSegmentCount=g.semanticSegmentCount);let h=await m(e);if(h){let a=0,b=0,c=0;for(let d of h)a+=d.batch.filter(a=>a.fiveElementComplete).length,b+=d.batch.filter(a=>a.arrowChain).length,c+=d.batch.length;if(c>0){let d=h[0]?.totalBlocks||e.length;f.llmFiveElement={completeBlocks:Math.round(a/c*d),sampledBlocks:c,totalBlocks:d},f.llmArrowChain={chainSegments:b,sampledSegments:c,totalSegments:e.length}}}return f.qualityNotes=await n(a,b),g||h||f.qualityNotes?f:void 0}function p(){let a=f.join(e.homedir(),".customize-agent","template-references");return d.mkdirSync(f.join(a,"files"),{recursive:!0}),a}function q(){return f.join(p(),"references.json")}function r(){try{let a=q();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));return Array.isArray(b)?b:[]}catch{return[]}}function s(a){d.writeFileSync(q(),JSON.stringify(a,null,2),"utf-8")}function t(){return r().sort((a,b)=>b.uploadedAt-a.uploadedAt)}function u(a){return t().filter(b=>b.projectType===a)}async function v(a){let b=d.statSync(a),c=new g.FileClassifier().classify(a,f.basename(a),b),e=new g.ContentExtractor,h=((await e.extract(c)).text||"").trim();if(!h)throw Error("文件未能提取到有效文本(可能是扫描件或加密文件)");return h}let w=null;function x(){return w??=y().finally(()=>{w=null})}async function y(){let a=r(),b=a.filter(a=>"ready"===a.status&&4!==a.profileVersion);if(0===b.length)return;let c=!1;for(let a of b){let b=f.join(p(),a.filePath);if(d.existsSync(b))try{let d=await v(b);a.qualityProfile=await (0,h.WT)(d),a.profileVersion=4,c=!0}catch{}}for(let e of(c&&s(a),b)){let a=f.join(p(),e.filePath);"ready"===e.status&&d.existsSync(a)&&z(e,a)}}async function z(a,b){try{let c=await v(b),d=await o(c,a.qualityProfile?.headingStructure||[]);if(!d)return;let e=r(),f=e.find(b=>b.id===a.id);if(!f||!f.qualityProfile)return;f.qualityProfile={...f.qualityProfile,semantic:d},s(e)}catch{}}async function A(a){let b=p(),c=`ref-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,e=f.extname(a.fileName)||".pdf",g=`${c}${e.toLowerCase()}`,i=f.join(b,"files",g);d.copyFileSync(a.tempFilePath,i);let j=d.statSync(i).size,k={id:c,fileName:a.fileName,projectType:a.projectType||"其他",typeSource:a.projectType?"manual":"auto",uploadedAt:Date.now(),fileSize:j,filePath:f.join("files",g),status:"parsing"},l=r();l.push(k),s(l);try{let a=await v(i);k.qualityProfile=await (0,h.WT)(a),k.profileVersion=4,k.textSlices=function(a,b=8){let c=a.split(/\n{2,}|\r\n\r\n/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=20),d=Math.max(1,Math.floor(c.length/b)),e=[];for(let a=0;a<c.length&&e.length<b;a+=d)e.push(c[a].slice(0,300));return[...new Set(e)]}(a),k.status="ready","auto"===k.typeSource&&(k.projectType=(0,h.aF)(a)),s(l),z(k,i)}catch(a){k.status="failed",k.errorMessage=a instanceof Error?a.message:"解析失败",s(l)}return k}function B(a){let b=r(),c=b.find(b=>b.id===a);if(!c)return!1;s(b.filter(b=>b.id!==a));let e=f.join(p(),c.filePath);try{d.existsSync(e)&&d.unlinkSync(e)}catch{}return!0}function C(a,b){let c=r(),d=c.find(b=>b.id===a);if(d)return d.projectType=b,d.typeSource="manual",s(c),d}function D(a){let b=u(a).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return;let c=b.map(a=>a.qualityProfile),d=I(c),e=c[0];return{profile:{wordCount:F(c.map(a=>a.wordCount)),effectiveWordCount:F(c.map(a=>a.effectiveWordCount)),paramDensity:d.paramDensity.avg,paramCount:Math.round(F(c.map(a=>a.paramCount))),arrowChainCoverage:d.arrowChainCoverage.avg,duplicationRate:d.duplicationRate.avg,tableCount:Math.round(d.tableCount.avg),sectionCount:Math.round(d.sectionCount.avg),subsectionCount:Math.round(d.subsectionCount.avg),subitemCount:Math.round(d.subitemCount.avg),avgSectionWords:d.avgSectionWords.avg,headingStructure:e.headingStructure,tableTitles:e.tableTitles,paramTokens:e.paramTokens,segmentCount:Math.round(F(c.map(a=>a.segmentCount||0))),arrowChainSegmentCount:Math.round(F(c.map(a=>a.arrowChainSegmentCount||0))),duplicatedSegmentCount:Math.round(F(c.map(a=>a.duplicatedSegmentCount||0))),fiveElementCompleteBlocks:Math.max(0,...c.map(a=>a.fiveElementCompleteBlocks||0))},sourceCount:b.length}}function E(a){let b=u(a).filter(a=>"ready"===a.status&&a.qualityProfile?.headingStructure?.length);if(0!==b.length)return{text:H(b.map(a=>(a.qualityProfile.headingStructure||[]).map(a=>({value:a})))).slice(0,12).map(a=>a.value).map((a,b)=>`第${["一","二","三","四","五","六","七","八","九","十","十一","十二"][b]??b+1}章 ${a}`).join("\n"),sourceCount:b.length}}function F(a){return a.length>0?a.reduce((a,b)=>a+b,0)/a.length:0}function G(a){return{avg:F(a),min:a.length?Math.min(...a):0,max:a.length?Math.max(...a):0}}function H(a){let b=new Map;for(let c of a)for(let a of c)b.set(a.value,(b.get(a.value)||0)+(a.weight??1));return[...b.entries()].map(([a,b])=>({value:a,count:b})).sort((a,b)=>b.count-a.count)}function I(a){if(0===a.length){let a={avg:0,min:0,max:0};return{paramDensity:{...a},arrowChainCoverage:{...a},duplicationRate:{...a},tableCount:{...a},sectionCount:{...a},subsectionCount:{...a},subitemCount:{...a},avgSectionWords:{avg:0}}}let b=a.map(a=>a.paramDensity),c=a.map(a=>a.arrowChainCoverage),d=a.map(a=>a.duplicationRate),e=a.reduce((a,b)=>a+(b.effectiveWordCount||b.wordCount),0),f=a.reduce((a,b)=>a+b.paramCount,0),g=a.reduce((a,b)=>a+(b.segmentCount||0),0),h=a.reduce((a,b)=>a+(b.arrowChainSegmentCount||0),0),i=a.reduce((a,b)=>a+(b.duplicatedSegmentCount||0),0),j=a.reduce((a,b)=>a+b.sectionCount,0);return{paramDensity:{avg:e>0?1e3*f/e:0,min:Math.min(...b),max:Math.max(...b)},arrowChainCoverage:{avg:g>0?h/g:0,min:Math.min(...c),max:Math.max(...c)},duplicationRate:{avg:g>0?i/g:0,min:Math.min(...d),max:Math.max(...d)},tableCount:G(a.map(a=>a.tableCount)),sectionCount:G(a.map(a=>a.sectionCount)),subsectionCount:G(a.map(a=>a.subsectionCount||0)),subitemCount:G(a.map(a=>a.subitemCount||0)),avgSectionWords:{avg:j>0?Math.round(e/j):0}}}function J(){let a=t().filter(a=>"ready"===a.status&&a.qualityProfile),b=new Map;for(let c of a){let a=b.get(c.projectType)||[];a.push(c),b.set(c.projectType,a)}let c=[];for(let[a,d]of b){let b=d.map(a=>a.qualityProfile),e=H(b.map(a=>(a.headingStructure||[]).map(a=>({value:a})))),f=H(b.map(a=>(a.tableTitles||[]).map(a=>({value:a})))),g=H(b.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count}))));c.push({projectType:a,sourceCount:d.length,totalWords:b.reduce((a,b)=>a+b.wordCount,0),updatedAt:Math.max(...d.map(a=>a.uploadedAt)),metrics:I(b),typicalHeadings:e.slice(0,16).map(a=>({title:a.value,count:a.count,ratio:d.length>0?Math.min(1,a.count/d.length):0})),commonTables:f.slice(0,10).map(a=>({title:a.value,count:a.count})),frequentParams:g.slice(0,12).map(a=>({token:a.value,count:a.count}))})}return c.sort((a,b)=>b.sourceCount-a.sourceCount)}function K(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" ")),c=u(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return[];let d=c.map(a=>a.qualityProfile),e=c.length,f=F(d.map(a=>a.wordCount)),g=f>0?Math.max(.3,Math.min(2,a.targetWords/f)):1,i=H(d.map(a=>(a.headingStructure||[]).map(a=>({value:a})))).filter(a=>a.count>=Math.ceil(e/2)).slice(0,12),j=H(d.map(a=>(a.paramTokens||[]).map(a=>({value:a.token,weight:a.count})))),k=[`同类工程(${b})参考特征(来自 ${e} 份优秀入围文件画像,仅供软性参考;任何项目专属数字与参数仍必须以知识库证据为准,为对齐特征而编造参数、虚构表格或堆砌无意义内容严格禁止):`],l=I(d),m=l.paramDensity.avg,n=l.arrowChainCoverage.avg,o=l.sectionCount.avg>0?l.tableCount.avg/l.sectionCount.avg:0,p=l.avgSectionWords.avg;k.push(`- 工艺参数密度参考:约 ${(m*g).toFixed(1)} 个/千字(同类工程画像均值 ${m.toFixed(1)},已按本项目篇幅折减);参数应来自已确认事实与专业知识,不得编造。`);let q=Math.max(n,.08);return k.push(`- 工序顺序表达覆盖率参考:含工序顺序表达(顺序词叙述/编号步骤/有序无序列表/箭头链任一形式,形式由模型自然选择)的段落占比不低于 ${Math.round(100*q)}%(同类工程画像均值 ${Math.round(100*n)}%,已按生成侧门禁取下限);施工与流程小节宜用工序顺序表达串联工艺步骤。`),k.push(`- 表格参考:同类工程平均每章约 ${o.toFixed(1)} 张正式表格(在事实允许的前提下合理配置)。`),k.push(`- 章节体量参考:同类工程平均约 ${Math.round(l.sectionCount.avg)} 章、平均每章约 ${p} 字;实际以模板章节与篇幅目标为准。`),i.length>0&&k.push(`- 典型章节结构参考(出现于半数以上样本,仅供结构参考,不强制):${i.map(a=>a.value).join("、")}`),j.length>0&&k.push(`- 高频工艺参数种类参考:${j.slice(0,12).map(a=>a.value).join("、")}(同类型优秀样本中出现频次最高的工艺参数词条,施工方法小节可按专业实际与通用规范自然使用这些参数种类;项目专属数值必须来自知识库证据,不得为凑密度编造)。`),k}function L(a){let b=u((0,h.aF)([a.templateName,...a.chapterTitles,a.requirement].filter(Boolean).join(" "))).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===b.length)return[];let c=b.map(a=>a.qualityProfile),d=Math.ceil(b.length/2),e=new Map,f=new Map;for(let a of c){let b=new Set;(a.headingStructure||[]).forEach((a,c)=>{if(f.set(a,(f.get(a)||0)+1),b.has(a))return;b.add(a);let d=e.get(a)||{sum:0,count:0};d.sum+=c,d.count+=1,e.set(a,d)})}let g=[...f.entries()].filter(([,a])=>a>=d).sort((a,b)=>{let c=e.get(a[0]),d=e.get(b[0]);return c.sum/c.count-d.sum/d.count}).map(([a])=>a).slice(0,10),i=c.reduce((a,b)=>a+b.sectionCount,0),j=c.reduce((a,b)=>a+(b.subsectionCount||0),0),k=c.reduce((a,b)=>a+(b.subitemCount||0),0),l=["- 写法骨架参考(同类优秀样本的展开模式,仅供结构参照;样本中的任何数值与原文句子都不得复制):"];g.length>=3&&l.push(`- 章节推进骨架:${g.join(" → ")}(出现于半数以上样本的一级章节按典型顺序排列,仅作结构参照,不强制)。`),i>0&&l.push(`- 分层展开深度:同类样本平均每章约 ${(j/i).toFixed(1)} 个二级小节、${(k/i).toFixed(1)} 个三级子目——范文把方案分层展开到具体措施条目,而不是整段综述概括。`);let m=g.filter(a=>/施工方案|施工方法|施工内容|施工部署|分部分项/u.test(a)).slice(0,4);return m.length>0&&l.push(`- 方案章节典型组织:同类样本中方案类章节以「${m.join("」「")}」等标题独立成章,逐分项展开,不并入项目概况章节。`),l.push("- 分部分项展开模式:同类样本按“施工概况(作业对象、部位、工程量)→工艺流程(工序顺序表达串联关键工序)→施工方法(工具机具、材料规格、工艺参数、验收标准)”三段逐分项展开;方法段正文以工序顺序表达(形式由模型自然选择:顺序词叙述、编号步骤、有序/无序列表或箭头链均可)串联连续工序,工艺参数落位在方法叙述中而非单独罗列清单。"),l}function M(a){return a.replace(/^第[一二三四五六七八九十百千\d]+[章节篇][、..]?\s*/u,"").replace(/^\d+(?:\.\d+)*[、..]?\s*/u,"").trim()}function N(a){let b=(0,h.aF)([a.templateName,...a.chapterTitles].join(" ")),c=u(b).filter(a=>"ready"===a.status&&a.qualityProfile);if(0===c.length)return;let d=H(c.map(a=>a.qualityProfile).map(a=>(a.headingStructure||[]).map(a=>({value:a})))),e=new Set(a.chapterTitles.map(M)),f=d.filter(a=>a.count>=Math.ceil(c.length/2)).filter(a=>!e.has(M(a.value))).slice(0,6).map(a=>({title:a.value,ratio:Math.min(1,a.count/c.length)}));return f.length>0?{projectType:b,sourceCount:c.length,missingHeadings:f}:void 0}},22157:(a,b,c)=>{c.d(b,{Kd:()=>t,TP:()=>s,Te:()=>r,V:()=>f,VX:()=>o,W6:()=>i,Xl:()=>k,Z1:()=>g,c6:()=>p,hh:()=>u,jf:()=>w,l$:()=>v,lG:()=>q,tU:()=>n,wq:()=>j});var d=c(77598),e=c(78217);let f=/项目主要施工内容|主要分部分项工程施工方案|主要施工方法/u;function g(a){return!!a&&!!(/→|->|=>/u.test(a)||/按.{0,12}顺序|依次|先后|先.{0,12}(?:后|再|然后|最后)|顺序施工|流水顺序/u.test(a)||(a.match(/(?:^|\n)\s*(?:\d+[.、]|[((]\d+[))]|[一二三四五六七八九十]+[、.]|第[一二三四五六七八九十]+步)/gmu)||[]).length>=2||(a.match(/(?:^|\n)\s*(?:[-*•]|\d+\.)\s+\S/gmu)||[]).length>=2||/[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u.test(a))}function h(a){return a.replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[((][^()()]*[))]/gu,"").replace(/[\s::、。,,;;/|—-]/gu,"")}function i(a){let b=a.split(/\r?\n/u),c="",d=new Map,e=[];for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(!b)continue;let f=b[1].length;if(2===f){c="";continue}if(3===f){c=b[2].trim();continue}if(4!==f)continue;let g=`${c}::${h(b[2].trim())}`;if(!g)continue;let i=(d.get(g)||0)+1;d.set(g,i),i>=2&&e.push(b[2].trim())}return e}function j(a){let b=a.split(/\r?\n/u),c=[],d="",e=new Set,f=!1;for(let a of b){let b=/^(#{2,6})\s+(.+)$/u.exec(a.trim());if(b){let g=b[1].length;if(g<=3&&(d=3===g?b[2].trim():"",e.clear()),f=!1,4===g){let g=`${d}::${h(b[2].trim())}`;if(!g){c.push(a);continue}if(e.has(g)){f=!0;continue}e.add(g)}c.push(a);continue}f||c.push(a)}return c.join("\n")}function k(a,b,c={}){if(!c.fuzzy){let c=l(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||l(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=m(b).replace(/\s+/gu,"").toLowerCase(),g=[],h=-1,i=0,j=!1,k=a=>{if(h<0)return;let b=c.slice(h,a).join("\n").trim();b&&g.push(b),h=-1,i=0,j=!1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,4}\s+/u.test(c[a]))continue;let e=/^\s*(#{2,4})\s+/u.exec(c[a])?.[1].length||3;if(h>=0&&(j||3===i)&&4===e)continue;k(a);let g=m(c[a]).replace(/\s+/gu,"").toLowerCase();(g===d||g.includes(d)||o(c[a],b))&&(h=a+1,i=e,j=e<=4&&f.test(c[a]))}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function l(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let g=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,h=4===g&&f.test(b),i=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=g&&!(h&&b[1].length===g)){i=a;break}}return d.slice(e,i).join("\n")}function m(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function n(a){return m(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"").replace(/[、,,;;·..//]+/gu,"").replace(/与|及|和|暨/gu,"")}function o(a,b){let c=n(a),d=n(b);return!!c&&!!d&&!(c.length<4)&&!(d.length<4)&&(c===d||c.includes(d)||d.includes(c))}function p(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function q(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function r(a){if(a?.aborted)throw Error("用户中止")}function s(a){return`【系统约束——仅指导写作,禁止写入正文,禁止复述本句】${a}`}let t=["评标纪律","投标纪律","行贿","打招呼","递条子","廉洁承诺","廉洁自律","串标","围标","弄虚作假","干扰评标"];function u(a){return!!(t.some(b=>a.includes(b))||a.includes("廉洁从业"))||/纪律|廉洁/u.test(a)&&/投标|评标|行贿|串标|围标|弄虚作假/u.test(a)}async function v(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||Math.max(1,{total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}.total))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class w{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},28103:(a,b,c)=>{c.d(b,{WT:()=>x,aF:()=>w,cG:()=>e});var d=c(52922);let e=["房建","市政","公路","桥梁与隧道","水利水电","电力","机电安装","装饰装修","园林绿化","铁路","港口与航道","矿山冶金","其他"],f=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d)|(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径))/gu,g=/→|->|=>|按.{0,12}顺序|依次|先后|先.{0,10}后|顺序施工|流水顺序|[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+(?:-|—|~|~)[\u4e00-\u9fa5]+/u,h=/^(?:[一二三四五六七八九十\d]+[、..]?\s*)?[\u4e00-\u9fa5()()、,A-Za-z0-9+\-·\s]{2,28}(?:表|清单)(?:[::]|\s*$)/mu,i=/^第([一二三四五六七八九十百千\d]+)[章篇][、..]?\s*(.{2,60})$/mu,j=/^\d+[、..](?!\d)\s*(.{2,20})$/mu,k=/^[一二三四五六七八九十]+[、..]\s*(.{2,20})$/mu,l=/^第[一二三四五六七八九十\d]+[节条][、..]?\s*(.{2,30})$/mu,m=/^(?:[一二三四五六七八九十]+、\s*(.{2,20})|[((][一二三四五六七八九十\d]+[))]\s*(.{2,20})|\d+\.\d+(?:\.\d+)*[、..\s]\s*(.{2,20}))$/mu,n=/\.{4,}|\.{2,}\s*\d{1,3}\s*$|—\d+—|第\s*\d+\s*页|^\d{1,3}$/u,o=/[,、;:]/u,p=/[,。;:?!]/u;function q(a){return a.trim().replace(/^(?:#+\s*)+/u,"").trim()}function r(a){return a.replace(/[\s..·]+\d{1,3}$/u,"").replace(/\s+/gu,"").trim()}function s(a){return a.length>=2&&!o.test(a)&&!/[。,;]$/u.test(a)}function t(a){if(/^\d+$/u.test(a))return Number.parseInt(a,10);let b={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},c=0,d=0,e=!1;for(let f of a){if("十"===f){c+=10*(d||1),d=0,e=!0;continue}if("百"===f){c+=100*(d||1),d=0,e=!0;continue}if("千"===f){c+=1e3*(d||1),d=0,e=!0;continue}let a=b[f];if(void 0===a)return Number.MAX_SAFE_INTEGER;d=a,e=!0}return e?c+d:Number.MAX_SAFE_INTEGER}let u=/(?:养护|搭接长度|试验压力|间距|偏差|坡度|含水率|压实度|强度等级|标号|厚度|宽度|高度|深度|直径|桩长|桩径)/gu,v=/(?:\d+(?:\.\d+)?\s*(?:mm|cm|m|㎡|m²|m2|m3|m³|kg|t|MPa|kPa|kN|V|KV|kV|A|天|%)(?![a-zA-Z\u4e00-\u9fa5])|\d+(?:\.\d+)?\s*(?:米|厘米|毫米|吨|千克|公斤|平方米|立方米)(?!\d))/gu;function w(a){let b,c=[["市政",/市政|管网|排水|给水|雨污|污水|燃气/gu],["公路",/公路|路基|路面|沥青/gu],["桥梁与隧道",/桥梁|隧道/gu],["水利水电",/水利|河道|灌溉|防洪/gu],["电力",/电力|供配电|电压|电缆/gu],["机电安装",/机电|暖通|通风|空调|消防|给排水|智能化|电梯/gu],["装饰装修",/装饰|装修|幕墙/gu],["园林绿化",/园林|绿化|景观|苗木/gu],["铁路",/铁路|轨道/gu],["港口与航道",/港口|航道/gu],["矿山冶金",/矿山|冶金/gu],["房建",/房建|建筑|住宅|楼|结构|砌体|基坑|地下室|主体|层高|户型|公共建筑|产业园|厂房/gu]].map(([b,c])=>(c.lastIndex=0,{type:b,count:(a.match(c)||[]).length})).sort((a,b)=>b.count-a.count),d=c[0],e=0,f=0;for(let[c,d]of[["房建",/产业园|标准厂房|安置房|住宅小区|保障房|卫生院|门诊楼|办公楼/gu],["市政",/老旧小区|海绵城市|雨污分流|管网改造|管廊/gu],["桥梁与隧道",/桥梁|隧道|盾构|箱梁|斜拉|悬索|涵洞/gu],["公路",/公路|路基|路面|沥青|桩号|互通|匝道/gu],["水利水电",/堤防|水库|泵站|水闸|疏浚|节制闸|水电站|大坝|围堰/gu],["电力",/变电站|输电线路|配电|GIS设备|电缆|架空线路|铁塔|箱变/gu],["铁路",/铁路|轨道|道床|站台|信号机|接触网/gu],["港口与航道",/港口|码头|航道|护岸|堆场|泊位/gu],["矿山冶金",/矿山|矿井|选矿|冶炼|尾矿|轧钢/gu]]){d.lastIndex=0;let g=(a.match(d)||[]).length;g>=3&&g>e?(f=e,b=c,e=g):g>f&&(f=g)}if(b){if(f>0&&e<2*f&&d&&d.count>e)return d.type;let a=c.find(a=>a.type===b)?.count||0;return d&&d.type!==b&&d.count>2*a&&d.count>=2*e?d.type:b}return d&&d.count>0?d.type:"其他"}async function x(a){let b=a.replace(/\s/gu,"").length,c=a.split(/\n+/u).map(a=>a.replace(/\s+/gu," ").trim()).filter(a=>a.length>=16&&/[\u4e00-\u9fa5]/u.test(a)),e=c.reduce((a,b)=>a+b.replace(/\s/gu,"").length,0),o=(a.match(f)||[]).length,w=c.filter(a=>g.test(a)).length,x=function(a){let b=0,c=a.split(/\n+/u);for(let a=0;a<c.length;a+=1){let d=q(c[a]||"");if(d){if(h.test(d)||/^┌─/u.test(d)){b+=1;continue}if(/^\|.*\|.*\|$/u.test(d)){let d="";for(let b=a-1;b>=0&&b>=a-3;b-=1){let a=q(c[b]||"");if(a){d=a;break}}/^\|.*\|.*\|$/u.test(d)||h.test(d)||(b+=1)}}}return b}(a),{headings:y,useCnAsChapter:z}=function(a){let b,c=new Map,d=[],e=[],f=a.split(/\n+/u);for(let a=0;a<f.length;a+=1){let b=q(f[a]);if(!b||n.test(b))continue;let d=i.exec(b);if(d){let b=r(d[2]||"");b.length>=2&&!p.test(b)&&c.set(d[1],function(a,b,c){if(a.length<20)return a;let d=q(b[c+1]||"");if(d.length<2||d.length>15||!/[\u4e00-\u9fa5]/u.test(d)||n.test(d)||i.test(d)||l.test(d)||m.test(d)||j.test(d)||k.test(d))return a;let e=a+d;return e.length<=60?e:a}(b,f,a));continue}let g=k.exec(b);if(g){let a=r(g[1]||"");s(a)&&e.push(a)}}if(0===c.size)for(let a of f){let b=q(a);if(!b||n.test(b))continue;let c=j.exec(b);if(c){let a=r(c[1]||"");s(a)&&d.push(a)}}let g=!1;return c.size>0?b=[...c.entries()].sort((a,b)=>t(a[0])-t(b[0])).map(([,a])=>a):d.length>=2?b=d:(b=e,g=!0),{headings:[...new Set(b)],useCnAsChapter:g}}(a),A=y.length,{subsectionCount:B,subitemCount:C}=function(a,b){let c=0,d=0;for(let e of a.split(/\n+/u)){let a=q(e);if(!a||n.test(a))continue;let f=l.exec(a);if(f){s(r(f[1]||""))&&(c+=1);continue}let g=m.exec(a);if(g){if(!s(r(g[1]||g[2]||g[3]||""))||b&&void 0!==g[1])continue;d+=1}}return{subsectionCount:c,subitemCount:d}}(a,z),D=new Map;for(let a of c){let b=a.replace(/[\d\s,。、;:""''()()%…—\-·]/gu,"");b.length<8||D.set(b,(D.get(b)||0)+1)}let E=0;for(let a of D.values())a>1&&(E+=a);let F=await (0,d.Pm)(a);return{wordCount:b,effectiveWordCount:e,paramDensity:e>0?1e3*o/e:0,paramCount:o,arrowChainCoverage:c.length>0?w/c.length:0,duplicationRate:c.length>0?E/c.length:0,tableCount:x,sectionCount:A,subsectionCount:B,subitemCount:C,avgSectionWords:A>0?Math.round(e/A):0,headingStructure:y,tableTitles:function(a){let b=[];for(let c of a.split(/\n+/u)){let a=q(c);a&&!(a.length>40)&&!(a.length<3)&&h.test(a)&&b.push(a)}return[...new Set(b)]}(a),paramTokens:function(a){let b=new Map;for(let c of a.match(u)||[])b.set(c,(b.get(c)||0)+1);let c=(a.match(v)||[]).length;return c>0&&b.set("数值参数(数字+单位)",(b.get("数值参数(数字+单位)")||0)+c),[...b.entries()].map(([a,b])=>({token:a,count:b})).sort((a,b)=>b.count-a.count)}(a),segmentCount:c.length,arrowChainSegmentCount:w,duplicatedSegmentCount:E,fiveElementCompleteBlocks:F.completeBlocks}}},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},37047:(a,b,c)=>{c.d(b,{Bd:()=>k,Eh:()=>g,Mv:()=>n,VN:()=>f});var d=c(19898);let e=null;function f(){return e||(e=new d.LocalTransformersEmbeddingProvider({})),e}let g=.6,h=new Map,i=0,j=0;function k(){return{embedCacheHits:i,embedCacheMisses:j}}async function l(a,b){let c=b?await b(a):await f().embedDocuments(a);if(c.length!==a.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${a.length} 条,实际 ${c.length} 条`);return c}async function m(a,b){if("0"===process.env.DOCUMENT_EMBED_CACHE)return l(a,b);let c=Array(a.length),d=[],e=new Map;for(let b=0;b<a.length;b+=1){let f=a[b];if(f.length<=2e3){let a=h.get(f);if(a){c[b]=a,i+=1,h.delete(f),h.set(f,a);continue}}let g=e.get(f);g?g.push(b):(e.set(f,[b]),d.push(f))}if(0===d.length)return c;let f=await l(d,b),g=function(){let a=Number(process.env.DOCUMENT_EMBED_CACHE_SIZE||4e4);return Number.isFinite(a)&&a>0?a:4e4}();for(let a=0;a<d.length;a+=1){let b=d[a],i=f[a],k=e.get(b);for(let a of k)c[a]=i;if(b.length<=2e3&&(j+=k.length,h.set(b,i),h.size>g)){let a=h.keys().next().value;void 0!==a&&h.delete(a)}}return c}async function n(a,b,c){if(0===a.length||0===b.length)return()=>0;let d=[...a,...b],e=await m(d,c),f=new Map;for(let a=0;a<d.length;a++)f.has(d[a])||f.set(d[a],e[a]);return(a,b)=>{let c=f.get(a),d=f.get(b);if(!c||!d)return 0;let e=Math.min(c.length,d.length),g=0;for(let a=0;a<e;a++)g+=c[a]*d[a];return g}}},41991:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(37047);function e(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e++)d+=a[e]*b[e];return d}async function f(a){if(0===a.prototypes.length)return async a=>a.map(()=>!1);let b=a.threshold??d.Eh,c=a.negativePrototypes??[],f=[...a.prototypes,...c],g=a.prototypes.length,h=a.embedDocuments?null:(0,d.VN)(),i=a.embedDocuments?await a.embedDocuments(f):await h.embedDocuments(f);if(i.length!==f.length)throw Error(`本地语义模型嵌入数量不一致:期望 ${f.length} 条,实际 ${i.length} 条`);return async d=>{if(0===d.length)return[];let f=d.map(()=>!1),j=d.map((b,c)=>a.lexicalHints&&!a.lexicalHints.test(b)?-1:c).filter(a=>a>=0);if(0===j.length)return f;let k=j.map(a=>d[a]),l=a.embedDocuments?await a.embedDocuments(k):await h.embedDocuments(k);return j.forEach((a,d)=>{let h=l[d];if(!h)return;let j=Math.max(...i.slice(0,g).map(a=>e(h,a))),k=c.length?Math.max(...i.slice(g).map(a=>e(h,a))):0;j>=b&&(0===c.length||j>k)&&(f[a]=!0)}),f}}},52922:(a,b,c)=>{c.d(b,{Bt:()=>m,JD:()=>A,Pm:()=>o,T4:()=>w,Ye:()=>k,bH:()=>D,gE:()=>r,nY:()=>F});var d=c(37047),e=c(41991);let f=["基本满足","大致符合","力争","原则上","大概","左右","尽可能","尽量满足"],g=/基本|大致|力争|原则上|大概|左右|尽可能|尽量/u,h=["基本满足招标文件要求","大致符合相关规范标准","力争达到优良质量标准","原则上按照规范执行","尽可能保证工程质量","尽量满足工期要求"],i=["结构构件左右对称布置","平面布置左右对称合理","力争上游的企业精神"];async function j(a){return(0,e.A)({prototypes:[...h],negativePrototypes:[...i],lexicalHints:g,embedDocuments:a})}function k(a){return f.filter(b=>a.includes(b)).map(b=>({phrase:b,count:a.split(b).length-1}))}let l=["精心组织、科学管理,确保工程质量","严格执行相关规范和设计要求","根据实际情况适当调整施工安排","建立健全管理体系,加强过程管理","全力保障项目顺利推进"];async function m(a,b){let c=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.trim()).filter(a=>a.length>=12),e=await (0,d.Mv)(c,[...l],b),f=await j(b),h=await f(c),i=c.filter(a=>g.test(a)).length,k=h.filter(Boolean).length,m=c.filter((a,b)=>l.some(b=>e(a,b)>=d.Eh)||h[b]).length,n=c.length?m/c.length:0;return{totalSentences:c.length,fillerSentences:m,ratio:n,level:n>=.4?"heavy":n>=.2?"medium":"light",vagueCandidateSentences:i,vagueSemanticSentences:k}}let n={plan:"制定专项施工方案与管理制度,明确技术措施",process:"施工工序流程与工艺步骤顺序",role:"由项目经理、技术负责人等岗位人员分工负责",frequency:"每日、每周等检查频次与时间节点安排",acceptance:"经检查验收合格后整改销项闭环"};async function o(a,b){let c=a.split(/\n{2,}/u).filter(a=>a.trim().length>=30),e=Object.values(n),f=await (0,d.Mv)(c,e,b),g=/项目经理|技术负责人|施工员|质检员|安全员|材料员|资料员|测量员|劳资员|班组长|监理工程师|试验员/u,h=/每日|每天|每周|每月|每季度|每批|不少于\s*\d+\s*次|至少\s*\d+\s*次|每周\s*\d+\s*次|每日\s*\d+\s*次|每\s*\d+\s*日/u,i=/整改|复查|销项|复验|闭环|返工/u,j=(a,b)=>{let c=(b!==n.role||!!g.test(a))&&(!!(b===n.role&&g.test(a))||(b!==n.frequency||!!h.test(a))&&(!!(b===n.frequency&&h.test(a))||(b!==n.acceptance||!!i.test(a))&&(!!(b===n.acceptance&&i.test(a))||void 0)));return void 0!==c?c:f(a,b)>=d.Eh},k=0,l=0,m=0;for(let a of c)e.filter(b=>j(a,b)).length>=4?k+=1:j(a,n.role)&&j(a,n.frequency)||(l+=1),j(a,n.role)&&j(a,n.frequency)&&j(a,n.acceptance)&&(m+=1);return{blocks:c.length,completeBlocks:k,incompleteBlocks:l,closedLoopBlocks:m}}let p="分析该工程难点的成因与风险来源",q=/\d+(?:\.\d+)?\s*(?:mm|cm|m|米|℃|%|kN|MPa|次|天|小时|h|Hz|m³)/u;async function r(a,b){let c=(function(a){let b=a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n/u);if(!b||void 0===b.index)return"";let c=b.index+b[0].length,d=a.slice(c),e=d.search(/^#{2,3}\s+/mu);return e>=0?d.slice(0,e):d})(a).split(/\n{2,}/u).filter(a=>a.trim().length>=20),e=await (0,d.Mv)(c,[p],b),f=0,g=0,h=0;for(let a of c){let b=e(a,p)>=d.Eh,c=q.test(a);b&&(f+=1),c&&(g+=1),b&&c&&(h+=1)}let i=c.length?h/c.length:0;return{countermeasures:c.length,attributed:f,quantified:g,bothCount:h,ratio:i,heavyTemplated:c.length>0&&i<.5}}let s=/建筑业10项新技术|10项新技术|安徽省住房城乡建设领域新技术推广目录|新技术推广目录|建设领域推广/u,t=/替代|取代|淘汰.{0,10}(?:工艺|技术|做法)|(?:较|比).{0,10}(?:传统|常规|普通)/u,u=/(?:提升|提高|节省|节约|降低|缩短|减少).{0,10}(?:效率|工期|成本|损耗|能耗|人工|周期)|升级价值|效益显著/u,v=["BIM","铝模","附着式升降脚手架","跳仓法","直螺纹","装配式","灌浆套筒","自动化监测","智慧工地","再生利用","非开挖","CCTV","碳纤维","薄贴法","干法施工","液压提升","预制","光伏一体化","BIPV","模块化"];function w(a){let b=v.filter(b=>a.includes(b)),c=s.test(a),d=t.test(a),e=u.test(a),f=[c,d,e].filter(Boolean).length;return{found:[...b],catalogCited:c,replaceClaimed:d,upgradeClaimed:e,effective:b.length>0&&f>=2}}let x=[/基坑|沟槽/u,/模板支撑|高支模/u,/脚手架|悬挑|附着式/u,/起重吊装|吊装/u,/幕墙/u,/人工挖孔桩/u,/装配式|钢结构安装/u,/拆除工程/u,/顶管|盾构|暗挖/u,/有限空间|水下作业/u,/吊篮/u,/塔吊|施工电梯|升降机/u,/沉井/u],y=/超危大|超规模|专家论证|一般危大/u,z=/(?:深度|高度|跨度|开挖).{0,8}\d+(?:\.\d+)?\s*(?:m|米)|(?:重量|吊装).{0,8}\d+(?:\.\d+)?\s*(?:kN|千牛)/u;function A(a){let b=x.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u\w*|\\|\(|\||\)/gu,"")),c=y.test(a),d=z.test(a);return{categories:b,graded:c,paramMatched:d,twoStepComplete:b.length>0&&c&&d}}let B=[{name:"总则",pattern:/总则/u},{name:"组织机构及职责",pattern:/应急(?:组织|领导)|组织机构|应急指挥部|应急小组/u},{name:"风险分析与危险源辨识",pattern:/风险分析|危险源辨识|风险辨识/u},{name:"应急物资设备通讯保障",pattern:/应急物资|物资.{0,8}(?:保障|储备)|通讯保障|通信保障/u},{name:"专项应急预案",pattern:/专项应急预案|专项预案/u},{name:"应急响应流程",pattern:/应急响应|响应流程|响应程序/u},{name:"后期处置",pattern:/后期处置|善后|事故调查/u},{name:"培训演练",pattern:/(?:应急)?演练|培训.{0,6}演练/u}],C=["高处坠落","物体打击","坍塌","触电","火灾","起重","防汛","防台风","中暑","中毒窒息","管线破坏"];function D(a){let b=B.filter(b=>b.pattern.test(a)).map(a=>a.name),c=B.filter(b=>!b.pattern.test(a)).map(a=>a.name),d=C.filter(b=>a.includes(b));return{coveredParts:[...b],missingParts:[...c],coverage:b.length/B.length,planHits:[...d]}}let E=[/其他项目/u,/其他标段/u,/其他城市/u,/本公司(?:其他|承建)/u,/某(?:市|县|区|项目)(?:的)?/u,/他项目/u,/兄弟项目/u];function F(a){return E.filter(b=>b.test(a)).map(a=>a.source.replace(/\\u/gu,""))}},78217:(a,b,c)=>{function d(a,b){return Math.ceil(e(a)/f(b))}function e(a){return a.replace(/<[^>]+>/gu,"").replace(/\s+/gu,"").length}function f(a){let b=Number(String(a&&"typography"in a&&a.typography?.bodySize||"").replace(/[^\d.]/gu,""))||14,c=Number(String(a&&"typography"in a&&a.typography?.lineHeight||"").replace(/[^\d.]/gu,""))||22;return b>=14&&c>=22?900:1050}function g(a){let b=a.trim();if(/^\d+(?:\.\d+)?$/u.test(b))return Number(b);let c={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if("十"===b)return 10;let d=/^([一二两三四五六七八九])?十([一二三四五六七八九])?$/u.exec(b);if(d)return(d[1]?c[d[1]]:1)*10+(d[2]?c[d[2]]:0)}function h(a="",b=""){let c=`${a}${b}`;return/不少于|至少|不低于|以上|起码/u.test(c)?"minimum":/约|大概|左右|大约|约为|附近/u.test(c)?"approximate":"exact"}function i(a){let b=a.replace(/\s+/gu," "),c=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(?:页|頁)\s*(以上|左右|以内|以下)?/gu)],d=[...b.matchAll(/(不少于|至少|不低于|约为|约|大概|大约|左右|生成|输出|达到|共)?\s*(\d+(?:\.\d+)?|[一二两三四五六七八九十]{1,3})\s*(万)?\s*(?:字|字符)\s*(以上|左右|以内|以下)?/gu)],e=c.map(a=>{let b=g(a[2]||"");return Number.isFinite(b)?{value:b,mode:h(a[1],a[3])}:void 0}).filter(a=>!!a).at(-1),f=d.map(a=>{let b=g(a[2]||"");return b?{value:Math.round(b*(a[3]?1e4:1)),mode:h(a[1],a[4])}:void 0}).filter(a=>!!a).at(-1);return{targetPages:e?.value,pageMode:e?.mode,targetChars:f?.value,charMode:f?.mode}}function j(a){let b=a.title+a.purpose;return/方法|技术|质量|安全|进度|资源|保障|措施|部署|方案|流程|执行/u.test(b)?1.3:/概况|结语|附录/u.test(b)?.75:1}function k(a){let b=a.template.generationSettings||a.template.exportSettings,c=f(a.template.exportSettings||a.template.generationSettings),d=i(a.requirement||""),e=i(a.promptTexts||""),g=d.targetChars||d.targetPages?d:e,h=!!(g.targetChars||g.targetPages),k=h?void 0:b?.targetPages?.target||b?.targetPages?.min,l=g.targetPages?g.targetPages*c:void 0,m=g.targetPages||k,n=h?"explicit":k?"template":a.spec?.chapterRules.some(a=>a.minWords)||a.spec?.dynamicChapterRule.minWordsPerChapter?"spec":"default",o=h?Math.max(g.targetChars||0,l||0)||void 0:Math.max((k?k*c:void 0)||0)||void 0,p=g.pageMode||"exact",q=g.charMode||p,r=h&&"approximate"===q,s=h&&"minimum"===q,t=h?m?Math.floor(m*(s?1:.9)):void 0:b?.targetPages?.min||(m?Math.floor(.95*m):void 0),u=h&&m&&!s?Math.ceil(m*(r?1.15:1.08)):b?.targetPages?.max,v=o?Math.floor(o*(s?1:.9)):t?t*c:void 0,w=o&&!s?Math.ceil(o*(r?1.15:1.08)):u?u*c:void 0,x=a.chapters.length>0?a.chapters:a.template.chapters,y=x.reduce((a,b)=>a+j(b),0)||1,z=new Map,A=x.map(a=>({chapter:a,target:o?Math.round(o*j(a)/y):0})),B=x.reduce((b,c)=>b+Math.max(a.spec?.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0,o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200),0),C=o&&B>.92*o?Math.max(.45,.92*o/B):1;for(let{chapter:b,target:c}of A){let d=Math.floor(Math.max(Math.max(a.spec?.chapterRules.find(a=>a.id===b.id||a.title===b.title)?.minWords||0,a.spec?.dynamicChapterRule.minWordsPerChapter||0),o?Math.min(900,Math.max(450,Math.floor(o/Math.max(1,x.length)*.35))):1200)*C);z.set(b.id,Math.max(d,c))}let D=!!(h&&(s||"exact"===q)&&(o||v||0)>=4e4);return{targetPages:m,minPages:t,maxPages:u,targetChars:o,minChars:v,maxChars:w,charsPerPage:c,chapterTargets:z,source:n,mode:q,longformStrict:D}}function l(a,b){let c=a?.targetPages;if(!c?.min&&!c?.target&&!c?.max)return[];let e=d(b,a),f=c.min||c.target,g=c.max||c.target,h=[];return f&&e<f&&h.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${e} 页,目标不少于 ${f} 页`,suggestion:"建议增加章节正文深度,或根据实际需求调整目标页数。"}),g&&e>g+4&&h.push({level:"warning",message:`正文篇幅可能超过目标页数:预计约 ${e} 页,目标不超过 ${g} 页`,suggestion:"建议检查是否存在重复段落或过度展开。"}),h}function m(a,b){let{currentChars:c,estimatedPages:d}=function(a,b){let c=e(b),d=Math.ceil(c/a.charsPerPage);return{currentChars:c,estimatedPages:d}}(a,b),f=[];return a.minChars&&c<a.minChars&&f.push({level:"warning",message:`正文篇幅低于目标字数:当前 ${c} 字,目标不少于 ${a.minChars} 字`,suggestion:"建议继续扩写缺口章节,或根据实际需求调整目标字数/页数。"}),a.maxChars&&c>Math.ceil(1.12*a.maxChars)?f.push({level:"error",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"请压缩重复段落、过细小节或过度展开内容后再导出。"}):a.maxChars&&c>a.maxChars&&f.push({level:"warning",message:`正文篇幅超过目标字数区间:当前 ${c} 字,建议不超过 ${a.maxChars} 字`,suggestion:"建议减少重复段落、过细小节或过度展开内容。"}),a.minPages&&d<a.minPages&&f.push({level:"warning",message:`正文篇幅低于目标页数:预计约 ${d} 页,目标不少于 ${a.minPages} 页`,suggestion:"建议继续扩写正文,或根据实际导出版式调整目标页数。"}),a.maxPages&&d>a.maxPages&&f.push({level:"warning",message:`正文篇幅超过目标页数区间:预计约 ${d} 页,建议不超过 ${a.maxPages} 页`,suggestion:"建议压缩过度展开内容或调整目标页数。"}),f}c.d(b,{Cv:()=>d,PE:()=>l,V7:()=>e,py:()=>i,q6:()=>f,tF:()=>k,ty:()=>m})},95734:(a,b,c)=>{c.d(b,{$y:()=>u,CX:()=>v,Qf:()=>m,Sq:()=>s,bU:()=>r,bb:()=>A,nz:()=>t,rI:()=>w,t5:()=>n});var d=c(95393),e=c(96770),f=c(29281),g=c(22157);let h=new Map,i=0,j=Number(process.env.DOCUMENT_LLM_MAX_CONCURRENCY),k=Number.isFinite(j)?0===j?1/0:j>0?Math.floor(j):void 0:void 0,l=k??1/0;function m(a){return l}function n(a){return l=k??1/0}let o=0,p=[];function q(){i=Math.max(0,i-1);let a=p.shift();a&&!a.settled&&(a.settled=!0,i+=1,a.resolve(q))}function r(a){return a?.llm?.failureStreak??o}function s(){return l}function t(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/maximum context length|context ?length|context ?window|too many tokens|input.{0,24}too long|prompt.{0,24}too long|请求.{0,16}(超长|过长|超出)|上下文.{0,16}(超长|超出|过长|窗口)/iu.test(b)||/400/u.test(b)&&/context|too ?long|token|length|上下文/iu.test(b)||/JSON.{0,10}被截断|JSON.{0,10}未闭合/iu.test(b)}function u(){let a=(0,f.I)().load(),b=a.models.reasoning.active||a.models.action.active||a.models.reader.active,c=[...a.models.reasoning.list,...a.models.action.list,...a.models.reader.list].find(a=>a.name===b);if(!c)return;let d=a.providers[c.provider];if(d)return{model:c,provider:d}}function v(a){return a.filter(a=>!!a).reduce((a,b)=>a+b.length,0)}async function w(a,b,c=!1,f={}){var j;if(f.diagnostics&&(f.diagnostics.llm.calls+=1,f.diagnostics.llm.inputChars=(f.diagnostics.llm.inputChars||0)+a.length+b.length,f.contextLayers)){let a=f.diagnostics.llm.layerChars??(f.diagnostics.llm.layerChars={l0:0,l1:0,l2:0,l3:0});a.l0+=f.contextLayers.l0||0,a.l1+=f.contextLayers.l1||0,a.l2+=f.contextLayers.l2||0,a.l3+=f.contextLayers.l3||0}let k=await (j=f.signal,new Promise((a,b)=>{if(i<l){i+=1,a(q);return}let c={resolve:a,reject:b,settled:!1};p.push(c);let d=()=>{if(c.settled)return;c.settled=!0;let a=p.indexOf(c);a>=0&&p.splice(a,1),b(Error("用户中止"))};if(j){if(j.aborted)return void d();j.addEventListener("abort",d,{once:!0})}}));f.diagnostics&&(f.diagnostics.llm.maxActive=Math.max(f.diagnostics.llm.maxActive,i));try{let i,j=u();if(!j)return;let{model:k,provider:l}=j,m=(0,g.c6)({provider:k.provider,model:k.name,baseUrl:l.baseUrl,directEndpoint:l.directEndpoint,protocol:l.protocol,apiKeyHash:l.apiKey?(0,g.c6)(l.apiKey):""}),n=h.get(m);n||(n=(0,d.createProvider)(function(a,b){let c=(0,e.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":/deepseek/iu.test(a)?"deepseek":"openai"}(k.provider,l),{baseUrl:l.baseUrl,apiKey:l.apiKey,modelName:k.name,directEndpoint:l.directEndpoint}),h.set(m,n));let p=k.name.toLowerCase(),q=function(a,b,c){let e=(0,d.thinkingCapabilityForModel)(b);return"disabled"===c?e&&"unsupported"!==e.disable?{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:e?.budgetPolicy==="shared"?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),已忽略“强制关闭思考”配置;建议切换 deepseek 或 gpt 系列模型`}:"enabled"!==c&&"structuredGeneration"===a&&e?"unsupported"===e.disable?{disableThinking:!1,budgetMode:"shared"===e.budgetPolicy?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),生成耗时受限;建议切换 deepseek 或 gpt 系列模型`}:{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:"compact"}}(f.taskKind??"structuredGeneration",p,k.thinking);q.warning&&f.diagnostics&&!f.diagnostics.llm.thinkingWarning&&(f.diagnostics.llm.thinkingWarning=q.warning);let r=n.capabilities?.maxOutputTokens||8192,s=/deepseek/iu.test(p)?Math.min(r,8192):r,t="relaxed"===q.budgetMode&&f.maxTokens?Math.min(Math.ceil(6*f.maxTokens),s):f.maxTokens,v=Symbol("empty-content"),w=async(d,e=!1)=>{if(f.signal?.aborted)throw Error("用户中止");let g=await n.chat([{role:"system",content:c?`${a}
|
|
5
5
|
只返回 JSON,不要返回 markdown。`:a},{role:"user",content:e?`${b}
|
|
6
6
|
|
|
7
7
|
(重要:缩短思考过程,直接给出最终结论。)`:b}],{temperature:f.temperature??.3*!c,maxTokens:d,signal:f.signal,disableThinking:q.disableThinking}),h=g.content?.trim()??"";if(h){if(f.diagnostics&&g.usage){let a=f.diagnostics.llm;a.inputTokens=(a.inputTokens||0)+g.usage.promptTokens,a.outputTokens=(a.outputTokens||0)+g.usage.completionTokens,a.promptCacheHitTokens=(a.promptCacheHitTokens||0)+(g.usage.promptCacheHitTokens||0),a.promptCacheMissTokens=(a.promptCacheMissTokens||0)+(g.usage.promptCacheMissTokens||0)}return h}throw v};for(let a=0;a<=1;a+=1){if(f.signal?.aborted)throw Error("用户中止");try{let b=1===a&&i===v,c=await w(t,b);return o=0,f.diagnostics&&(f.diagnostics.llm.failureStreak=0),c}catch(b){if(i=b,f.signal?.aborted)throw Error("用户中止",{cause:b});if(b!==v&&!function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/connection error|econnrefused|econnreset|fetch failed|network|socket|eai_again|enotfound|etimedout|429|502|503|504|rate ?limit|too many requests|overloaded|服务繁忙|连接失败/iu.test(b)}(b)||a>=1)break;f.diagnostics&&(f.diagnostics.llm.retries+=1),await new Promise(a=>{setTimeout(a,1200+Math.floor(800*Math.random()))})}}o+=1,f.diagnostics&&(f.diagnostics.llm.failures+=1,f.diagnostics.llm.failureStreak=(f.diagnostics.llm.failureStreak||0)+1,f.diagnostics.llm.lastError=i instanceof Error?i.message:i===v?"空响应(思考阶段耗尽输出预算)":String(i));return}finally{k()}}function x(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim();if(c)return c;let d=b.indexOf("{"),e=b.lastIndexOf("}"),f=b.indexOf("["),g=b.lastIndexOf("]"),h=d>=0&&e>d?b.slice(d,e+1):"",i=f>=0&&g>f?b.slice(f,g+1):"";return h&&(!i||d<=f)?h:i||b}function y(a,b){a&&(a.llm.schemaFailures=(a.llm.schemaFailures||0)+1,a.llm.lastError=b)}async function z(a,b,c={},d){let e,f=c.maxTokens,g=d??((a,b)=>w(a,b,!0,{maxTokens:f,temperature:c.temperature,signal:c.signal,diagnostics:c.diagnostics,disableThinkingBoost:c.disableThinkingBoost,taskKind:c.taskKind,contextLayers:c.contextLayers}));for(let d=0;d<=2&&!c.signal?.aborted;d+=1){let h=0===d?b:`${b}
|
|
@@ -17,7 +17,7 @@ ${d}`,"写作要求:必须严格按“主题块→H4 要点”两层结构输
|
|
|
17
17
|
|#][^。!?!?
|
|
18
18
|
]{18,60})[。!?!?]`,"gu");function D(a){let b=[],c=new Map;for(let b of a.matchAll(C)){let a=b[1].trim(),d=a.replace(/[\d,,.。%%㎡m2²]/gu,"").slice(0,16);if(d.length<10)continue;let e=c.get(d)||{count:0,sample:a};e.count+=1,c.set(d,e)}for(let{count:a,sample:d}of c.values())a<3||b.push({level:"warning",severity:"warning",category:"style",owner:"llm",repairability:"llm_repairable",message:`段首固定开场机械重复 ${a} 次:“${d.slice(0,30)}…”`,suggestion:"同一段首句式只保留首次出现处,其余处按所在章节语境改写为差异化开场,避免模板化套话观感。"});return b.slice(0,3)}function E(a){let b,c=a.split("\n"),d=[];for(let a=0;a<c.length;a+=1){let e=/^(#{2,4})\s+(.+)$/u.exec(c[a].trim());if(e){let c=e[1].length;/(?:工程概况|项目概况|基本信息)/u.test(e[2])?b={index:a,level:c}:b&&c<=b.level&&(d.push([b.index,a]),b=void 0)}}b&&d.push([b.index,c.length]);let e=a=>d.some(([b,c])=>a>=b&&a<c),f=c.filter((a,b)=>e(b)).join("\n"),g=[];for(let a=0;a<c.length;a+=1){if(e(a))continue;let b=/本项目为|本工程为|该项目为|该工程为/u.exec(c[a]);if(!b)continue;let d=c[a].slice(b.index).split(/[。!?!?]/u)[0];d&&d.length>=12&&g.push(d)}return{overviewBody:f,sentences:g}}function F(a,b={}){let c=[],{overviewBody:d,sentences:e}=E(a);if(0===e.length||!d||!b.semanticSimilarity)return c;let f=[];for(let a of e)if(b.semanticSimilarity(a,d)>=.6&&f.push(a.slice(0,36)),f.length>=3)break;return 0===f.length||c.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`项目概况段跨章复述不得出现:概况章外有 ${f.length} 处以“本项目为/本工程为”等总述开头整段复述概况内容:${f.map(a=>`“${a}…”`).join("、")}`,suggestion:"总述数据只在工程概况类小节集中交代一次:其他章节直接写本章内容,仅可引用所需的具体数字(如“45日历天总工期”),不得复述完整概况段。"}),c}function G(a,b){let c,{overviewBody:d,sentences:e}=E(a);if(0===e.length||!d)return a;let f=a.split(/\r?\n/u),g=[];for(let a=0;a<f.length;a+=1){let b=/^(#{2,4})\s+(.+)$/u.exec(f[a].trim());if(b){let d=b[1].length;/(?:工程概况|项目概况|基本信息)/u.test(b[2])?c={index:a,level:d}:c&&d<=c.level&&(g.push([c.index,a]),c=void 0)}}c&&g.push([c.index,f.length]);let h=!1,i=f.map((a,c)=>{if(g.some(([a,b])=>c>=a&&c<b)||/^#{1,6}\s/u.test(a.trim())||/^\s*\|/u.test(a.trim())||!/本项目为|本工程为|该项目为|该工程为/u.test(a))return a;let e=a.split(/(?<=[。!?!?])/u).filter(a=>{if(!/本项目为|本工程为|该项目为|该工程为/u.test(a))return!0;let c=a.split(/[。!?!?]/u)[0];return c.length<12||.6>b(c,d)});return e.join("")!==a&&(h=!0),e.join("")});return h?i.join("\n"):a}let H=["销项","复查","整改","闭环"];function I(a){let b=[],c=(0,d.V7)(a);if(c<3e3)return b;let e=[];for(let b of H){let d=a.split(b).length-1;e.push(d/c*1e3)}let f=Math.max(...e),g=H[e.indexOf(f)];return f>=3&&b.push({level:"warning",severity:"warning",category:"style",owner:"llm",repairability:"llm_repairable",message:`闭环句式模板化密集:“${g}”达 ${f.toFixed(1)} 次/千字(销项/复查/整改/闭环统一结尾高度重复)`,suggestion:"保留关键控制环节的闭环表述,其余改为差异化的过程控制语言(检验批验收、实测实量、旁站记录等),提升语言精练度。"}),b}let J=["专项设计文件尚未完成,待后续补充","评分指标存在缺口尚未明确","依据承诺函后续跟踪完善"];async function K(a){let b=[],c=a.split(/\n+/u).filter(a=>a.trim()&&!/^\s*(#{1,6}\s+|\||[-*+]\s|>)/u.test(a)).flatMap(a=>a.split(/[。;;]/u)).map(a=>a.trim()).filter(a=>a.length>=12);if(0===c.length)return b;let d=await (0,f.Mv)(c,[...J]),e=[...new Set(c.filter(a=>J.some(b=>d(a,b)>=f.Eh)))];if(0===e.length)return b;for(let a of e)b.push({level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`自伤表述候选:“${a}”暴露投标短板,需按上下文判定后改写`,suggestion:"投标文件不得主动暴露“专项设计未完成/指标存在缺口”等短板:改写为正向落实表述(如“按施工图绿色建筑专篇编制专项方案,逐项落实评分项并跟踪验收”);如属现场条件合理风险描述(地质/管线尚不明确),保留但需配套勘查与应对措施。"});return b.slice(0,3)}let L=/([\u4e00-\u9fa5]{2})\1/gu;function M(a){let b=[...new Set(a.match(L)||[])].slice(0,3);return 0===b.length?[]:[{level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`正文存在叠词重复表述:${b.map(a=>`“${a}”`).join("、")}`,suggestion:"删除紧邻重复字词,保持语句完整通顺(“执行执行”改为“执行”)。"}]}function N(a){return a.replace(L,"$1")}let O=/暂列金额|暂估价|报价明细|综合单价|清单合价|预留金|投标报价/u,P=/(?:税率|增值税)[^。;;\n]{0,12}\d/u,Q=/合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价/u,R=/材料价格|商务报价|投标总价|合同总价|工程总价/u,S=["暂列金额与暂估价的报价明细","综合单价与清单合价的商务数据","投标报价与费率标准的商务条款"],T=["合同估算价与投资估算的项目信息","最高投标限价与招标控制价的公开信息","商务数据不得写入施工组织设计正文的约束说明"];async function U(a){return(0,g.A)({prototypes:[...S],negativePrototypes:[...T],embedDocuments:a})}async function V(a,b){let c=[],d=await U(b),e=[];for(let b of a.split(/\r?\n/u)){let a=b.trim();if(!(/^#{1,6}\s/u.test(a)||/^\s*\|/u.test(a))&&(O.test(b)||P.test(b)||R.test(b)))for(let a of(P.test(b)&&c.push("税率/增值税"),b.split(/(?<=[。;;])\s*/u))){let b=a.match(O)||[],d=Q.test(a),f=R.test(a);!(b.length>0)||d||f?(b.length>0&&(d||f)||f&&0===b.length)&&e.push(a):c.push(...b)}}if(e.length>0){let a=await d(e);e.forEach((b,d)=>{if(!a[d])return;let e=b.match(O)||[],f=b.match(R)||[];c.push(...e.length>0?e:f)})}let f=[...new Set(c)].slice(0,4);return 0===f.length?[]:[{level:"error",severity:"blocker",category:"style",owner:"llm",repairability:"llm_repairable",message:`正文出现商务条款数据:${f.join("、")}`,suggestion:"商务数据(暂列金额/暂估价/综合单价/税率等)不得写入施组正文:删除该句或改写为定性表述(如“按合同约定执行”),商务口径仅保留在项目信息表中。"}]}function W(a){return a.split(/(?<=[。;;])\s*/u).filter(a=>!!(/^\s*\|/u.test(a)||/^#{1,6}\s/u.test(a))||!(O.test(a)||P.test(a))).join("")}function X(a){return a.split(/\r?\n/u).map(a=>{let b=a.trim();return/^#{1,6}\s/u.test(b)||/^\s*\|/u.test(b)||!O.test(a)&&!P.test(a)?a:a.split(/(?<=[。;;])\s*/u).filter(a=>!(O.test(a)||P.test(a))).join("")}).join("\n")}let Y=[{key:"excavation",label:"基坑支护及土方外运",re:/基坑支护/u},{key:"zero",label:"地下结构出正负零",re:/正负零|地下室结构/u},{key:"topping",label:"主体结构封顶",re:/主体(?:结构)?封顶/u},{key:"decoration",label:"装饰装修及幕墙",re:/装饰装修/u},{key:"mep",label:"机电安装及智能化调试",re:/机电安装/u},{key:"completion",label:"室外工程及竣工验收",re:/竣工验收/u}];function Z(a){let b=[],c=new Map;for(let b of function(a){let b=[],c=(a,c,d)=>{let e=Y.find(b=>b.re.test(a))?.key;void 0!==e&&Number.isFinite(c)&&c>=1&&c<=3e3&&b.push({key:e,day:c,raw:d})};for(let b of a.matchAll(/第(\d{2,3})日[^。;;\n]{0,14}?完成[^。;;\n]{0,12}?(基坑支护及土方外运|装饰装修及幕墙|机电安装及智能化调试|室外工程及竣工验收|地下结构出正负零|主体结构封顶|正负零|封顶)/gu))c(b[2],Number(b[1]),b[0].slice(0,40));for(let b of a.matchAll(/(基坑支护|正负零|封顶|装饰装修|机电安装|竣工验收)(?:(?!(?:第\d{2,3}[日天]|,|、)).){0,8}?完成[^。;;\n]{0,10}?第(\d{2,3})[日天]/gu))c(b[1],Number(b[2]),b[0].slice(0,40));for(let b of a.matchAll(/(主体(?:结构)?封顶)(?:(?!(?:第\d{2,3}[日天]|,|、|完成)).){0,20}?第(\d{2,3})日/gu))c(b[1],Number(b[2]),b[0].slice(0,40));let d=new Set;return b.filter(a=>{let b=`${a.key}:${a.raw}`;return!d.has(b)&&(d.add(b),!0)})}(a)){let a=c.get(b.key)||[];a.push(b),c.set(b.key,a)}for(let a of Y){let d=c.get(a.key);if(!d||d.length<2)continue;let e=[...new Set(d.map(a=>a.day))];if(e.length<2||Math.max(...e)-Math.min(...e)<5)continue;let f=[...new Set(d.map(a=>a.raw))].slice(0,4).join("、");b.push({level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`节点工期口径矛盾:“${a.label}”节点出现 ${e.map(a=>`${a}日`).join(" 与 ")} 两套口径:${f}`,suggestion:`关键节点完成时间必须全文唯一:以总进度计划表为准统一“${a.label}”节点日期,删除正文/其他表中矛盾的“第N日”表述。`})}return b.slice(0,4)}let $=[{key:"xps",label:"挤塑聚苯板(XPS)厚度",unit:"mm",kind:"number",patterns:[/(?:挤塑聚苯|XPS)(?:(?!(?:宽度|拼缝|不大于|不超过|小于|≤|采用|使用|选用|铺设|粘贴)).){0,40}?(\d+(?:\.\d+)?)\s*mm/gu,/(\d+(?:\.\d+)?)\s*mm[^。;;\n|]{0,10}?(?:挤塑聚苯|XPS)/gu]},{key:"cushion",label:"垫层混凝土强度等级",unit:"C标号",kind:"code",patterns:[/垫层[^。;;\n|]{0,20}?(C\d{2})/gu]},{key:"transformer",label:"箱式变压器容量",unit:"kVA",kind:"number",patterns:[/(\d+)\s*kVA[^。;;\n|]{0,12}?变压器/gu,/变压器[^。;;\n|]{0,12}?(\d+)\s*kVA/gu]},{key:"formwork",label:"模板周转次数",unit:"次",kind:"number",patterns:[/模板周转(?:次数|使用)?[^。;;\n|]{0,15}?(\d+)\s*次/gu]},{key:"block",label:"蒸压加气混凝土砌块强度等级",unit:"A标号",kind:"code",patterns:[/(?:蒸压加气混凝土|加气混凝土)?砌块[^。;;\n]{0,24}?(A\d+(?:\.\d+)?)/gu]},{key:"extinguisher",label:"干粉灭火器数量",unit:"具",kind:"number",patterns:[/灭火器[^。;;\n]{0,24}?(\d+)\s*具/gu]},{key:"pump",label:"潜水泵数量",unit:"台",kind:"number",patterns:[/潜水泵[^。;;\n]{0,24}?(\d+)\s*台/gu]},{key:"firstaid",label:"急救箱数量",unit:"套/个",kind:"number",patterns:[/急救箱[^。;;\n]{0,24}?(\d+)\s*(?:套|个)/gu]}],_=/\d+(?:\.\d+)?\s*(?:mm|kVA|次|具|台|套|个)\s*[//]\s*\d+/u;function aa(a){let b=[];for(let c of $){let d=new Set,e=[];for(let b of c.patterns)for(let c of a.matchAll(b)){let a=c[0].slice(0,40);_.test(a)||(d.add(c[1]),e.push(a))}if(!(d.size<2))if("code"===c.kind)b.push({level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`材料参数口径矛盾:“${c.label}”出现 ${[...d].map(a=>`${a}${c.unit}`).join(" 与 ")} 两套口径:${[...new Set(e)].slice(0,3).join("、")}`,suggestion:`同一材料参数全文只允许一个口径:以设计图纸/工程量清单为准统一“${c.label}”,删除矛盾表述。`});else{let a=[...d].map(Number).filter(Number.isFinite);if(a.length<2)continue;let f=Math.max(...a);if(f-Math.min(...a)<=.2*f)continue;b.push({level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`材料/设备数量口径矛盾:“${c.label}”出现 ${a.map(a=>`${a}${c.unit}`).join(" 与 ")} 两套口径:${[...new Set(e)].slice(0,3).join("、")}`,suggestion:`同一设备/材料数量全文只允许一个口径:以应急物资清单/施工部署为准统一“${c.label}”,删除矛盾表述。`})}}return b.slice(0,8)}let ab=/桩基|灌注桩|钻孔桩|打桩|成桩|桩机/u;function ac(a){let b=function(a){let b=[];for(let c of[...a.matchAll(/^#{3,4}\s+[^\n]*(?:地基与基础)[^\n]*$/gmu)]){let d=(c.index||0)+c[0].length,e=a.slice(d).search(/^#{2,4}\s+/mu),f=a.slice(d,e>=0?d+e:a.length);b.push(f)}return b}(a);if(0===b.length||b.some(a=>ab.test(a)))return[];let c=[];for(let b of a.split(/\r?\n/u)){let a=b.trim();!(!a||/^#{1,6}\s/u.test(a))&&ab.test(b)&&c.push(a.slice(0,48))}let d=[...new Set(c)].slice(0,5);return d.length<2?[]:[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`桩基表述残留:地基与基础章节施工流程为筏板/独立基础(无桩基工序),但全文另有 ${d.length} 处桩基表述:${d.join("、")}`,suggestion:"本项目基础形式不含桩基:删除全文所有桩基/桩机表述,进度计划表关键线路工序、质量验收划分表、隐蔽验收表均改为本项目实际基础工序(垫层/底板钢筋/混凝土)。"}]}let ad=/^\s*\|\s*计划工期\s*\|([^|\n]*)\|/u,ae=/工期延误|延误|违约|切除|赔偿|罚款|解除|扣减/u;function af(a){let b=[];for(let c of a.split(/\r?\n/u)){let a=ad.exec(c);if(!a)continue;let d=(a[1]??"").trim();d&&ae.test(d)&&b.push({level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`基本信息表「计划工期」字段错填违约条款文字:“${d.slice(0,40)}”`,suggestion:"「计划工期」字段应填日历天数值(与招标文件前附表一致,如「540个日历天」);工期延误违约条款文字应放在工期风险管控章节,不得占用基本信息表字段。"})}return b.slice(0,2)}let ag=/基础|支护|围护|桩|结构|开挖|放坡|喷锚|排桩|连续墙|土钉|锚杆|标高|深度|形式|体系/u;function ah(a){let b=a.replace(/\s+/gu,""),c=new Set;for(let a of b.matchAll(/([一-龥]{2,8})\/([一-龥]{2,8})/gu)){if(!ag.test(a[1])&&!ag.test(a[2]))continue;let d=Math.max(0,(a.index||0)-12),e=Math.min(b.length,(a.index||0)+a[0].length+12),f=b.slice(d,e);/采用|形式|方式|方案|选用|拟用|拟采用|为/u.test(f)&&c.add(`“${a[1]}/${a[2]}”`)}for(let a of b.matchAll(/[((]\s*或[^))]{1,48}[))]/gu)){let d=a[0].slice(1,-1);if(!/按图纸|按实|按图|待定|另行|视[^,。;]{0,8}而定|根据实际/u.test(d))continue;let e=Math.max(0,(a.index||0)-20),f=b.slice(e,(a.index||0)+a[0].length);ag.test(f)&&c.add(a[0].slice(0,30))}return 0===c.size?[]:[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`关键设计决策两可表述:${[...c].join("、")} 以并列/悬置形态表述,基础形式、支护形式等关键决策必须在正文中唯一确定`,suggestion:"以设计图纸/勘察报告/工程量清单为准锁定唯一决策并删除两可表述:明确写出本项目基础形式与支护形式的具体做法(如「基础形式为筏板基础」「基坑支护采用放坡+喷锚」),禁止「或…按图纸实施」类悬置话术。"}]}function ai(a){let b=a.replace(/\s+/gu,"");if((b.match(/基坑|开挖|支护/gu)||[]).length<3)return[];for(let a of b.matchAll(/(?:深度|标高)[^。;,,]{0,12}-?\d+(?:\.\d+)?[^。;,,]{0,6}/gu)){let b=a[0];if(!/(?:超过|大于|小于|不[大低小]于|不低于|按|倍|依据|详见|参考|示意|每)/u.test(b))return[]}return[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:"基坑深度数值未锁定:正文已有基坑支护/开挖成稿内容,但全文未出现「深度/标高+数值」的确定性表述(比较式阈值如「超过3m」不视为锁定),危大工程分级判定失去依据",suggestion:"从绑定资料(地质勘察报告/基坑支护设计图/基础平面图)锁定基坑开挖深度数值(如 5.85m)写入基坑支护小节;深度 ≥5m 的深基坑须同步标注危大工程分级与专家论证要求,禁止以「按图纸确定」回避深度数值。"}]}let aj=/[\u4e00-\u9fa5]{2,10}(?:杯|奖)(?![励金惩罚项])/gu,ak=/优质工程|文明工地|样板|标准化|观摩|示范|精品工程|结构优质|省优|市优/u;function al(a){let b=a;for(;;){let a=b.replace(/^(?:争创|争取|力争|争获|确保|获得|创建|力创|评为|荣获|标为|目标为|承诺|为)/u,"");if(a===b||!a)break;b=a}return b}function am(a,b,c){let d=new Set;for(let a of[...b.quality,...b.project,...b.schedule])for(let b of(0,e.lG)(a.value).matchAll(aj))d.add(al(b[0]));if(c?.extracted)for(let a of[...c.awardObjectives||[],...c.specialQualityStandards||[],...c.awardClauses||[]])for(let b of(a.text||"").matchAll(aj))d.add(al(b[0]));if(0===d.size)return[];let f=new Set;for(let b of a.matchAll(aj)){let a=al(b[0]);!d.has(a)&&(ak.test(a)||f.add(a))}return 0===f.size?[]:[{level:"error",severity:"blocker",category:"fact_consistency",owner:"llm",repairability:"llm_repairable",message:`奖项表述与招标文件白名单不符:正文出现 ${[...f].join("、")},均未出现在招标文件评分项要求或绑定资料中`,suggestion:"创优目标必须以招标文件原文为准逐字落位(如「确保黄山杯」),禁止自行编造或替换为其他奖项名称;白名单外的奖项表述一律删除或替换为招标原文奖项。"}]}},46482:(a,b,c)=>{c.d(b,{Zk:()=>r,Tz:()=>u,X6:()=>s,fC:()=>v,l8:()=>t,JP:()=>q});var d=c(73024),e=c(76760),f=c(74329);c(25840),c(23500);var g=c(70933),h=c(70208),i=c(61373),j=c(78217);c(23760);var k=c(30355),l=c(44505),m=c(85016),n=c(22157);let o=[...k.P9.filter(a=>!n.Kd.includes(a)),...m.D$.source.split("|")];var p=c(95734);function q(a){let b=a.template.chapters.length,c=b>0?a.targetWords/b:a.targetWords,d=`${a.template.name}
|
|
19
19
|
${a.template.category||""}
|
|
20
|
-
${a.requirement||""}`,e=/专项|安全|质量|验收|审核|合同|合规|审计|风控|风险/u.test(d),f=a.targetWords>=4e4,g=(a.materialFileCount??0)<4&&(a.evidenceCount??0)<6,h=e||f||g,i=a.targetWords>=3e4||b>=8||c>=4e3,j=a.targetWords<=6e3&&b<=4&&!h,k="0"!==process.env.DOCUMENT_GLOBAL_CONSISTENCY_REVIEW&&(h||j||"1"===process.env.DOCUMENT_GLOBAL_CONSISTENCY_REVIEW);return{mode:h?"strict":i?"longform":j?"fast":"balanced",enableChapterReview:!0,enableGlobalReview:k,enableDocumentBudgetExpansion:!1,enableFinalQualityReview:!0,globalReviewSamplingRate:k&&j?.35:1}}function r(a){return{strategy:a,metrics:[],llm:{calls:0,failures:0,maxActive:0,retries:0,failureStreak:0,schemaFailures:0,promptCacheHitTokens:0,promptCacheMissTokens:0,inputTokens:0,outputTokens:0,inputChars:0,layerChars:{l0:0,l1:0,l2:0,l3:0}},semantic:{embedCacheHits:0,embedCacheMisses:0},evidence:{raw:0,used:0,filteredNoise:0,budgetDropped:0,avgNoiseScore:0,avgFactDensity:0,searchQueries:0,searchMs:0,contextChars:0},quality:{blockingCount:0,importantCount:0,minorCount:0,repairedCount:0}}}async function s(a,b,c,d){let e=Date.now();try{return await c()}finally{let c=Date.now();a.metrics.push({name:b,startedAt:e,endedAt:c,durationMs:c-e,meta:d})}}async function t(a){(0,n.Te)(a.signal);let b=a.repairType||function(a){let b=a.join("\n");for(let a of f.NP)if(a.pattern.lastIndex=0,a.pattern.test(b))return a.type;return"generic"}(a.issues),c=a.contextChapters?.length?`
|
|
20
|
+
${a.requirement||""}`,e=/专项|安全|质量|验收|审核|合同|合规|审计|风控|风险/u.test(d),f=a.targetWords>=4e4,g=(a.materialFileCount??0)<4&&(a.evidenceCount??0)<6,h=e||f||g,i=a.targetWords>=3e4||b>=8||c>=4e3,j=a.targetWords<=6e3&&b<=4&&!h,k="0"!==process.env.DOCUMENT_GLOBAL_CONSISTENCY_REVIEW&&(h||j||"1"===process.env.DOCUMENT_GLOBAL_CONSISTENCY_REVIEW);return{mode:h?"strict":i?"longform":j?"fast":"balanced",enableChapterReview:!0,enableGlobalReview:k,enableDocumentBudgetExpansion:!1,enableFinalQualityReview:!0,globalReviewSamplingRate:k&&j?.35:1}}function r(a){return{strategy:a,metrics:[],llm:{calls:0,failures:0,maxActive:0,retries:0,failureStreak:0,schemaFailures:0,promptCacheHitTokens:0,promptCacheMissTokens:0,inputTokens:0,outputTokens:0,inputChars:0,layerChars:{l0:0,l1:0,l2:0,l3:0}},semantic:{embedCacheHits:0,embedCacheMisses:0},evidence:{raw:0,used:0,filteredNoise:0,budgetDropped:0,avgNoiseScore:0,avgFactDensity:0,searchQueries:0,searchMs:0,contextChars:0,t0Chars:0,t1Chars:0,t2Lines:0,omittedChars:0},quality:{blockingCount:0,importantCount:0,minorCount:0,repairedCount:0}}}async function s(a,b,c,d){let e=Date.now();try{return await c()}finally{let c=Date.now();a.metrics.push({name:b,startedAt:e,endedAt:c,durationMs:c-e,meta:d})}}async function t(a){(0,n.Te)(a.signal);let b=a.repairType||function(a){let b=a.join("\n");for(let a of f.NP)if(a.pattern.lastIndex=0,a.pattern.test(b))return a.type;return"generic"}(a.issues),c=a.contextChapters?.length?`
|
|
21
21
|
|
|
22
22
|
周边章节上下文(仅用于衔接,禁止改动其中内容):
|
|
23
23
|
${a.contextChapters.map(a=>`【${a.title}】
|
|
@@ -26,8 +26,8 @@ ${a.promptTexts}`:"",`模板:${a.template.name}`,`章节:${a.chapter.title}`
|
|
|
26
26
|
${a.issues.map(a=>`- ${a}`).join("\n")}`,b,"当前章节 Markdown:",a.chapter.content,c].filter(Boolean).join("\n\n"),k=d?(0,g.Pc)(Math.min((0,j.V7)(a.chapter.content),1e4),6e3,14e3):void 0,m={},q=b=>({l0:e.length,l1:(0,p.CX)([a.promptTexts?`配置写作主控提示词:
|
|
27
27
|
${a.promptTexts}`:"",a.requirement?`用户要求:${a.requirement}`:"",`需要局部修复的问题:
|
|
28
28
|
${a.issues.map(a=>`- ${a}`).join("\n")}`]),l2:(0,p.CX)([`模板:${a.template.name}`,`章节:${a.chapter.title}`,"当前章节 Markdown:",a.chapter.content,c]),l3:(0,p.CX)([b])}),r=d&&k?`本章证据摘要:
|
|
29
|
-
${(0,g.ks)(d,{maxChars:k})}`:"",s=await (0,p.bb)(e,h(r),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics,outFailure:m,contextLayers:q(r)});if(!s&&d&&(0,p.nz)(m.value)){let b=`本章证据摘要:
|
|
30
|
-
${(0,g.ks)(d,{maxChars:3e3})}`;s=await (0,p.bb)(e,h(b),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics,contextLayers:q(b)})}(0,n.Te)(a.signal);let t=a.chapter.content,u=0,v=Array.isArray(s?.patches)?s.patches:[];for(let b of v){if(a.patchGuard&&b.replacement?.trim()&&function(a){let b=[];i.kt.test(a)&&b.push("资料来源罗列句");let c=o.filter(b=>a.includes(b));for(let d of(c.length>0&&b.push(`内部术语“${c.join("”“")}”`),a.matchAll(l.eS)))b.push(`具体日历日期“${d[1]}年${d[2]}月${d[3]}日”`);let d=[...new Set(a.match(l.Ih)||[])];return d.length>0&&b.push(`叠词“${d.join("”“")}”`),b}(b.replacement).length>0){let b=a.patchGuard.diagnostics;if(a.patchGuard.observeOnly)b&&(b.llm.patchGuardHits=(b.llm.patchGuardHits??0)+1);else{b&&(b.llm.patchGuardRejects=(b.llm.patchGuardRejects??0)+1);continue}}let c=function(a){var b;let c=a.patch.replacement?.trim(),d=(b=a.content,Math.max(2600,Math.min(16e3,Math.ceil(.45*(0,j.V7)(b)))));if(!c||c.length>d||a.forbidDrawingImages&&/!\[[^\]]*\]\([^)]*\)/iu.test(c))return{content:a.content,applied:!1};let e=function(a,b){let c=b.originalText?.trim();if(c&&a.includes(c)&&a.indexOf(c)===a.lastIndexOf(c))return c;let d=b.targetStart?.trim(),e=b.targetEnd?.trim();if(!d||!e)return;let f=a.indexOf(d);if(f<0)return;let g=a.indexOf(e,f+d.length);if(g<0)return;let h=g+e.length,i=a.slice(f,h);return a.indexOf(i)===a.lastIndexOf(i)?i:void 0}(a.content,a.patch);if(!e||e.length>d)return{content:a.content,applied:!1};let f=(0,i.kT)((0,i.FD)(a.content.replace(e,c),a.forbidDrawingImages));return!function(a,b){let c=(a.match(/```/gu)||[]).length,d=b.replace(/^第[一二三四五六七八九十百千万]+章\s*/u,"").trim();return c%2==0&&(!d||a.includes(d))&&!/^\s*$/u.test(a)}(f,a.title)||(0,j.V7)(f)<Math.floor(.65*(0,j.V7)(a.content))?{content:a.content,applied:!1}:{content:f,applied:f!==a.content}}({content:t,patch:b,title:a.chapter.title,forbidDrawingImages:a.forbidDrawingImages});t=c.content,c.applied&&(u+=1)}return{content:t,appliedCount:u,producedCount:v.length,repairType:b}}function u(a,b,c){return function(a,b){let c=e.resolve(a),f=function(a,b){let c=e.resolve(a);if(e.isAbsolute(b))return e.resolve(b);let f=e.resolve(c,"knowledgeBase",b);return d.existsSync(f)?f:e.resolve(c,b)}(c,b);return f===c||f.startsWith(`${c}${e.sep}`)}(a,b)&&c.size>0&&(function(a,b){let c=e.isAbsolute(b)?b:e.join(a,b),d=e.isAbsolute(b)?e.relative(a,b):b;return[b,c,d,e.join(a,d)]})(a,b).some(a=>c.has(a))}function v(a){return a.map(a=>`## [${a.roleId}/${a.category}] ${a.name}
|
|
29
|
+
${(0,g.ks)(d,{maxChars:k,diagnostics:a.diagnostics})}`:"",s=await (0,p.bb)(e,h(r),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics,outFailure:m,contextLayers:q(r)});if(!s&&d&&(0,p.nz)(m.value)){let b=`本章证据摘要:
|
|
30
|
+
${(0,g.ks)(d,{maxChars:3e3,diagnostics:a.diagnostics})}`;s=await (0,p.bb)(e,h(b),{maxTokens:a.maxTokens??8e3,temperature:0,signal:a.signal,diagnostics:a.diagnostics,contextLayers:q(b)})}(0,n.Te)(a.signal);let t=a.chapter.content,u=0,v=Array.isArray(s?.patches)?s.patches:[];for(let b of v){if(a.patchGuard&&b.replacement?.trim()&&function(a){let b=[];i.kt.test(a)&&b.push("资料来源罗列句");let c=o.filter(b=>a.includes(b));for(let d of(c.length>0&&b.push(`内部术语“${c.join("”“")}”`),a.matchAll(l.eS)))b.push(`具体日历日期“${d[1]}年${d[2]}月${d[3]}日”`);let d=[...new Set(a.match(l.Ih)||[])];return d.length>0&&b.push(`叠词“${d.join("”“")}”`),b}(b.replacement).length>0){let b=a.patchGuard.diagnostics;if(a.patchGuard.observeOnly)b&&(b.llm.patchGuardHits=(b.llm.patchGuardHits??0)+1);else{b&&(b.llm.patchGuardRejects=(b.llm.patchGuardRejects??0)+1);continue}}let c=function(a){var b;let c=a.patch.replacement?.trim(),d=(b=a.content,Math.max(2600,Math.min(16e3,Math.ceil(.45*(0,j.V7)(b)))));if(!c||c.length>d||a.forbidDrawingImages&&/!\[[^\]]*\]\([^)]*\)/iu.test(c))return{content:a.content,applied:!1};let e=function(a,b){let c=b.originalText?.trim();if(c&&a.includes(c)&&a.indexOf(c)===a.lastIndexOf(c))return c;let d=b.targetStart?.trim(),e=b.targetEnd?.trim();if(!d||!e)return;let f=a.indexOf(d);if(f<0)return;let g=a.indexOf(e,f+d.length);if(g<0)return;let h=g+e.length,i=a.slice(f,h);return a.indexOf(i)===a.lastIndexOf(i)?i:void 0}(a.content,a.patch);if(!e||e.length>d)return{content:a.content,applied:!1};let f=(0,i.kT)((0,i.FD)(a.content.replace(e,c),a.forbidDrawingImages));return!function(a,b){let c=(a.match(/```/gu)||[]).length,d=b.replace(/^第[一二三四五六七八九十百千万]+章\s*/u,"").trim();return c%2==0&&(!d||a.includes(d))&&!/^\s*$/u.test(a)}(f,a.title)||(0,j.V7)(f)<Math.floor(.65*(0,j.V7)(a.content))?{content:a.content,applied:!1}:{content:f,applied:f!==a.content}}({content:t,patch:b,title:a.chapter.title,forbidDrawingImages:a.forbidDrawingImages});t=c.content,c.applied&&(u+=1)}return{content:t,appliedCount:u,producedCount:v.length,repairType:b}}function u(a,b,c){return function(a,b){let c=e.resolve(a),f=function(a,b){let c=e.resolve(a);if(e.isAbsolute(b))return e.resolve(b);let f=e.resolve(c,"knowledgeBase",b);return d.existsSync(f)?f:e.resolve(c,b)}(c,b);return f===c||f.startsWith(`${c}${e.sep}`)}(a,b)&&c.size>0&&(function(a,b){let c=e.isAbsolute(b)?b:e.join(a,b),d=e.isAbsolute(b)?e.relative(a,b):b;return[b,c,d,e.join(a,d)]})(a,b).some(a=>c.has(a))}function v(a){return a.map(a=>`## [${a.roleId}/${a.category}] ${a.name}
|
|
31
31
|
${function(a){let b=a.replace(/```([\s\S]*?)```/gu,(a,b)=>/<OUTLINE>|\|\s*[^\n]+\s*\||#{1,6}\s+|必须|禁止|不得|应当|要求|规则|格式|输出|表格|章节|小节|正文/u.test(b)?`
|
|
32
32
|
${b.trim()}
|
|
33
33
|
`:"\n【示例代码块已省略:仅作为格式参考,不作为当前文档事实】\n").split(/\r?\n/u),c=[],d=!1,e=!1;for(let a of b){let b=a.trim();if((0,h.bl)(b)&&(e=!0),e){c.push(a),(0,h.Ui)(b)&&(e=!1);continue}let f=/^(?:#+\s*)?(?:示例|样例|范例|例如|参考示例|示例数据|示例正文|示例目录|example|sample)\s*[::]?/iu.test(b),g=/(?:不得|禁止|必须|应当|要求|规则|格式|输出|保留|只返回|不要|表格|章节|小节|正文|目录|封面)/u.test(b);if(f&&!g){c.at(-1)?.includes("示例内容已省略")||c.push("【示例内容已省略:仅作为格式参考,不作为当前文档事实】"),d=!0;continue}if(d){if(!b){d=!1;continue}if(!(/^(?:#+\s*)?(?:规则|要求|输出|格式|禁止|注意|正文|章节|小节|表格|风格|校验)/u.test(b)||/\|\s*[^\n]+\s*\|/u.test(b)))continue;d=!1}c.push(a)}return c.join("\n").replace(/\n{3,}/gu,"\n\n").trim()}(a.content)}`).join("\n\n")}},61373:(a,b,c)=>{c.d(b,{rd:()=>N,KX:()=>O,kt:()=>D,K7:()=>F,V3:()=>ap,cf:()=>V,p8:()=>W,r4:()=>X,rs:()=>ao,BJ:()=>L,Re:()=>y,z1:()=>C,wi:()=>t,bR:()=>Y,UG:()=>am,CK:()=>ak,Ed:()=>al,Bl:()=>T,FD:()=>i,kT:()=>M,nP:()=>K,uv:()=>J,bx:()=>G,dh:()=>Z,b_:()=>Q});var d=c(58965),e=c(22157),f=c(70208),g=c(98632),h=c(41991);function i(a,b){return b?a.replace(/^!\[[^\]]*(?:图纸|drawing|cad|地图|平面|剖面|立面)[^\]]*\]\([^)]*\)\s*$/gimu,"").replace(/\n{3,}/gu,"\n\n"):a}let j=/^.*(?:知识库证据|知识库已确认事实|资料类型|提示词角色|后台自动规范|规范包|事实字段|资料未提供|未检索到|待确认事项|证据来源|来源清单|校验结果|修复任务包|修复类型|修复对象|输出要求|当前项目绑定资料|已召回证据|证据边界|可审查草稿|Reviewer|Repairer).*$(?:\s)?|^.*本节围绕.+确保各项措施与本工程实施条件相匹配。?\s*$(?:\s)?|^.*建立施工准备、过程控制、检查验收和资料归档要求.*$(?:\s)?|^.*形成责任明确、过程可控、资料完整的管理闭环。?\s*$(?:\s)?|^.*确保现场管理要求与施工进度、资源组织和验收节点同步推进。?\s*$(?:\s)?|^\s*(?:管理闭环|责任明确、过程可控、资料完整|与本工程实施条件相匹配)[。;;]?\s*$(?:\s)?/gmu,k=/^\s*(?:#{1,6}\s*)?(?:PDF\s*第\s*\d+\s*页|rule\b|文件[::]|片段[::]|来源[::]).*$/gimu,l=/^\s*(?:[│┃┆┊┌┐└┘├┤┬┴┼─━╭╮╰╯]|[↓↑→←⇒⇨➡])+\s*$/gmu,m=/^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^#{2,6}\s+(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|^#{2,6}\s+.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|^#{2,6}\s+.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项)\s*$/gmu,n=/^(?:\d+(?:\.\d+)*\s*)?(?:[-—–]\s*)?(?:(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用).*|(?:如|若|如果)(?:涉及|不涉及|适用|不适用).*|.*(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成).*|.*(?:按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项))\s*$/u,o=/注意事项|如何|怎么写|按需|视情况|是否/u,p=["如何编写施工方案的写作说明标题","根据项目情况判断的注意事项标题","按需生成的编写要求与说明标题"],q=["危大工程专项施工方案与安全措施","质量验收标准与检测要求","成品保护与移交管理措施"];async function r(a){return(0,h.A)({prototypes:[...p],negativePrototypes:[...q],embedDocuments:a})}function s(a){let b=a.replace(/^#{1,6}\s+/u,"").replace(/^\s*\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分]\s*/u,"").trim(),c=(0,f.GQ)(b);return n.test(b)||n.test(c)||(0,f.mq)(b)||(0,f.mq)(c)}function t(a){return a.replace(/PDF\s*第\s*\d+(?:\s*[-—至到~~]\s*\d+)?\s*页/giu,"相关资料").replace(/PDF\s*第(?![ \t]*[0-90-9])/giu,"").replace(/第\s*\d+\s*页\s*(?:\/|共)\s*\d+\s*页/gu,"").replace(/第\s*\d+\s*(?:[-—至到~~]\s*\d+)?\s*页/gu,"相关资料").replace(/(装饰工程|土建工程|加固工程|给排水工程|电气工程|智能化工程|消防工程|弱电智能化工程|室外道排工程|建筑结构加固工程)\s*(?:(?:施工)?图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/\d+\s*页\s*(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:(?:施工)?图纸)?/gu,"$1专业图纸").replace(/(装饰|土建|加固|给排水|电气|智能化|消防|弱电智能化|室外道排|建筑结构加固)\s*(?:专业)?\s*(?:[((]\s*)?\d+\s*页\s*(?:(?:施工)?图纸)?\s*[))]?/gu,"$1专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9、及与和]{2,24})\s*(?:共|多达|约|合计)\s*\d+\s*页/gu,"$1相关专业图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24}工程)\s*(?:图纸|资料|文件)?\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/([\u4e00-\u9fa5A-Za-z0-9()()、·-]{2,24})(?<!施工)\s*(?:施工)?图纸\s*[((]?\s*(?:(?:共|多达|约|合计)\s*)?\d+\s*页\s*[))]?/gu,"$1施工图纸").replace(/(给排水|电气|智能化|消防|暖通|人防)\s*[((]\s*\d+\s*页\s*[))]/gu,"$1专业图纸").replace(/(?:依据|按照|结合)?\s*图纸\s*[((]\s*\d+\s*页\s*[))]/gu,"依据相关专业图纸").replace(/(?:依据|按照|结合)?\s*清单\s*[((]?\s*\d+\s*页\s*[))]?/gu,"依据工程量清单").replace(/资料\s*[((]?\s*\d+\s*页\s*[))]?/gu,"项目资料").replace(/[((]?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件|工程)?[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:(?:共|多达|约|合计)\s*)?\d+\s*页[\u4e00-\u9fa5A-Za-z0-9、及与和]*(?:图纸|清单|资料|文件)?[))]?/gu,a=>/图纸|工程|装饰|土建|加固|给排水|电气|智能化|消防/u.test(a)?"相关专业图纸":/清单/u.test(a)?"工程量清单":"相关资料").replace(/(?:位于|详见|见|参见|依据|按照|结合)?\s*相关资料(?:\s*相关资料)+/gu,"相关资料")}let u=String.raw`(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)`;function v(a){return/^\s*\|/u.test(a)||/^\s*\|?\s*:?-{3,}:?/u.test(a)?a:a.replace(/([。;;])\s*(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\S)/gu,"$1\n").replace(/([^\n])\s+(?=(?:\d+[.、](?=\s|\*\*)\s*|[((]\d+[))]\s*|[-*+]\s+)\*\*)/gu,"$1\n")}RegExp(String.raw`\S.+(?:\s|[。;;])${u}\S.+(?:\s|[。;;])${u}\S`,"u");let w=RegExp(`\r?
|
|
@@ -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-3e8b35112a00821a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/8uib-RXdUL8MMG7yUTeMG/_buildManifest.js" defer=""></script><script src="/_next/static/8uib-RXdUL8MMG7yUTeMG/_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":"8uib-RXdUL8MMG7yUTeMG","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-3e8b35112a00821a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/E8-6CWYYv3eI-kKzMQw6E/_buildManifest.js" defer=""></script><script src="/_next/static/E8-6CWYYv3eI-kKzMQw6E/_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":"E8-6CWYYv3eI-kKzMQw6E","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|