@customize-agent/server 4.11.0 → 4.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/208.js +1 -1
- package/.next/server/chunks/4680.js +5 -5
- package/.next/server/chunks/5284.js +5 -5
- package/.next/server/chunks/5321.js +136 -0
- package/.next/server/chunks/5726.js +1 -1
- package/.next/server/chunks/5840.js +1 -1
- package/.next/server/chunks/8661.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +1 -1
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages/template-references.html +1 -1
- package/.next/server/pages-manifest.json +27 -27
- package/package.json +1 -1
- package/.next/server/chunks/1895.js +0 -135
- /package/.next/static/{IE2ub9thb6qvFqapnpPrY → 4IhJtVksF6vvUSuNe_Clh}/_buildManifest.js +0 -0
- /package/.next/static/{IE2ub9thb6qvFqapnpPrY → 4IhJtVksF6vvUSuNe_Clh}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4IhJtVksF6vvUSuNe_Clh
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/4IhJtVksF6vvUSuNe_Clh/_buildManifest.js",
|
|
9
|
+
"static/4IhJtVksF6vvUSuNe_Clh/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [],
|
|
12
12
|
"rootMainFilesTree": {},
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "be2f557aad5e051757fd5382b1f62f2b",
|
|
7
|
+
"previewModeSigningKey": "a7fc075c717ca46f30c8afe8349c0c4d92de4b4b59c56328823f9f769cc7d68f",
|
|
8
|
+
"previewModeEncryptionKey": "9eaaf548c3db7839c692cc3ae9dd36873f13bb23679f28d9695c81e116a2e59b"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -53,7 +53,7 @@ ${a.content.replace(/\s+/gu," ").trim()}`}).join("\n\n---\n\n");return`请从以
|
|
|
53
53
|
|
|
54
54
|
${b}
|
|
55
55
|
|
|
56
|
-
返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,t),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});(0,g.Te)(a.signal);if(!h)return;let i=new Set(d.map(a=>a.filePath)),k=a=>"string"==typeof a&&(i.has(a)||d.some(b=>e.basename(b.filePath)===e.basename(a))),l=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",m=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(h.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:l(a.name,200),scope:l(a.scope,500),sourceFiles:m(a.sourceFiles,10).filter(k),relatedItems:m(a.relatedItems,20)})),methods:(h.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),steps:m(a.steps,12),applicableWorks:m(a.applicableWorks,10),sourceFiles:m(a.sourceFiles,10).filter(k)})),resources:(h.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:l(a.spec,200),quantity:l(a.quantity,50),unit:l(a.unit,20),sourceFiles:m(a.sourceFiles,5).filter(k)})),schedule:(h.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:l(a.milestone,200),duration:l(a.duration,100),startDate:l(a.startDate,50),endDate:l(a.endDate,50),sourceFiles:m(a.sourceFiles,5).filter(k)})),standards:(h.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:l(a.code,100),description:l(a.description,300),sourceFiles:m(a.sourceFiles,5).filter(k)})),risks:(h.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:l(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:l(a.mitigation,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),requirements:(h.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:l(a.category,100),detail:l(a.detail,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),siteConditions:(h.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:l(a.condition,300),impact:l(a.impact,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),addendumChanges:(h.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:l(a.originalPath,300),original:l(a.original,300),revised:l(a.revised,500),sourceFile:l(a.sourceFile,200)})),gaps:m(h.gaps,20),generatedAt:Date.now()}}async function w(b=[]){let c=Object.keys(j),d=(await (0,g.l$)(c,async c=>{try{let a=await v(c,b);if(a&&l(a)>0)return a;u.push(`${j[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;u.push(`${j[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:Number(process.env.DOCUMENT_PROJECT_GRAPH_DOMAIN_CONCURRENCY||2)})).filter(a=>!!a);return d.length?function(a){let b={w:new Set,m:new Set,r:new Set,sc:new Set,st:new Set,ri:new Set,rq:new Set,si:new Set,a:new Set};return{works:a.flatMap(a=>a.works).filter(a=>{let c=a.name+a.scope;return!b.w.has(c)&&(b.w.add(c),!0)}),methods:a.flatMap(a=>a.methods).filter(a=>{let c=a.name;return!b.m.has(c)&&(b.m.add(c),!0)}),resources:a.flatMap(a=>a.resources).filter(a=>{let c=a.name+a.spec+a.type;return!b.r.has(c)&&(b.r.add(c),!0)}),schedule:a.flatMap(a=>a.schedule).filter(a=>{let c=a.milestone;return!b.sc.has(c)&&(b.sc.add(c),!0)}),standards:a.flatMap(a=>a.standards).filter(a=>{let c=a.code+a.description;return!b.st.has(c)&&(b.st.add(c),!0)}),risks:a.flatMap(a=>a.risks).filter(a=>{let c=a.risk;return!b.ri.has(c)&&(b.ri.add(c),!0)}),requirements:a.flatMap(a=>a.requirements).filter(a=>{let c=a.category+a.detail;return!b.rq.has(c)&&(b.rq.add(c),!0)}),siteConditions:a.flatMap(a=>a.siteConditions).filter(a=>{let c=a.condition;return!b.si.has(c)&&(b.si.add(c),!0)}),addendumChanges:a.flatMap(a=>a.addendumChanges).filter(a=>{let c=a.original+a.revised;return!b.a.has(c)&&(b.a.add(c),!0)}),gaps:[...new Set(a.flatMap(a=>a.gaps))],generatedAt:Date.now()}}(d):void 0}try{let b=await w(),d=o(b,s);if(d.ok&&b||b&&l(b)>0)return n(a.projectRoot,c,b),{graph:b,stage:p(b)};let e=await w([...d.reasons,...u]);if(e&&l(e)>0)return n(a.projectRoot,c,e),{graph:e,stage:p(e)};return{stage:q([...d.reasons,...u])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:q([b instanceof Error?b.message:String(b),...u])}}}function s(a){let b=["## 项目资料图谱分析结果",""];for(let c of a.works)2===b.length&&b.push("### 主要工程内容"),b.push(`- **${c.name}**:${c.scope}`);for(let c of(a.works.length&&b.push(""),a.methods))b.includes("### 关键施工方法与工艺")||b.push("### 关键施工方法与工艺"),b.push(`- **${c.name}**:${c.steps.filter(Boolean).join(" → ")}`);for(let c of(a.methods.length&&b.push(""),a.resources)){b.includes("### 资源需求")||b.push("### 资源需求");let a={material:"材料",equipment:"设备",labor:"劳动力"}[c.type]||"资源";b.push(`- [${a}] ${c.name}${c.spec?`(${c.spec})`:""}${c.quantity?` ${c.quantity}${c.unit}`:""}`)}for(let c of(a.resources.length&&b.push(""),a.schedule))b.includes("### 工期与关键节点")||b.push("### 工期与关键节点"),b.push(`- ${c.milestone}:${c.duration}(${c.startDate} ~ ${c.endDate})`);for(let c of(a.schedule.length&&b.push(""),a.standards))b.includes("### 技术标准与验收要求")||b.push("### 技术标准与验收要求"),b.push(`- **${c.code}**:${c.description}`);for(let c of(a.standards.length&&b.push(""),a.risks))b.includes("### 重点难点与风险")||b.push("### 重点难点与风险"),b.push(`- **[${c.level}] ${c.risk}**:${c.mitigation}`);for(let c of(a.risks.length&&b.push(""),a.requirements))b.includes("### 特定要求")||b.push("### 特定要求"),b.push(`- [${c.category}] ${c.detail}`);for(let c of(a.requirements.length&&b.push(""),a.siteConditions))b.includes("### 现场条件与约束")||b.push("### 现场条件与约束"),b.push(`- ${c.condition}:${c.impact}`);for(let c of(a.siteConditions.length&&b.push(""),a.addendumChanges))b.includes("### 补疑修正")||b.push("### 补疑修正"),b.push(`- "${c.original}" → "${c.revised}"`);for(let c of(a.addendumChanges.length&&b.push(""),a.gaps))b.includes("### 资料缺口")||b.push("### 资料缺口"),b.push(`- ${c}`);return a.gaps.length&&b.push(""),b.join("\n")}},71001:(a,b,c)=>{c.d(b,{Kg:()=>x,My:()=>u,SP:()=>w,av:()=>g,c_:()=>r,detectPromptRuleConflicts:()=>y,el:()=>s,k2:()=>v});var d=c(70933),e=c(95734),f=c(70208);function g(a,b){let c=`${a} ${b}`,d=[/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/u.test(c)?"必须说明施工组织逻辑、施工段/专业接口、资源进场和管理闭环。":"",/进度|工期/u.test(c)?"必须围绕总工期、关键线路、资源保障、穿插施工和纠偏机制展开。":"",/质量/u.test(c)?"必须覆盖材料验收复验、过程检查、隐蔽验收、整改复验和质量资料归档。":"",/安全|文明|风险|危大/u.test(c)?"必须覆盖风险识别、人员设备、临电消防、现场文明、检查整改和应急响应。":"",/资源|材料|设备|劳动力/u.test(c)?"必须说明资源配置依据、进场验收、保管调配,并与工期和质量目标一致。":"",/施工|工艺|技术|方案/u.test(c)?"必须写清施工准备、工艺流程、关键控制点、验收要求和资料依据;每个分项工程方案必须落位至少 4 个工艺参数(mm、MPa、间距、偏差、坡度、养护天数、试验压力、搭接长度等),参数来自绑定资料或行业通用规范值,不得编造;纯设备配置型内容必须写型号、规格、容量、数量参数。工序顺序表达:工艺流程必须有明确的工序顺序表达(箭头链、编号步骤、有序/无序列表或顺序词叙述均可,如“基层清理→放线定位→分层摊铺→碾压→压实度检测→验收”),每个含方法叙述的三级小节方法段正文至少 1 处不少于 4 个环节的工序顺序表达,不得只在单独的流程行出现。":"",/流程|顺序|工序|穿插|闭环|整改|演练|转运|三检|隐蔽|排查/u.test(c)?"流程/顺序型叙述必须有明确的工序顺序表达(箭头链、编号步骤、有序/无序列表或顺序词叙述均可,每条序列不少于 3 个环节),把纯文字流程描述改写成顺序清晰的表达,如“发现问题→登记建档→原因分析→整改落实→复查销号”,正文中至少 2 处工序顺序表达。":""].filter(Boolean),e=d.find(a=>a.includes("工序顺序表达"));return["【小节专业任务卡】",`任务对象:${b}`,...d.length?d:["必须结合本项目资料明确事实说明对象范围、实施方法、控制要点、验收要求和资料闭环,避免泛化套话。"],...e?["工序顺序表达是硬性格式要求:正文成稿必须实际出现工序顺序表达(箭头链/编号步骤/有序无序列表/顺序词任一形式),评审将核验,未达标会被退回重写。"]:[],"禁止套话:不得使用“本小节围绕……展开”“结合绑定项目资料、施工组织安排和现场实施条件”“交底覆盖率按100%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似。"].join("\n")}function h(a){return(0,f.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function i(a){let b=h(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)}function j(a,b){let c=h(a),d=h(b);if(c.length<4||c.length>60||c===d||i(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c))return!0;let e=d.match(/[\p{L}\p{N}]{2,6}$/u)?.[0]||"";return!(!(e.length>=2&&/^.{2,8}\p{L}$/u.test(c)&&c.endsWith(e.slice(-1)))||c.includes(e))}function k(a,b){let c=h(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=h(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function l(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function m(a,b=""){let c=l(b);return Array.from(new Set(a.map(h).filter(a=>!(a.length<2||a.length>30||i(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function n(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function o(a){let b=new Set;for(let c of[/(?:关键词|核心要点|必含关键词|必须包含的关键词)[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须)包含(?:以下|如下)?(?:关键词|核心词|术语)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of n(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function p(a){let b=new Set;for(let c of[/(?:禁用词|禁止词|不得使用词|禁用表达|禁止表达)[::]\s*([^。;;\n]+)/gu,/(?:禁止|不得|严禁|杜绝)出现(?:以下|如下)?(?:词语|用词|表达|话术)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of n(d[1]||""))b.add(a);return[...b].slice(0,40)}function q(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function r(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),d=function(a){let b=a.replace(/\\n/gu,"\n"),c=new Set;for(let a of(/全文必须输出[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||/必须输出(?:的)?表格[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||"").split(/[、,,]/u)){let b=/([\p{Script=Han}A-Za-z0-9()()]{2,30}表)$/u.exec(a.trim())?.[1];b&&b.length>=4&&b.length<=30&&c.add(b)}/项目基本信息表/u.test(b)&&c.add("项目基本信息表");let d=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"];/杜绝(?:套话|空话)|禁止(?:套话|空话)|不得(?:套话|空话)|严禁(?:套话|空话)/u.test(b)&&d.push("高度重视","重中之重"),/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(b)&&d.push("报价明细表");let e=t(b,"封面"),f=t(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:o(b),forbiddenPatterns:p(b)}}(c),e=[...new Set([...d.requiredTables,...function(a){let b=new Set;for(let c of[/(?:必须|应当|需要|全文必须|至少)输出(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须|至少)包含(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:表格清单|表格要求)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of(d[1]||"").split(/[、,,//及和与]/u)){let c=/([\p{Script=Han}A-Za-z0-9()()《》<>]{2,40}表)/u.exec(a.trim())?.[1];c&&b.add(c.replace(/[<>《》]/gu,""))}for(let c of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,40}表)(?:必须|应当|需要|不得缺失|不可缺失)/gu))b.add(c[1]);return/项目基本信息表/u.test(a)&&b.add("项目基本信息表"),[...b]}(c)])],f=o(c),g=p(c),h=function(a){let b=[];for(let c of(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u)){let a=c.replace(/^\s*(?:\d+[.、.]|[-*])\s*/u,"").trim();a.length>=2&&a.length<=80&&!i(a)&&b.push(a)}return[...new Set(b)]}(c),j=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],k=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],l=[],m=function(a){let b=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return Math.floor(c*(b[2]?1e4:1))}(c),n=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:q(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:q(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),r=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:q(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:q(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:q(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),s=[d.coverPolicy&&"unspecified"!==d.coverPolicy?`已识别封面规则:${"required"===d.coverPolicy?"要求生成":"禁止生成"}`:"",d.tocPolicy&&"unspecified"!==d.tocPolicy?`已识别目录规则:${"required"===d.tocPolicy?"要求生成":"禁止生成"}`:"",h.length?`已识别一级章节固定规则 ${h.length} 条`:"",l.length?`已识别禁用主体表达:${l.join("、")}`:"",d.forbiddenTerms.length?`已识别禁用词 ${d.forbiddenTerms.length} 个`:"",e.length?`已识别必需表格:${e.join("、")}`:"",f.length?`已识别必含关键词:${f.join("、")}`:"",g.length?`已识别禁止出现内容:${g.join("、")}`:"",m?`已识别最低字数要求:${m} 字`:"",r.length?`已抽取角色执行规则 ${r.length} 组`:""].filter(Boolean),u=[],v={},w=(a,c,d,e)=>{let f=function(a,b,c){for(let d of a)if(d.content.includes(b))return{promptId:d.promptId,roleId:d.roleId,pattern:c};return{promptId:"system:generation-control",roleId:"generation-control",pattern:c}}(b,d,e);v[a]||(v[a]=[]),v[a].length<24&&v[a].push({...f,matchedText:d}),u.length<60&&u.push({rule:c,source:f,matchedText:d})};for(let a of(d.coverPolicy&&"unspecified"!==d.coverPolicy&&w("coverPolicy",`已识别封面规则:${d.coverPolicy}`,"封面",/封面|cover/u.source),d.tocPolicy&&"unspecified"!==d.tocPolicy&&w("tocPolicy",`已识别目录规则:${d.tocPolicy}`,"目录",/目录|toc/u.source),e))w("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of f)w("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of g)w("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of h)w("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return m&&w("minWords",`最低字数:${m}`,String(m),/\d{3,}\s*字/u.source),{...d,requiredTables:e,requiredKeywords:f,forbiddenPatterns:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(c),exactHeadings:h,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||h.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:l,backendTerms:j,commercialTerms:k,forbiddenTerms:[...new Set([...d.forbiddenTerms,...j,...k,...l])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:m,minChars:m,chapterRules:n,roleRules:r,executionSummary:s,ruleSources:Object.keys(v).length>0?v:void 0,extractionTrace:u.length>0?u:void 0}}function s(a){let b=[`运行时规则版本:${a.sourceHash}`,"required"===a.coverPolicy?"用户要求输出封面时必须保留封面;未要求时不得由系统擅自决定。":"","required"===a.tocPolicy?"用户要求输出目录时必须保留目录,并确保目录只来自最终合法正文标题。":"",a.forbidCover?"用户明确禁止输出封面。":"",a.forbidToc?"用户明确禁止输出目录、目录说明或导航页。":"",a.exactHeadings.length?`一级章节必须严格使用:${a.exactHeadings.join(";")}`:"",a.forbidExtraHeadings?"不得新增、删除、合并或改名一级章节。":"",a.requiredSubjects.length?`正文主体优先使用:${a.requiredSubjects.join("、")}`:"",a.forbiddenSubjects.length?`禁止主体表达:${a.forbiddenSubjects.join("、")}`:"",a.forbidFabrication?"不得编造系统暂未从知识库确认的项目事实、工程实体参数、人名、联系方式或品牌;应通过扩大检索、事实补抽或落位修复解决。":"",a.requireEvidenceForQuantities?"涉及数量、工期、质量标准目标、规格型号等项目专属参数时必须以绑定资料中的明确事实为准;通用标准规范编号与法规名称可依据现行有效版本直接引用。":"",a.commercialTerms.length?`禁止输出商务敏感内容:${a.commercialTerms.join("、")}`:"",a.backendTerms.length?`禁止输出系统内部话术:${a.backendTerms.join("、")}`:"",a.requiredTables.length?`必须输出以下正式 Markdown 表格:${a.requiredTables.join("、")}。表格必须包含表名、表头、分隔线和数据行。`:"",a.requiredKeywords?.length?`正文必须覆盖以下关键词或要点:${a.requiredKeywords.join("、")}。`:"",a.forbiddenPatterns?.length?`正文禁止出现以下内容:${a.forbiddenPatterns.join("、")}。`:"",a.minWords?`全文不少于 ${a.minWords} 字。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
|
|
56
|
+
返回 JSON。`}(a)].filter(Boolean).join("\n\n")}(d,b,t),{temperature:.1*!c.length,signal:a.signal,diagnostics:a.diagnostics});(0,g.Te)(a.signal);if(!h)return;let i=new Set(d.map(a=>a.filePath)),k=a=>"string"==typeof a&&(i.has(a)||d.some(b=>e.basename(b.filePath)===e.basename(a))),l=(a,b)=>"string"==typeof a?a.slice(0,b):"number"==typeof a?String(a).slice(0,b):"",m=(a,b)=>(Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0):[]).slice(0,b);return{works:(h.works||[]).filter(a=>"string"==typeof a.name&&"string"==typeof a.scope).map(a=>({name:l(a.name,200),scope:l(a.scope,500),sourceFiles:m(a.sourceFiles,10).filter(k),relatedItems:m(a.relatedItems,20)})),methods:(h.methods||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),steps:m(a.steps,12),applicableWorks:m(a.applicableWorks,10),sourceFiles:m(a.sourceFiles,10).filter(k)})),resources:(h.resources||[]).filter(a=>"string"==typeof a.name).map(a=>({name:l(a.name,200),type:"material"===a.type||"equipment"===a.type||"labor"===a.type?a.type:"material",spec:l(a.spec,200),quantity:l(a.quantity,50),unit:l(a.unit,20),sourceFiles:m(a.sourceFiles,5).filter(k)})),schedule:(h.schedule||[]).filter(a=>"string"==typeof a.milestone).map(a=>({milestone:l(a.milestone,200),duration:l(a.duration,100),startDate:l(a.startDate,50),endDate:l(a.endDate,50),sourceFiles:m(a.sourceFiles,5).filter(k)})),standards:(h.standards||[]).filter(a=>"string"==typeof a.code||"string"==typeof a.description).map(a=>({code:l(a.code,100),description:l(a.description,300),sourceFiles:m(a.sourceFiles,5).filter(k)})),risks:(h.risks||[]).filter(a=>"string"==typeof a.risk).map(a=>({risk:l(a.risk,300),level:"high"===a.level||"medium"===a.level||"low"===a.level?a.level:"medium",mitigation:l(a.mitigation,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),requirements:(h.requirements||[]).filter(a=>"string"==typeof a.category&&"string"==typeof a.detail).map(a=>({category:l(a.category,100),detail:l(a.detail,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),siteConditions:(h.siteConditions||[]).filter(a=>"string"==typeof a.condition).map(a=>({condition:l(a.condition,300),impact:l(a.impact,500),sourceFiles:m(a.sourceFiles,5).filter(k)})),addendumChanges:(h.addendumChanges||[]).filter(a=>"string"==typeof a.original&&"string"==typeof a.revised).map(a=>({originalPath:l(a.originalPath,300),original:l(a.original,300),revised:l(a.revised,500),sourceFile:l(a.sourceFile,200)})),gaps:m(h.gaps,20),generatedAt:Date.now()}}async function w(b=[]){let c=Object.keys(j),d=(await (0,g.l$)(c,async c=>{try{let a=await v(c,b);if(a&&l(a)>0)return a;u.push(`${j[c].title} 未抽取到有效节点`)}catch(b){if(a.signal?.aborted)throw b;u.push(`${j[c].title} LLM 调用失败:${b instanceof Error?b.message:String(b)}`)}},{kind:"llmRepair",targetWords:4e3,concurrency:Number(process.env.DOCUMENT_PROJECT_GRAPH_DOMAIN_CONCURRENCY||2)})).filter(a=>!!a);return d.length?function(a){let b={w:new Set,m:new Set,r:new Set,sc:new Set,st:new Set,ri:new Set,rq:new Set,si:new Set,a:new Set};return{works:a.flatMap(a=>a.works).filter(a=>{let c=a.name+a.scope;return!b.w.has(c)&&(b.w.add(c),!0)}),methods:a.flatMap(a=>a.methods).filter(a=>{let c=a.name;return!b.m.has(c)&&(b.m.add(c),!0)}),resources:a.flatMap(a=>a.resources).filter(a=>{let c=a.name+a.spec+a.type;return!b.r.has(c)&&(b.r.add(c),!0)}),schedule:a.flatMap(a=>a.schedule).filter(a=>{let c=a.milestone;return!b.sc.has(c)&&(b.sc.add(c),!0)}),standards:a.flatMap(a=>a.standards).filter(a=>{let c=a.code+a.description;return!b.st.has(c)&&(b.st.add(c),!0)}),risks:a.flatMap(a=>a.risks).filter(a=>{let c=a.risk;return!b.ri.has(c)&&(b.ri.add(c),!0)}),requirements:a.flatMap(a=>a.requirements).filter(a=>{let c=a.category+a.detail;return!b.rq.has(c)&&(b.rq.add(c),!0)}),siteConditions:a.flatMap(a=>a.siteConditions).filter(a=>{let c=a.condition;return!b.si.has(c)&&(b.si.add(c),!0)}),addendumChanges:a.flatMap(a=>a.addendumChanges).filter(a=>{let c=a.original+a.revised;return!b.a.has(c)&&(b.a.add(c),!0)}),gaps:[...new Set(a.flatMap(a=>a.gaps))],generatedAt:Date.now()}}(d):void 0}try{let b=await w(),d=o(b,s);if(d.ok&&b||b&&l(b)>0)return n(a.projectRoot,c,b),{graph:b,stage:p(b)};let e=await w([...d.reasons,...u]);if(e&&l(e)>0)return n(a.projectRoot,c,e),{graph:e,stage:p(e)};return{stage:q([...d.reasons,...u])}}catch(b){if(a.signal?.aborted)throw b;return console.error("[project-graph] failed:",b),{stage:q([b instanceof Error?b.message:String(b),...u])}}}function s(a){let b=["## 项目资料图谱分析结果",""];for(let c of a.works)2===b.length&&b.push("### 主要工程内容"),b.push(`- **${c.name}**:${c.scope}`);for(let c of(a.works.length&&b.push(""),a.methods))b.includes("### 关键施工方法与工艺")||b.push("### 关键施工方法与工艺"),b.push(`- **${c.name}**:${c.steps.filter(Boolean).join(" → ")}`);for(let c of(a.methods.length&&b.push(""),a.resources)){b.includes("### 资源需求")||b.push("### 资源需求");let a={material:"材料",equipment:"设备",labor:"劳动力"}[c.type]||"资源";b.push(`- [${a}] ${c.name}${c.spec?`(${c.spec})`:""}${c.quantity?` ${c.quantity}${c.unit}`:""}`)}for(let c of(a.resources.length&&b.push(""),a.schedule))b.includes("### 工期与关键节点")||b.push("### 工期与关键节点"),b.push(`- ${c.milestone}:${c.duration}(${c.startDate} ~ ${c.endDate})`);for(let c of(a.schedule.length&&b.push(""),a.standards))b.includes("### 技术标准与验收要求")||b.push("### 技术标准与验收要求"),b.push(`- **${c.code}**:${c.description}`);for(let c of(a.standards.length&&b.push(""),a.risks))b.includes("### 重点难点与风险")||b.push("### 重点难点与风险"),b.push(`- **[${c.level}] ${c.risk}**:${c.mitigation}`);for(let c of(a.risks.length&&b.push(""),a.requirements))b.includes("### 特定要求")||b.push("### 特定要求"),b.push(`- [${c.category}] ${c.detail}`);for(let c of(a.requirements.length&&b.push(""),a.siteConditions))b.includes("### 现场条件与约束")||b.push("### 现场条件与约束"),b.push(`- ${c.condition}:${c.impact}`);for(let c of(a.siteConditions.length&&b.push(""),a.addendumChanges))b.includes("### 补疑修正")||b.push("### 补疑修正"),b.push(`- "${c.original}" → "${c.revised}"`);for(let c of(a.addendumChanges.length&&b.push(""),a.gaps))b.includes("### 资料缺口")||b.push("### 资料缺口"),b.push(`- ${c}`);return a.gaps.length&&b.push(""),b.join("\n")}},71001:(a,b,c)=>{c.d(b,{Kg:()=>x,My:()=>u,SP:()=>w,av:()=>g,c_:()=>r,detectPromptRuleConflicts:()=>y,el:()=>s,k2:()=>v});var d=c(70933),e=c(95734),f=c(70208);function g(a,b){let c=`${a} ${b}`,d=[/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/u.test(c)?"必须说明施工组织逻辑、施工段/专业接口、资源进场和管理闭环。":"",/进度|工期/u.test(c)?"必须围绕总工期、关键线路、资源保障、穿插施工和纠偏机制展开。":"",/质量/u.test(c)?"必须覆盖材料验收复验、过程检查、隐蔽验收、整改复验和质量资料归档。":"",/安全|文明|风险|危大/u.test(c)?"必须覆盖风险识别、人员设备、临电消防、现场文明、检查整改和应急响应。":"",/资源|材料|设备|劳动力/u.test(c)?"必须说明资源配置依据、进场验收、保管调配,并与工期和质量目标一致。":"",/施工|工艺|技术|方案/u.test(c)?"必须写清施工准备、工艺流程、关键控制点、验收要求和资料依据;每个分项工程方案必须落位至少 4 个工艺参数(mm、MPa、间距、偏差、坡度、养护天数、试验压力、搭接长度等),参数来自绑定资料或行业通用规范值,不得编造;纯设备配置型内容必须写型号、规格、容量、数量参数。工序顺序表达:工艺流程必须有明确的工序顺序表达,形式由模型根据内容自然选择,不做统一要求——可用顺序词叙述(先进行基层清理,再放线定位,随后分层摊铺,然后碾压,最后压实度检测并验收)、编号步骤、有序/无序列表或箭头链,每个含方法叙述的三级小节方法段正文至少 1 处不少于 4 个环节的工序顺序表达,不得只在单独的流程行出现。":"",/流程|顺序|工序|穿插|闭环|整改|演练|转运|三检|隐蔽|排查/u.test(c)?"流程/顺序型叙述必须有明确的工序顺序表达,形式由模型根据内容自然选择、不做统一要求(顺序词叙述、编号步骤、有序/无序列表或箭头链均可),每条序列不少于 3 个环节,把纯文字流程描述改写成顺序清晰的表达(如先发现问题并登记建档,再分析原因,随后整改落实,最后复查销号),正文中至少 2 处工序顺序表达。":""].filter(Boolean),e=d.find(a=>a.includes("工序顺序表达"));return["【小节专业任务卡】",`任务对象:${b}`,...d.length?d:["必须结合本项目资料明确事实说明对象范围、实施方法、控制要点、验收要求和资料闭环,避免泛化套话。"],...e?["工序顺序表达是硬性格式要求:正文成稿必须实际出现工序顺序表达(顺序词叙述/编号步骤/有序无序列表/箭头链任一形式,形式由模型自然选择),评审将核验,未达标会被退回重写。"]:[],"禁止套话:不得使用“本小节围绕……展开”“结合绑定项目资料、施工组织安排和现场实施条件”“交底覆盖率按100%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似。"].join("\n")}function h(a){return(0,f.GQ)(a.replace(/\*+/gu,"")).replace(/^第[一二三四五六七八九十百千万\d]+[章节篇部分、..\s-]*/u,"").replace(/^\d+(?:\.\d+)*(?:[..、]|\s)+/u,"").replace(/^[-—–]\s*/u,"").replace(/[<>]/gu,"").replace(/[::。;;,.,]+$/gu,"").replace(/\s*[((][^()()]{0,40}[a-zA-Z]{3,}[^()()]{0,40}[))]\s*$/u,"").trim()}function i(a){let b=h(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)}function j(a,b){let c=h(a),d=h(b);if(c.length<4||c.length>60||c===d||i(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c))return!0;let e=d.match(/[\p{L}\p{N}]{2,6}$/u)?.[0]||"";return!(!(e.length>=2&&/^.{2,8}\p{L}$/u.test(c)&&c.endsWith(e.slice(-1)))||c.includes(e))}function k(a,b){let c=h(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=h(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function l(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function m(a,b=""){let c=l(b);return Array.from(new Set(a.map(h).filter(a=>!(a.length<2||a.length>30||i(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function n(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function o(a){let b=new Set;for(let c of[/(?:关键词|核心要点|必含关键词|必须包含的关键词)[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须)包含(?:以下|如下)?(?:关键词|核心词|术语)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of n(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function p(a){let b=new Set;for(let c of[/(?:禁用词|禁止词|不得使用词|禁用表达|禁止表达)[::]\s*([^。;;\n]+)/gu,/(?:禁止|不得|严禁|杜绝)出现(?:以下|如下)?(?:词语|用词|表达|话术)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of n(d[1]||""))b.add(a);return[...b].slice(0,40)}function q(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function r(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),d=function(a){let b=a.replace(/\\n/gu,"\n"),c=new Set;for(let a of(/全文必须输出[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||/必须输出(?:的)?表格[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||"").split(/[、,,]/u)){let b=/([\p{Script=Han}A-Za-z0-9()()]{2,30}表)$/u.exec(a.trim())?.[1];b&&b.length>=4&&b.length<=30&&c.add(b)}/项目基本信息表/u.test(b)&&c.add("项目基本信息表");let d=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"];/杜绝(?:套话|空话)|禁止(?:套话|空话)|不得(?:套话|空话)|严禁(?:套话|空话)/u.test(b)&&d.push("高度重视","重中之重"),/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(b)&&d.push("报价明细表");let e=t(b,"封面"),f=t(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:o(b),forbiddenPatterns:p(b)}}(c),e=[...new Set([...d.requiredTables,...function(a){let b=new Set;for(let c of[/(?:必须|应当|需要|全文必须|至少)输出(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须|至少)包含(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:表格清单|表格要求)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of(d[1]||"").split(/[、,,//及和与]/u)){let c=/([\p{Script=Han}A-Za-z0-9()()《》<>]{2,40}表)/u.exec(a.trim())?.[1];c&&b.add(c.replace(/[<>《》]/gu,""))}for(let c of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,40}表)(?:必须|应当|需要|不得缺失|不可缺失)/gu))b.add(c[1]);return/项目基本信息表/u.test(a)&&b.add("项目基本信息表"),[...b]}(c)])],f=o(c),g=p(c),h=function(a){let b=[];for(let c of(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u)){let a=c.replace(/^\s*(?:\d+[.、.]|[-*])\s*/u,"").trim();a.length>=2&&a.length<=80&&!i(a)&&b.push(a)}return[...new Set(b)]}(c),j=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],k=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],l=[],m=function(a){let b=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!b)return;let c=Number(b[1]);if(Number.isFinite(c)&&!(c<=0))return Math.floor(c*(b[2]?1e4:1))}(c),n=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:q(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:q(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),r=(a.rolePrompts||[]).map(a=>({roleId:a.roleId,focusAreas:q(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:q(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:q(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),s=[d.coverPolicy&&"unspecified"!==d.coverPolicy?`已识别封面规则:${"required"===d.coverPolicy?"要求生成":"禁止生成"}`:"",d.tocPolicy&&"unspecified"!==d.tocPolicy?`已识别目录规则:${"required"===d.tocPolicy?"要求生成":"禁止生成"}`:"",h.length?`已识别一级章节固定规则 ${h.length} 条`:"",l.length?`已识别禁用主体表达:${l.join("、")}`:"",d.forbiddenTerms.length?`已识别禁用词 ${d.forbiddenTerms.length} 个`:"",e.length?`已识别必需表格:${e.join("、")}`:"",f.length?`已识别必含关键词:${f.join("、")}`:"",g.length?`已识别禁止出现内容:${g.join("、")}`:"",m?`已识别最低字数要求:${m} 字`:"",r.length?`已抽取角色执行规则 ${r.length} 组`:""].filter(Boolean),u=[],v={},w=(a,c,d,e)=>{let f=function(a,b,c){for(let d of a)if(d.content.includes(b))return{promptId:d.promptId,roleId:d.roleId,pattern:c};return{promptId:"system:generation-control",roleId:"generation-control",pattern:c}}(b,d,e);v[a]||(v[a]=[]),v[a].length<24&&v[a].push({...f,matchedText:d}),u.length<60&&u.push({rule:c,source:f,matchedText:d})};for(let a of(d.coverPolicy&&"unspecified"!==d.coverPolicy&&w("coverPolicy",`已识别封面规则:${d.coverPolicy}`,"封面",/封面|cover/u.source),d.tocPolicy&&"unspecified"!==d.tocPolicy&&w("tocPolicy",`已识别目录规则:${d.tocPolicy}`,"目录",/目录|toc/u.source),e))w("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of f)w("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of g)w("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of h)w("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return m&&w("minWords",`最低字数:${m}`,String(m),/\d{3,}\s*字/u.source),{...d,requiredTables:e,requiredKeywords:f,forbiddenPatterns:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(c),exactHeadings:h,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||h.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:l,backendTerms:j,commercialTerms:k,forbiddenTerms:[...new Set([...d.forbiddenTerms,...j,...k,...l])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:m,minChars:m,chapterRules:n,roleRules:r,executionSummary:s,ruleSources:Object.keys(v).length>0?v:void 0,extractionTrace:u.length>0?u:void 0}}function s(a){let b=[`运行时规则版本:${a.sourceHash}`,"required"===a.coverPolicy?"用户要求输出封面时必须保留封面;未要求时不得由系统擅自决定。":"","required"===a.tocPolicy?"用户要求输出目录时必须保留目录,并确保目录只来自最终合法正文标题。":"",a.forbidCover?"用户明确禁止输出封面。":"",a.forbidToc?"用户明确禁止输出目录、目录说明或导航页。":"",a.exactHeadings.length?`一级章节必须严格使用:${a.exactHeadings.join(";")}`:"",a.forbidExtraHeadings?"不得新增、删除、合并或改名一级章节。":"",a.requiredSubjects.length?`正文主体优先使用:${a.requiredSubjects.join("、")}`:"",a.forbiddenSubjects.length?`禁止主体表达:${a.forbiddenSubjects.join("、")}`:"",a.forbidFabrication?"不得编造系统暂未从知识库确认的项目事实、工程实体参数、人名、联系方式或品牌;应通过扩大检索、事实补抽或落位修复解决。":"",a.requireEvidenceForQuantities?"涉及数量、工期、质量标准目标、规格型号等项目专属参数时必须以绑定资料中的明确事实为准;通用标准规范编号与法规名称可依据现行有效版本直接引用。":"",a.commercialTerms.length?`禁止输出商务敏感内容:${a.commercialTerms.join("、")}`:"",a.backendTerms.length?`禁止输出系统内部话术:${a.backendTerms.join("、")}`:"",a.requiredTables.length?`必须输出以下正式 Markdown 表格:${a.requiredTables.join("、")}。表格必须包含表名、表头、分隔线和数据行。`:"",a.requiredKeywords?.length?`正文必须覆盖以下关键词或要点:${a.requiredKeywords.join("、")}。`:"",a.forbiddenPatterns?.length?`正文禁止出现以下内容:${a.forbiddenPatterns.join("、")}。`:"",a.minWords?`全文不少于 ${a.minWords} 字。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
|
|
57
57
|
${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`}function t(a,b){let c=RegExp(`(?:生成|包含|输出|需要|保留|设置|编制|制作)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:必须|应当|需要|保留|生成|输出|包含)`,"u").test(a);return RegExp(`(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)`,"u").test(a)?"forbidden":c?"required":"unspecified"}function u(a,b){let c=a.replace(/\\n/gu,"\n"),d=new Map,e=[...c.matchAll(/第([一二两三四五六七八九十\d]+)章[^\n。;;]{0,80}(?:强制|必须|挂靠|小节|排序|最先|之后|之前)/gu)];for(let a of e){let b=function(a){let b={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if(/^\d+$/u.test(a))return Number(a);if(void 0!==b[a])return b[a];if("十"===a)return 10;let c=/^(?:(一|二|两|三|四|五|六|七|八|九)?)十(?:(一|二|两|三|四|五|六|七|八|九))?$/u.exec(a);if(c)return 10*(c[1]?b[c[1]]:1)+(c[2]?b[c[2]]:0)}(a[1]);if(!b)continue;let f=Math.max(0,a.index||0),g=e.find(a=>(a.index||0)>f)?.index,h=c.slice(f,Math.min(c.length,g??f+1400));if(l(h)&&!/(强制小节|必须小节|以下小节设置和排序|必须设置独立的|必须包含独立的)/u.test(h))continue;let i=function(a){let b=/(?:以下小节设置和排序|强制小节|必须小节)[::]\s*([\s\S]*?)(?:\n\s*#{2,6}\s|\n\s*第[一二两三四五六七八九十\d]+章|$)/u.exec(a)?.[1];if(b){let c=m([...b.matchAll(/(?:^|\n)\s*\d+[..、]\s*([^——\-—::。;;\n]{2,30})(?:[——\-—::]|,|,|。|;|;|\n|$)/gu)].map(a=>a[1]),a);if(c.length>0)return c}let c=[];for(let b of a.matchAll(/第[一二两三四五六七八九十\d]+章[^。;;\n]{0,50}(?:强制)?(?:包含|设置|输出|排序|挂靠)[^::。;;\n]{0,20}[::]\s*([^。;;\n]{2,120})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);for(let b of a.matchAll(/[“"]([^”"]{2,30})[”"]\s*(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,30})(?:——|—|-|:|:)\s*(?:独立的)?(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/(?:必须|应当|需|需要|包含|设置|输出)[^。;;\n]{0,30}(?:独立的)?(?:二级)?小节[::]\s*([^。;;\n]{2,80})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);return m(c,a)}(h);if(0===i.length)continue;let j=d.get(b)||{blocks:[],titles:[]};for(let a of(j.blocks.push(h),i))j.titles.some(b=>k(b,a))||j.titles.push(a);d.set(b,j)}return[...d.entries()].map(([a,c])=>{let d=b?.[a-1];return{chapterIndex:a-1,chapterTitle:d?.title,source:c.blocks[0]?.split("\n").find(a=>a.trim())?.trim().slice(0,120),requiredSections:c.titles.map((a,b)=>({title:a,order:b+1,required:!0,source:c.blocks[0]?.slice(0,240)}))}})}function v(a=[],b){let c=[];for(let d of a){let a=h(d);!(!a||j(a,b))&&(c.some(b=>k(b,a))||c.push(a))}return c}async function w(a){var b,c,f,g;let i=(0,d.ks)((0,d.QO)(a.chapter,a.evidence),{maxChars:(0,d.Pc)(a.targetWords,5e3,12e3)}),l=(b=a.structuralRules,c=a.chapter,f=a.chapterIndex,(b||[]).filter(a=>!!(void 0!==a.chapterIndex&&void 0!==f&&a.chapterIndex===f||a.chapterTitle&&k(a.chapterTitle,c.title)))),m=l.flatMap(a=>a.requiredSections).sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title),n=function(a,b,c,d){let e=a.title,f=/质量|安全|工期|进度|物资|材料|机械|设备|劳动力|危大|专项|文明|总平面|施工方法|施工方案/u.test(e),g=b>=14e3?6:b>=8e3?5:b>=5e3||b>=3e3?4:3;f&&(g=Math.max(g,4));let h=new Set((c.map(a=>`${a.sectionTitle||""}
|
|
58
58
|
${a.content}`).join("\n").slice(0,3e4).match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+/giu)||[]).map(a=>a.replace(/\s+/gu,""))).size;return h>=20?g=Math.max(g,5):h>=10&&(g=Math.max(g,4)),Math.max(g,d)}(a.chapter,a.targetWords,a.evidence,m.length),o=Math.max(n,Math.min(7,a.targetWords>=8e3?7:6)),p=await (0,e.bb)('你是专业文档结构规划专家。\n只根据用户提示词、章节标题和真实绑定资料规划本章二级小节;不得使用"目标与范围、资料依据、实施内容、质量控制"等通用占位小节凑数。\n施工组织、技术措施、资源配置、质量、安全、工期、材料、设备、劳动力、危大工程等核心章节必须拆成足够的专业工作面,不得只输出两个泛化小节。\n不得把提示词条件句或短语碎片作为小节标题,例如"判断是否涉、是否涉及、如涉及、雨季、冬季、高温、台风、大风等特殊气候"。\n只返回 JSON。',[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!j(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
|
|
59
59
|
${a.projectContext}`:"",a.roleContext,a.promptTexts?`配置写作主控提示词:
|