@customize-agent/server 4.60.6 → 4.60.12

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.
Files changed (55) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/required-server-files.json +1 -1
  5. package/.next/server/chunks/1001.js +1 -1
  6. package/.next/server/chunks/1243.js +1 -1
  7. package/.next/server/chunks/1936.js +8 -8
  8. package/.next/server/chunks/2328.js +2 -2
  9. package/.next/server/chunks/3806.js +1 -1
  10. package/.next/server/chunks/{7848.js → 4722.js} +65 -65
  11. package/.next/server/chunks/8204.js +1 -1
  12. package/.next/server/chunks/9666.js +78 -78
  13. package/.next/server/instrumentation.js +1 -1
  14. package/.next/server/instrumentation.js.nft.json +1 -1
  15. package/.next/server/middleware-build-manifest.js +1 -1
  16. package/.next/server/pages/404.html +1 -1
  17. package/.next/server/pages/500.html +1 -1
  18. package/.next/server/pages/api/documents/export.js +1 -1
  19. package/.next/server/pages/api/documents/generate/preview.js +1 -1
  20. package/.next/server/pages/api/documents/generate.js +1 -1
  21. package/.next/server/pages/api/documents/generated/[id]/instruction.js +1 -1
  22. package/.next/server/pages/api/documents/generated/[id]/pause.js +1 -1
  23. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -1
  24. package/.next/server/pages/api/health.js +1 -1
  25. package/.next/server/pages/api/kb/upload.js +2 -2
  26. package/.next/server/pages/api/system/data-health.js +1 -1
  27. package/.next/server/pages/canvas/[id].html +1 -1
  28. package/.next/server/pages/canvas.html +1 -1
  29. package/.next/server/pages/documents.html +1 -1
  30. package/.next/server/pages/guide.html +1 -1
  31. package/.next/server/pages/index.html +1 -1
  32. package/.next/server/pages/knowledge/file-detail.html +1 -1
  33. package/.next/server/pages/knowledge/files.html +1 -1
  34. package/.next/server/pages/knowledge/manage.html +1 -1
  35. package/.next/server/pages/knowledge/source-preview.html +1 -1
  36. package/.next/server/pages/knowledge.html +1 -1
  37. package/.next/server/pages/models.html +1 -1
  38. package/.next/server/pages/overview.html +1 -1
  39. package/.next/server/pages/prompt.html +1 -1
  40. package/.next/server/pages/settings.html +1 -1
  41. package/.next/server/pages/skills/[id]/edit.html +1 -1
  42. package/.next/server/pages/skills/[id].html +1 -1
  43. package/.next/server/pages/skills/new.html +1 -1
  44. package/.next/server/pages/skills.html +1 -1
  45. package/.next/server/pages/system/logs.html +1 -1
  46. package/.next/server/pages-manifest.json +31 -31
  47. package/.next/static/chunks/pages/{_app-3f5aa4ff7951feca.js → _app-28228d95968c4d44.js} +1 -1
  48. package/package.json +2 -2
  49. package/scripts/capture-baseline.mjs +4 -2
  50. package/scripts/half-built-scan.allow.json +1 -1
  51. package/scripts/kb-index-worker.cjs +2 -2
  52. package/scripts/kb-worker-ipc.cjs +1 -1
  53. package/scripts/upload-matrix.cjs +44 -25
  54. /package/.next/static/{3a50a07d5e578847f7a1eefe9573b36527d6e1f5a7d0cb3b4883423ccfabc75b → b1bfae7c0251c082ada423097236fed51bd95e3e34a0749ccd55030dbf543f5d}/_buildManifest.js +0 -0
  55. /package/.next/static/{3a50a07d5e578847f7a1eefe9573b36527d6e1f5a7d0cb3b4883423ccfabc75b → b1bfae7c0251c082ada423097236fed51bd95e3e34a0749ccd55030dbf543f5d}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=2328,exports.ids=[2328],exports.modules={22328:(a,b,c)=>{c.d(b,{I4:()=>r,Q6:()=>q,WW:()=>t,oO:()=>p,oy:()=>n,rN:()=>m,xv:()=>o});var d=c(73024),e=c(76760),f=c(70949),g=c(77416),h=c(44533),i=c(58543),j=c(68023);class k extends Error{constructor(a,b,c){super(a),this.file=b,this.cause=c,this.name="RepairStoreError"}}function l(a,b){return e.join(b,`${a}.repairs.jsonl`)}function m(a,b,c){let f=l(a,c),g={v:1,t:Date.now(),request:b};try{d.mkdirSync(e.dirname(f),{recursive:!0}),d.appendFileSync(f,`${JSON.stringify(g)}
2
- `)}catch(b){throw new k(`修复请求落盘失败(节点/修复日志是唯一真相源,不得静默丢):${a}`,f,b)}}function n(a,b){let c,e=l(a,b);try{c=d.readFileSync(e,"utf8")}catch{return[]}let f=new Map;for(let a of c.split("\n"))if(a.trim())try{let b=JSON.parse(a);if(b?.v!==1||!b.request?.id)continue;f.set(b.request.id,b.request)}catch{continue}return[...f.values()].sort((a,b)=>a.id.localeCompare(b.id))}function o(a){return a.targetNodeId||a.localization?.accepted?a.transaction?(0,j.Ui)(a.transaction.recheck.before,a.transaction.recheck.after)||a.transaction.recheck.after.contractQuality?.requestedChangeVerified!==!0?"unclassified":/资料|证据|材料|知识库/u.test(a.impact?.reason||"")?"material-insufficient":(0,j.Un)(a.transaction.recheck.before,a.transaction.recheck.after)?"unclassified":"writing-capacity":a.execution&&!a.execution.available?"rerun-with-feedback"===a.execution.action?"detector-unwired":/不在本文档节点表内/u.test(a.execution.unavailableReason||"")?"unclassified":"detector-unwired":"unclassified":(a.localization?.candidates?.length??0)===0?"detector-missing":"detector-unwired"}class p extends Error{constructor(){super("该历史文档没有冻结合同和统一文档模型,不能按新体系自动补写;历史正文与报告仍可读取"),this.code="NATIVE_REPAIR_CONTRACT_REQUIRED",this.name="NativeRepairContractRequiredError"}}function q(a){let b=(0,f.getGeneratedDocument)(a.documentId,a.projectRoot);if(!b)throw Error("待修订文档不存在");if(!(0,i.Jd)(b))throw new p;return(0,i.fC)({request:a.request,documentId:a.documentId,projectRoot:a.projectRoot??b.projectRoot??(0,h.aY)()})}function r(a){let b=[];for(let c of a.matchAll(/[「『“"《【]([^」』”"》】]{2,})[」』”"》】]/gu))b.push(c[1].trim());for(let c of a.matchAll(/[0-9A-Za-z一-龥][0-9A-Za-z一-龥0-9.-]{2,}/gu))b.push(c[0].trim());return[...new Set(b.filter(a=>a.length>=4))]}function s(a){let{request:b,at:c}=a,d=b.transaction?.recheck,e={at:c,requestId:b.id,nodeId:b.targetNodeId,nodeKind:b.transaction?.nodeKind,action:b.transaction?.action,actionSource:b.transaction?.actionSource,userMessage:b.userMessage,localization:{method:b.localization?.method,candidateCount:b.localization?.candidates?.length??0,acceptedNodeId:b.localization?.accepted},changes:(b.transaction?.changes||[]).map(a=>({nodeId:a.nodeId,beforeChars:a.beforeChars,afterChars:a.afterChars})),outcome:b.outcome||"unfixable",attribution:o(b),impactClass:b.impact?.class,notExecutedReason:b.notExecutedReason};if(d){let a=(0,j.Ui)(d.before,d.after)??("fixed"!==b.outcome&&"partial"!==b.outcome||(0,j.Un)(d.before,d.after)?void 0:"回执未证明请求修改已核验且同合同复验未退步");a&&(e.notExecutedReason=[e.notExecutedReason,`历史修复结果无法按当前固定合同验证:${a};原始 outcome 仅为历史记录,观察计数不代表七维验收。`].filter(Boolean).join(" ")),e.netEffect={blocking:[d.before.blocking,d.after.blocking],entityPlacement:[d.before.entityPlacement,d.after.entityPlacement],chars:[d.before.chars,d.after.chars]}}return e}function t(a,b){return(0,g.ZS)((function(a,b){let c,e=l(a,b);try{c=d.readFileSync(e,"utf8")}catch{return[]}let f=new Map;for(let a of c.split("\n"))if(a.trim())try{let b=JSON.parse(a);if(b?.v!==1||!b.request?.id)continue;f.set(b.request.id,{at:b.t,request:b.request})}catch{continue}return[...f.values()].sort((a,b)=>a.at-b.at||a.request.id.localeCompare(b.request.id))})(a,b).map(s))}},58543:(a,b,c)=>{c.d(b,{fC:()=>J,Du:()=>I,pA:()=>L,Jd:()=>G});var d=c(73024),e=c.n(d),f=c(77598),g=c(32460),h=c(70949),i=c(7942),j=c(35091),k=c(48074),l=c(21123),m=c(94173),n=c(19444),o=c(80408),p=c(12866),q=c(22157),r=c(59948),s=c(30839),t=c(72275),u=c(34680),v=c(96241),w=c(43800),x=c(41791),y=c(62065),z=c(51326),A=c(7661),B=c(51750),C=c(48479),D=c(94776);let E=a=>(0,f.createHash)("sha256").update(JSON.stringify(a)).digest("hex"),F=a=>Object.fromEntries(Object.entries(a.tasks).map(([a,b])=>[a,b.current.output]));function G(a){return!!(a.nativeRevision||a.reviewMetadata?.contractQuality||a.draft?.reviewMetadata?.contractQuality)}function H(a,b){if(!a.runId||!a.draft||["generating","queued"].includes(a.status))throw Error("结构化修复需要已经停止写入的文档运行及完整草稿资产");let c=(0,h.Gl)(b),d=(b,d)=>{let g=e().readFileSync((0,i.HM)(c,b,a.runId));if(d&&(0,f.createHash)("sha256").update(g).digest("hex")!==d)throw Error("结构化修订资产哈希不一致");return JSON.parse(g.toString("utf8"))},g=d("author-resume-state.json");(0,j.oH)(g.contract),(0,k.oG)(b,g.projectModel);let p=g.writerContext.sharedConstructionPlan;if(!p)throw Error("当前结构化文档缺少同版共享施工计划,不能恢复来源适用性校验");(0,l.wB)(p,g.contract,g.projectModel),(0,m.tD)(g.projectModel,g.contract.sections.map(a=>(0,l.G6)(p,g.projectModel,a.id))),(0,n.R)(g.projectModel,c,a.runId),(0,n.u)(g.projectModel,c,a.runId);let q=d(a.nativeRevision?.modelFile??"document-model-final.json",a.nativeRevision?.modelSha256),A=(0,u.Zk)();(0,o.cv)(A,g.contract,g.projectModel,{restore:q}),(0,j.qK)(A,g.contract);let B=a.nativeRevision?.accountingFile??"author-accounting-final.json";(a.nativeRevision?.accountingFile||e().existsSync((0,i.HM)(c,B,a.runId)))&&(0,r.zh)(A,d(B,a.nativeRevision?.accountingSha256)),(0,s.C)({directory:c,runId:a.runId,contractId:g.contract.id,diagnostics:A});let C={};(0,z.ST)(C),(0,z.er)(A,C);let D=(0,z.c9)(A),G=D.models.active,H=G&&D.models.list.find(a=>a.name===G.name&&a.provider===G.provider),I={origin:"current-user-selection-at-repair-start",active:G,selected:H?{provider:H.provider,name:H.name,thinking:H.thinking??"follow-task"}:null,configurationFingerprint:(0,z.Q6)(C)},J=(0,v.rZ)({generatedDir:c,projectRoot:b,documentId:a.id}),K=b=>(0,o.BO)(g.contract,b,a.title,a.draft.chapters,J.renderer),L=K(q);if((a.editedMarkdown??a.markdown)!==L.markdown||a.draft.markdown!==L.markdown)throw Error("当前正文已脱离统一模型;须先重建并复验,不能通过字符串修复覆盖原结构化资产");let M=a.nativeRevision?d(a.nativeRevision.qualityFile,a.nativeRevision.qualitySha256):a.reviewMetadata?.contractQuality??a.draft.reviewMetadata?.contractQuality;if(!M||M.version!==t.Ly||M.contractId!==g.contract.id||M.projectSnapshotId!==g.projectModel.snapshotId||M.documentHash!==(0,t.Sl)(L.chapters,L.markdown)||M.authorModelHash!==(0,t.Np)(F(q))||E(M.score)!==E((0,j._n)(g.contract,M.findings)))throw Error("当前七维回执与统一模型不一致,需要完整复验");if(!g.writerContext.resumeContext)throw Error("缺少写作及机械终检的冻结上下文,不能空跑后宣称修复通过");let N=function(a){let b=new w.h(a.signal);return{global:{input:{...a,signal:b.signal},preparationWork:b,emitProgress:()=>void 0,withProgressHeartbeat:async a=>a(),...void 0!==a.nodeLogBaseDir?{nodeLogBaseDir:a.nodeLogBaseDir}:{},chapterDrafts:[],checkpointChapterOrderIds:[]},prepare:{},understanding:{},planning:{},blueprint:{},chapterLoop:{}}}({});return(0,x.k)(N,g.writerContext.resumeContext),{base:g,model:q,quality:M,diagnostics:A,render:K,rendered:L,mechanical:a=>(0,y.u)({documentContract:g.contract,generationDiagnostics:A,projectMaterialSummary:N.prepare.projectMaterialSummary,bidComposition:N.understanding.bidComposition,hazardBindings:N.understanding.hazardResolution?.bindings},K(a),a),figures:J,directory:c,modelSelection:I}}function I(a,b,c){return Object.entries(H(a,b).model.tasks).flatMap(([a,b])=>{let d=c.filter(a=>b.current.markdown.includes(a));if(!d.length)return[];let e=b.current.markdown.indexOf(d[0]);return[{nodeId:a,score:d.reduce((a,b)=>a+b.length,0),excerpt:b.current.markdown.slice(Math.max(0,e-20),e+d[0].length+20)}]}).sort((a,b)=>b.score-a.score||a.nodeId.localeCompare(b.nodeId)).slice(0,5)}function J(a){let b,c,d=(0,h.CX)(a.documentId,a.projectRoot);if(!d)throw Error("待修复文档不存在");let e=H(d,a.projectRoot),j=E(d),k=`repair-${(0,f.randomUUID)()}`;(0,g.yY)(e.diagnostics,{generatedDir:e.directory,runId:k,contract:e.base.contract}),(0,i.tv)(e.directory,"repair-inputs.json",{repairRunId:k,originRunId:d.runId,documentId:d.id,request:a.request,modelSelection:e.modelSelection,originalRecordHash:j,contractId:e.base.contract.id,projectSnapshotId:e.base.projectModel.snapshotId,firstCandidateHashes:e.model.c0TaskHashes},k);let l=function(a,b,c){if(a.base.contract.sections.some(a=>a.id===c))return[c];let d=a.base.contract.chapters.find(a=>a.id===c||(0,C.Ts)(a.id)===c);if(d)return d.sectionIds;let e=(0,B.g0)(b.id,a.directory).find(a=>a.id===c),f=e?.metrics?.taskId;if("string"==typeof f&&a.base.contract.sections.some(a=>a.id===f))return[f];throw Error("目标节点没有固定作者任务身份,不能猜测修改范围")}(e,d,a.request.targetNodeId),m=(a,b,c)=>({blocking:e.mechanical(a).filter(a=>"error"===a.level||"blocker"===a.severity).length+b.score.blocking.length+(0,t.ie)(b).length,entityPlacement:Object.values(a.tasks).reduce((a,b)=>a+b.current.output.factBindings.length,0),chars:e.render(a).markdown.length,contractQuality:{contractId:b.contractId,unresolvedCount:b.findings.filter(a=>"met"!==a.status).length,requestedChangeVerified:c,findings:b.findings.map(({criterionId:a,status:b})=>({criterionId:a,status:b}))},judges:{mode:"full",executed:b.findings.filter(a=>"unmeasured"!==a.status).map(a=>a.criterionId),degraded:b.findings.filter(a=>"unmeasured"===a.status).map(a=>a.criterionId),missing:[],unavailableInputs:[]}});return{request:a.request,execution:{nodeKind:"writing-block",action:a.request.patch?"targeted-patch":"rerun-with-feedback",actionSource:a.request.patch?"explicit-patch":"default",available:!0,reason:"通过固定任务的统一模型执行,在全文累计轻修预算内复验后提交"},snapshot:async()=>{let a=E({model:e.model,quality:e.quality});return(0,i.tv)(e.directory,`native-snapshot-${a}.json`,{model:e.model,quality:e.quality},d.runId),`native:${a}`},apply:async()=>(0,s.e)({directory:e.directory,runId:d.runId,contractId:e.base.contract.id,diagnostics:e.diagnostics},async()=>{let c=a.request.patch;if(c){if(c.append||c.endText)throw Error("结构化定点修改须使用单一单元的逐字锚点;跨单元区间或追加须由作者提交完整结构化任务");let d=l.flatMap(a=>e.model.tasks[a]?.current.output.units.flatMap(b=>"paragraph"===b.kind&&b.text.includes(c.anchor)?[{taskId:a,unitId:b.id}]:"table"===b.kind?b.rows.flatMap(d=>b.columns.filter(a=>d.cells[a.key].includes(c.anchor)).map(c=>({taskId:a,unitId:b.id,rowId:d.id,columnKey:c.key}))):[])??[]);if(1!==d.length)throw Error("锚点必须唯一定位一个实际段落或表格字段,不能修改多个对象");let f=d[0];b=function(a){let{change:b}=a,c=a.model.tasks[b.taskId];if(!c||c.current.contentHash!==b.expectedContentHash)throw Error("待修改的任务不存在或内容已变更,原定位不能继续执行");if(!b.anchor.trim()||!b.reason.trim())throw Error("结构化修改须有逐字锚点和明确原因");let d=structuredClone(c.current.output),e=d.units.find(a=>a.id===b.unitId);if(!e)throw Error("目标单元不属于已定位的作者任务");let f=a=>{let c=a.indexOf(b.anchor);if(c<0||a.indexOf(b.anchor,c+b.anchor.length)>=0)throw Error("逐字锚点不存在或不唯一,不能模糊匹配修改");return a.slice(0,c)+b.replacement+a.slice(c+b.anchor.length)};if("paragraph"===e.kind){if(void 0!==b.rowId||void 0!==b.columnKey)throw Error("段落修改不能携带表格记录定位");e.text=f(e.text)}else if("table"===e.kind){let a=e.rows.find(a=>a.id===b.rowId);if(!a||!b.columnKey||!e.columns.some(a=>a.key===b.columnKey))throw Error("表格修改须明确定位真实记录与字段");a.cells[b.columnKey]=f(a.cells[b.columnKey])}else throw Error("流程图修改须提交完整节点与边的结构化事务,不能把图件字符串替换当成关系修改");let g=(0,u.Zk)();(0,o.cv)(g,a.contract,a.project,{restore:a.model});let h=(0,o.wI)(g,b.taskId,d,b.reason),i=a.contract.sections.find(a=>a.id===b.taskId).chapterId,j=a.contract.criteria.filter(a=>a.applicable&&(!a.chapterId||a.chapterId===i)).map(a=>a.id);return{...h,affectedCriterionIds:j}}({contract:e.base.contract,project:e.base.projectModel,model:e.model,change:{...f,expectedContentHash:e.model.tasks[f.taskId].current.contentHash,anchor:c.anchor,replacement:c.replacement,reason:a.request.userMessage}}).model}else{if(1!==l.length)throw Error("自然语言轻修须先定位一个固定作者任务;不能以整章重写替代局部修正");let c=e.base.contract.sections.find(a=>a.id===l[0]),f=e.model.tasks[c.id]?.current;if(!f)throw Error("本任务没有完整首候选,须继续生成,不能作为轻修处理");try{await (0,D.X4)({chapterId:c.chapterId,blockTitle:c.title,contractScoped:!0,maxAuthorSubmissions:1,maxTokens:Math.max(6e3,Math.ceil(1.8*f.markdown.length)),diagnostics:e.diagnostics,system:`你是专业文档作者智能体。按用户已定位的局部问题轻修,不改变其他信息单元、事实来源和方案决定。
1
+ "use strict";exports.id=2328,exports.ids=[2328],exports.modules={22328:(a,b,c)=>{c.d(b,{I4:()=>r,Q6:()=>q,WW:()=>t,oO:()=>p,oy:()=>n,rN:()=>m,xv:()=>o});var d=c(73024),e=c(76760),f=c(70949),g=c(55035),h=c(44533),i=c(58543),j=c(68023);class k extends Error{constructor(a,b,c){super(a),this.file=b,this.cause=c,this.name="RepairStoreError"}}function l(a,b){return e.join(b,`${a}.repairs.jsonl`)}function m(a,b,c){let f=l(a,c),g={v:1,t:Date.now(),request:b};try{d.mkdirSync(e.dirname(f),{recursive:!0}),d.appendFileSync(f,`${JSON.stringify(g)}
2
+ `)}catch(b){throw new k(`修复请求落盘失败(节点/修复日志是唯一真相源,不得静默丢):${a}`,f,b)}}function n(a,b){let c,e=l(a,b);try{c=d.readFileSync(e,"utf8")}catch{return[]}let f=new Map;for(let a of c.split("\n"))if(a.trim())try{let b=JSON.parse(a);if(b?.v!==1||!b.request?.id)continue;f.set(b.request.id,b.request)}catch{continue}return[...f.values()].sort((a,b)=>a.id.localeCompare(b.id))}function o(a){return a.targetNodeId||a.localization?.accepted?a.transaction?(0,j.Ui)(a.transaction.recheck.before,a.transaction.recheck.after)||a.transaction.recheck.after.contractQuality?.requestedChangeVerified!==!0?"unclassified":/资料|证据|材料|知识库/u.test(a.impact?.reason||"")?"material-insufficient":(0,j.Un)(a.transaction.recheck.before,a.transaction.recheck.after)?"unclassified":"writing-capacity":a.execution&&!a.execution.available?"rerun-with-feedback"===a.execution.action?"detector-unwired":/不在本文档节点表内/u.test(a.execution.unavailableReason||"")?"unclassified":"detector-unwired":"unclassified":(a.localization?.candidates?.length??0)===0?"detector-missing":"detector-unwired"}class p extends Error{constructor(){super("该历史文档没有冻结合同和统一文档模型,不能按新体系自动补写;历史正文与报告仍可读取"),this.code="NATIVE_REPAIR_CONTRACT_REQUIRED",this.name="NativeRepairContractRequiredError"}}function q(a){let b=(0,f.getGeneratedDocument)(a.documentId,a.projectRoot);if(!b)throw Error("待修订文档不存在");if(!(0,i.Jd)(b))throw new p;return(0,i.fC)({request:a.request,documentId:a.documentId,projectRoot:a.projectRoot??b.projectRoot??(0,h.aY)()})}function r(a){let b=[];for(let c of a.matchAll(/[「『“"《【]([^」』”"》】]{2,})[」』”"》】]/gu))b.push(c[1].trim());for(let c of a.matchAll(/[0-9A-Za-z一-龥][0-9A-Za-z一-龥0-9.-]{2,}/gu))b.push(c[0].trim());return[...new Set(b.filter(a=>a.length>=4))]}function s(a){let{request:b,at:c}=a,d=b.transaction?.recheck,e={at:c,requestId:b.id,nodeId:b.targetNodeId,nodeKind:b.transaction?.nodeKind,action:b.transaction?.action,actionSource:b.transaction?.actionSource,userMessage:b.userMessage,localization:{method:b.localization?.method,candidateCount:b.localization?.candidates?.length??0,acceptedNodeId:b.localization?.accepted},changes:(b.transaction?.changes||[]).map(a=>({nodeId:a.nodeId,beforeChars:a.beforeChars,afterChars:a.afterChars})),outcome:b.outcome||"unfixable",attribution:o(b),impactClass:b.impact?.class,notExecutedReason:b.notExecutedReason};if(d){let a=(0,j.Ui)(d.before,d.after)??("fixed"!==b.outcome&&"partial"!==b.outcome||(0,j.Un)(d.before,d.after)?void 0:"回执未证明请求修改已核验且同合同复验未退步");a&&(e.notExecutedReason=[e.notExecutedReason,`历史修复结果无法按当前固定合同验证:${a};原始 outcome 仅为历史记录,观察计数不代表七维验收。`].filter(Boolean).join(" ")),e.netEffect={blocking:[d.before.blocking,d.after.blocking],entityPlacement:[d.before.entityPlacement,d.after.entityPlacement],chars:[d.before.chars,d.after.chars]}}return e}function t(a,b){return(0,g.ZS)((function(a,b){let c,e=l(a,b);try{c=d.readFileSync(e,"utf8")}catch{return[]}let f=new Map;for(let a of c.split("\n"))if(a.trim())try{let b=JSON.parse(a);if(b?.v!==1||!b.request?.id)continue;f.set(b.request.id,{at:b.t,request:b.request})}catch{continue}return[...f.values()].sort((a,b)=>a.at-b.at||a.request.id.localeCompare(b.request.id))})(a,b).map(s))}},58543:(a,b,c)=>{c.d(b,{fC:()=>J,Du:()=>I,pA:()=>L,Jd:()=>G});var d=c(73024),e=c.n(d),f=c(77598),g=c(32460),h=c(70949),i=c(7942),j=c(35091),k=c(31698),l=c(21123),m=c(94173),n=c(19444),o=c(80408),p=c(12866),q=c(22157),r=c(59948),s=c(30839),t=c(72275),u=c(34680),v=c(96241),w=c(43800),x=c(41791),y=c(62065),z=c(51326),A=c(7661),B=c(51750),C=c(48479),D=c(6361);let E=a=>(0,f.createHash)("sha256").update(JSON.stringify(a)).digest("hex"),F=a=>Object.fromEntries(Object.entries(a.tasks).map(([a,b])=>[a,b.current.output]));function G(a){return!!(a.nativeRevision||a.reviewMetadata?.contractQuality||a.draft?.reviewMetadata?.contractQuality)}function H(a,b){if(!a.runId||!a.draft||["generating","queued"].includes(a.status))throw Error("结构化修复需要已经停止写入的文档运行及完整草稿资产");let c=(0,h.Gl)(b),d=(b,d)=>{let g=e().readFileSync((0,i.HM)(c,b,a.runId));if(d&&(0,f.createHash)("sha256").update(g).digest("hex")!==d)throw Error("结构化修订资产哈希不一致");return JSON.parse(g.toString("utf8"))},g=d("author-resume-state.json");(0,j.oH)(g.contract),(0,k.oG)(b,g.projectModel);let p=g.writerContext.sharedConstructionPlan;if(!p)throw Error("当前结构化文档缺少同版共享施工计划,不能恢复来源适用性校验");(0,l.wB)(p,g.contract,g.projectModel),(0,m.tD)(g.projectModel,g.contract.sections.map(a=>(0,l.G6)(p,g.projectModel,a.id))),(0,n.R)(g.projectModel,c,a.runId),(0,n.u)(g.projectModel,c,a.runId);let q=d(a.nativeRevision?.modelFile??"document-model-final.json",a.nativeRevision?.modelSha256),A=(0,u.Zk)();(0,o.cv)(A,g.contract,g.projectModel,{restore:q}),(0,j.qK)(A,g.contract);let B=a.nativeRevision?.accountingFile??"author-accounting-final.json";(a.nativeRevision?.accountingFile||e().existsSync((0,i.HM)(c,B,a.runId)))&&(0,r.zh)(A,d(B,a.nativeRevision?.accountingSha256)),(0,s.C)({directory:c,runId:a.runId,contractId:g.contract.id,diagnostics:A});let C={};(0,z.ST)(C),(0,z.er)(A,C);let D=(0,z.c9)(A),G=D.models.active,H=G&&D.models.list.find(a=>a.name===G.name&&a.provider===G.provider),I={origin:"current-user-selection-at-repair-start",active:G,selected:H?{provider:H.provider,name:H.name,thinking:H.thinking??"follow-task"}:null,configurationFingerprint:(0,z.Q6)(C)},J=(0,v.rZ)({generatedDir:c,projectRoot:b,documentId:a.id}),K=b=>(0,o.BO)(g.contract,b,a.title,a.draft.chapters,J.renderer),L=K(q);if((a.editedMarkdown??a.markdown)!==L.markdown||a.draft.markdown!==L.markdown)throw Error("当前正文已脱离统一模型;须先重建并复验,不能通过字符串修复覆盖原结构化资产");let M=a.nativeRevision?d(a.nativeRevision.qualityFile,a.nativeRevision.qualitySha256):a.reviewMetadata?.contractQuality??a.draft.reviewMetadata?.contractQuality;if(!M||M.version!==t.Ly||M.contractId!==g.contract.id||M.projectSnapshotId!==g.projectModel.snapshotId||M.documentHash!==(0,t.Sl)(L.chapters,L.markdown)||M.authorModelHash!==(0,t.Np)(F(q))||E(M.score)!==E((0,j._n)(g.contract,M.findings)))throw Error("当前七维回执与统一模型不一致,需要完整复验");if(!g.writerContext.resumeContext)throw Error("缺少写作及机械终检的冻结上下文,不能空跑后宣称修复通过");let N=function(a){let b=new w.h(a.signal);return{global:{input:{...a,signal:b.signal},preparationWork:b,emitProgress:()=>void 0,withProgressHeartbeat:async a=>a(),...void 0!==a.nodeLogBaseDir?{nodeLogBaseDir:a.nodeLogBaseDir}:{},chapterDrafts:[],checkpointChapterOrderIds:[]},prepare:{},understanding:{},planning:{},blueprint:{},chapterLoop:{}}}({});return(0,x.k)(N,g.writerContext.resumeContext),{base:g,model:q,quality:M,diagnostics:A,render:K,rendered:L,mechanical:a=>(0,y.u)({documentContract:g.contract,generationDiagnostics:A,projectMaterialSummary:N.prepare.projectMaterialSummary,bidComposition:N.understanding.bidComposition,hazardBindings:N.understanding.hazardResolution?.bindings},K(a),a),figures:J,directory:c,modelSelection:I}}function I(a,b,c){return Object.entries(H(a,b).model.tasks).flatMap(([a,b])=>{let d=c.filter(a=>b.current.markdown.includes(a));if(!d.length)return[];let e=b.current.markdown.indexOf(d[0]);return[{nodeId:a,score:d.reduce((a,b)=>a+b.length,0),excerpt:b.current.markdown.slice(Math.max(0,e-20),e+d[0].length+20)}]}).sort((a,b)=>b.score-a.score||a.nodeId.localeCompare(b.nodeId)).slice(0,5)}function J(a){let b,c,d=(0,h.CX)(a.documentId,a.projectRoot);if(!d)throw Error("待修复文档不存在");let e=H(d,a.projectRoot),j=E(d),k=`repair-${(0,f.randomUUID)()}`;(0,g.yY)(e.diagnostics,{generatedDir:e.directory,runId:k,contract:e.base.contract}),(0,i.tv)(e.directory,"repair-inputs.json",{repairRunId:k,originRunId:d.runId,documentId:d.id,request:a.request,modelSelection:e.modelSelection,originalRecordHash:j,contractId:e.base.contract.id,projectSnapshotId:e.base.projectModel.snapshotId,firstCandidateHashes:e.model.c0TaskHashes},k);let l=function(a,b,c){if(a.base.contract.sections.some(a=>a.id===c))return[c];let d=a.base.contract.chapters.find(a=>a.id===c||(0,C.Ts)(a.id)===c);if(d)return d.sectionIds;let e=(0,B.g0)(b.id,a.directory).find(a=>a.id===c),f=e?.metrics?.taskId;if("string"==typeof f&&a.base.contract.sections.some(a=>a.id===f))return[f];throw Error("目标节点没有固定作者任务身份,不能猜测修改范围")}(e,d,a.request.targetNodeId),m=(a,b,c)=>({blocking:e.mechanical(a).filter(a=>"error"===a.level||"blocker"===a.severity).length+b.score.blocking.length+(0,t.ie)(b).length,entityPlacement:Object.values(a.tasks).reduce((a,b)=>a+b.current.output.factBindings.length,0),chars:e.render(a).markdown.length,contractQuality:{contractId:b.contractId,unresolvedCount:b.findings.filter(a=>"met"!==a.status).length,requestedChangeVerified:c,findings:b.findings.map(({criterionId:a,status:b})=>({criterionId:a,status:b}))},judges:{mode:"full",executed:b.findings.filter(a=>"unmeasured"!==a.status).map(a=>a.criterionId),degraded:b.findings.filter(a=>"unmeasured"===a.status).map(a=>a.criterionId),missing:[],unavailableInputs:[]}});return{request:a.request,execution:{nodeKind:"writing-block",action:a.request.patch?"targeted-patch":"rerun-with-feedback",actionSource:a.request.patch?"explicit-patch":"default",available:!0,reason:"通过固定任务的统一模型执行,在全文累计轻修预算内复验后提交"},snapshot:async()=>{let a=E({model:e.model,quality:e.quality});return(0,i.tv)(e.directory,`native-snapshot-${a}.json`,{model:e.model,quality:e.quality},d.runId),`native:${a}`},apply:async()=>(0,s.e)({directory:e.directory,runId:d.runId,contractId:e.base.contract.id,diagnostics:e.diagnostics},async()=>{let c=a.request.patch;if(c){if(c.append||c.endText)throw Error("结构化定点修改须使用单一单元的逐字锚点;跨单元区间或追加须由作者提交完整结构化任务");let d=l.flatMap(a=>e.model.tasks[a]?.current.output.units.flatMap(b=>"paragraph"===b.kind&&b.text.includes(c.anchor)?[{taskId:a,unitId:b.id}]:"table"===b.kind?b.rows.flatMap(d=>b.columns.filter(a=>d.cells[a.key].includes(c.anchor)).map(c=>({taskId:a,unitId:b.id,rowId:d.id,columnKey:c.key}))):[])??[]);if(1!==d.length)throw Error("锚点必须唯一定位一个实际段落或表格字段,不能修改多个对象");let f=d[0];b=function(a){let{change:b}=a,c=a.model.tasks[b.taskId];if(!c||c.current.contentHash!==b.expectedContentHash)throw Error("待修改的任务不存在或内容已变更,原定位不能继续执行");if(!b.anchor.trim()||!b.reason.trim())throw Error("结构化修改须有逐字锚点和明确原因");let d=structuredClone(c.current.output),e=d.units.find(a=>a.id===b.unitId);if(!e)throw Error("目标单元不属于已定位的作者任务");let f=a=>{let c=a.indexOf(b.anchor);if(c<0||a.indexOf(b.anchor,c+b.anchor.length)>=0)throw Error("逐字锚点不存在或不唯一,不能模糊匹配修改");return a.slice(0,c)+b.replacement+a.slice(c+b.anchor.length)};if("paragraph"===e.kind){if(void 0!==b.rowId||void 0!==b.columnKey)throw Error("段落修改不能携带表格记录定位");e.text=f(e.text)}else if("table"===e.kind){let a=e.rows.find(a=>a.id===b.rowId);if(!a||!b.columnKey||!e.columns.some(a=>a.key===b.columnKey))throw Error("表格修改须明确定位真实记录与字段");a.cells[b.columnKey]=f(a.cells[b.columnKey])}else throw Error("流程图修改须提交完整节点与边的结构化事务,不能把图件字符串替换当成关系修改");let g=(0,u.Zk)();(0,o.cv)(g,a.contract,a.project,{restore:a.model});let h=(0,o.wI)(g,b.taskId,d,b.reason),i=a.contract.sections.find(a=>a.id===b.taskId).chapterId,j=a.contract.criteria.filter(a=>a.applicable&&(!a.chapterId||a.chapterId===i)).map(a=>a.id);return{...h,affectedCriterionIds:j}}({contract:e.base.contract,project:e.base.projectModel,model:e.model,change:{...f,expectedContentHash:e.model.tasks[f.taskId].current.contentHash,anchor:c.anchor,replacement:c.replacement,reason:a.request.userMessage}}).model}else{if(1!==l.length)throw Error("自然语言轻修须先定位一个固定作者任务;不能以整章重写替代局部修正");let c=e.base.contract.sections.find(a=>a.id===l[0]),f=e.model.tasks[c.id]?.current;if(!f)throw Error("本任务没有完整首候选,须继续生成,不能作为轻修处理");try{await (0,D.X4)({chapterId:c.chapterId,blockTitle:c.title,contractScoped:!0,maxAuthorSubmissions:1,maxTokens:Math.max(6e3,Math.ceil(1.8*f.markdown.length)),diagnostics:e.diagnostics,system:`你是专业文档作者智能体。按用户已定位的局部问题轻修,不改变其他信息单元、事实来源和方案决定。
3
3
  ${e.base.writerContext.promptTexts}`,prompt:`用户原话:${a.request.userMessage}
4
4
  当前固定任务:${JSON.stringify(c)}
5
5
  当前完整结构化产物:${JSON.stringify(f.output)}
@@ -1 +1 @@
1
- "use strict";exports.id=3806,exports.ids=[3806],exports.modules={8753:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(51342),e=c(73024),f=c(76760);let g={reviewStandardQueries:[],reviewChapterTemplateMatchers:[],reviewChapterSectionDefaults:{firstChapterSections:[],chapterSections:[],firstChapterTableSections:[],firstChapterTableRequirements:[]},qualityBenchmarks:[],autoSpecGates:[],chapterTitleFilters:[]};function h(){try{var a;let b=function(){let a=(0,d.J0)();return e.mkdirSync(a,{recursive:!0}),f.join(a,"engineering-document-config.json")}();if(!e.existsSync(b))return g;return a=JSON.parse(e.readFileSync(b,"utf-8")),{reviewStandardQueries:Array.isArray(a.reviewStandardQueries)?a.reviewStandardQueries.filter(Boolean):[],reviewChapterTemplateMatchers:Array.isArray(a.reviewChapterTemplateMatchers)?a.reviewChapterTemplateMatchers.filter(Boolean):[],reviewChapterSectionDefaults:{firstChapterSections:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterSections)?a.reviewChapterSectionDefaults.firstChapterSections.filter(Boolean):[],chapterSections:Array.isArray(a.reviewChapterSectionDefaults?.chapterSections)?a.reviewChapterSectionDefaults.chapterSections.filter(Boolean):[],firstChapterTableSections:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterTableSections)?a.reviewChapterSectionDefaults.firstChapterTableSections.filter(Boolean):[],firstChapterTableRequirements:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterTableRequirements)?a.reviewChapterSectionDefaults.firstChapterTableRequirements.filter(Boolean):[]},qualityBenchmarks:Array.isArray(a.qualityBenchmarks)?a.qualityBenchmarks:[],technicalDetailGate:a.technicalDetailGate,autoSpecGates:Array.isArray(a.autoSpecGates)?a.autoSpecGates:[],chapterTitleFilters:Array.isArray(a.chapterTitleFilters)?a.chapterTitleFilters:[]}}catch{return g}}},73806:(a,b,c)=>{c.d(b,{GQ:()=>v,_9:()=>y,cs:()=>u,eI:()=>r,Ui:()=>t,bl:()=>s,Fe:()=>j,ob:()=>h,YZ:()=>w,nz:()=>i});let d="[零〇一二三四五六七八九十百千万两]+";var e=c(77327);function f(a){return a.replace(/[☑✓✔☐□☒○●◉◇◆]/gu,"")}function g(a){let b=f(a.trim()),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d})(?:[..]\\d{1,3})+(?:[..、))]\\s*|\\s+)`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function h(a){let b=g(a).replace(/\s+/gu,"");if(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))return!0;let c=g(b).replace(/\s+/gu,"");if(!c||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(c)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(c)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(c)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(c)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(c)||/^\d+\s*项/u.test(c)||/^\d+(?:[((]\d+[))])?\s*目/u.test(c)||/^\d+\s*对(?:与|于)/u.test(c)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(c)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(c)||/^\d{1,4}[^,,。;\s]{1,6}[,,、]/u.test(c)||/^\d{1,2}[一-龥]{2,10}$/u.test(c)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(c)||/[((【[《]$/u.test(c)||/[((【[《][^))】]》]*$/u.test(c)||/以下简/u.test(c)||/^\d{1,4}\s*[a-zA-Z]/u.test(c)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(c)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(c))return!0;let d=c.replace(/^\d{1,3}(?:[..]\d{1,3})*\s*/u,"");return!!(/^具备(?:有效|相应|满足)/u.test(d)||/^(?:须|应|需|得)?提供[^,,。;]{0,12}(?:证明|材料|文件|证件|证书|报告)/u.test(d)||/^(?:本(?:招标)?(?:项目|工程)|投标人|承包人|中标人|发包人|供应商|项目经理|技术负责人|施工单位)[^,,。;]{0,24}(?:不得|禁止|严禁|必须|应当)/u.test(d)||/(?:见|详见|参见|详见第)[^,,。;]{0,12}(?:招标公告|招标文件|投标人须知|补疑|澄清|工程量清单|图纸|合同条款|前附表)/u.test(d)||/^\d{1,3}\s*款/u.test(c)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(c)||/\d+(?:元|万元|㎡|m[²3]?|km|m|cm|mm|kg|t|L|㎡|立方米|平方米|公顷|亩|度|kPa|MPa)[((](?:保留|计算|填写|详见|见|按|不得|应|须)/u.test(c)||/[::].{0,30}(?:必须由|应由|须由)/u.test(c)||/(?:必须|应|须|需).{0,30}(?:由|按|须)$/.test(c)||/(?:\d+(?:\.\d+)*|第\d+(?:\.\d+)*)条(?:款)?的?(?:规定|约定)/u.test(c)||/另行(?:交纳|缴纳|支付|提交|办理|承担|履行)/u.test(c)||/^未(?:分部|分类|分组|归类|划分|分配)/u.test(c))||function(a){let b=a.replace(/\s+/gu,"").replace(/^\*+|\*+$/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(c)}function i(a){return v(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 j(a){let b=i(a).replace(/\s+/gu,"");if(!b||/^\d+[^\d..、]/u.test(b)||/^(?:发包人代表|任何批准|计量与支付|变更与索赔|缺陷责任|竣工验收程序|违约责任|争议解决|合同价格)/u.test(b)||/^(?:我(?:方|公司|单位)|本单位|本公司).{0,20}(?:承诺|保证|均属实|均真实|均有效|承担)/u.test(b)||/独立制表|单独制表|分别编制|逐一编制|另行编制|单位工程独立|分单位工程/u.test(b))return!0;if(/[、,,]/u.test(b)&&b.length>=10&&/^[\u4e00-\u9fa5]$/u.test(b.slice(-1))){let a=b.split(/[、,,]/u);if(a.length>=3&&1===a[a.length-1].length)return!0}if(/\d+(?:元|万元|㎡|m[²3]?|km|m|cm|mm|kg|t|L|立方米|平方米|公顷|亩|度|kPa|MPa)[((](?:保留|计算|填写|详见|见|按|不得|应|须)/u.test(b)||/(?:必须由|应由|须由)/u.test(b)||/(?:必须|应|须|需).{0,30}(?:由|按|须)$/.test(b)||/(?:\d+(?:\.\d+)*|第\d+(?:\.\d+)*)条(?:款)?的?(?:规定|约定)/u.test(b)||/另行(?:交纳|缴纳|支付|提交|办理|承担|履行)/u.test(b)||/^未(?:分部|分类|分组|归类|划分|分配)/u.test(b))return!0;let c=b.split(/[、,,]/u).filter(Boolean);return!!(c.length>=2&&c.some(a=>a.length>=7))}function k(a){return 0===a.trim().length||h(a)}let l=/^[((]?\d{1,3}(?:[..]\d{1,3})+(?:[..、))]|\s+|[一-龥])/u,m=/^[((]\d{1,3}[))]/u,n=/^(?: {2,}|\t)/u,o=RegExp(`^(?:第(?:\\d{1,3}|${d})[章节]|\\d{1,3}[、))]|\\d{1,3}[..]\\s|(?:${d})[、..))])`,"u"),p="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",q=RegExp(`<\\s*${p}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${p}\\s*>`,"giu");function r(a){return q.lastIndex=0,q.test(a)}function s(a){return RegExp(`^\\s*<\\s*${p}(?:\\s[^>]*)?>`,"iu").test(a)}function t(a){return RegExp(`^\\s*<\\/\\s*${p}\\s*>`,"iu").test(a)}function u(a){for(let b of a){let a=function(a,b,c){let e=[],f=null,h=a=>a.replace(/\s+/gu,"");for(let i of function(a,b){q.lastIndex=0;let c=[...a.matchAll(q)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3}[..]){1,2}\\d{1,3}[..、))]?(?=\\s|[一-龥])`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>(function(a){let b=a.replace(/\u3000/gu," "),c=b.replace(/^[-*+]\s+/u,"").trim();if(!c)return null;let d=g(a);return!d||k(d)?null:l.test(c)?{title:d,sectionCandidate:!0,kind:"dotted"}:m.test(c)?{title:d,sectionCandidate:!0,kind:"paren"}:o.test(c)?{title:d,sectionCandidate:!1,kind:"numbered"}:n.test(b)?{title:d,sectionCandidate:!0,kind:"indent"}:{title:d,sectionCandidate:!1,kind:"plain"}})(a)).filter(a=>!!a)}(i)){let c=e[e.length-1];if(c&&a.sectionCandidate&&f&&f!==a.kind){h(a.title)===h(c.title)||(c.sections||[]).some(b=>h(b)===h(a.title))||(c.sections=[...c.sections||[],a.title]);continue}e.push({id:`explicit-${b}-${e.length+1}`,title:a.title,purpose:`根据显式大纲章节生成正式正文:${a.title}`,requiredFacts:[],sections:[],queries:[a.title]}),f=a.kind}return e.filter(a=>!k(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function v(a){let b=f(a.replace(/^#+\s*/u,"").trim()),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:[..]\d+)+(?![万亿千百十米㎡吨元A-Za-z\d])\s*[、..]?\s*/u,"").replace(/^\d+(?:[、,,]\s*|\s+|\.\s*(?![0-9])|.\s*(?![0-9]))(?![##号]|栋|幢|楼|区|期|馆|站|院|座|厂房)/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function w(a){return v(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function x(a,b){let c=new Set;return a.filter(a=>{let d=w(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function y(a,b,c){return!b||c?.preserveExplicitOutline?x([...a.chapters],{...c,template:a}):x([...a.chapters].map(a=>{let c=v(a.title),d=b.chapterRules.find(b=>b.id===a.id||v(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},77327:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(8753);function e(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function f(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,d.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>e(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>e(a,b)))}}};
1
+ "use strict";exports.id=3806,exports.ids=[3806],exports.modules={8753:(a,b,c)=>{c.d(b,{V:()=>h});var d=c(51342),e=c(73024),f=c(76760);let g={reviewStandardQueries:[],reviewChapterTemplateMatchers:[],reviewChapterSectionDefaults:{firstChapterSections:[],chapterSections:[],firstChapterTableSections:[],firstChapterTableRequirements:[]},qualityBenchmarks:[],autoSpecGates:[],chapterTitleFilters:[]};function h(){try{var a;let b=function(){let a=(0,d.J0)();return e.mkdirSync(a,{recursive:!0}),f.join(a,"engineering-document-config.json")}();if(!e.existsSync(b))return g;return a=JSON.parse(e.readFileSync(b,"utf-8")),{reviewStandardQueries:Array.isArray(a.reviewStandardQueries)?a.reviewStandardQueries.filter(Boolean):[],reviewChapterTemplateMatchers:Array.isArray(a.reviewChapterTemplateMatchers)?a.reviewChapterTemplateMatchers.filter(Boolean):[],reviewChapterSectionDefaults:{firstChapterSections:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterSections)?a.reviewChapterSectionDefaults.firstChapterSections.filter(Boolean):[],chapterSections:Array.isArray(a.reviewChapterSectionDefaults?.chapterSections)?a.reviewChapterSectionDefaults.chapterSections.filter(Boolean):[],firstChapterTableSections:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterTableSections)?a.reviewChapterSectionDefaults.firstChapterTableSections.filter(Boolean):[],firstChapterTableRequirements:Array.isArray(a.reviewChapterSectionDefaults?.firstChapterTableRequirements)?a.reviewChapterSectionDefaults.firstChapterTableRequirements.filter(Boolean):[]},qualityBenchmarks:Array.isArray(a.qualityBenchmarks)?a.qualityBenchmarks:[],technicalDetailGate:a.technicalDetailGate,autoSpecGates:Array.isArray(a.autoSpecGates)?a.autoSpecGates:[],chapterTitleFilters:Array.isArray(a.chapterTitleFilters)?a.chapterTitleFilters:[]}}catch{return g}}},73806:(a,b,c)=>{c.d(b,{GQ:()=>u,_9:()=>x,cs:()=>t,eI:()=>q,Ui:()=>s,bl:()=>r,ob:()=>h,YZ:()=>v,nz:()=>i});let d="[零〇一二三四五六七八九十百千万两]+";var e=c(77327);function f(a){return a.replace(/[☑✓✔☐□☒○●◉◇◆]/gu,"")}function g(a){let b=f(a.trim()),c="";for(;b!==c;)c=b,b=b.replace(RegExp(`^\\s*第(?:\\d{1,3}|${d})[章节]\\s*`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d})(?:[..]\\d{1,3})+(?:[..、))]\\s*|\\s+)`,"u"),"").replace(RegExp(`^\\s*[((]?(?:\\d{1,3}|${d})[))、..]\\s*`,"u"),"").replace(RegExp("^\\s*[-*+]\\s+","u"),"").trim();return b.replace(/\s+/gu," ")}function h(a){let b=g(a).replace(/\s+/gu,"");if(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b)||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)|(?:根据|结合).{0,12}(?:实际情况|项目情况|资料情况).{0,8}(?:判断|确定|编写|生成)|按需(?:生成|编写)|视情况|判断后|生成要求|编写要求|说明要求|注意事项/u.test(b)||/[::]$|[,、;。]$/u.test(b))return!0;let c=g(b).replace(/\s+/gu,"");if(!c||/^(?:如|若|如果|倘若|假如|当)[^,,。;]{0,24}[,,]/u.test(c)||/^(?:我(?:方|公司)|本(?:单位|公司|工程|项目)|投标人|承包人|中标人|发包人|供应商)[^,,。;]{0,14}(?:承诺|保证|响应|满足|确保|应|须|将|会)/u.test(c)||/(?:评标)?委员会[^,,。;]{0,10}(?:确定|认定|评审|判断|推荐)/u.test(c)||/^(?:不(?:得|应|宜|少于|超过|大于|小于|低于|高于)|超过|低于|高于|达到|不少于|不大于|不超过|偏差率|误差)\s*\d/u.test(c)||/^[^,,。;]{0,10}\d+(?:%|%)/u.test(c)||/^\d+\s*项/u.test(c)||/^\d+(?:[((]\d+[))])?\s*目/u.test(c)||/^\d+\s*对(?:与|于)/u.test(c)||/^\d{1,4}[a-zA-Z]{0,3}\d{0,4}\s*[::]/u.test(c)||/^\d{1,4}\s*(?:个)?(?:日历天|天|日|月|年)[,,、]/u.test(c)||/^\d{1,4}[^,,。;\s]{1,6}[,,、]/u.test(c)||/^\d{1,2}[一-龥]{2,10}$/u.test(c)&&!/^\d{1,2}(?:个|名|台|套|辆|份|种|类|层|栋|座|米|吨|年|月|天|日|周|次|项)/u.test(c)||/[((【[《]$/u.test(c)||/[((【[《][^))】]》]*$/u.test(c)||/以下简/u.test(c)||/^\d{1,4}\s*[a-zA-Z]/u.test(c)||/^(?:确定|计算|比较|推荐|审查|否决)(?:有效)?评标(?:基准)?价/u.test(c)||/^(?:其他要求|需要补充的其他内容|相当于或不低于|补充条款|建议编制要求|投标须知|评标办法)/u.test(c))return!0;let d=c.replace(/^\d{1,3}(?:[..]\d{1,3})*\s*/u,"");return!!(/^具备(?:有效|相应|满足)/u.test(d)||/^(?:须|应|需|得)?提供[^,,。;]{0,12}(?:证明|材料|文件|证件|证书|报告)/u.test(d)||/^(?:本(?:招标)?(?:项目|工程)|投标人|承包人|中标人|发包人|供应商|项目经理|技术负责人|施工单位)[^,,。;]{0,24}(?:不得|禁止|严禁|必须|应当)/u.test(d)||/(?:见|详见|参见|详见第)[^,,。;]{0,12}(?:招标公告|招标文件|投标人须知|补疑|澄清|工程量清单|图纸|合同条款|前附表)/u.test(d)||/^\d{1,3}\s*款/u.test(c)||/第\d+(?:\.\d+)?款[^,,。;]{0,20}(?:向(?:招标人|发包人|监理人?|承包人)|提出|告知|通知|送达|发出)/u.test(c)||/\d+(?:元|万元|㎡|m[²3]?|km|m|cm|mm|kg|t|L|㎡|立方米|平方米|公顷|亩|度|kPa|MPa)[((](?:保留|计算|填写|详见|见|按|不得|应|须)/u.test(c)||/[::].{0,30}(?:必须由|应由|须由)/u.test(c)||/(?:必须|应|须|需).{0,30}(?:由|按|须)$/.test(c)||/(?:\d+(?:\.\d+)*|第\d+(?:\.\d+)*)条(?:款)?的?(?:规定|约定)/u.test(c)||/另行(?:交纳|缴纳|支付|提交|办理|承担|履行)/u.test(c)||/^未(?:分部|分类|分组|归类|划分|分配)/u.test(c))||function(a){let b=a.replace(/\s+/gu,"").replace(/^\*+|\*+$/gu,"");if(!b)return!1;if((b.match(/[爀椀猟礀氀漀挀渀捁扄潓瑲湥獴慔汢]/gu)||[]).length>=2||/[\u2046-\u205F\u2070-\u209F\u2100-\u2102\u2104-\u214F\u21B0-\u21FF\u2270-\u22FF\u2400-\u243F\u249C-\u24FF\u2640-\u26FF\u27C0-\u27EF\u2900-\u297F\u2A00-\u2AFF\u2B00-\u2BFF\u2E00-\u2FFF\u3200-\u33FF]/u.test(b)||/[\u00A0-\u00AF\u00B4\u00B6\u00B8\u00BA-\u00FF]/u.test(b)||/[\u4e00-\u9fa5][A-Za-z][\u4e00-\u9fa5]/u.test(b)&&!/[\u4e00-\u9fa5][A-Za-z](?:值|级|类|区|型|构|段|座|轴|向|楼|层|栋|点|位)/u.test(b))return!0;let c=[...b];return c.filter(a=>/[\u4e00-\u9fa5A-Za-z0-9()()【】《》、,。;;::,.\-/㎡%°·±×÷≤≥—–]/u.test(a)).length/c.length<.6}(c)}function i(a){return u(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 j(a){return 0===a.trim().length||h(a)}let k=/^[((]?\d{1,3}(?:[..]\d{1,3})+(?:[..、))]|\s+|[一-龥])/u,l=/^[((]\d{1,3}[))]/u,m=/^(?: {2,}|\t)/u,n=RegExp(`^(?:第(?:\\d{1,3}|${d})[章节]|\\d{1,3}[、))]|\\d{1,3}[..]\\s|(?:${d})[、..))])`,"u"),o="(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)",p=RegExp(`<\\s*${o}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/\\s*${o}\\s*>`,"giu");function q(a){return p.lastIndex=0,p.test(a)}function r(a){return RegExp(`^\\s*<\\s*${o}(?:\\s[^>]*)?>`,"iu").test(a)}function s(a){return RegExp(`^\\s*<\\/\\s*${o}\\s*>`,"iu").test(a)}function t(a){for(let b of a){let a=function(a,b,c){let e=[],f=null,h=a=>a.replace(/\s+/gu,"");for(let i of function(a,b){p.lastIndex=0;let c=[...a.matchAll(p)].map(a=>a[1]||"");if(c.length>0||b?.strict)return c;let d=/(?:<\s*)?(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>?\s*[::]?\s*([\s\S]*?)(?:<\/\s*(?:OUTLINE|CHAPTERS?|章节(?:大纲)?|大纲|目录)\s*>|END\s+(?:OUTLINE|CHAPTERS?)|$)/iu.exec(a);return d?.[1]?[d[1]]:[]}(a,c))for(let a of function(a){let b=`${d}`,c=[`第(?:\\d{1,3}|${b})[章节]\\s*`,`(?:\\d{1,3}[..]){1,2}\\d{1,3}[..、))]?(?=\\s|[一-龥])`,`(?:\\d{1,3})[、))]\\s*`,`(?:\\d{1,3})[..]\\s+(?!\\d)`,`(?:${b})[、..))]\\s*`,`[((](?:\\d{1,3}|${b})[))]\\s*`,"[-*+]\\s+"],e=a.replace(/\r?\n/gu,"\n");for(let a of c)e=(e=(e=e.replace(RegExp(`([;;。!?!?])\\s*(?=${a})`,"gu"),"$1\n")).replace(RegExp(`(?<=\\n)\\s+(?=${a})`,"gu"),"")).replace(RegExp(`(?<![\\d..])\\s+(?=${a})`,"gu"),"\n");return e.split(/\n|;|;/u).map(a=>(function(a){let b=a.replace(/\u3000/gu," "),c=b.replace(/^[-*+]\s+/u,"").trim();if(!c)return null;let d=g(a);return!d||j(d)?null:k.test(c)?{title:d,sectionCandidate:!0,kind:"dotted"}:l.test(c)?{title:d,sectionCandidate:!0,kind:"paren"}:n.test(c)?{title:d,sectionCandidate:!1,kind:"numbered"}:m.test(b)?{title:d,sectionCandidate:!0,kind:"indent"}:{title:d,sectionCandidate:!1,kind:"plain"}})(a)).filter(a=>!!a)}(i)){let c=e[e.length-1];if(c&&a.sectionCandidate&&f&&f!==a.kind){h(a.title)===h(c.title)||(c.sections||[]).some(b=>h(b)===h(a.title))||(c.sections=[...c.sections||[],a.title]);continue}e.push({id:`explicit-${b}-${e.length+1}`,title:a.title,purpose:`根据显式大纲章节生成正式正文:${a.title}`,requiredFacts:[],sections:[],queries:[a.title]}),f=a.kind}return e.filter(a=>!j(a.title))}(b.text||"",b.source,{strict:b.strict});if(a.length>=2)return a}return[]}function u(a){let b=f(a.replace(/^#+\s*/u,"").trim()),c="";for(;b&&b!==c;)c=b,b=b.replace(/^第[一二三四五六七八九十百千万\d]+[章节]\s*/u,"").replace(/^\d+(?:[..]\d+)+(?![万亿千百十米㎡吨元A-Za-z\d])\s*[、..]?\s*/u,"").replace(/^\d+(?:[、,,]\s*|\s+|\.\s*(?![0-9])|.\s*(?![0-9]))(?![##号]|栋|幢|楼|区|期|馆|站|院|座|厂房)/u,"").replace(/^[((]?[一二三四五六七八九十]+[))、..\s]+/u,"").trim();return b}function v(a){return u(a.replace(/\s+/gu," ").trim()).replace(/^[,,、;;::。.!!??\-—\s]+/u,"").trim()}function w(a,b){let c=new Set;return a.filter(a=>{let d=v(a.title);if(!d)return!1;if(!b?.preserveExplicitOutline&&(c.has(d)||/见(?:公告|文件|资料|附件)|按(?:资料|文件|相关要求)|质量标准[::]|范围[::].*依据/u.test(d)||b?.template&&(0,e.C)(d,b.template)))return!1;return c.add(d),a.title=d,!0})}function x(a,b,c){return!b||c?.preserveExplicitOutline?w([...a.chapters],{...c,template:a}):w([...a.chapters].map(a=>{let c=u(a.title),d=b.chapterRules.find(b=>b.id===a.id||u(b.title)===c);return{...a,title:c,purpose:a.purpose,requiredFacts:a.requiredFacts||[],queries:[...new Set([...a.queries||[],c,d?.generationHint||"",...a.sections||[]].filter(Boolean))]}}),{...c,template:a})}},77327:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(8753);function e(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function f(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,d.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>e(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>e(a,b)))}}};