@customize-agent/server 4.1.15 → 4.1.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 CHANGED
@@ -1 +1 @@
1
- lFeYCdepREtaIO2U9uVpF
1
+ K7HN3edVIeggY0f1t5FNT
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/lFeYCdepREtaIO2U9uVpF/_buildManifest.js",
9
- "static/lFeYCdepREtaIO2U9uVpF/_ssgManifest.js"
8
+ "static/K7HN3edVIeggY0f1t5FNT/_buildManifest.js",
9
+ "static/K7HN3edVIeggY0f1t5FNT/_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": "763f9f27566e0df22b8ed0e1450a3212",
7
- "previewModeSigningKey": "445343fe1ebeb1f727b2548b7a0ae50a6daa8abd29512e0df13d03328b52881a",
8
- "previewModeEncryptionKey": "08f24fef8372b013b0dfa5c131f52f4c5fae211a696d9129dedf45a91f7f3c6c"
6
+ "previewModeId": "3c0b7eb1bbc74e64bb5de77e361c132b",
7
+ "previewModeSigningKey": "2b3515018ff23cf3f194a185b4c56cd4fbec8a5eecce7214e62d0da3b158dd68",
8
+ "previewModeEncryptionKey": "ab21378fb46f0a35127ca11cc4f63273003cd95364d3187dd14b1c2190b39946"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -196,7 +196,7 @@ ${e.join("\n")}`:"",h.length?`项目基础事实卡片(资料已明确,项
196
196
  ${h.map(a=>`- ${a.key||a.fieldName}:${G((0,aH.lG)(a.value)).slice(0,220)}${a.sourceFile?`(来源:${a.sourceFile.split("/").pop()})`:""}`).join("\n")}
197
197
  项目基本信息表必须使用固定表头:| 信息项 | 内容 |,不得使用“序号|项目名称|内容参数”表头,不得输出后台溯源列。`:"",a.factNeedsPrompt||"",g.length?`全局资料事实索引匹配到的本章可写事实:
198
198
  ${g.join("\n")}`:"",i.length?`本章资料中可直接使用的可靠精确参数/编号:${i.join("、")}。这些参数来自绑定资料,不属于编造;涉及对应对象、部位、工序、材料、设备、项目概况、质量验收或安全控制时必须自然写入正文,并保持原样或等价专业表达。项目基础事实中的合同估算价、计划工期可用于项目概况;不得写入报价明细、单价、税率、预留金。`:"",k.length?`当前事实需求仍未充分确认:${k.join("、")}。未确认项不得编造;但已满足事实需求中的资料事实必须写入对应小节。`:"",a.missingFacts.length?`模板显式要求中当前检索未充分命中的项:${a.missingFacts.join("、")}。未命中项不得编造,但不得因此省略上方已经明确的可靠参数。`:"",`本章可用材料来源约 ${j} 个文件,正文必须按事实需求把可用事实内化到对应小节,不得单列后台资料清单。`].filter(Boolean).join("\n")}({chapter:c,plan:d,spec:Y,roleFacts:x,evidence:P,missingFacts:R,indexedFacts:[...al,...aj],resolvedFactNeeds:ab,factNeedsPrompt:function(a){let b=a.map(a=>{let b=a.facts.slice(0,5).map(b=>`${b.key||b.fieldName||a.need.label}=${bD(b.value)}${b.sourceFile?`(${e.basename(b.sourceFile)})`:""}`),c=a.facts.length?[]:(a.evidence||[]).slice(0,2).map(a=>`证据片段:${bD(a.content).slice(0,160)}${a.filePath?`(${e.basename(a.filePath)})`:""}`);return`- ${a.need.required?"必须":"相关"}|${a.need.label}|${a.status}${b.length||c.length?`:${[...b,...c].join(";")}`:":未在已解析资料中确认"}`});return b.length?`事实需求覆盖卡片:
199
- ${b.join("\n")}`:""}(ab)}),ao={total:ab.length,satisfied:ab.filter(a=>"satisfied"===a.status).length,missing:ab.filter(a=>"missing"===a.status).length,lowConfidence:ab.filter(a=>"low_confidence"===a.status).length};for(let a of ac)ay.push(`${c.title}:事实需求未确认 ${a}`);let as=Y?.chapterRules.find(a=>a.id===c.id||a.title===c.title),az=bw.chapterTargets.get(c.id)||1200,aA=Math.max(3500,Number(process.env.DOCUMENT_LONGFORM_INITIAL_CHAPTER_CAP||8e3)),aB=bw.longformStrict?Math.min(az,aA):az,aC=Math.ceil(aB*(bw.maxChars?1.1:1.18)),aD=bw.targetChars?Math.min(1800,Math.max(600,Math.floor(.5*aB))):1200,aG=Math.max(Math.min(d?.minWords||0,aB),Math.min(as?.minWords||0,aB),Math.min(Y?.dynamicChapterRule.minWordsPerChapter||0,aB),Math.floor(.78*aB),aD),aK=cL(aG,aB),aL=Math.min(aB,6e3),aM=Math.max(900,Math.min(aB,Math.ceil(.55*aB),aL)),aN=Math.max(450,Math.min(aG,Math.floor(.72*aM))),aO=Math.max(aM+300,Math.min(aC,Math.ceil(1.25*aM))),aP=cL(aN,aM),aQ=Math.min(cM(aM),18e4),aR=Math.max(900,Math.min(aM,3600)),aT=Math.max(450,Math.min(aN,Math.floor(.72*aR))),aU=Math.max(aR+300,Math.min(aC,Math.ceil(1.2*aR))),aW=cL(aT,aR),aX=Math.min(cM(aR),15e4),a$=c.sections?.filter(Boolean).length||0,a0=/[、,,;;]/u.test(c.title),a3=Math.max(4,Number(process.env.DOCUMENT_SECTION_FIRST_MAX_SECTIONS||8)),a4=0!==Number(process.env.DOCUMENT_SECTION_FIRST_GENERATION??0)&&a$>=2&&a$<=a3&&(bw.longformStrict||!a0);N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:a4?`${(0,Q.GQ)(c.title)} 正在按小节并发成稿`:`${(0,Q.GQ)(c.title)} 正在整章一次成稿`,details:a4?[...$,`有效证据:${P.length} 条`,`事实需求:${ao.satisfied}/${ao.total} 已满足,缺失 ${ao.missing},低置信 ${ao.lowConfidence}`,`首轮质量目标:约 ${aB} 字${az!==aB?`,总预算分配约 ${az} 字`:""},上限约 ${aC} 字`,`规划小节:${c.sections?.length||0} 个`,"按章节结构拆分小节自然并发生成,章节聚合后再审查修复"]:[...$,`有效证据:${P.length} 条`,`事实需求:${ao.satisfied}/${ao.total} 已满足,缺失 ${ao.missing},低置信 ${ao.lowConfidence}`,`目标字数:约 ${aB} 字,上限约 ${aC} 字`,`规划小节:${a$} 个${a$>a3?",超过小节并发上限,改用整章稳定成稿":""}`,"首次生成必须覆盖章节结构、小节、事实和目标篇幅,后置修复仅兜底"],progress:{current:h+1,total:bg.length,label:a4?"小节并发":"整章成稿"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F();let a5=a4?Math.min(cM(aB)+3e4,33e4):Math.min(cM(aB),18e4),a6=a4?await I(()=>bO(bG,`chapter-section-draft:${c.id}`,()=>bj(b=>cK({template:z,chapter:c,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:aB,maxWords:aC,forbidDrawingImages:U,factCoverageContext:am,projectRoot:v,modelName:a_,fileRolesHash:a1,allowPartialResult:!1,sectionEvidenceProvider:a=>dv({manager:A,projectRoot:v,chapter:c,sectionTitle:a,scopedFilePaths:t,fileRoleByPath:ap,fileProcessingByPath:aq,signal:b}),diagnostics:bG,signal:b}),a5,a.signal))):await I(()=>bO(bG,`chapter-draft:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aG,targetWords:aB,maxWords:aC,maxTokens:aK,factCoverageContext:am,signal:b}),cM(aB),a.signal)));if(!a6&&a4)throw N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"failed",message:`${(0,Q.GQ)(c.title)} 小节并发未在限定时间内返回,已跳过整章重试并标记为章节阻断`,details:["小节优先模式不再执行整章重试,避免单章长时间空等;请优先重试失败小节或降低目标篇幅。"],progress:{current:h+1,total:bg.length,label:"小节超时"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),Error(`${c.title} 小节并发超时,已跳过整章重试`);if(a6||(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 整章成稿未完整返回,正在执行整章重试生成`,details:[`目标字数:约 ${aB} 字`,`有效证据:${P.length} 条`],progress:{current:h+1,total:bg.length,label:"整章重试"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),a6=await I(()=>bO(bG,`chapter-draft-fallback:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aN,targetWords:aM,maxWords:aO,maxTokens:aP,factCoverageContext:am,signal:b}),aQ,a.signal)))),(0,aH.Te)(a.signal),a6||(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在压缩上下文后重试生成`,details:["已压缩证据与上下文后重新请求模型生成",`目标字数:约 ${aB} 字`],progress:{current:h+1,total:bg.length,label:"紧凑重试"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),a6=await I(()=>bO(bG,`chapter-draft-compact-fallback:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aT,targetWords:aR,maxWords:aU,maxTokens:aW,factCoverageContext:am,signal:b}),aX,a.signal)))),(0,aH.Te)(a.signal),!a6)throw Error(`${c.title} 大模型未返回有效章节正文`);let a7=a6,a8=ak(a7),bb=a8.length>=Math.min(3,c.sections?.length||3)?{...c,sections:a8}:c,bd=c_(a7,bb),bh=0,bi=bd.map(a=>`${a.sectionTitle}:${a.reason}:${a.bodyLength}`).join("|");for(;bd.length>0;){bh+=1,N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 存在 ${bd.length} 个小节缺口,正在按目标缺口强制补写`,details:bd.map(a=>a.message),progress:{current:h+1,total:bg.length,label:`小节补写第 ${bh} 轮`}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let b=a7,d=await I(()=>bO(bG,`chapter-section-repair:${c.id}:${bh}`,()=>cR({template:z,chapter:c,content:b,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:aB,maxWords:aC,forbidDrawingImages:U,factCoverageContext:am,forcedSections:bd,signal:a.signal})));d?.trim()&&(a7=d);let e=(bd=c_(a7,bb)).map(a=>`${a.sectionTitle}:${a.reason}:${a.bodyLength}`).join("|"),f=e!==bi;if(0===bd.length||!f)break;bi=e}bd.length>0&&(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"failed",message:`${(0,Q.GQ)(c.title)} 小节补齐仍未完全达标,已标记为阻断问题`,details:bd.map(a=>a.message),progress:{current:h+1,total:bg.length,label:"小节未达标"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C));let bl=bZ({chapter:c,content:a7,missingFacts:R,targetWords:aB}),bm=(0,aF.Ff)(bl);bG.quality.blockingCount+=bm.blocking,bG.quality.importantCount+=bm.important,bG.quality.minorCount+=bm.minor;let bn=bR(bl);if(bn.length>0){let b=a7;N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在根据质量问题修复章节:${bn.length} 个阻断问题`,details:bn,progress:{current:h+1,total:bg.length,label:"章节修复"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let d=await I(()=>bO(bG,`chapter-repair:${c.id}`,()=>b$({template:z,chapter:{id:c.id,title:c.title,content:b,evidence:P,missingFacts:[...R,...ac.map(a=>`事实需求未确认:${a}`)],sections:c.sections||[]},issues:bn,promptTexts:X,requirement:a.requirement,forbidDrawingImages:U,diagnostics:bG,signal:a.signal})));a7=d.content,d.appliedCount>0&&(bG.quality.repairedCount+=1),(0,aH.Te)(a.signal)}if(!a7.trim())throw Error(`${(0,Q.GQ)(c.title)} 首次生成失败,未获得可用于定稿的正文`);let bo=a7,bp=0;if((0,aE.V7)(bo)<Math.floor(.82*aB)||bR(bZ({chapter:c,content:bo,missingFacts:R,targetWords:aB})).length>0){N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 首次成稿未达定稿门槛,正在定向扩写`,details:[`当前 ${(0,aE.V7)(bo)} 字 / 目标 ${Math.floor(.95*aB)} 字`,`章节并发:${b_}`],progress:{current:h+1,total:bg.length,label:"章节扩写"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let b=await I(()=>bO(bG,`chapter-expand:${c.id}`,()=>cS({template:z,chapter:c,content:a7,evidence:P,promptTexts:X,requirement:a.requirement,roleContext:V,targetChars:Math.floor(.95*aB),maxChars:aC,forbidDrawingImages:U,maxTokens:Math.min(aK,aP),signal:a.signal})));bo=b.content,bp=b.rounds}bo=di(bo,c);let bq=ak(bo),br=(0,aF.yw)(bo,[{title:c.title,content:bo,sections:bq}]).filter(a=>"empty"===a.reason||"table_only"===a.reason);!function(a,b){try{let c=["chapter-generation-failure.env","document-generation-timeout.env"].map(b=>e.join(a,".dbg",b)).find(a=>f.existsSync(a));if(!c)return;let d=Object.fromEntries(f.readFileSync(c,"utf8").split(/\r?\n/u).map(a=>a.split("=")).filter(a=>a.length>=2).map(([a,...b])=>[a,b.join("=")])),g=d.DEBUG_SERVER_URL;if(!g)return;fetch(g,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sessionId:d.DEBUG_SESSION_ID||"chapter-generation-failure",runId:"pre",ts:Date.now(),...b})}).catch(()=>void 0)}catch{}}(v,{event:"section-repair-check",hypothesisId:"H1",chapterId:c.id,chapterTitle:c.title,gapCount:br.length,gaps:br.slice(0,10).map(a=>({title:a.sectionTitle,reason:a.reason,message:a.message})),contentChars:(0,aE.V7)(bo),targetWords:aB}),br.length>0&&(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在小节级定向补写 ${br.length} 个未达标小节`,details:br.slice(0,8).map(a=>a.message),progress:{current:h+1,total:bg.length,label:"小节补写"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),bo=await I(()=>bO(bG,`section-repair:${c.id}`,()=>cR({template:z,chapter:c,content:bo,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:Math.max(1200,Math.floor(.35*aB)),maxWords:Math.min(aC,Math.max(2400,Math.floor(.55*aB))),forbidDrawingImages:U,factCoverageContext:am,forcedSections:br,signal:a.signal}))),bo=di(bo,c),bq=ak(bo),br=(0,aF.yw)(bo,[{title:c.title,content:bo,sections:bq}]).filter(a=>"empty"===a.reason||"table_only"===a.reason),0===br.length&&(bG.quality.repairedCount+=1));let bs=cH({chapter:c,content:bo,evidence:P}),bt=(0,aE.V7)(bo),bu=ak(bo),bv=bu.length>0?bu:c.sections||[],bE=(0,aF.qK)(bo,[{title:c.title,content:bo,sections:bv}]).map(a=>a.message),bF=bs.slice(0,6).map(a=>`小节事实密度需优化:${a}`),bH=[...bZ({chapter:{...c,sections:bv},content:bo,missingFacts:R,targetWords:aB}),...bE,...bF],bI=function(a,b,c=[]){return a<=0||c.some(a=>/未返回有效章节正文|生成失败/u.test(a))?"failed":c.length>0?"fallback":"success"}(bt,0,bH);g=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:bI,message:bM(`${(0,Q.GQ)(c.title)} 已由大模型首轮成稿${bp>0?`并定向扩写 ${bp} 轮`:""}:当前 ${bt} 字 / 目标 ${Math.floor(.95*aB)} 字${"success"!==bI?`;风险:${bH.join("、")||"篇幅未达标"}`:""}`,i),details:[`达标率:${Math.round(bt/Math.max(1,Math.floor(.95*aB))*100)}%`,...$,`二级小节:${bv.length} 个`,`扩写轮次:${bp}`],progress:{current:h+1,total:bg.length,label:"success"===bI?"章节达标":"章节风险"}},{subtitle:(0,Q.GQ)(c.title),order:h}),aJ[h]=g;let bJ={id:c.id,title:c.title,content:bo,evidence:P,missingFacts:R,sections:bv};aI[h]=bJ,C=aI.filter(a=>!!a),F(C);let bN=bZ({chapter:c,content:bo,missingFacts:R,targetWords:aB}),bP=(0,aF.Ff)(bN);bG.quality.blockingCount+=bP.blocking,bG.quality.importantCount+=bP.important,bG.quality.minorCount+=bP.minor}catch(b){if(a.signal?.aborted)throw b;console.error(`[gen] chapter ${c.title} failed:`,b),aB.push(`${c.title}:${b instanceof Error?b.message:"生成失败"}`),aJ[h]=bK({type:"chapter_generation",roleId:"chapter_generation",status:"failed",message:`${(0,Q.GQ)(c.title)} 生成失败`},{subtitle:(0,Q.GQ)(c.title),order:h})}g&&(N[j]=g),F(C)}))}C=aI.filter(a=>!!a),aG.push(...aJ.filter(a=>!!a));let b6=C.flatMap(a=>a.evidence||[]);if(b6.length>0){av.push(...b6);let a=J(av,{maxChars:Math.max(5e4,9e3*bg.length),preservePinned:!0});av.splice(0,av.length,...a)}if(0===C.length)throw Error(`章节生成未完成:${aB.join(";")||"没有生成任何有效章节"}`);if(U&&C.length<bg.length)throw Error(`OUTLINE 指定 ${bg.length} 章,实际只生成 ${C.length} 章:${aB.join(";")||"部分章节未生成"}`);(0,aH.Te)(a.signal),bL(N,bK({type:"file_understanding",roleId:"multimodal-files",status:"running",message:"正在理解多模态参考文件"},{subtitle:"多模态参考文件"})),F(C);let b7={stage:{type:"file_understanding",roleId:"multimodal-files",status:"skipped",message:"文件理解跳过"},notes:[]};try{b7=await cf(v,av,a.signal)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fileUnderstanding failed:",b)}for(let b of(bL(N,b7.stage),F(C),(0,aH.Te)(a.signal),b7.notes))av.push({chapterId:"multimodal-file-understanding",filePath:"多模态模型文件理解结果",score:1,content:b,roleId:"multimodal-files",processingType:"reference",source:"multimodal"});let b8=J(av,{maxItems:Math.max(48,10*bg.length),maxChars:Math.max(52e3,9e3*bg.length),preservePinned:!0});av.splice(0,av.length,...b8);let b9=function(a,b,c){let d={};for(let e of(0,E.Uy)(a,c)){let a=b.find(a=>(0,E.I2)(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ")}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}(z,av,Y);for(let a of aZ)for(let b of a.facts)b9[b.key]=`${(0,aH.lG)(b.value)}(来源:${b.sourceFile},角色:${b.roleId})`;let ca=bm(av,z,Y),cb=bs(av),cc=bt(av,Z),cd=aZ.flatMap(a=>a.facts.map(a=>({key:a.key,value:(0,aH.lG)(a.value),sourceFile:a.sourceFile,roleId:a.roleId,confidence:.9}))),ce={facts:[],stages:[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"已有本地/角色事实覆盖主要必需字段,跳过 LLM 全量事实抽取"}]};if(function(a,b,c){let d=(0,E.Uy)(b,c).filter(a=>a.required);return 0===d.length?a.filter(a=>a.confidence>=.75&&(0,aH.lG)(a.value).trim().length>=2).length<12:d.filter(b=>a.some(a=>(function(a,b){let c=(0,aH.lG)(a.value).trim();if(!c||c.length<2||c.length>220&&a.confidence<.8)return!1;let d=`${a.fieldId||""} ${a.fieldName||""} ${a.key}`.toLowerCase();return!!(d.includes(b.id.toLowerCase())||d.includes(b.name.toLowerCase()))&&("project_basic_fact"===a.roleId||a.roleId?.startsWith("role-")||a.sourceRef?.filePath?a.confidence>=.55:a.confidence>=.75)})(a,b))).length/d.length<.9}([...cd,...ca,...cb,...cc],z,Y)){let b=J(av,{maxItems:48,maxChars:45e3,preservePinned:!0});try{ce=await bn(b,aj,z,Y,a.signal)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fact extraction failed:",b)}}(0,aH.Te)(a.signal);let ch=function(a,b){let c=b.find(a=>a.filePath)?.filePath||"";return c?a.map(a=>a.sourceFile?a:{...a,sourceFile:c,sourceRef:{filePath:c,roleId:a.sourceRef?.roleId||a.roleId,processingType:a.sourceRef?.processingType||a.processingType,sectionTitle:a.sourceRef?.sectionTitle,chunkIndex:a.sourceRef?.chunkIndex,cellRange:a.sourceRef?.cellRange}}):a}([...cd,...ca,...cb,...cc,...ce.facts],av);for(let a of(bL(N,b7.stage),ce.stages))bL(N,a);F();let ci=bl(av),cj=av.filter(a=>"pinned-evidence"===a.source).length,ck=av.filter(a=>"pinned-evidence"!==a.source&&"bound-file"!==a.source).length,cm=bK({type:"reference",roleId:"quality-enhancement",status:av.length>0?"success":"skipped",message:`增强贡献:知识库证据 ${av.length} 条,人工确认/固定证据 ${cj} 条,自动检索证据 ${ck} 条`},{subtitle:"证据与上下文增强"});for(let a of(N.push(cm),F(),ch))b9[a.key]=`${(0,aH.lG)(a.value)}(来源:${a.sourceFile},角色:${a.roleId})`;let cw=new Map;for(let a of av)cw.set(a.filePath,(cw.get(a.filePath)??0)+1);let cx=new Map;for(let a of av)cx.set(a.source||"unknown",(cx.get(a.source||"unknown")??0)+1);let cy=[...cw.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),cz=bE(ch,ci,ay,Y,Z),cA=C.map(a=>{let b=Y.chapterRules.find(b=>b.id===a.id||b.title===a.title),c=(b?.requiredFactIds||[]).map(a=>Y.factFields.find(b=>b.id===a)?.name).filter(Boolean),d=[...new Set([...a.missingFacts||[],...c].filter(Boolean))],e=d.filter(b=>!a.missingFacts.includes(b)),f=d.filter(b=>a.missingFacts.includes(b)),g=+(a.evidence.length>0),h=d.length?e.length/d.length:1;return{chapterId:a.id,title:a.title,requiredFacts:d,coveredFacts:e,missingFacts:f,evidenceCount:a.evidence.length,readinessRate:Math.min(1,.7*h+.3*g)}}),cB=function(a,b=[],c){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);c&&a.length<c.chapters.length&&f.push(`章节生成不完整:已生成 ${a.length}/${c.chapters.length} 章`),c&&0===(0,d.zY)(c).length&&f.push("模板未绑定任何提示词");let g=new Set(b.map(a=>a.roleId));return c?.fileBindings?.some(a=>"rule"===a.roleId)&&!g.has("rule")&&e.push("rule 角色未抽取到结构化事实"),{passed:0===f.length,warnings:e,errors:f}}(C,ch,z);cB.warnings=[...cB.warnings,..._.warnings],cB.errors=[...cB.errors,..._.blockingIssues];let cC=aZ.flatMap(a=>a.warnings.map(a=>({level:/结构化事实读取不足|结构化章节读取不足|兜底|片段/u.test(a)?"info":"warning",message:a,suggestion:"这是资料抽取诊断,不代表已抽取到的可靠参数不可用;生成时仍应优先使用绑定资料中的可靠参数。"}))).filter(a=>!df(a)),cD=aN(function(a,b,c){let d=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return c.some(a=>/资料未提供|系统暂未从知识库确认/u.test(a.content))&&d.push({level:"warning",message:"存在系统暂未从知识库确认的章节内容",suggestion:"请检查项目角色配置、文件绑定顺序和事实抽取落位结果。"}),b.conflicts.length>0&&d.push(...b.conflicts.map(a=>({level:"warning",message:a,suggestion:"请根据当前模板绑定的角色、文件证据和用户要求复核取值口径。"}))),d}(cB,cz,C),function(a){let b=[];for(let c of a)0===c.evidenceCount?b.push({level:"error",message:`章节缺少证据:${c.title}`,suggestion:"请补充对应绑定材料或调整模板章节检索词。"}):c.readinessRate<.5&&b.push({level:"warning",message:`章节事实覆盖率较低:${c.title} ${Math.round(100*c.readinessRate)}%`,suggestion:"建议补充章节 requiredFacts 或绑定材料证据。"});return b}(cA),cC),cE=bX(aZ,z),cF=Date.now(),cG=(0,aE.V7)(C.map(a=>a.content).join("\n\n"));bL(N,bK({type:"validation",roleId:"document-budget",status:"running",message:`正在进行全文预算校准:当前 ${cG} 字`,details:[`章节数:${C.length}`,`目标:${bw.targetChars||bw.targetPages||"按章节深度"}`],progress:{current:1,total:2,label:"预算校准"}},{subtitle:"文档预算"})),F(C);let cI=bF.enableDocumentBudgetExpansion?await I(()=>cT({template:z,chapters:C,budget:bw,promptTexts:ai,requirement:a.requirement,forbidDrawingImages:cE,signal:a.signal,onRoundProgress:(a,b)=>{C.splice(0,C.length,...a),bL(N,bK({type:"validation",roleId:"document-budget",status:"running",message:`正在进行全文预算校准:第 ${b.round}/${b.maxRounds} 轮,当前 ${b.totalChars} 字,新增 ${b.addedChars} 字`,details:[`章节数:${a.length}`,`目标:${bw.targetChars||bw.targetPages||"按章节深度"}`],progress:{current:Math.min(b.round+1,b.maxRounds),total:b.maxRounds+1,label:"预算校准"}},{subtitle:"文档预算"})),F(C)}})):C;C.splice(0,C.length,...cI);let cJ=C.map(a=>a.content).join("\n\n"),cN=dp(C,ch,cJ);cN.patchedCount>0&&(C.splice(0,C.length,...cN.chapters),cD=[...cD,{level:"info",message:`已自动补写未落位事实 ${cN.patchedCount} 项`,suggestion:"补写仅使用本项目资料明确事实,未补写商务敏感信息或系统暂未确认内容。"}]);let cO=(0,aE.fW)(bw,C.map(a=>a.content).join("\n\n")),cP=[bw.targetChars?`目标 ${bw.targetChars} 字${bw.minChars||bw.maxChars?`(区间 ${bw.minChars||0}-${bw.maxChars||"∞"} 字)`:""}`:void 0,bw.targetPages?`目标 ${bw.targetPages} 页${bw.minPages||bw.maxPages?`(区间 ${bw.minPages||0}-${bw.maxPages||"∞"} 页)`:""}`:void 0].filter(Boolean).join(" / ")||"默认章节深度";bL(N,bK({type:"validation",roleId:"document-budget",status:bw.maxChars&&cO.currentChars>bw.maxChars||bw.minChars&&cO.currentChars<bw.minChars?"fallback":"success",message:bM(`文档预算:当前 ${cO.currentChars} 字,新增 ${Math.max(0,cO.currentChars-cG)} 字,预计 ${cO.estimatedPages} 页;${cP}`,cF)},{subtitle:"文档预算"})),F(C);let cQ=aG.filter(a=>"chapter_generation"===a.type&&"fallback"===a.status).length,cZ=Math.max(0,bg.length-C.length),c0=[...cQ>0?[{level:"info",message:`章节生成存在补充完善:${cQ} 章`,suggestion:"已保留章节成果;如需更高质量可复核对应章节,但不阻断导出。"}]:[],...cZ>0?[{level:"error",message:`部分章节生成失败:${cZ} 章`,suggestion:aB.join(";")||"请检查模型调用、知识库检索和事实抽取配置后重新生成失败章节。"}]:[]],c2=C.flatMap(a=>{let b=bg.find(b=>b.id===a.id);if(!b)return[];let c=cH({chapter:b,content:a.content,evidence:a.evidence||[]});return c.length>0?[{level:"warning",message:`${(0,Q.GQ)(a.title)} 小节知识库事实或量化参数落位可继续优化:${c.slice(0,5).join(";")}`,suggestion:"建议扩大本地知识库检索并定向补写对应小节,优先使用清单、图纸、招标要求中的原始事实、规格、数量、标准和工期参数。"}]:[]}),c3=(cD=aN(cD,c0,c2)).filter(a=>"error"===a.level&&(0,aF.Nz)(a)).length,c4=[...N];bL(c4,bK({type:"reference",roleId:"knowledge-usage-report",status:"success",message:`资料使用报告:证据 ${av.length} 条,来源文件 ${cy.length} 份,结构化事实 ${ch.length} 条`,details:[`证据类型:${[...cx.entries()].map(([a,b])=>`${a} ${b}`).join(",")||"无"}`,`索引健康:可用切片 ${as.usableChunkCount} 条,待索引 ${as.pendingJobs} 个,向量 ${as.vectorStatus?.status||"unknown"}`,cN.patchedCount>0?`自动补写事实:${cN.patchedCount}/${cN.missingCount}`:`事实落位补写:0/${cN.missingCount}`]},{subtitle:"资料使用报告"})),bL(c4,bK({type:"reference",roleId:"web-research-report",status:ax.enabled?"success":"skipped",message:ax.enabled?`联网增强:检索章节 ${new Set(ax.chapters).size} 个,查询 ${ax.queries.length} 个,使用公开资料 ${ax.evidenceCount} 条`:"联网增强未开启",details:ax.enabled?[`检索主题:${[...new Set(ax.queries)].join(";")||"无"}`,`过滤结果:${ax.filteredCount} 条`,"公开资料仅用于通用规范、政策、工艺和措施补充,不作为项目事实来源"]:["可在模型配置中开启联网增强"]},{subtitle:"联网增强报告"})),bL(c4,bK({type:"validation",roleId:"document-workflow",status:c3>0?"failed":"success",message:`阻断 ${c3},错误 ${cB.errors.length},警告 ${cB.warnings.length}`},{subtitle:"最终规范校验"})),bL(c4,bK({type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"})),bL(c4,bK({type:"export_ready",roleId:"document-workflow",status:c3>0?"failed":"success",message:c3>0?"导出门禁未通过,请完成阻断问题修复后再导出":"已准备好导出 Markdown/HTML/DOCX/PDF"}));let c5={templateId:z.id,templateName:z.name,title:z.outputTitle,requirement:a.requirement||"",projectRoot:v,projectId:w,exportSettings:z.exportSettings,generationSettings:z.generationSettings,facts:b9,structuredFacts:ch,factsModel:cz,chapters:C,sources:cy,missingItems:[...new Set(ay)],validation:cB,validationIssues:cD,executionStages:c4,exportGate:{passed:0===c3,blockingIssues:cD.filter(a=>"error"===a.level&&(0,aF.Nz)(a)),checklist:[]},assets:[],partialChapters:C.map(a=>({id:a.id,title:a.title,chars:(0,aE.V7)(a.content),status:cX(a,bw.chapterTargets.get(a.id)),updatedAt:Date.now()})),checkpointChapters:C,generatedAt:Date.now()},c6=aD(c5,{forbidDrawingImages:cE,promptRules:ag});if("1"!==process.env.DOCUMENT_ENABLE_POST_EXPORT_REVIEW){let b=aC(c6,C,{forbidDrawingImages:cE,promptRules:ag}).chapters.map(a=>{let b=bg.find(b=>b.id===a.id)||a;return{...a,content:di(a.content,b)}}),c="",d=(a,b)=>aN(cD.filter(a=>!df(a)&&("error"!==a.level||!(0,aF.Nz)(a))),x({markdown:a,spec:Y,summary:W}),B({markdown:a,facts:ch,summary:W,profile:Z}),y(a,W),dd(a,ch),a3({markdown:a,chapters:b,factsModel:cz,template:z,promptBindings:P,promptDocumentRules:ag}),(0,aE.PE)(z.generationSettings||z.exportSettings,a).filter(a=>!(bw.minPages&&/低于目标页数/u.test(a.message))),(0,aE.ty)(bw,a)),e=[],f=()=>{var a;e=aO(d(c=dc(c1(de(aC(aD({...c5,chapters:b},{forbidDrawingImages:cE,promptRules:ag}),b,{forbidDrawingImages:cE,promptRules:ag}).markdown),ch),ch),b)),e=aO(d(c=dh(c,e).replace(/^##\s+(.+)$/gmu,(a,b)=>{let c=String(b||"").trim();return"目录"===c||/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(c)?a:`### ${c}`}),b)),a=c,e=aO(d(c=e.some(a=>/小节内容补写未完成|小节只有标题或表格无正文|空小节/u.test(a.message))?`${a.trim()}
199
+ ${b.join("\n")}`:""}(ab)}),ao={total:ab.length,satisfied:ab.filter(a=>"satisfied"===a.status).length,missing:ab.filter(a=>"missing"===a.status).length,lowConfidence:ab.filter(a=>"low_confidence"===a.status).length};for(let a of ac)ay.push(`${c.title}:事实需求未确认 ${a}`);let as=Y?.chapterRules.find(a=>a.id===c.id||a.title===c.title),az=bw.chapterTargets.get(c.id)||1200,aA=Math.max(3500,Number(process.env.DOCUMENT_LONGFORM_INITIAL_CHAPTER_CAP||8e3)),aB=bw.longformStrict?Math.min(az,aA):az,aC=Math.ceil(aB*(bw.maxChars?1.1:1.18)),aD=bw.targetChars?Math.min(1800,Math.max(600,Math.floor(.5*aB))):1200,aG=Math.max(Math.min(d?.minWords||0,aB),Math.min(as?.minWords||0,aB),Math.min(Y?.dynamicChapterRule.minWordsPerChapter||0,aB),Math.floor(.78*aB),aD),aK=cL(aG,aB),aL=Math.min(aB,6e3),aM=Math.max(900,Math.min(aB,Math.ceil(.55*aB),aL)),aN=Math.max(450,Math.min(aG,Math.floor(.72*aM))),aO=Math.max(aM+300,Math.min(aC,Math.ceil(1.25*aM))),aP=cL(aN,aM),aQ=Math.min(cM(aM),18e4),aR=Math.max(900,Math.min(aM,3600)),aT=Math.max(450,Math.min(aN,Math.floor(.72*aR))),aU=Math.max(aR+300,Math.min(aC,Math.ceil(1.2*aR))),aW=cL(aT,aR),aX=Math.min(cM(aR),15e4),a$=c.sections?.filter(Boolean).length||0,a0=/[、,,;;]/u.test(c.title),a3=Math.max(4,Number(process.env.DOCUMENT_SECTION_FIRST_MAX_SECTIONS||8)),a4=0!==Number(process.env.DOCUMENT_SECTION_FIRST_GENERATION??0)&&a$>=2&&a$<=a3&&(bw.longformStrict||!a0);N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:a4?`${(0,Q.GQ)(c.title)} 正在按小节并发成稿`:`${(0,Q.GQ)(c.title)} 正在整章一次成稿`,details:a4?[...$,`有效证据:${P.length} 条`,`事实需求:${ao.satisfied}/${ao.total} 已满足,缺失 ${ao.missing},低置信 ${ao.lowConfidence}`,`首轮质量目标:约 ${aB} 字${az!==aB?`,总预算分配约 ${az} 字`:""},上限约 ${aC} 字`,`规划小节:${c.sections?.length||0} 个`,"按章节结构拆分小节自然并发生成,章节聚合后再审查修复"]:[...$,`有效证据:${P.length} 条`,`事实需求:${ao.satisfied}/${ao.total} 已满足,缺失 ${ao.missing},低置信 ${ao.lowConfidence}`,`目标字数:约 ${aB} 字,上限约 ${aC} 字`,`规划小节:${a$} 个${a$>a3?",超过小节并发上限,改用整章稳定成稿":""}`,"首次生成必须覆盖章节结构、小节、事实和目标篇幅,后置修复仅兜底"],progress:{current:h+1,total:bg.length,label:a4?"小节并发":"整章成稿"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F();let a5=a4?Math.min(cM(aB)+3e4,33e4):Math.min(cM(aB),18e4),a6=a4?await I(()=>bO(bG,`chapter-section-draft:${c.id}`,()=>bj(b=>cK({template:z,chapter:c,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:aB,maxWords:aC,forbidDrawingImages:U,factCoverageContext:am,projectRoot:v,modelName:a_,fileRolesHash:a1,allowPartialResult:!1,sectionEvidenceProvider:a=>dv({manager:A,projectRoot:v,chapter:c,sectionTitle:a,scopedFilePaths:t,fileRoleByPath:ap,fileProcessingByPath:aq,signal:b}),diagnostics:bG,signal:b}),a5,a.signal))):await I(()=>bO(bG,`chapter-draft:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aG,targetWords:aB,maxWords:aC,maxTokens:aK,factCoverageContext:am,signal:b}),cM(aB),a.signal)));if(!a6&&a4)throw N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"failed",message:`${(0,Q.GQ)(c.title)} 小节并发未在限定时间内返回,已跳过整章重试并标记为章节阻断`,details:["小节优先模式不再执行整章重试,避免单章长时间空等;请优先重试失败小节或降低目标篇幅。"],progress:{current:h+1,total:bg.length,label:"小节超时"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),Error(`${c.title} 小节并发超时,已跳过整章重试`);if(a6||(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 整章成稿未完整返回,正在执行整章重试生成`,details:[`目标字数:约 ${aB} 字`,`有效证据:${P.length} 条`],progress:{current:h+1,total:bg.length,label:"整章重试"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),a6=await I(()=>bO(bG,`chapter-draft-fallback:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aN,targetWords:aM,maxWords:aO,maxTokens:aP,factCoverageContext:am,signal:b}),aQ,a.signal)))),(0,aH.Te)(a.signal),a6||(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在压缩上下文后重试生成`,details:["已压缩证据与上下文后重新请求模型生成",`目标字数:约 ${aB} 字`],progress:{current:h+1,total:bg.length,label:"紧凑重试"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),a6=await I(()=>bO(bG,`chapter-draft-compact-fallback:${c.id}`,()=>bj(b=>cg(z,c,P,R,X,bk,a.requirement,V,{forbidDrawingImages:U,minWords:aT,targetWords:aR,maxWords:aU,maxTokens:aW,factCoverageContext:am,signal:b}),aX,a.signal)))),(0,aH.Te)(a.signal),!a6)throw Error(`${c.title} 大模型未返回有效章节正文`);let a7=a6,a8=ak(a7),bb=a8.length>=Math.min(3,c.sections?.length||3)?{...c,sections:a8}:c,bd=c_(a7,bb),bh=0,bi=bd.map(a=>`${a.sectionTitle}:${a.reason}:${a.bodyLength}`).join("|");for(;bd.length>0;){bh+=1,N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 存在 ${bd.length} 个小节缺口,正在按目标缺口强制补写`,details:bd.map(a=>a.message),progress:{current:h+1,total:bg.length,label:`小节补写第 ${bh} 轮`}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let b=a7,d=await I(()=>bO(bG,`chapter-section-repair:${c.id}:${bh}`,()=>cR({template:z,chapter:c,content:b,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:aB,maxWords:aC,forbidDrawingImages:U,factCoverageContext:am,forcedSections:bd,signal:a.signal})));d?.trim()&&(a7=d);let e=(bd=c_(a7,bb)).map(a=>`${a.sectionTitle}:${a.reason}:${a.bodyLength}`).join("|"),f=e!==bi;if(0===bd.length||!f)break;bi=e}bd.length>0&&(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"failed",message:`${(0,Q.GQ)(c.title)} 小节补齐仍未完全达标,已标记为阻断问题`,details:bd.map(a=>a.message),progress:{current:h+1,total:bg.length,label:"小节未达标"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C));let bl=bZ({chapter:c,content:a7,missingFacts:R,targetWords:aB}),bm=(0,aF.Ff)(bl);bG.quality.blockingCount+=bm.blocking,bG.quality.importantCount+=bm.important,bG.quality.minorCount+=bm.minor;let bn=bR(bl);if(bn.length>0){let b=a7;N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在根据质量问题修复章节:${bn.length} 个阻断问题`,details:bn,progress:{current:h+1,total:bg.length,label:"章节修复"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let d=await I(()=>bO(bG,`chapter-repair:${c.id}`,()=>b$({template:z,chapter:{id:c.id,title:c.title,content:b,evidence:P,missingFacts:[...R,...ac.map(a=>`事实需求未确认:${a}`)],sections:c.sections||[]},issues:bn,promptTexts:X,requirement:a.requirement,forbidDrawingImages:U,diagnostics:bG,signal:a.signal})));a7=d.content,d.appliedCount>0&&(bG.quality.repairedCount+=1),(0,aH.Te)(a.signal)}if(!a7.trim())throw Error(`${(0,Q.GQ)(c.title)} 首次生成失败,未获得可用于定稿的正文`);let bo=a7,bp=0;if((0,aE.V7)(bo)<Math.floor(.82*aB)||bR(bZ({chapter:c,content:bo,missingFacts:R,targetWords:aB})).length>0){N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 首次成稿未达定稿门槛,正在定向扩写`,details:[`当前 ${(0,aE.V7)(bo)} 字 / 目标 ${Math.floor(.95*aB)} 字`,`章节并发:${b_}`],progress:{current:h+1,total:bg.length,label:"章节扩写"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C);let b=await I(()=>bO(bG,`chapter-expand:${c.id}`,()=>cS({template:z,chapter:c,content:a7,evidence:P,promptTexts:X,requirement:a.requirement,roleContext:V,targetChars:Math.floor(.95*aB),maxChars:aC,forbidDrawingImages:U,maxTokens:Math.min(aK,aP),signal:a.signal})));bo=b.content,bp=b.rounds}bo=di(bo,c);let bq=ak(bo),br=(0,aF.yw)(bo,[{title:c.title,content:bo,sections:bq}]).filter(a=>"empty"===a.reason||"table_only"===a.reason);!function(a,b){try{let c=["chapter-generation-failure.env","document-generation-timeout.env"].map(b=>e.join(a,".dbg",b)).find(a=>f.existsSync(a));if(!c)return;let d=Object.fromEntries(f.readFileSync(c,"utf8").split(/\r?\n/u).map(a=>a.split("=")).filter(a=>a.length>=2).map(([a,...b])=>[a,b.join("=")])),g=d.DEBUG_SERVER_URL;if(!g)return;fetch(g,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sessionId:d.DEBUG_SESSION_ID||"chapter-generation-failure",runId:"pre",ts:Date.now(),...b})}).catch(()=>void 0)}catch{}}(v,{event:"section-repair-check",hypothesisId:"H1",chapterId:c.id,chapterTitle:c.title,gapCount:br.length,gaps:br.slice(0,10).map(a=>({title:a.sectionTitle,reason:a.reason,message:a.message})),contentChars:(0,aE.V7)(bo),targetWords:aB}),br.length>0&&(N[j]=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:"running",message:`${(0,Q.GQ)(c.title)} 正在小节级定向补写 ${br.length} 个未达标小节`,details:br.slice(0,8).map(a=>a.message),progress:{current:h+1,total:bg.length,label:"小节补写"}},{subtitle:(0,Q.GQ)(c.title),order:h}),F(C),bo=await I(()=>bO(bG,`section-repair:${c.id}`,()=>cR({template:z,chapter:c,content:bo,evidence:P,missingFacts:R,promptTexts:X,projectContext:bk,requirement:a.requirement,roleContext:V,targetWords:Math.max(1200,Math.floor(.35*aB)),maxWords:Math.min(aC,Math.max(2400,Math.floor(.55*aB))),forbidDrawingImages:U,factCoverageContext:am,forcedSections:br,signal:a.signal}))),bo=di(bo,c),bq=ak(bo),br=(0,aF.yw)(bo,[{title:c.title,content:bo,sections:bq}]).filter(a=>"empty"===a.reason||"table_only"===a.reason),0===br.length&&(bG.quality.repairedCount+=1));let bs=cH({chapter:c,content:bo,evidence:P}),bt=(0,aE.V7)(bo),bu=ak(bo),bv=bu.length>0?bu:c.sections||[],bE=(0,aF.qK)(bo,[{title:c.title,content:bo,sections:bv}]).map(a=>a.message),bF=bs.slice(0,6).map(a=>`小节事实密度需优化:${a}`),bH=[...bZ({chapter:{...c,sections:bv},content:bo,missingFacts:R,targetWords:aB}),...bE,...bF],bI=function(a,b,c=[]){return a<=0||c.some(a=>/未返回有效章节正文|生成失败/u.test(a))?"failed":c.length>0?"fallback":"success"}(bt,0,bH);g=bK({type:"chapter_generation",roleId:"chapter_generation",promptId:W.primaryPromptId,status:bI,message:bM(`${(0,Q.GQ)(c.title)} 已由大模型首轮成稿${bp>0?`并定向扩写 ${bp} 轮`:""}:当前 ${bt} 字 / 目标 ${Math.floor(.95*aB)} 字${"success"!==bI?`;风险:${bH.join("、")||"篇幅未达标"}`:""}`,i),details:[`达标率:${Math.round(bt/Math.max(1,Math.floor(.95*aB))*100)}%`,...$,`二级小节:${bv.length} 个`,`扩写轮次:${bp}`],progress:{current:h+1,total:bg.length,label:"success"===bI?"章节达标":"章节风险"}},{subtitle:(0,Q.GQ)(c.title),order:h}),aJ[h]=g;let bJ={id:c.id,title:c.title,content:bo,evidence:P,missingFacts:R,sections:bv};aI[h]=bJ,C=aI.filter(a=>!!a),F(C);let bN=bZ({chapter:c,content:bo,missingFacts:R,targetWords:aB}),bP=(0,aF.Ff)(bN);bG.quality.blockingCount+=bP.blocking,bG.quality.importantCount+=bP.important,bG.quality.minorCount+=bP.minor}catch(b){if(a.signal?.aborted)throw b;console.error(`[gen] chapter ${c.title} failed:`,b),aB.push(`${c.title}:${b instanceof Error?b.message:"生成失败"}`),aJ[h]=bK({type:"chapter_generation",roleId:"chapter_generation",status:"failed",message:`${(0,Q.GQ)(c.title)} 生成失败`},{subtitle:(0,Q.GQ)(c.title),order:h})}g&&(N[j]=g),F(C)}))}C=aI.filter(a=>!!a),aG.push(...aJ.filter(a=>!!a));let b6=C.flatMap(a=>a.evidence||[]);if(b6.length>0){av.push(...b6);let a=J(av,{maxChars:Math.max(5e4,9e3*bg.length),preservePinned:!0});av.splice(0,av.length,...a)}if(0===C.length)throw Error(`章节生成未完成:${aB.join(";")||"没有生成任何有效章节"}`);if(U&&C.length<bg.length)throw Error(`OUTLINE 指定 ${bg.length} 章,实际只生成 ${C.length} 章:${aB.join(";")||"部分章节未生成"}`);(0,aH.Te)(a.signal),bL(N,bK({type:"file_understanding",roleId:"multimodal-files",status:"running",message:"正在理解多模态参考文件"},{subtitle:"多模态参考文件"})),F(C);let b7={stage:{type:"file_understanding",roleId:"multimodal-files",status:"skipped",message:"文件理解跳过"},notes:[]};try{b7=await cf(v,av,a.signal)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fileUnderstanding failed:",b)}for(let b of(bL(N,b7.stage),F(C),(0,aH.Te)(a.signal),b7.notes))av.push({chapterId:"multimodal-file-understanding",filePath:"多模态模型文件理解结果",score:1,content:b,roleId:"multimodal-files",processingType:"reference",source:"multimodal"});let b8=J(av,{maxItems:Math.max(48,10*bg.length),maxChars:Math.max(52e3,9e3*bg.length),preservePinned:!0});av.splice(0,av.length,...b8);let b9=function(a,b,c){let d={};for(let e of(0,E.Uy)(a,c)){let a=b.find(a=>(0,E.I2)(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ")}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}(z,av,Y);for(let a of aZ)for(let b of a.facts)b9[b.key]=`${(0,aH.lG)(b.value)}(来源:${b.sourceFile},角色:${b.roleId})`;let ca=bm(av,z,Y),cb=bs(av),cc=bt(av,Z),cd=aZ.flatMap(a=>a.facts.map(a=>({key:a.key,value:(0,aH.lG)(a.value),sourceFile:a.sourceFile,roleId:a.roleId,confidence:.9}))),ce={facts:[],stages:[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"已有本地/角色事实覆盖主要必需字段,跳过 LLM 全量事实抽取"}]};if(function(a,b,c){let d=(0,E.Uy)(b,c).filter(a=>a.required);return 0===d.length?a.filter(a=>a.confidence>=.75&&(0,aH.lG)(a.value).trim().length>=2).length<12:d.filter(b=>a.some(a=>(function(a,b){let c=(0,aH.lG)(a.value).trim();if(!c||c.length<2||c.length>220&&a.confidence<.8)return!1;let d=`${a.fieldId||""} ${a.fieldName||""} ${a.key}`.toLowerCase();return!!(d.includes(b.id.toLowerCase())||d.includes(b.name.toLowerCase()))&&("project_basic_fact"===a.roleId||a.roleId?.startsWith("role-")||a.sourceRef?.filePath?a.confidence>=.55:a.confidence>=.75)})(a,b))).length/d.length<.9}([...cd,...ca,...cb,...cc],z,Y)){let b=J(av,{maxItems:48,maxChars:45e3,preservePinned:!0});try{ce=await bn(b,aj,z,Y,a.signal)}catch(b){if(a.signal?.aborted)throw b;console.error("[gen] fact extraction failed:",b)}}(0,aH.Te)(a.signal);let ch=function(a,b){let c=b.find(a=>a.filePath)?.filePath||"";return c?a.map(a=>a.sourceFile?a:{...a,sourceFile:c,sourceRef:{filePath:c,roleId:a.sourceRef?.roleId||a.roleId,processingType:a.sourceRef?.processingType||a.processingType,sectionTitle:a.sourceRef?.sectionTitle,chunkIndex:a.sourceRef?.chunkIndex,cellRange:a.sourceRef?.cellRange}}):a}([...cd,...ca,...cb,...cc,...ce.facts],av);for(let a of(bL(N,b7.stage),ce.stages))bL(N,a);F();let ci=bl(av),cj=av.filter(a=>"pinned-evidence"===a.source).length,ck=av.filter(a=>"pinned-evidence"!==a.source&&"bound-file"!==a.source).length,cm=bK({type:"reference",roleId:"quality-enhancement",status:av.length>0?"success":"skipped",message:`增强贡献:知识库证据 ${av.length} 条,人工确认/固定证据 ${cj} 条,自动检索证据 ${ck} 条`},{subtitle:"证据与上下文增强"});for(let a of(N.push(cm),F(),ch))b9[a.key]=`${(0,aH.lG)(a.value)}(来源:${a.sourceFile},角色:${a.roleId})`;let cw=new Map;for(let a of av)cw.set(a.filePath,(cw.get(a.filePath)??0)+1);let cx=new Map;for(let a of av)cx.set(a.source||"unknown",(cx.get(a.source||"unknown")??0)+1);let cy=[...cw.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),cz=bE(ch,ci,ay,Y,Z),cA=C.map(a=>{let b=Y.chapterRules.find(b=>b.id===a.id||b.title===a.title),c=(b?.requiredFactIds||[]).map(a=>Y.factFields.find(b=>b.id===a)?.name).filter(Boolean),d=[...new Set([...a.missingFacts||[],...c].filter(Boolean))],e=d.filter(b=>!a.missingFacts.includes(b)),f=d.filter(b=>a.missingFacts.includes(b)),g=+(a.evidence.length>0),h=d.length?e.length/d.length:1;return{chapterId:a.id,title:a.title,requiredFacts:d,coveredFacts:e,missingFacts:f,evidenceCount:a.evidence.length,readinessRate:Math.min(1,.7*h+.3*g)}}),cB=function(a,b=[],c){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);c&&a.length<c.chapters.length&&f.push(`章节生成不完整:已生成 ${a.length}/${c.chapters.length} 章`),c&&0===(0,d.zY)(c).length&&f.push("模板未绑定任何提示词");let g=new Set(b.map(a=>a.roleId));return c?.fileBindings?.some(a=>"rule"===a.roleId)&&!g.has("rule")&&e.push("rule 角色未抽取到结构化事实"),{passed:0===f.length,warnings:e,errors:f}}(C,ch,z);cB.warnings=[...cB.warnings,..._.warnings],cB.errors=[...cB.errors,..._.blockingIssues];let cC=aZ.flatMap(a=>a.warnings.map(a=>({level:/结构化事实读取不足|结构化章节读取不足|兜底|片段/u.test(a)?"info":"warning",message:a,suggestion:"这是资料抽取诊断,不代表已抽取到的可靠参数不可用;生成时仍应优先使用绑定资料中的可靠参数。"}))).filter(a=>!df(a)),cD=aN(function(a,b,c){let d=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return c.some(a=>/资料未提供|系统暂未从知识库确认/u.test(a.content))&&d.push({level:"warning",message:"存在系统暂未从知识库确认的章节内容",suggestion:"请检查项目角色配置、文件绑定顺序和事实抽取落位结果。"}),b.conflicts.length>0&&d.push(...b.conflicts.map(a=>({level:"warning",message:a,suggestion:"请根据当前模板绑定的角色、文件证据和用户要求复核取值口径。"}))),d}(cB,cz,C),function(a){let b=[];for(let c of a)0===c.evidenceCount?b.push({level:"error",message:`章节缺少证据:${c.title}`,suggestion:"请补充对应绑定材料或调整模板章节检索词。"}):c.readinessRate<.5&&b.push({level:"warning",message:`章节事实覆盖率较低:${c.title} ${Math.round(100*c.readinessRate)}%`,suggestion:"建议补充章节 requiredFacts 或绑定材料证据。"});return b}(cA),cC),cE=bX(aZ,z),cF=Date.now(),cG=(0,aE.V7)(C.map(a=>a.content).join("\n\n"));bL(N,bK({type:"validation",roleId:"document-budget",status:"running",message:`正在进行全文预算校准:当前 ${cG} 字`,details:[`章节数:${C.length}`,`目标:${bw.targetChars||bw.targetPages||"按章节深度"}`],progress:{current:1,total:2,label:"预算校准"}},{subtitle:"文档预算"})),F(C);let cI=bF.enableDocumentBudgetExpansion?await I(()=>cT({template:z,chapters:C,budget:bw,promptTexts:ai,requirement:a.requirement,forbidDrawingImages:cE,signal:a.signal,onRoundProgress:(a,b)=>{C.splice(0,C.length,...a),bL(N,bK({type:"validation",roleId:"document-budget",status:"running",message:`正在进行全文预算校准:第 ${b.round}/${b.maxRounds} 轮,当前 ${b.totalChars} 字,新增 ${b.addedChars} 字`,details:[`章节数:${a.length}`,`目标:${bw.targetChars||bw.targetPages||"按章节深度"}`],progress:{current:Math.min(b.round+1,b.maxRounds),total:b.maxRounds+1,label:"预算校准"}},{subtitle:"文档预算"})),F(C)}})):C;C.splice(0,C.length,...cI);let cJ=C.map(a=>a.content).join("\n\n"),cN=dp(C,ch,cJ);cN.patchedCount>0&&(C.splice(0,C.length,...cN.chapters),cD=[...cD,{level:"info",message:`已自动补写未落位事实 ${cN.patchedCount} 项`,suggestion:"补写仅使用本项目资料明确事实,未补写商务敏感信息或系统暂未确认内容。"}]);let cO=(0,aE.fW)(bw,C.map(a=>a.content).join("\n\n")),cP=[bw.targetChars?`目标 ${bw.targetChars} 字${bw.minChars||bw.maxChars?`(区间 ${bw.minChars||0}-${bw.maxChars||"∞"} 字)`:""}`:void 0,bw.targetPages?`目标 ${bw.targetPages} 页${bw.minPages||bw.maxPages?`(区间 ${bw.minPages||0}-${bw.maxPages||"∞"} 页)`:""}`:void 0].filter(Boolean).join(" / ")||"默认章节深度";bL(N,bK({type:"validation",roleId:"document-budget",status:bw.maxChars&&cO.currentChars>bw.maxChars||bw.minChars&&cO.currentChars<bw.minChars?"fallback":"success",message:bM(`文档预算:当前 ${cO.currentChars} 字,新增 ${Math.max(0,cO.currentChars-cG)} 字,预计 ${cO.estimatedPages} 页;${cP}`,cF)},{subtitle:"文档预算"})),F(C);let cQ=aG.filter(a=>"chapter_generation"===a.type&&"fallback"===a.status).length,cZ=Math.max(0,bg.length-C.length),c0=[...cQ>0?[{level:"info",message:`章节生成存在补充完善:${cQ} 章`,suggestion:"已保留章节成果;如需更高质量可复核对应章节,但不阻断导出。"}]:[],...cZ>0?[{level:"error",message:`部分章节生成失败:${cZ} 章`,suggestion:aB.join(";")||"请检查模型调用、知识库检索和事实抽取配置后重新生成失败章节。"}]:[]],c2=C.flatMap(a=>{let b=bg.find(b=>b.id===a.id);if(!b)return[];let c=cH({chapter:b,content:a.content,evidence:a.evidence||[]});return c.length>0?[{level:"warning",message:`${(0,Q.GQ)(a.title)} 小节知识库事实或量化参数落位可继续优化:${c.slice(0,5).join(";")}`,suggestion:"建议扩大本地知识库检索并定向补写对应小节,优先使用清单、图纸、招标要求中的原始事实、规格、数量、标准和工期参数。"}]:[]}),c3=(cD=aN(cD,c0,c2)).filter(a=>"error"===a.level&&(0,aF.Nz)(a)).length,c4=[...N];bL(c4,bK({type:"reference",roleId:"knowledge-usage-report",status:"success",message:`资料使用报告:证据 ${av.length} 条,来源文件 ${cy.length} 份,结构化事实 ${ch.length} 条`,details:[`证据类型:${[...cx.entries()].map(([a,b])=>`${a} ${b}`).join(",")||"无"}`,`索引健康:可用切片 ${as.usableChunkCount} 条,待索引 ${as.pendingJobs} 个,向量 ${as.vectorStatus?.status||"unknown"}`,cN.patchedCount>0?`自动补写事实:${cN.patchedCount}/${cN.missingCount}`:`事实落位补写:0/${cN.missingCount}`]},{subtitle:"资料使用报告"})),bL(c4,bK({type:"reference",roleId:"web-research-report",status:ax.enabled?"success":"skipped",message:ax.enabled?`联网增强:检索章节 ${new Set(ax.chapters).size} 个,查询 ${ax.queries.length} 个,使用公开资料 ${ax.evidenceCount} 条`:"联网增强未开启",details:ax.enabled?[`检索主题:${[...new Set(ax.queries)].join(";")||"无"}`,`过滤结果:${ax.filteredCount} 条`,"公开资料仅用于通用规范、政策、工艺和措施补充,不作为项目事实来源"]:["可在模型配置中开启联网增强"]},{subtitle:"联网增强报告"})),bL(c4,bK({type:"validation",roleId:"document-workflow",status:c3>0?"failed":"success",message:`阻断 ${c3},错误 ${cB.errors.length},警告 ${cB.warnings.length}`},{subtitle:"最终规范校验"})),bL(c4,bK({type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"})),bL(c4,bK({type:"export_ready",roleId:"document-workflow",status:c3>0?"failed":"success",message:c3>0?"导出门禁未通过,请完成阻断问题修复后再导出":"已准备好导出 Markdown/HTML/DOCX/PDF"}));let c5={templateId:z.id,templateName:z.name,title:z.outputTitle,requirement:a.requirement||"",projectRoot:v,projectId:w,exportSettings:z.exportSettings,generationSettings:z.generationSettings,facts:b9,structuredFacts:ch,factsModel:cz,chapters:C,sources:cy,missingItems:[...new Set(ay)],validation:cB,validationIssues:cD,executionStages:c4,exportGate:{passed:0===c3,blockingIssues:cD.filter(a=>"error"===a.level&&(0,aF.Nz)(a)),checklist:[]},assets:[],partialChapters:C.map(a=>({id:a.id,title:a.title,chars:(0,aE.V7)(a.content),status:cX(a,bw.chapterTargets.get(a.id)),updatedAt:Date.now()})),checkpointChapters:C,generatedAt:Date.now()},c6=aD(c5,{forbidDrawingImages:cE,promptRules:ag});if("1"!==process.env.DOCUMENT_ENABLE_POST_EXPORT_REVIEW){let b=aC(c6,C,{forbidDrawingImages:cE,promptRules:ag}).chapters.map(a=>{let b=bg.find(b=>b.id===a.id)||a;return{...a,content:di(a.content,b)}}),c="",d=(a,b)=>aN(cD.filter(a=>!df(a)&&"error"!==a.level&&!/目录与正文不一致|表格分隔线位置不规范|正文存在过长段落|正文存在非正式章二级标题|正文残留资料页码|小节只有标题或表格无正文/u.test(a.message)),x({markdown:a,spec:Y,summary:W}),B({markdown:a,facts:ch,summary:W,profile:Z}),y(a,W),dd(a,ch),a3({markdown:a,chapters:b,factsModel:cz,template:z,promptBindings:P,promptDocumentRules:ag}),(0,aE.PE)(z.generationSettings||z.exportSettings,a).filter(a=>!(bw.minPages&&/低于目标页数/u.test(a.message))),(0,aE.ty)(bw,a)),e=[],f=()=>{var a;e=aO(d(c=dc(c1(de(aC(aD({...c5,chapters:b},{forbidDrawingImages:cE,promptRules:ag}),b,{forbidDrawingImages:cE,promptRules:ag}).markdown),ch),ch),b)),e=aO(d(c=dh(c,e).replace(/^##\s+(.+)$/gmu,(a,b)=>{let c=String(b||"").trim();return"目录"===c||/^第[一二三四五六七八九十百千万\d]+章\s+/u.test(c)?a:`### ${c}`}),b)),a=c,e=aO(d(c=e.some(a=>/小节内容补写未完成|小节只有标题或表格无正文|空小节/u.test(a.message))?`${a.trim()}
200
200
 
201
201
  **小节执行说明补充**
202
202
 
@@ -1,6 +1,6 @@
1
1
  "use strict";exports.id=8661,exports.ids=[8661],exports.modules={37095:(a,b,c)=>{c.d(b,{CU:()=>q,H7:()=>p,JB:()=>m,Qf:()=>k,kW:()=>n,oy:()=>l,sn:()=>o});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}function j(a,b){let c=h(a);d.mkdirSync(f.dirname(c),{recursive:!0}),d.writeFileSync(c,`${b.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
2
2
  `,"utf8")}function k(a,b){let c=Date.now(),d=i(a),e=d.findIndex(a=>a.id===b.id),f=e>=0?d[e]:void 0,g={id:b.id,type:b.type,title:b.title,stage:b.stage??f?.stage??"uploading",status:b.status??f?.status??"processing",message:b.message??f?.message??"",percent:b.percent??f?.percent??0,fileName:b.fileName??f?.fileName,filePath:b.filePath??f?.filePath,chunkCount:b.chunkCount??f?.chunkCount,textLength:b.textLength??f?.textLength,extractionMode:b.extractionMode??f?.extractionMode,error:b.error??f?.error,details:b.details??f?.details,createdAt:f?.createdAt??c,updatedAt:c};return e>=0?d[e]=g:d.push(g),j(a,d),g}function l(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function m(a,b){return i(a).find(a=>a.id===b)}function n(a,b){return i(a).filter(a=>!b||a.type===b).sort((a,b)=>b.updatedAt-a.updatedAt)[0]}function o(a){return i(a).filter(a=>"processing"===a.status).sort((a,b)=>b.updatedAt-a.updatedAt)}function p(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}function q(a,b){let c=i(a),d=c.filter(a=>a.id!==b);return d.length!==c.length&&(j(a,d),!0)}},48661:(a,b,c)=>{c.d(b,{BH:()=>I,Gl:()=>t,JU:()=>L,Jz:()=>M,M$:()=>C,QG:()=>H,SE:()=>x,YL:()=>S,a6:()=>F,r:()=>G,v7:()=>D,yE:()=>K});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(31924),i=c(23760),j=c(19898),k=c(44533),l=c(78217),m=c(37095);function n(a,b){return a?.map(a=>"running"===a.status?{...a,status:"failed",message:b}:a)}function o(a){return a.title&&"生成中"!==a.title?a.title:`${a.templateName||"文档"}生成失败`}function p(...a){let b=new Map;for(let c of a)for(let a of c||[])a.id&&a.content?.trim()&&b.set(a.id,a);return[...b.values()]}let q=new Map,r=Math.max(6e5,Number(process.env.DOCUMENT_TASK_TIMEOUT_MS??54e5)),s=Math.max(6e5,Number(process.env.DOCUMENT_TASK_NO_PROGRESS_MS??18e5));function t(a=(0,k.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,k.aY)()){return(0,j.computeProjectId)(g.resolve(a))}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function u(a=(0,k.aY)()){return g.join(t(a),"index.json")}function v(a=(0,k.aY)()){return g.join(t(a),"assets.json")}function w(a,b=(0,k.aY)()){return g.join(t(b),"drafts",`${a}.json`)}function x(a,b=(0,k.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(t(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function y(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function z(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function A(a){for(let b of q.values())if(b.documentId===a)return b;return null}function B(a,b=(0,k.aY)()){if("generating"!==a.status||A(a.id))return a;let c=Math.max(r,2*s);if(Date.now()-a.updatedAt<c)return a;let d="生成任务已中断,请点击继续生成或重新生成",e=a.checkpointChapters?.length?"warning":"failed",f={...a,title:o(a),status:e,error:a.error||d,executionStages:n(a.executionStages,d),completedAt:Date.now(),warningIssues:a.checkpointChapters?.length?[...a.warningIssues||[],d]:a.warningIssues};return a.taskId&&R(b,{taskId:a.taskId,title:`生成 ${f.title}`,status:"warning"===e?"warning":"error",percent:100,message:d,stages:f.executionStages,error:d}),f}function C(a=(0,k.aY)()){return y(u(a),[]).map(b=>{let c=B(b,a);return c!==b&&E(c,a),c}).sort((a,b)=>b.updatedAt-a.updatedAt)}function D(a,b=(0,k.aY)()){let c=y(w(a,b),null);if(!c)return null;let d=B(c,b);return d!==c?E(d,b):d}function E(a,b=(0,k.aY)()){let c=Date.now(),d=O({...a,updatedAt:c});z(w(d.id,b),d);let e=y(u(b),[]).filter(a=>a.id!==d.id);return e.unshift(d),z(u(b),e.map(a=>O({...a,draft:void 0,executionStages:a.executionStages,partialChapters:a.partialChapters,checkpointChapters:a.checkpointChapters,reviewMetadata:a.reviewMetadata}))),d}function F(a,b,c=(0,k.aY)()){let d=D(a,c);return d?E({...d,...b,id:a},c):null}function G(a,b=(0,k.aY)()){let c=D(a,b);if(!c)return null;if("generating"!==c.status)return c;for(let[b,c]of q)c.documentId===a&&(c.status="aborted",c.controller.abort(),P(c),q.delete(b));let d="用户中止",e=n(c.executionStages,d),f=E({...c,status:"aborted",error:d,executionStages:e,completedAt:Date.now()},b);return f.taskId&&R(b,{taskId:f.taskId,title:`生成 ${f.title}`,status:"warning",percent:100,message:d,stages:e,error:d}),f}function H(a,b=(0,k.aY)()){try{e.rmSync(w(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}z(u(b),C(b).filter(b=>b.id!==a))}function I(a=(0,k.aY)()){return y(v(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function J(a,b,c=(0,k.aY)()){let d=Date.now(),e=[...I(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return z(v(c),e),e}function K(a,b=(0,k.aY)()){return I(b).find(b=>b.id===a)||null}function L(a,b=(0,k.aY)()){let c=K(a,b);if(!c)return!1;let d=x(c,b);if(d&&d.startsWith(t(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return z(v(b),I(b).filter(b=>b.id!==a)),!0}function M(a,b,c=(0,k.aY)()){let d=K(a,c);if(!d)return null;let f=x(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function N(a){let b=Math.max(4,Math.floor(Number(process.env.DOCUMENT_PERSIST_EVIDENCE_MAX_ITEMS??10))),c=Math.max(300,Math.floor(Number(process.env.DOCUMENT_PERSIST_EVIDENCE_ITEM_CHARS??900)));return{...a,evidence:(a.evidence||[]).slice(0,b).map(a=>({...a,content:"string"==typeof a.content?a.content.replace(/\s+/gu," ").slice(0,c):""}))}}function O(a){let b=a.draft?{...a.draft,chapters:a.draft.chapters?.map(N),checkpointChapters:a.draft.checkpointChapters?.map(N)}:a.draft;return{...a,draft:b,checkpointChapters:a.checkpointChapters?.map(N)}}function P(a){a.timeoutTimer&&clearTimeout(a.timeoutTimer),a.progressTimer&&clearInterval(a.progressTimer)}function Q(a,b){let c=D(a.documentId,b);return c&&"generating"===c.status?{taskId:a.id,documentId:a.documentId,record:c}:null}function R(a,b){(0,m.Qf)(a,{id:b.taskId,type:"document",title:b.title,stage:"processing"===b.status?"generating":"error"===b.status?"error":"done",status:b.status,percent:b.percent,message:b.message,error:b.error,details:(b.stages||[]).filter(a=>"role_binding"===a.type||"runtime-prompt-rules"===a.roleId||"document-readiness"===a.roleId||"default-path-quality-repair"===a.roleId||"export_ready"===a.type||"failed"===a.status||"fallback"===a.status).flatMap(a=>[`${a.subtitle||a.roleName||a.roleId}:${a.message||a.status}`,...(a.details||[]).slice(0,8).map(a=>` - ${a}`)]).slice(0,80)})}function S(a,b=(0,k.aY)()){let c=g.resolve(b),f=(0,j.computeProjectId)(c),m=Date.now(),u=a.resumeDocumentId?D(a.resumeDocumentId,c):null;if(u){let a=A(u.id),b=a?Q(a,c):null;if(b)return b}if(!u)for(let b of q.values()){let d=Q(b,c);if(d&&d.record.templateId===a.templateId&&d.record.projectRoot===c)return d}let v=u?.id||`doc-${m}-${d.randomBytes(4).toString("hex")}`,w=`task-${m}-${d.randomBytes(4).toString("hex")}`,x=u?{...u,taskId:w,status:"generating",error:void 0,completedAt:void 0,executionStages:[...u.executionStages||[],{type:"validation",roleId:"resume-generation",status:"running",message:"已重新进入生成流程,系统将重新生成章节内容并执行质量门禁"}],updatedAt:m}:{id:v,taskId:w,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",maxEvidencePerChapter:a.maxEvidencePerChapter,projectRoot:c,projectId:f,knowledgeBasePath:g.join(c,"knowledgeBase"),markdown:"",status:"generating",assets:[],createdAt:m,updatedAt:m};E(x,c),R(c,{taskId:w,title:`生成 ${x.title}`,status:"processing",percent:1,message:"文档生成任务已进入后台队列",stages:x.executionStages});let y=new AbortController,z={},B=a=>{y.abort(),z.current&&P(z.current);let b=D(v,c);if(b?.checkpointChapters?.length){let d=n(b.executionStages,a),e=E({...b,title:b.title&&"生成中"!==b.title?b.title:`${b.templateName||"文档"}生成未完成`,status:"warning",error:a,markdown:b.markdown||b.checkpointChapters.map(a=>`# ${a.title}
3
3
 
4
- ${a.content}`).join("\n\n"),executionStages:d,completedAt:Date.now(),warningIssues:[...b.warningIssues||[],a]},c);R(c,{taskId:w,title:`生成 ${e.title}`,status:"warning",percent:100,message:a,stages:d,error:a})}else{let b=function(a,b,c){let d=D(a,b);return d&&"generating"===d.status?E({...d,title:o(d),status:"failed",error:c,executionStages:n(d.executionStages,c),completedAt:Date.now()},b):d}(v,c,a);R(c,{taskId:w,title:`生成 ${b?.title||"文档"}`,status:"error",percent:100,message:a,stages:b?.executionStages,error:a})}q.delete(w)},C=p(u?.draft?.chapters,u?.checkpointChapters),F=0,G="",H=Math.max(1e3,Math.min(15e3,Number(process.env.DOCUMENT_PROGRESS_SAVE_INTERVAL_MS??5e3))),I=(0,h.OXS)({...a,projectRoot:c,resumeChapters:C,signal:y.signal,onProgress:(a,b)=>{try{z.current&&(z.current.lastProgressAt=Date.now());let d=Date.now(),e=JSON.stringify({stages:a.map(a=>({type:a.type,roleId:a.roleId,status:a.status,message:a.message,progress:a.progress})),checkpoint:b?.chapters?.map(a=>[a.id,a.content.length,a.sections?.length||0])||[]});if(!b?.chapters&&e===G&&d-F<H)return;let f=D(v,c);if(f&&"generating"===f.status){let g=b?.chapters?p(f.checkpointChapters,b.chapters).map(N):f.checkpointChapters,h=E(O({...f,executionStages:a,checkpointChapters:g,partialChapters:b?.chapters?(g||[]).map(a=>({id:a.id,title:a.title,chars:(0,l.V7)(a.content),status:a.content.trim().length>0?"completed":"failed",updatedAt:Date.now()})):f.partialChapters}),c),i=[...a].reverse().find(a=>"running"===a.status)||a[a.length-1];R(c,{taskId:w,title:`生成 ${h.templateName||h.title}`,status:"processing",percent:Math.max(1,Math.min(99,i?.progress?Math.round(i.progress.current/Math.max(1,i.progress.total)*90):30)),message:i?.message||"文档生成中",stages:a}),F=d,G=e,console.log(`[gen] progress saved: ${a.length} stages, checkpoint=${g?.length||0}, doc=${v}`)}}catch(a){console.error("[gen] progress save error:",a)}}}).then(async a=>{z.current&&(z.current.lastProgressAt=Date.now(),P(z.current));let b=D(v,c);if(!b||"generating"!==b.status)return b??x;let d=/结构化事实读取不足|正文可能未显式覆盖|仅包含文件类型和占位符|不在本次招标范围内|知识库文件索引失败|暂无可检索内容切片|未抽取到结构化事实|兜底片段|资料抽取诊断|无法直接读取文本内容|占位符|缺乏详细的.*具体尺寸|需结合原文件进一步深化|章节生成存在兜底/u,f=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message).filter(a=>!/^\s*[[{]/u.test(a)&&!/"status"\s*:/u.test(a)&&!d.test(a)),h=(0,i.yw)(a.markdown,a.chapters).filter(a=>"empty"===a.reason||"table_only"===a.reason);h.length>0&&f.unshift(`小节内容补写未完成:仍有 ${h.length} 个空洞或表格无说明小节,请继续生成或补充资料后重试`),a.exportGate.passed||0!==f.length||f.push("导出门禁未通过:存在未完成的硬阻断检查项");let j=E(O({...b,templateName:a.templateName,title:a.title,markdown:a.markdown,status:a.exportGate.passed?"completed":"failed",draft:a,executionStages:a.executionStages,partialChapters:a.partialChapters,checkpointChapters:a.chapters,reviewMetadata:a.reviewMetadata,assets:a.assets||[],completedAt:Date.now(),warningIssues:f}),c);return!function(a,b=(0,k.aY)()){let c=`generatedDocuments/assets/${a.title.replace(/[\\/:*?"<>|]/gu,"_").slice(0,120)||"generated-document"}-${a.id}.md`,d=g.join(t(b),c.replace(/^generatedDocuments\//u,""));e.mkdirSync(g.dirname(d),{recursive:!0}),e.writeFileSync(d,a.editedMarkdown||a.markdown,"utf8");let f={id:`document-${a.id}`,type:"file",role:"generated",path:c,status:"generated",message:"模板运行生成的 Markdown 文档,仅登记到生成资源,不进入知识库"};J([f],a.id,b).find(a=>a.id===f.id)}(j,c),J(a.assets||[],v,c),R(c,{taskId:w,title:`生成 ${j.title}`,status:"completed"===j.status?"success":"error",percent:100,message:"completed"===j.status?"文档生成完成,已通过导出门禁":`文档生成未通过导出门禁,存在 ${f.length||1} 个阻断问题`,stages:a.executionStages,error:"completed"===j.status?void 0:f.join(";")}),j}).catch(a=>{let b=D(v,c);if(!b||"generating"!==b.status)return b??x;let d=a instanceof Error?a.message:String(a),e=a instanceof Error&&/用户中止|aborted|abort/i.test(a.message)?"aborted":b.checkpointChapters?.length?"warning":"failed",f=b.markdown||b.checkpointChapters?.map(a=>`# ${a.title}
4
+ ${a.content}`).join("\n\n"),executionStages:d,completedAt:Date.now(),warningIssues:[...b.warningIssues||[],a]},c);R(c,{taskId:w,title:`生成 ${e.title}`,status:"warning",percent:100,message:a,stages:d,error:a})}else{let b=function(a,b,c){let d=D(a,b);return d&&"generating"===d.status?E({...d,title:o(d),status:"failed",error:c,executionStages:n(d.executionStages,c),completedAt:Date.now()},b):d}(v,c,a);R(c,{taskId:w,title:`生成 ${b?.title||"文档"}`,status:"error",percent:100,message:a,stages:b?.executionStages,error:a})}q.delete(w)},C=p(u?.draft?.chapters,u?.checkpointChapters),F=0,G="",H=Math.max(1e3,Math.min(15e3,Number(process.env.DOCUMENT_PROGRESS_SAVE_INTERVAL_MS??5e3))),I=(0,h.OXS)({...a,projectRoot:c,resumeChapters:C,signal:y.signal,onProgress:(a,b)=>{try{z.current&&(z.current.lastProgressAt=Date.now());let d=Date.now(),e=JSON.stringify({stages:a.map(a=>({type:a.type,roleId:a.roleId,status:a.status,message:a.message,progress:a.progress})),checkpoint:b?.chapters?.map(a=>[a.id,a.content.length,a.sections?.length||0])||[]});if(!b?.chapters&&e===G&&d-F<H)return;let f=D(v,c);if(f&&"generating"===f.status){let g=b?.chapters?p(f.checkpointChapters,b.chapters).map(N):f.checkpointChapters,h=E(O({...f,executionStages:a,checkpointChapters:g,partialChapters:b?.chapters?(g||[]).map(a=>({id:a.id,title:a.title,chars:(0,l.V7)(a.content),status:a.content.trim().length>0?"completed":"failed",updatedAt:Date.now()})):f.partialChapters}),c),i=[...a].reverse().find(a=>"running"===a.status)||a[a.length-1];R(c,{taskId:w,title:`生成 ${h.templateName||h.title}`,status:"processing",percent:Math.max(1,Math.min(99,i?.progress?Math.round(i.progress.current/Math.max(1,i.progress.total)*90):30)),message:i?.message||"文档生成中",stages:a}),F=d,G=e,console.log(`[gen] progress saved: ${a.length} stages, checkpoint=${g?.length||0}, doc=${v}`)}}catch(a){console.error("[gen] progress save error:",a)}}}).then(async a=>{z.current&&(z.current.lastProgressAt=Date.now(),P(z.current));let b=D(v,c);if(!b||"generating"!==b.status)return b??x;let d=/结构化事实读取不足|正文可能未显式覆盖|仅包含文件类型和占位符|不在本次招标范围内|知识库文件索引失败|暂无可检索内容切片|未抽取到结构化事实|兜底片段|资料抽取诊断|无法直接读取文本内容|占位符|缺乏详细的.*具体尺寸|需结合原文件进一步深化|章节生成存在兜底/u,f=a.markdown||"",h=/^##\s+(?!目录$)(?!第[一二三四五六七八九十百千万\d]+章\s+)/gmu.test(f),j=/(?:第?\d+页|P\.?\s*\d+)/iu.test(f),l=/施工方/u.test(f),m=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message).filter(a=>!/^\s*[[{]/u.test(a)&&!/"status"\s*:/u.test(a)&&!d.test(a)).filter(a=>!/正文存在非正式章二级标题/u.test(a)||h).filter(a=>!/资料页码|文件页码|页码引用/u.test(a)||j).filter(a=>!/禁止内容|施工方/u.test(a)||l).filter(b=>!a.exportGate.passed||!/目录与正文不一致|表格分隔线位置不规范/u.test(b)),n=(0,i.yw)(a.markdown,a.chapters).filter(a=>"empty"===a.reason||"table_only"===a.reason);n.length>0&&m.unshift(`小节内容补写未完成:仍有 ${n.length} 个空洞或表格无说明小节,请继续生成或补充资料后重试`),a.exportGate.passed||0!==m.length||m.push("导出门禁未通过:存在未完成的硬阻断检查项");let o=E(O({...b,templateName:a.templateName,title:a.title,markdown:a.markdown,status:a.exportGate.passed?"completed":"failed",draft:a,executionStages:a.executionStages,partialChapters:a.partialChapters,checkpointChapters:a.chapters,reviewMetadata:a.reviewMetadata,assets:a.assets||[],completedAt:Date.now(),warningIssues:m}),c);return!function(a,b=(0,k.aY)()){let c=`generatedDocuments/assets/${a.title.replace(/[\\/:*?"<>|]/gu,"_").slice(0,120)||"generated-document"}-${a.id}.md`,d=g.join(t(b),c.replace(/^generatedDocuments\//u,""));e.mkdirSync(g.dirname(d),{recursive:!0}),e.writeFileSync(d,a.editedMarkdown||a.markdown,"utf8");let f={id:`document-${a.id}`,type:"file",role:"generated",path:c,status:"generated",message:"模板运行生成的 Markdown 文档,仅登记到生成资源,不进入知识库"};J([f],a.id,b).find(a=>a.id===f.id)}(o,c),J(a.assets||[],v,c),R(c,{taskId:w,title:`生成 ${o.title}`,status:"completed"===o.status?"success":"error",percent:100,message:"completed"===o.status?"文档生成完成,已通过导出门禁":`文档生成未通过导出门禁,存在 ${m.length||1} 个阻断问题`,stages:a.executionStages,error:"completed"===o.status?void 0:m.join(";")}),o}).catch(a=>{let b=D(v,c);if(!b||"generating"!==b.status)return b??x;let d=a instanceof Error?a.message:String(a),e=a instanceof Error&&/用户中止|aborted|abort/i.test(a.message)?"aborted":b.checkpointChapters?.length?"warning":"failed",f=b.markdown||b.checkpointChapters?.map(a=>`# ${a.title}
5
5
 
6
6
  ${a.content}`).join("\n\n")||"",g=n(b.executionStages,d),h=E(O({...b,title:"failed"===e?o(b):b.title&&"生成中"!==b.title?b.title:`${b.templateName||"文档"}生成未完成`,status:e,error:d,markdown:f,executionStages:g,completedAt:Date.now(),warningIssues:"warning"===e?[...b.warningIssues||[],d]:b.warningIssues}),c);return R(c,{taskId:w,title:`生成 ${h.title}`,status:"warning"===e?"warning":"error",percent:100,message:d,stages:g,error:d}),h}).finally(()=>{z.current&&P(z.current),q.delete(w)}),K={id:w,documentId:v,status:"generating",controller:y,promise:I,startedAt:m,lastProgressAt:m};return z.current=K,K.timeoutTimer=setTimeout(()=>B("生成任务超时,请点击继续生成或重新生成"),r),K.progressTimer=setInterval(()=>{Date.now()-K.lastProgressAt>s&&B("生成任务长时间无进度,请点击继续生成或重新生成")},Math.min(6e4,s)),q.set(w,K),{taskId:w,documentId:v,record:x}}}};
@@ -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/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_buildManifest.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_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="/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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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":"lFeYCdepREtaIO2U9uVpF","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/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_buildManifest.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_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="/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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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":"K7HN3edVIeggY0f1t5FNT","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -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="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_buildManifest.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_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="/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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"lFeYCdepREtaIO2U9uVpF","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="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_buildManifest.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_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="/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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"K7HN3edVIeggY0f1t5FNT","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -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=""/><link rel="preload" href="/_next/static/css/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/580-618d7d7e7b74daf6.js" defer=""></script><script src="/_next/static/chunks/665-88e20299084b9e73.js" defer=""></script><script src="/_next/static/chunks/209-5117020514c2bd0c.js" defer=""></script><script src="/_next/static/chunks/7-20bcc985742a9ae1.js" defer=""></script><script src="/_next/static/chunks/289-35ac595388bbd018.js" defer=""></script><script src="/_next/static/chunks/238-16333381c574f65b.js" defer=""></script><script src="/_next/static/chunks/pages/asset-library-bedc7113dfc7ad6a.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_buildManifest.js" defer=""></script><script src="/_next/static/lFeYCdepREtaIO2U9uVpF/_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="/asset-library"><div class="sidebarItem sidebarItemActive"><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 class="space-y-5 animateFadeIn"><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_16_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/asset-library","query":{},"buildId":"lFeYCdepREtaIO2U9uVpF","nextExport":true,"autoExport":true,"isFallback":false,"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=""/><link rel="preload" href="/_next/static/css/9daa4d0938f1a323.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9daa4d0938f1a323.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-1c5f09be429599e4.js" defer=""></script><script src="/_next/static/chunks/580-618d7d7e7b74daf6.js" defer=""></script><script src="/_next/static/chunks/665-88e20299084b9e73.js" defer=""></script><script src="/_next/static/chunks/209-5117020514c2bd0c.js" defer=""></script><script src="/_next/static/chunks/7-20bcc985742a9ae1.js" defer=""></script><script src="/_next/static/chunks/289-35ac595388bbd018.js" defer=""></script><script src="/_next/static/chunks/238-16333381c574f65b.js" defer=""></script><script src="/_next/static/chunks/pages/asset-library-bedc7113dfc7ad6a.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_buildManifest.js" defer=""></script><script src="/_next/static/K7HN3edVIeggY0f1t5FNT/_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="/asset-library"><div class="sidebarItem sidebarItemActive"><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 class="space-y-5 animateFadeIn"><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_16_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/asset-library","query":{},"buildId":"K7HN3edVIeggY0f1t5FNT","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>