@customize-agent/server 4.0.107 → 4.0.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +22 -24
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +21 -21
- package/.next/static/chunks/238-16333381c574f65b.js +1 -0
- package/.next/static/chunks/289-789ef042acd53608.js +78 -0
- package/.next/static/chunks/pages/asset-library-dda51e0651d970ed.js +1 -0
- package/.next/static/chunks/pages/{documents-487ce1b434da9b82.js → documents-5f3e8e1439988355.js} +1 -1
- package/.next/static/chunks/pages/knowledge/{file-detail-8c37a455e6cc010f.js → file-detail-5c2b9a22d3d521e0.js} +1 -1
- package/.next/static/chunks/pages/knowledge/{files-a4e5c4e1151fc40e.js → files-57f72cae47532ab9.js} +1 -1
- package/.next/static/chunks/pages/{models-3371ebcdc9cb85fa.js → models-5d75c007cb2e8c25.js} +1 -1
- package/.next/static/chunks/pages/{prompt-5adc3ca18a2764f4.js → prompt-87eeee86405f1356.js} +1 -1
- package/.next/static/chunks/pages/system/{logs-8c5d90301a273cd2.js → logs-05259fa91f2e0903.js} +1 -1
- package/.next/static/css/029ff7574443cc55.css +1 -0
- package/.next/static/wkCOJRi841-n7F2_lCGdW/_buildManifest.js +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/102-881dcc464f983c89.js +0 -41
- package/.next/static/chunks/289-0031e62ca424247b.js +0 -38
- package/.next/static/chunks/767-e97ea5dee1ab87b5.js +0 -1
- package/.next/static/chunks/pages/asset-library-b76abaab31043cdb.js +0 -1
- package/.next/static/css/f7490ae02e9f72c2.css +0 -1
- package/.next/static/jmjNyz47EnCu0Y_eZMyIl/_buildManifest.js +0 -1
- /package/.next/static/{jmjNyz47EnCu0Y_eZMyIl → wkCOJRi841-n7F2_lCGdW}/_ssgManifest.js +0 -0
package/.next/static/chunks/pages/{documents-487ce1b434da9b82.js → documents-5f3e8e1439988355.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{16403:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return r(19562)}])},19562:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ed});var l=r(65321),s=r(97109),n=r(7576),a=r(35292),o=r(33442),i=r(11702),c=r(17807),d=r(63455),u=r(88762),p=r(85114),m=r(68787),h=r(84253),x=r(38332),g=r(26171),f=r(34052),v=r(42700),j=r(58569),y=r(2256),w=r(38770),A=r(76506),b=r(57271),S=r(49604),k=r(85493),I=r(23216),C=r(26619),T=r(8263),z=r(16285),R=r(8579),E=r(75548),B=r(7851),M=r(84742),N=r(29071),_=r(63552),F=r(26631),D=r(7225),P=r(83914),L=r(58209),W=r(54746),G=r(71330),O=r(64068),H=r(93051),q=r(38762),K=r(64629),V=r(67547),U=r(76830),X=r(1310),Q=r(6578),J=r(48321);let{TextArea:Y}=n.A,{Text:Z}=a.A;function $(e){let{type:t="info",title:r,children:s,style:n}=e,a="error"===t?"var(--colorError)":"warning"===t?"var(--colorWarning)":"success"===t?"var(--colorSuccess)":"var(--colorInfo)";return(0,l.jsxs)("div",{style:{border:"1px solid ".concat(a),background:"error"===t?"var(--colorErrorBg)":"warning"===t?"var(--colorWarningBg)":"success"===t?"var(--colorSuccessBg)":"var(--colorInfoBg)",borderRadius:8,padding:"9px 12px",...n},children:[(0,l.jsx)(Z,{strong:!0,style:{color:a},children:r}),s&&(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:s})]})}function ee(e){let{children:t,gap:r=12,style:s}=e;return(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:r,...s},children:t})}let et=null;function er(){null==et||et.listeners.forEach(e=>e())}let el={role_binding:(0,l.jsx)(I.A,{}),knowledge_retrieval:(0,l.jsx)(C.A,{}),file_understanding:(0,l.jsx)(T.A,{}),fact_extraction:(0,l.jsx)(z.A,{}),chapter_generation:(0,l.jsx)(R.A,{}),asset_generation:(0,l.jsx)(E.A,{}),validation:(0,l.jsx)(B.A,{}),formatting:(0,l.jsx)(M.A,{}),llm_review:(0,l.jsx)(N.A,{}),export_ready:(0,l.jsx)(_.A,{}),reference:(0,l.jsx)(E.A,{})},es={施工组织设计:(0,l.jsx)(B.A,{}),投标文件:(0,l.jsx)(_.A,{}),技术方案:(0,l.jsx)(z.A,{}),报告:(0,l.jsx)(F.A,{}),自定义:(0,l.jsx)(R.A,{})};function en(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function ea(e){return e?e.split(/[\\/]/u).pop()||e:""}function eo(e){let t=[],r=e=>{for(let l of e)l.isFolder?l.children&&r(l.children):t.push(l.key)};return r(e),t}let ei={role_binding:"角色配置绑定",knowledge_retrieval:"知识库检索",file_understanding:"多模态文件理解",fact_extraction:"LLM 事实抽取",chapter_generation:"LLM 章节生成",asset_generation:"多模态资源生成",validation:"规则校验",formatting:"格式化排版",llm_review:"LLM 审查优化",export_ready:"导出就绪",reference:"参考资源处理"},ec={"knowledge-base":"知识库","document-readiness":"生成准备度检查","quality-repair":"质量补写","export-gate":"导出门禁","context-memory":"项目上下文","final-format":"正式排版","multimodal-files":"多模态文件理解",tender_announcement:"招标公告"};function ed(){var e,t,r,a,E;let ed=(0,J.Vr)(),{message:eu}=c.A.useApp(),[ep]=d.A.useForm(),em=(0,s.useRef)(null),[eh,ex]=(0,s.useState)([]),[eg,ef]=(0,s.useState)("construction-organization-design"),[ev,ej]=(0,s.useState)([]),[ey,ew]=(0,s.useState)([]),[eA,eb]=(0,s.useState)([]),[eS,ek]=(0,s.useState)([]),[eI,eC]=(0,s.useState)(!1),[eT,ez]=(0,s.useState)(""),[eR,eE]=(0,s.useState)(),[eB,eM]=(0,s.useState)([]),[eN,e_]=(0,s.useState)(!0),[eF,eD]=(0,s.useState)(!1),[eP,eL]=(0,s.useState)(null),[eW,eG]=(0,s.useState)(""),[eO,eH]=(0,s.useState)([]),[eq,eK]=(0,s.useState)(null),[eV,eU]=(0,s.useState)(null),[eX,eQ]=(0,s.useState)(""),[eJ,eY]=(0,s.useState)(!1),[eZ,e$]=(0,s.useState)("idle"),[e0,e1]=(0,s.useState)(null),[e2,e6]=(0,s.useState)(null),[e8,e4]=(0,s.useState)({start:0,end:0}),[e3,e5]=(0,s.useState)([]),[e7,e9]=(0,s.useState)(!1),[te,tt]=(0,s.useState)(!1),[tr,tl]=(0,s.useState)({}),ts=d.A.useWatch("projectRoleConfigId",ep),tn=(0,s.useMemo)(()=>ey.find(e=>e.id===ts),[ey,ts]),ta=(0,s.useMemo)(()=>new Set(((null==tn?void 0:tn.fileRoles)||[]).map(e=>e.roleId)),[tn]),to=(0,s.useMemo)(()=>ev.filter(e=>"file"===e.type&&(!ts||ta.has(e.id))).map(e=>({label:e.name,value:e.id})),[ev,ta,ts]),ti=(0,s.useMemo)(()=>to.find(e=>e.value===eR)||to[0],[eR,to]),tc=d.A.useWatch("fileBindingGroups",ep)||{},td=(0,s.useMemo)(()=>(function(e){let t={};for(let s of[...e].sort((e,t)=>e.relativePath.localeCompare(t.relativePath,"zh-CN"))){let e=s.relativePath.split("/").filter(Boolean),n="";for(let a=0;a<e.length;a++){let i=e[a],c=n;n=n?"".concat(n,"/").concat(i):i;let d=a===e.length-1;if(!t[n]){var r;t[n]={key:n,rawTitle:i,title:d?(0,l.jsx)("span",{title:s.relativePath,children:i}):(0,l.jsxs)(o.A,{size:4,children:[(0,l.jsx)(D.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:i})]}),isFolder:!d,fileCount:+!!d,...d?{}:{children:[]}},c&&(null==(r=t[c])?void 0:r.children)&&t[c].children.push(t[n])}d&&(t[n].fileCount=1)}}let s=e=>{for(let r of e){var t;(null==(t=r.children)?void 0:t.length)&&(s(r.children),r.fileCount=r.children.reduce((e,t)=>e+t.fileCount,0),r.title=(0,l.jsxs)(o.A,{size:4,children:[(0,l.jsx)(D.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:r.rawTitle}),(0,l.jsx)(i.A,{style:{margin:0},children:r.fileCount})]}))}},n=Object.values(t).filter(e=>!e.key.includes("/"));return s(n),n.filter(e=>!e.isFolder||e.fileCount>0)})(eS),[eS]),tu=(0,s.useMemo)(()=>(function e(t,r){let l=r.trim().toLowerCase();return l?t.flatMap(t=>{let r=t.children?e(t.children,l):void 0;return t.key.toLowerCase().includes(l)||t.rawTitle.toLowerCase().includes(l)||(null==r?void 0:r.length)?[{...t,children:r}]:[]}):t})(td,eT),[td,eT]),tp=(0,s.useMemo)(()=>eo(td),[td]),tm=(0,s.useMemo)(()=>{var e,t,r;return(null==(e=eA.find(e=>e.selected))?void 0:e.projectRoot)||(null==(t=eA.find(e=>e.isCurrent))?void 0:t.projectRoot)||(null==(r=eA[0])?void 0:r.projectRoot)||""},[eA]),th=(0,s.useMemo)(()=>{let e=[],t=r=>{for(let l of r)e.push(l.key),l.children&&t(l.children)};return t(td),e},[td]);(0,s.useEffect)(()=>{if(!te||!ts)return;let e=ep.getFieldValue("fileBindingGroups")||{},t=Object.fromEntries(Object.entries(e).filter(e=>{let[t]=e;return ta.has(t)}));Object.keys(t).length!==Object.keys(e).length&&ep.setFieldValue("fileBindingGroups",t)},[ep,ta,ts,te]),(0,s.useEffect)(()=>{if(te){if(0===to.length)return void eE(void 0);eR&&to.some(e=>e.value===eR)||eE(to[0].value)}},[eR,to,te]);let[tx,tg]=(0,s.useState)([]),[tf,tv]=(0,s.useState)(null),[tj,ty]=(0,s.useState)(null),[tw,tA]=(0,s.useState)("templates"),[tb,tS]=(0,s.useState)(!1),[tk,tI]=(0,s.useState)("workflow"),tC=(0,s.useRef)(null),tT=(0,s.useRef)(null),tz=(0,s.useRef)(0),tR=(0,s.useMemo)(()=>"activeGenDocId:".concat(tm||"default"),[tm]),tE=async()=>{try{eH((await (0,Q.cQ)(tm||void 0)).documents)}catch(e){eH([])}};(0,s.useEffect)(()=>{let e=()=>{et&&(tg(et.flowSteps),tv(et.activeFlowKey),eD(et.loading),et.documentId&&eK(et.documentId),et.draft&&eL(et.draft),void 0!==et.content&&eG(et.content))},t=et;return null==t||t.listeners.add(e),e(),()=>{null==t||t.listeners.delete(e)}},[]),(0,s.useEffect)(()=>{e_(!0),Promise.all([(0,Q.Dl)().then(e=>{var t,r;ex(e.templates),ef(null!=(r=null==(t=e.templates[0])?void 0:t.id)?r:"construction-organization-design")}),(0,Q.lv)().then(e=>{ej(e.roles),ew(e.configs)}),(0,Q.dx)().then(e=>eb(e))]).catch(()=>eu.error(ed("common.error"))).finally(()=>e_(!1))},[eu,ed]),(0,s.useEffect)(()=>{tm&&(localStorage.removeItem("activeGenDocId"),tE())},[tm]),(0,s.useEffect)(()=>{if(0===eO.length)return;let e=localStorage.getItem(tR);if(!e)return;if(!eO.find(t=>t.id===e&&"generating"===t.status))return void localStorage.removeItem(tR);let t=setInterval(()=>{(async()=>{try{let{document:r}=await (0,Q.v7)(e,!1,tm||void 0);await tE(),"generating"!==r.status&&(localStorage.removeItem(tR),clearInterval(t))}catch(e){clearInterval(t)}})()},3e3);return()=>clearInterval(t)},[eO]);let tB=(0,s.useMemo)(()=>eh.find(e=>e.id===eg),[eh,eg]),tM=ey.map(e=>({label:e.name,value:e.id})),tN=Math.max(0,tx.findIndex(e=>e.key===tf)),t_=e=>{var t;return e?(null==(t=ev.find(t=>t.id===e))?void 0:t.name)||ec[e]||"未知角色":""},tF=e=>e.subtitle||e.roleName||t_(e.roleId)||ei[e.type]||e.type,tD=e=>{var t,r,l;return e.promptName||((t=e.promptId)?(null==(r=eA.find(e=>e.id===t))?void 0:r.projectName)||(null==(l=ev.find(e=>e.id===t))?void 0:l.name)||ec[t]||"未知提示词":"")},tP=()=>{tz.current+=1,eQ(""),e1(null),e6(null),e5([]),e9(!1),eY(!1),e$("idle")},tL=e=>{ef(e),eK(null),eL(null),eG(""),tP(),tI("workflow"),tS(!0),tA("drafts")},tW=async e=>{eK(e.id),ef(e.templateId);let t=tG(e.status);if(t||"failed"===e.status||"aborted"===e.status){tP(),ty(e),eL(null),eG(""),eD(t),tI("workflow"),tS(!0);try{let{document:t}=await (0,Q.v7)(e.id,!1,e.projectRoot||tm||void 0);tq(t),tG(t.status)?tK(t.id,t.projectRoot||e.projectRoot||tm||void 0):await tE()}catch(t){tq(e)}return}tI("editor"),tg([]),tv(null),tP();try{let{document:t}=await (0,Q.v7)(e.id,!1,e.projectRoot||tm||void 0);eL(t.draft||null),eG(t.editedMarkdown||t.markdown)}catch(e){eu.error(ed("common.error"))}tS(!0)},tG=e=>"completed"!==e&&"warning"!==e&&"failed"!==e&&"aborted"!==e,tO=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eF;(null==et?void 0:et.loading)&&(et.flowSteps=e,et.activeFlowKey=t,et.loading=r,er())},tH=e=>{var t,r,s,n,a;let o=e.executionStages||(null==(t=e.draft)?void 0:t.executionStages)||[];if(o.length>0){let t=o.map((t,r)=>{var s;let n,a=("failed"===e.status||"aborted"===e.status)&&"running"===t.status||"failed"===(n=t.status)?"error":"running"===n?"process":"fallback"===n?"warning":"finish";return{key:"".concat(t.type,"-").concat(r),title:t.title||ei[t.type]||t.type,subtitle:tF(t),description:t.message||"",status:a,icon:"role_binding"===(s=t.type)?(0,l.jsx)(I.A,{}):"knowledge_retrieval"===s?(0,l.jsx)(C.A,{}):"file_understanding"===s?(0,l.jsx)(T.A,{}):"fact_extraction"===s?(0,l.jsx)(z.A,{}):"chapter_generation"===s?(0,l.jsx)(R.A,{}):"llm_review"===s?(0,l.jsx)(N.A,{}):"validation"===s?(0,l.jsx)(B.A,{}):"formatting"===s?(0,l.jsx)(M.A,{}):"export_ready"===s?(0,l.jsx)(_.A,{}):(0,l.jsx)(F.A,{}),subSteps:((e,t,r)=>{let l=Array.isArray(e.details)?e.details.filter(Boolean):[],s=e.progress?"".concat(e.progress.label||"进度",":").concat(e.progress.current,"/").concat(e.progress.total):"",n=[...s?[s]:[],...l];return 0===n.length?[{key:"stage-".concat(r),title:tD(e)?"提示词:".concat(tD(e)):tF(e),status:t}]:n.slice(0,8).map((e,l)=>({key:"stage-".concat(r,"-").concat(l),title:e,status:"process"===t&&0===l?"process":"error"===t&&0===l?"error":"warning"===t?"warning":"process"===t?"finish":t}))})(t,a,r)}});"generating"===e.status&&t.length>0&&(null==(r=t.at(-1))?void 0:r.status)==="finish"&&(t[t.length-1]={...t[t.length-1],status:"process"});let i="generating"===e.status?(null==(s=t.at(-1))?void 0:s.key)||"prepare":"failed"===e.status||"aborted"===e.status?(null==(n=t.find(e=>"error"===e.status))?void 0:n.key)||(null==(a=t.at(-1))?void 0:a.key)||"prepare":"done";return{steps:t,activeKey:i}}return{steps:[],activeKey:null}},tq=e=>{ty(e);let{steps:t,activeKey:r}=tH(e);tg(t),tv(r),eD(tG(e.status)),tO(t,r,tG(e.status)),("failed"===e.status||"aborted"===e.status)&&tI("workflow"),("completed"===e.status||"warning"===e.status)&&e.draft&&(eL(e.draft),eG(e.editedMarkdown||e.markdown),tI("editor"),tg([]),tv(null))},tK=(e,t)=>{tC.current&&clearInterval(tC.current),tC.current=setInterval(()=>{(async()=>{try{let{document:r}=await (0,Q.v7)(e,!0,t||tm||void 0);tq(r),await tE(),tG(r.status)||(tC.current&&clearInterval(tC.current),tC.current=null,localStorage.removeItem(tR))}catch(e){}})()},2e3)};(0,s.useEffect)(()=>()=>{tC.current&&(clearInterval(tC.current),tC.current=null),tT.current&&(clearTimeout(tT.current),tT.current=null)},[]),(0,s.useEffect)(()=>{if(!eF||!tf)return;let e=window.setInterval(()=>tg(e=>{let t=e.map(e=>{if(e.key!==tf||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),r=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<r?{...e,status:"finish"}:t===r?{...e,status:"process"}:{...e,status:"wait"})}});return tO(t,tf),t}),1400);return()=>window.clearInterval(e)},[tf,eF]);let tV=async()=>{eC(!0);try{let e=await (0,Q.HT)({limit:5e3,projectRoot:tm||void 0});ek(e.files)}catch(e){eu.error("知识库文件加载失败")}finally{eC(!1)}},tU=e=>{var t,r,l;let s=null!=e?e:{id:"tpl-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,chapters:[],fileBindings:[]};ep.resetFields(),ep.setFieldsValue({...s,fileBindingGroups:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.reduce((e,t)=>(t.roleId&&t.filePath&&(e[t.roleId]=en([...e[t.roleId]||[],t.filePath])),e),{})}(s.fileBindings)}),eE(null==(l=ey.find(e=>e.id===s.projectRoleConfigId))||null==(r=l.fileRoles)||null==(t=r[0])?void 0:t.roleId),ez(""),tV(),tt(!0)},tX=(e,t)=>{let r=ep.getFieldValue("fileBindingGroups")||{};ep.setFieldValue("fileBindingGroups",{...r,[e]:en(t)})},tQ=async()=>{try{var e;await ep.validateFields();let t=ep.getFieldsValue(!0),r=new Set(((null==(e=ey.find(e=>e.id===t.projectRoleConfigId))?void 0:e.fileRoles)||[]).map(e=>e.roleId)),l=t.fileBindingGroups||{},s=Object.entries(l).filter(e=>{let[t]=e;return 0===r.size||r.has(t)}).flatMap(e=>{let[t,r]=e;return en(r||[]).map(e=>({roleId:t,filePath:e}))}),{fileBindingGroups:n,...a}=t,o={...a,chapters:[],fileBindings:s},i=await (0,Q.l2)(o);ex(i.templates),ef(i.template.id),tt(!1),await tE(),eu.success(ed("common.success"))}catch(e){e instanceof Error&&eu.error(e.message)}},tJ=async e=>{try{let t=await (0,Q.bV)(e);ex(t.templates),ef(t.template.id),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},tY=async e=>{try{var t,r;let l=await (0,Q.h0)(e);ex(l.templates),ef(null!=(r=null==(t=l.templates[0])?void 0:t.id)?r:""),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},tZ=async e=>{try{let{validation:t}=await (0,Q.SM)(e,tm||void 0);tl(r=>({...r,[e]:t}));let r=t.issues.filter(e=>"error"===e.level);if(ef(e),r.length>0)return void eu.warning("模板运行前检查未通过,请先处理阻断项");if(t.issues.length>0)return void eu.warning("模板存在警告,可在检查面板确认后继续运行");tL(e)}catch(e){eu.error(e instanceof Error?e.message:"模板运行前检查失败")}},t$=async e=>{try{await (0,Q.QG)(e.id,e.projectRoot||tm||void 0),eq===e.id&&(eK(null),eL(null),eG("")),await tE(),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},t0=async(e,t)=>{let r=Date.now(),l=0,s=Date.now();for(;;){let n;if(null==t?void 0:t.aborted)throw Error("用户中止");let a=new AbortController;t&&(t.pollController=a);try{({document:n}=await (0,Q.v7)(e,!0,tm||void 0,a.signal))}finally{(null==t?void 0:t.pollController)===a&&(t.pollController=void 0)}if(tq(n),n.updatedAt!==l&&(l=n.updatedAt,s=Date.now()),("completed"===n.status||"warning"===n.status)&&n.draft)return n;if("failed"===n.status||"aborted"===n.status)throw Error(n.error||("aborted"===n.status?"生成已中止":"生成失败"));if(Date.now()-r>75e5||Date.now()-s>96e4)throw Error("生成任务疑似卡住,请点击继续生成或重新生成");await new Promise(e=>window.setTimeout(e,1500))}},t1=async()=>{if(!eg)return;if((null==et?void 0:et.aborted)&&(et=null),null==et?void 0:et.loading){tg(et.flowSteps),tv(et.activeFlowKey),eD(!0);return}if(!tm)return void eu.error("未识别当前项目,请先选择或打开项目后再生成文件");eD(!0);let e=(0,Q.OX)({templateId:eg,projectRoot:tm});et={id:Date.now(),templateId:eg,loading:!0,flowSteps:[],activeFlowKey:null,promise:e,listeners:new Set},tg([]),tv(null);let t=[];try{let r=await e;r.documentId&&(localStorage.setItem(tR,r.documentId),eK(r.documentId),(null==et?void 0:et.promise)===e&&(et.documentId=r.documentId)),await tE();let l=r.documentId?await t0(r.documentId,(null==et?void 0:et.promise)===e?et:void 0):void 0,s=r.draft||(null==l?void 0:l.draft);if(!s)throw Error("生成结果为空");(r.documentId||(null==l?void 0:l.id))&&eK(r.documentId||l.id),t.forEach(e=>window.clearTimeout(e)),eL(s),eG((null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||s.markdown),(null==et?void 0:et.promise)===e&&(et.draft=s,et.content=(null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||s.markdown);let n=l||{id:r.documentId||"draft-".concat(Date.now()),templateId:eg,title:s.title,requirement:s.requirement,projectRoot:s.projectRoot||tm,projectId:s.projectId,markdown:s.markdown,status:s.validationIssues.some(e=>"error"===e.level||"warning"===e.level)||!s.exportGate.passed?"warning":"completed",draft:s,executionStages:s.executionStages,assets:s.assets||[],createdAt:s.generatedAt,updatedAt:Date.now()},{steps:a}=tH(n);tg(a),tO(a,"done",!1),tv("done"),(null==et?void 0:et.promise)===e&&(et.activeFlowKey="done",et.loading=!1,er(),et=null),localStorage.removeItem(tR),await tE(),eu.success(ed("common.success")),window.setTimeout(()=>{var e;return null==(e=em.current)?void 0:e.scrollIntoView({behavior:"smooth",block:"start"})},200)}catch(l){localStorage.removeItem(tR);let t=l instanceof Error?l.message:ed("common.error"),r=/用户中止|abort|aborted/i.test(t);r||tg(e=>{let r=e.map(e=>"process"===e.status?{...e,status:"error",description:t,subSteps:((e,t)=>{if("wait"===t)return e.subSteps.map(e=>({...e,status:"wait"}));if("finish"===t)return e.subSteps.map(e=>({...e,status:"finish"}));if("error"===t)return e.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}));let r=e.subSteps.findIndex(e=>"wait"===e.status);return e.subSteps.map((e,t)=>t<r||-1===r?{...e,status:"finish"}:t===r?{...e,status:"process"}:e)})(e,"error")}:e);return tO(r,tf,!1),r}),(null==et?void 0:et.promise)===e&&(et.loading=!1,et.error=t,er(),et=null),await tE().catch(()=>void 0),r||eu.error(t)}finally{t.forEach(e=>window.clearTimeout(e)),eD(!1),(null==et?void 0:et.promise)===e&&(et.loading=!1,er())}},t2=(0,s.useRef)(!1);(0,s.useEffect)(()=>(tT.current&&(clearTimeout(tT.current),tT.current=null),!tb||"workflow"!==tk||eq||t2.current||(null==et?void 0:et.loading)||null==tB||!tB.projectRoleConfigId||(t2.current=!0,tT.current=setTimeout(()=>{tT.current=null,tb&&"workflow"===tk&&!eq&&eg==eg&&t1()},300)),tb||(t2.current=!1),()=>{tT.current&&(clearTimeout(tT.current),tT.current=null)}),[tb,tk,eq,tB,eg]);let t6=async e=>{try{eK(e.id),ef(e.templateId),tI("workflow"),tS(!0),eD(!0);let t=await (0,Q.UQ)(e.id,e.projectRoot||tm||void 0);localStorage.setItem(tR,t.documentId),await tE();let r=await t0(t.documentId);r.draft&&(eL(r.draft),eG(r.editedMarkdown||r.markdown||r.draft.markdown),tI("editor")),localStorage.removeItem(tR),await tE(),eu.success("已继续生成并完成")}catch(e){eu.error(e instanceof Error?e.message:"继续生成失败")}finally{eD(!1)}},t8=async e=>{if((null==et?void 0:et.loading)&&et.documentId===e.id){var t;et.aborted=!0,null==(t=et.pollController)||t.abort(),et.loading=!1,et.error="用户中止",er(),et=null,eD(!1)}localStorage.removeItem(tR),tC.current&&(clearInterval(tC.current),tC.current=null);try{await (0,Q.r)(e.id,e.projectRoot||tm||void 0),eu.success("已中止生成任务")}catch(e){eu.info("任务已不在运行,已刷新状态")}finally{await tE(),eq===e.id&&(eK(null),ty(null),eL(null),eG(""))}},t4=async e=>{if(eP){eU(e);try{eP.exportGate.passed||eu.warning("导出门禁存在风险项,已允许导出,请下载后人工复核。");let t={documentId:eq||void 0,title:eP.title,markdown:eW,format:e,enforceGate:!1,exportGate:eP.exportGate,useClientMarkdown:!0,projectRoot:eP.projectRoot||tm||void 0},r=await (0,Q.UE)(t);((e,t,r)=>{let l=new Blob([e],{type:r}),s=URL.createObjectURL(l),n=document.createElement("a");n.href=s,n.download=t,n.target="_self",n.rel="noopener",n.style.display="none",document.body.appendChild(n),n.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),n.remove(),window.setTimeout(()=>URL.revokeObjectURL(s),1e3)})(r,"".concat(eP.title,".").concat("markdown"===e?"md":e),{markdown:"text/markdown;charset=utf-8",html:"text/html;charset=utf-8",pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}[e])}catch(e){eu.error(e instanceof Error?e.message:ed("common.error"))}finally{eU(null)}}},t3=async()=>{if(eP)try{if(eq)await (0,Q.a6)(eq,{editedMarkdown:eW,markdown:eW},eP.projectRoot||tm||void 0);else{let e=await (0,Q.Af)({...eP,markdown:eW});eL(e.draft)}await tE(),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},t5=(e,t)=>{e5(r=>[{id:"".concat(Date.now()),content:e,prompt:t,createdAt:Date.now()},...r].slice(0,12))},t7=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&eQ(""),e1(null),e6(null),e4({start:0,end:0})},t9=(e,t)=>{var r,l;return{title:(null==eP?void 0:eP.title)||"未命名文档",markdown:t,instruction:e,facts:null==eP||null==(r=eP.structuredFacts)?void 0:r.map(e=>"".concat(e.key,": ").concat(e.value)),chapters:null==eP||null==(l=eP.chapters)?void 0:l.map(e=>e.title),...(()=>{let e=e8.start,t=e8.end;return t>e?{selection:{start:e,end:t,text:eW.slice(e,t)},cursorOffset:e}:{cursorOffset:e}})()}},re=async()=>{let e=eX.trim();if(!eP||!e||eJ)return;let t=tz.current+1;tz.current=t,eY(!0),e$("planning"),e6(null);try{let r=await (0,Q.Gi)({mode:"plan",...t9(e,eW)});if(tz.current!==t||eq!=eq)return;if(!r.plan)throw Error("AI 未返回修改计划");e1(r.plan)}catch(e){tz.current===t&&eu.error(e instanceof Error?e.message:ed("common.error"))}finally{tz.current===t&&(eY(!1),e$("idle"))}},rt=async e=>{let t=eX.trim();if(!eP||!t||eJ)return;let r=tz.current+1;tz.current=r,eY(!0),e$("applying");try{let l=await (0,Q.Gi)({mode:"apply",...t9(t,eW),plan:e});if(tz.current!==r||eq!=eq)return;if(!l.markdown)throw Error("AI 未返回修改结果");e6({plan:l.plan||e,markdown:l.markdown,beforeSnippet:l.beforeSnippet,afterSnippet:l.afterSnippet,summary:l.summary,changedChars:l.changedChars,prompt:t,before:eW})}catch(e){tz.current===r&&eu.error(e instanceof Error?e.message:ed("common.error"))}finally{tz.current===r&&(eY(!1),e$("idle"))}};if(eN)return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsx)(u.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:2}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:8}})]});let rr="workflow"===tk?"工作流:".concat((null==tB?void 0:tB.name)||"选择模板"):"编辑:".concat((null==eP?void 0:eP.title)||(null==tB?void 0:tB.outputTitle)||"文档");return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"pageTitle",children:ed("documents.title")}),(0,l.jsx)("p",{className:"pageDesc",children:ed("documents.description")})]}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(W.A,{}),onClick:()=>tU(),children:ed("documents.newTemplate")})]}),(0,l.jsx)(m.A,{size:"small",tabList:[{key:"templates",label:"模板库 (".concat(eh.length,")")},{key:"drafts",label:"生成记录 (".concat(eO.length,")")}],activeTabKey:tw,onTabChange:tA,children:"templates"===tw?0===eh.length?(0,l.jsx)(h.A,{description:ed("common.noData")}):(0,l.jsx)(x.A,{dataSource:eh,renderItem:e=>{var t,r;return(0,l.jsx)(x.A.Item,{style:{cursor:"pointer",padding:"10px 0"},actions:[(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(G.A,{}),onClick:t=>{t.stopPropagation(),tU(e)},children:"配置"},"cfg"),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(O.A,{}),onClick:t=>{t.stopPropagation(),tZ(e.id)},children:"运行"},"run"),(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(H.A,{}),onClick:t=>{t.stopPropagation(),tJ(e.id)}},"copy"),(0,l.jsx)(g.A,{title:ed("documents.deleteTemplateConfirm"),onConfirm:t=>{null==t||t.stopPropagation(),tY(e.id)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})},"del")],onClick:()=>ef(e.id),children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,minWidth:0,flex:1},children:[function(e,t){let r=es[e]||(0,l.jsx)(F.A,{});return(0,l.jsx)("span",{style:{color:t?"var(--colorAccent)":"var(--colorTextSecondary)",fontSize:16,marginTop:2,flexShrink:0},children:r})}(e.category,eg===e.id),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,l.jsx)("span",{style:{fontWeight:eg===e.id?600:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),eg===e.id&&(0,l.jsx)(i.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:"当前"}),(0,l.jsx)(i.A,{style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:e.category}),tr[e.id]&&(0,l.jsxs)(i.A,{color:tr[e.id].issues.some(e=>"error"===e.level)?"error":tr[e.id].issues.length?"warning":"success",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:["检查 ",tr[e.id].fileDiagnostics.length," 文件 / ",tr[e.id].promptDiagnostics.length," 提示词"]})]}),e.description&&(0,l.jsx)(Z,{type:"secondary",style:{fontSize:12,lineHeight:"18px"},children:e.description}),tr[e.id]&&(0,l.jsx)("div",{onClick:e=>e.stopPropagation(),style:{marginTop:8,padding:10,border:"1px solid ".concat(tr[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBorder)":tr[e.id].issues.length?"var(--colorWarningBorder)":"var(--colorSuccessBorder)"),borderRadius:10,background:tr[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBg)":tr[e.id].issues.length?"var(--colorWarningBg)":"var(--colorSuccessBg)"},children:(0,l.jsxs)(ee,{gap:6,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(Z,{strong:!0,children:tr[e.id].issues.some(e=>"error"===e.level)?"运行前检查未通过":tr[e.id].issues.length?"运行前检查存在警告":"运行前检查通过"}),(0,l.jsxs)(i.A,{color:"blue",children:["文件角色 ",tr[e.id].fileDiagnostics.length]}),(0,l.jsxs)(i.A,{color:"purple",children:["提示词角色 ",tr[e.id].promptDiagnostics.length]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:tr[e.id].readiness.ready?"green":"error",children:["资料覆盖 ",Math.round(100*tr[e.id].readiness.materialCoverageRate),"%"]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:"cyan",children:["角色满足 ",Math.round(100*tr[e.id].readiness.roleSatisfactionRate),"%"]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:"geekblue",children:["规范完整 ",Math.round(100*tr[e.id].readiness.specCompletenessRate),"%"]})]}),null==(r=tr[e.id].readiness)||null==(t=r.chapterDiagnostics)?void 0:t.filter(e=>e.readinessRate<.7||e.missingFacts.length>0).slice(0,5).map(e=>(0,l.jsx)($,{type:e.readinessRate<.5?"warning":"info",title:"章节预检:".concat(e.title," \xb7 覆盖 ").concat(Math.round(100*e.readinessRate),"% \xb7 证据 ").concat(e.evidenceCount," 条").concat(e.missingFacts.length?" \xb7 缺失 ".concat(e.missingFacts.slice(0,4).join("、")):"")},e.chapterId)),tr[e.id].issues.length>0?tr[e.id].issues.map(e=>(0,l.jsx)($,{type:"error"===e.level?"error":"warning",title:e.message},e.message)):(0,l.jsx)($,{type:"success",title:"文件角色、提示词角色和后台自动规范检查通过,可以运行。"}),!tr[e.id].issues.some(e=>"error"===e.level)&&tr[e.id].issues.length>0&&(0,l.jsx)("div",{children:(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(O.A,{}),onClick:()=>tL(e.id),children:"忽略警告并继续运行"})})]})})]})]})})}}):0===eO.length?(0,l.jsx)(h.A,{description:ed("common.noData")}):(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:eO.slice(0,15).map((e,t)=>{var r,s,n,a,c;let d,u;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",border:"1px solid var(--colorBorderSecondary)",borderRadius:10,cursor:"pointer",background:eq===e.id?"var(--colorFillAlter)":void 0,minWidth:0},onClick:()=>{tW(e)},children:["completed"===e.status?(0,l.jsx)(M.A,{style:{fontSize:18,color:"var(--colorOk)",flexShrink:0,marginTop:2}}):"failed"===e.status||"aborted"===e.status?(0,l.jsx)(q.A,{style:{fontSize:18,color:"var(--colorDanger)",flexShrink:0,marginTop:2}}):"warning"===e.status?(0,l.jsx)(B.A,{style:{fontSize:18,color:"var(--colorWarning)",flexShrink:0,marginTop:2}}):(0,l.jsx)(K.A,{spin:!0,style:{fontSize:18,color:"#1677ff",flexShrink:0,marginTop:2}}),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:3},children:e.title}),(0,l.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 10px",color:"var(--colorTextSecondary)",fontSize:11},children:[(0,l.jsx)("span",{children:new Date(e.updatedAt).toLocaleString()}),(0,l.jsxs)("span",{children:["耗时 ",(e=>{let t=Math.max(0,Math.round(((e.completedAt||e.updatedAt)-e.createdAt)/1e3));if(t<60)return"".concat(t," 秒");let r=Math.floor(t/60),l=t%60;if(r<60)return l?"".concat(r," 分 ").concat(l," 秒"):"".concat(r," 分");let s=Math.floor(r/60),n=r%60;return n?"".concat(s," 小时 ").concat(n," 分"):"".concat(s," 小时")})(e)]})]}),e.partialChapters&&e.partialChapters.length>0&&(0,l.jsxs)("div",{style:{marginTop:3,fontSize:11,color:"var(--colorTextSecondary)"},children:["已完成章节 ",e.partialChapters.filter(e=>"completed"===e.status).length,"/",e.partialChapters.length," \xb7 ",e.partialChapters.reduce((e,t)=>e+t.chars,0).toLocaleString()," 字"]}),("warning"===e.status||"failed"===e.status||"aborted"===e.status)&&(0,l.jsx)("div",{style:{marginTop:3,color:"failed"===e.status||"aborted"===e.status?"var(--colorError)":"var(--colorWarning)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.error||(null==(r=e.warningIssues)?void 0:r[0])||(null==(n=e.draft)||null==(s=n.validationIssues.find(e=>"error"===e.level||"warning"===e.level))?void 0:s.message)||"需复核"})]}),(0,l.jsxs)(o.A,{size:4,align:"center",children:[(0,l.jsx)(i.A,{color:"completed"===(d=e.status)?"success":"warning"===d?"warning":"failed"===d?"error":"aborted"===d?"default":"processing",style:{margin:0,fontSize:10,lineHeight:"18px"},children:"completed"===(u=e.status)?"已完成":"warning"===u?"需复核":"failed"===u?"失败":"aborted"===u?"已中止":"生成中"}),(0,l.jsxs)(i.A,{style:{margin:0,fontSize:10,lineHeight:"18px"},children:["#",t+1]}),(0,l.jsx)(g.A,{title:"确认删除?",onConfirm:t=>{null==t||t.stopPropagation(),t$(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})}),tG(e.status)&&(0,l.jsx)(g.A,{title:"确定中止此生成任务?",onConfirm:t=>{null==t||t.stopPropagation(),t8(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,onClick:e=>e.stopPropagation(),children:"中止"})}),("failed"===e.status||"aborted"===e.status||"warning"===e.status&&!!(null==(a=e.checkpointChapters)?void 0:a.length)&&/继续生成|重新生成|中断|卡住|未完成/u.test(e.error||(null==(c=e.warningIssues)?void 0:c.join(";"))||""))&&(0,l.jsx)(p.Ay,{size:"small",onClick:t=>{t.stopPropagation(),t6(e)},children:"继续"}),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:tG(e.status)?(0,l.jsx)(K.A,{spin:!0}):(0,l.jsx)(O.A,{}),onClick:t=>{t.stopPropagation(),tW(e)},children:"打开"})]})]},e.id)})})}),(0,l.jsx)(f.A,{title:rr,open:tb,onClose:()=>{tS(!1),tC.current&&(clearInterval(tC.current),tC.current=null)},size:800,mask:{closable:!1},style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:eP?(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(V.A,{}),disabled:eJ,onClick:()=>{t3()},children:ed("documents.saveDraft")}),(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(U.A,{}),disabled:eJ,loading:"markdown"===eV,onClick:()=>{t4("markdown")},children:"MD"}),(0,l.jsx)(p.Ay,{disabled:eJ,loading:"html"===eV,onClick:()=>{t4("html")},children:"HTML"}),(0,l.jsx)(p.Ay,{disabled:eJ,loading:"docx"===eV,onClick:()=>{t4("docx")},children:"DOCX"}),(0,l.jsx)(p.Ay,{type:"primary",disabled:eJ,loading:"pdf"===eV,onClick:()=>{t4("pdf")},children:"PDF"})]}):eF&&"workflow"===tk?(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{(async()=>{if(eq&&await (0,Q.r)(eq,tm||void 0).catch(()=>void 0),et){var e;et.aborted=!0,null==(e=et.pollController)||e.abort(),et.loading=!1,et.error="用户中止",er(),et=null}localStorage.removeItem(tR),tC.current&&(clearInterval(tC.current),tC.current=null),eD(!1),tg([]),tv(null),tS(!1),await tE(),eu.info("已中止生成任务")})()},children:"中止任务"}):void 0,children:(0,l.jsxs)(ee,{style:{width:"100%"},gap:16,children:["workflow"===tk&&tx.length>0&&(0,l.jsx)(ee,{gap:10,children:tx.map((e,t)=>{let r;return(0,l.jsxs)("div",{style:{display:"flex",gap:10,padding:10,border:"1px solid var(--colorBorderSecondary)",borderRadius:10,background:t===tN?"var(--colorFillAlter)":"var(--colorBgContainer)"},children:[(0,l.jsx)("span",{children:"process"===e.status?(0,l.jsx)(P.A,{}):"warning"===e.status?(0,l.jsx)(B.A,{style:{color:"var(--colorWarning)"}}):e.icon}),(0,l.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(Z,{strong:!0,children:e.title}),(0,l.jsx)(i.A,{color:"finish"===e.status?"success":"error"===e.status?"error":"warning"===e.status?"warning":"process"===e.status?"processing":"default",children:"warning"===(r=e.status)?"finish":r})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12,whiteSpace:"pre-wrap"},children:(0,l.jsxs)("div",{children:[e.subtitle&&(0,l.jsx)("div",{style:{marginBottom:4},children:(0,l.jsx)(i.A,{children:e.subtitle})}),(0,l.jsx)("div",{children:e.description}),(0,l.jsx)("div",{style:{marginTop:4},children:e.subSteps.map(e=>{var t;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,fontSize:12,color:"process"===e.status?"var(--colorPrimary)":"var(--colorTextSecondary)"},children:["process"===(t=e.status)?(0,l.jsx)(P.A,{}):"finish"===t?(0,l.jsx)(M.A,{}):"warning"===t?(0,l.jsx)(B.A,{style:{color:"var(--colorWarning)"}}):"error"===t?(0,l.jsx)(L.A,{}):(0,l.jsx)("span",{style:{display:"inline-block",height:6,width:6,borderRadius:"50%",background:"var(--colorTextTertiary)"}}),(0,l.jsx)("span",{children:e.title})]},e.key)})})]})})]})]},e.key)})}),"workflow"===tk&&(null==tj?void 0:tj.partialChapters)&&tj.partialChapters.length>0&&(0,l.jsx)(m.A,{size:"small",title:"章节进度",extra:(0,l.jsxs)(i.A,{color:"blue",children:[tj.partialChapters.filter(e=>"completed"===e.status).length,"/",tj.partialChapters.length]}),children:(0,l.jsx)(ee,{gap:6,style:{width:"100%"},children:tj.partialChapters.map(e=>(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8,fontSize:12},children:[(0,l.jsx)(Z,{ellipsis:!0,style:{maxWidth:480},children:e.title}),(0,l.jsxs)(o.A,{size:6,children:[(0,l.jsx)(i.A,{color:"failed"===e.status?"error":"success",children:"failed"===e.status?"失败":"完成"}),(0,l.jsxs)(Z,{type:"secondary",children:[e.chars.toLocaleString()," 字"]})]})]},e.id))})}),"workflow"===tk&&(null==tj||null==(e=tj.reviewMetadata)?void 0:e.diagnostics)&&(0,l.jsx)($,{type:"info",title:"后台自动优化",children:"策略:".concat(tj.reviewMetadata.diagnostics.strategy.mode,";LLM 调用 ").concat(tj.reviewMetadata.diagnostics.llm.calls," 次;噪声过滤 ").concat((null==(t=tj.reviewMetadata.diagnostics.evidence)?void 0:t.filteredNoise)||0," 条;质量门禁 阻断").concat((null==(r=tj.reviewMetadata.diagnostics.quality)?void 0:r.blockingCount)||0,"/重要").concat((null==(a=tj.reviewMetadata.diagnostics.quality)?void 0:a.importantCount)||0,"/轻微").concat((null==(E=tj.reviewMetadata.diagnostics.quality)?void 0:E.minorCount)||0,";自动限流调整 ").concat(tj.reviewMetadata.diagnostics.llm.limitAdjustments," 次。审查与诊断信息仅用于系统修复,不会写入正文或导出文件。")}),"workflow"===tk&&eF&&0===tx.length&&(0,l.jsxs)("div",{style:{textAlign:"center",padding:40},children:[(0,l.jsx)(v.A,{}),(0,l.jsx)("div",{style:{marginTop:12,color:"var(--colorTextSecondary)"},children:"正在准备生成…"})]}),eP&&(0,l.jsx)("div",{ref:em,children:(0,l.jsx)(j.A,{items:[{key:"edit",label:ed("documents.edit"),children:(0,l.jsxs)(ee,{gap:16,style:{width:"100%"},children:[(0,l.jsx)(Y,{rows:28,value:eW,disabled:eJ,onSelect:e=>{var t,r,l;return e4({start:null!=(t=e.currentTarget.selectionStart)?t:0,end:null!=(l=null!=(r=e.currentTarget.selectionEnd)?r:e.currentTarget.selectionStart)?l:0})},onChange:e=>{var t,r,l;eG(e.target.value),e1(null),e6(null),e4({start:null!=(t=e.target.selectionStart)?t:0,end:null!=(l=null!=(r=e.target.selectionEnd)?r:e.target.selectionStart)?l:0})}}),(0,l.jsx)(m.A,{size:"small",style:{borderRadius:12,background:"linear-gradient(135deg, var(--colorFillAlter), var(--colorBgContainer))"},children:(0,l.jsxs)(ee,{gap:16,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{align:"start",style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(o.A,{size:6,children:[(0,l.jsx)(N.A,{style:{color:"var(--colorAccent)"}}),(0,l.jsx)(Z,{strong:!0,children:"精准修改"}),(0,l.jsx)(i.A,{color:"blue",children:"AI 辅助"})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:"针对当前编辑内容补充更具体的要求,AI 会保留文档结构并按你的提示细化修改。"})]}),(0,l.jsxs)(p.Ay,{size:"small",icon:(0,l.jsx)(X.A,{}),onClick:()=>e9(e=>!e),disabled:0===e3.length,children:["历史版本 ",e3.length>0?e3.length:""]})]}),(0,l.jsx)($,{type:"info",title:"系统只负责识别修改范围,不改写你的提示词;选中文字后优先只改选区,没有选区时按光标所在小节/章节定位。"}),(0,l.jsx)(Y,{rows:4,value:eX,disabled:eJ,onChange:e=>{eQ(e.target.value),e1(null),e6(null)},placeholder:"例如:写细一点;润色这段;第七章补充高处作业和临电安全措施;把安全检查频次改成每周一次。"}),(0,l.jsxs)(o.A,{wrap:!0,style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsx)(o.A,{wrap:!0,children:["写细一点","更专业","只润色选区","补充可执行措施"].map(e=>(0,l.jsx)(p.Ay,{size:"small",disabled:eJ,onClick:()=>eQ(t=>t?"".concat(t,";").concat(e):e),children:e},e))}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(N.A,{}),loading:eJ&&"planning"===eZ,disabled:!eX.trim()||eJ,onClick:()=>{re()},children:"识别修改范围"})]}),e0&&!e2&&(0,l.jsx)(m.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorAccent)"},children:(0,l.jsxs)(ee,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(i.A,{color:"purple",children:e0.scope}),(0,l.jsx)(i.A,{color:"blue",children:e0.action}),(0,l.jsxs)(i.A,{color:e0.confidence>=.8?"green":"orange",children:["置信度 ",Math.round(100*e0.confidence),"%"]}),e0.targetTitle&&(0,l.jsx)(Z,{strong:!0,children:e0.targetTitle})]}),(0,l.jsx)(Z,{children:e0.summary}),(0,l.jsx)(Z,{type:"secondary",style:{fontSize:12},children:"将按你的原始提示词执行,不添加额外编辑任务。"}),(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",loading:eJ&&"applying"===eZ,onClick:()=>{rt(e0)},children:"执行并预览"}),(0,l.jsx)(p.Ay,{disabled:eJ,onClick:()=>e1(null),children:"取消"})]})]})}),e2&&(0,l.jsx)(m.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorSuccess)"},children:(0,l.jsxs)(ee,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(i.A,{color:"green",children:"修改预览"}),(0,l.jsx)(Z,{children:e2.summary||e2.plan.summary}),(0,l.jsxs)(i.A,{children:[e2.changedChars&&e2.changedChars>0?"+".concat(e2.changedChars):e2.changedChars," 字符"]})]}),(0,l.jsxs)(y.A,{gutter:12,children:[(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Z,{strong:!0,children:"修改前"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e2.beforeSnippet||"无片段预览"})]}),(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Z,{strong:!0,children:"修改后"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e2.afterSnippet||"无片段预览"})]})]}),(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{e2&&(t5(e2.before,e2.prompt),eG(e2.markdown),t7(!0),eu.success("已应用精准修改"))},children:"应用到文档"}),(0,l.jsx)(p.Ay,{onClick:()=>e6(null),children:"返回计划"}),(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{e1(null),e6(null)},children:"放弃"})]})]})}),e7&&(0,l.jsx)("div",{style:{borderTop:"1px solid var(--colorBorderSecondary)",paddingTop:12},children:(0,l.jsx)(x.A,{size:"small",dataSource:e3,locale:{emptyText:"暂无历史版本"},renderItem:e=>(0,l.jsx)(x.A.Item,{actions:[(0,l.jsx)(p.Ay,{size:"small",disabled:eJ,onClick:()=>{t5(eW,"恢复前版本"),eG(e.content),t7(!0),eu.success("已恢复历史版本")},children:"恢复"},"restore")],children:(0,l.jsx)(x.A.Item.Meta,{title:(0,l.jsxs)(o.A,{children:[(0,l.jsx)(Z,{children:new Date(e.createdAt).toLocaleString()}),(0,l.jsx)(i.A,{children:e.prompt})]}),description:(0,l.jsx)(Z,{type:"secondary",ellipsis:!0,children:e.content.replace(/\s+/gu," ").slice(0,120)})})})})})]})})]})},{key:"chapters-facts",label:"章节与事实",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[eP.chapters.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["章节 (",eP.chapters.length,")"]}),(0,l.jsx)(x.A,{size:"small",dataSource:eP.chapters,renderItem:e=>(0,l.jsx)(x.A.Item,{children:(0,l.jsx)(x.A.Item.Meta,{title:e.title,description:"证据: ".concat(e.evidence.length," \xb7 缺失: ").concat(e.missingFacts.length)})})})]}),eP.structuredFacts.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["结构化事实 (",eP.structuredFacts.length,")"]}),(0,l.jsx)(A.A,{size:"small",column:1,bordered:!0,children:eP.structuredFacts.map((e,t)=>(0,l.jsxs)(A.A.Item,{label:e.key,children:[(0,l.jsx)("span",{children:e.value}),(0,l.jsx)(i.A,{style:{marginLeft:8},children:e.confidence.toFixed(2)}),(0,l.jsx)(Z,{type:"secondary",style:{fontSize:11,marginLeft:8},children:e.sourceFile})]},t))})]})]})},{key:"sources-missing",label:"来源与缺失",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["引用来源 (",eP.sources.length,")"]}),0===eP.sources.length?(0,l.jsx)(h.A,{description:"暂无"}):(0,l.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:eP.sources.map(e=>(0,l.jsxs)(i.A,{color:"blue",children:[e.filePath," (",e.count,")"]},e.filePath))})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["缺失项 (",eP.missingItems.length,")"]}),0===eP.missingItems.length?(0,l.jsx)(h.A,{description:"无缺失"}):(0,l.jsx)(x.A,{size:"small",dataSource:eP.missingItems,renderItem:e=>(0,l.jsx)(x.A.Item,{children:e})})]})]})},{key:"validation",label:"校验 (".concat(eP.validationIssues.length,")"),children:0===eP.validationIssues.length?(0,l.jsx)(h.A,{description:"校验通过"}):(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[eP.validationIssues.map(e=>(0,l.jsxs)("div",{style:{border:"1px solid var(--colorBorderSecondary)",borderRadius:8,padding:12},children:[(0,l.jsx)(i.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:e.level}),(0,l.jsx)("div",{style:{marginTop:6,whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all",lineHeight:1.6},children:e.message}),e.suggestion&&(0,l.jsx)("div",{style:{marginTop:6,color:"var(--colorTextSecondary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all"},children:e.suggestion})]},"".concat(e.level,"-").concat(e.message))),eP.exportGate.checklist.length>0&&(0,l.jsxs)("div",{style:{marginTop:8},children:[(0,l.jsx)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:"导出门禁"}),(0,l.jsx)(x.A,{size:"small",dataSource:eP.exportGate.checklist,renderItem:e=>(0,l.jsxs)(x.A.Item,{children:[(0,l.jsx)(Z,{style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:e.label}),(0,l.jsx)(i.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})]})]})},{key:"stages",label:"执行阶段 (".concat(eP.executionStages.length,")"),children:(0,l.jsx)(x.A,{size:"small",dataSource:eP.executionStages,renderItem:e=>(0,l.jsxs)(x.A.Item,{children:[(0,l.jsx)(x.A.Item.Meta,{avatar:el[e.type]||(0,l.jsx)(F.A,{}),title:(0,l.jsx)(Z,{title:e.roleId,style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:"".concat(ei[e.type]||e.type," \xb7 ").concat(e.roleName||t_(e.roleId))}),description:(0,l.jsx)(Z,{type:"secondary",style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-word"},children:e.message})}),(0,l.jsx)(i.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"skipped"===e.status?"default":"warning",children:e.status})]})})}]})})]})}),(0,l.jsx)(f.A,{title:ed("documents.templateEditor"),open:te,onClose:()=>tt(!1),size:860,mask:{closable:!1},styles:{body:{padding:20,overflow:"auto"},header:{borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{onClick:()=>tt(!1),children:ed("common.cancel")}),(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{tQ()},children:ed("common.save")})]}),children:(0,l.jsxs)(d.A,{form:ep,layout:"vertical",requiredMark:"optional",children:[(0,l.jsxs)(y.A,{gutter:12,children:[(0,l.jsx)(d.A.Item,{name:"id",hidden:!0,children:(0,l.jsx)(n.A,{})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"name",label:ed("documents.templateName"),rules:[{required:!0}],children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"category",label:ed("documents.templateCategory"),children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"outputTitle",label:ed("documents.outputTitle"),children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:12,children:(0,l.jsx)(d.A.Item,{name:"description",label:ed("documents.templateDescription"),children:(0,l.jsx)(n.A,{})})})]}),(0,l.jsx)(d.A.Item,{name:"projectRoleConfigId",label:ed("documents.projectRoleConfig"),rules:[{required:!0,message:ed("documents.projectRoleConfigRequired")}],children:(0,l.jsx)(b.A,{showSearch:!0,placeholder:ed("documents.projectRoleConfigRequired"),options:tM})}),(0,l.jsxs)("div",{className:"mb-6",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)(Z,{strong:!0,className:"text-base text-[var(--colorText)] block mb-1",children:"项目文件绑定"}),(0,l.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)]",children:"每个文件角色可直接勾选文件或文件夹;勾选文件夹会自动绑定该文件夹下所有文件。"})]}),(0,l.jsx)(i.A,{color:"blue",bordered:!1,children:"按文件角色多选"})]}),(0,l.jsx)(n.A.Search,{allowClear:!0,placeholder:"搜索文件或文件夹",value:eT,onChange:e=>ez(e.target.value),className:"mb-4"}),eI?(0,l.jsxs)("div",{className:"text-center py-8",children:[(0,l.jsx)(v.A,{}),(0,l.jsx)("div",{className:"mt-3 text-[var(--colorTextSecondary)] text-xs",children:"正在加载知识库文件…"})]}):0===to.length?(0,l.jsx)(h.A,{image:h.A.PRESENTED_IMAGE_SIMPLE,description:ts?"当前项目角色未配置文件角色":"请先选择项目角色"}):0===td.length?(0,l.jsx)(h.A,{image:h.A.PRESENTED_IMAGE_SIMPLE,description:"暂无知识库文件"}):(()=>{let e=null==ti?void 0:ti.value,t=e?en(tc[e]||[]).filter(e=>tp.includes(e)):[],r=new Set(eo(tu));return(0,l.jsxs)("div",{className:"flex flex-col md:flex-row gap-4 border border-[var(--borderColor)] rounded-xl overflow-hidden bg-[var(--colorBg)]",children:[(0,l.jsxs)("div",{className:"w-full md:w-[240px] border-b md:border-b-0 md:border-r border-[var(--borderColor)] bg-[var(--colorBgHover)] flex flex-col",children:[(0,l.jsx)("div",{className:"p-3 border-b border-[var(--borderColor)] text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)]",children:"文件角色"}),(0,l.jsx)("div",{className:"flex-1 overflow-y-auto max-h-[200px] md:max-h-[400px] p-2 space-y-1",children:to.map(t=>{let r=en(tc[t.value]||[]).filter(e=>tp.includes(e)).length,s=t.value===e;return(0,l.jsxs)("div",{onClick:()=>eE(t.value),className:"flex items-center justify-between p-2 rounded-lg cursor-pointer transition-all duration-200 ".concat(s?"bg-[var(--colorBgSelected)] text-[var(--colorAccent)] font-medium shadow-sm":"text-[var(--colorText)] hover:bg-[var(--colorBgElevated)]"),children:[(0,l.jsx)("span",{className:"truncate flex-1 mr-2 text-sm",children:t.label}),(0,l.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full ".concat(s?"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400":"bg-[var(--colorFillAlter)] text-[var(--colorTextTertiary)]"),children:r})]},t.value)})})]}),(0,l.jsxs)("div",{className:"flex-1 flex flex-col bg-[var(--colorBgContainer)]",children:[(0,l.jsxs)("div",{className:"p-3 border-b border-[var(--borderColor)] flex items-center justify-between bg-[var(--colorBgHover)]",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"font-medium text-sm text-[var(--colorText)]",children:null==ti?void 0:ti.label}),(0,l.jsxs)(i.A,{color:"blue",bordered:!1,className:"m-0 text-[10px] leading-[18px]",children:["已选 ",t.length]})]}),(0,l.jsx)(p.Ay,{type:"text",size:"small",danger:!0,disabled:!e||0===t.length,onClick:()=>e&&tX(e,[]),children:"清空"})]}),e&&(0,l.jsx)(d.A.Item,{name:["fileBindingGroups",e],hidden:!0,children:(0,l.jsx)(n.A,{})}),(0,l.jsx)("div",{className:"px-4 py-2 border-b border-[var(--borderColor)] bg-blue-50/30 dark:bg-blue-900/10",children:(0,l.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)] truncate",children:t.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"text-blue-500 mr-1",children:"●"})," ",t.slice(0,4).map(ea).join("、")," ",t.length>4?" 等 ".concat(t.length," 个文件"):""]}):(0,l.jsx)("span",{className:"text-[var(--colorTextTertiary)]",children:"请在下方勾选要绑定的文件..."})})}),(0,l.jsx)("div",{className:"flex-1 p-3 overflow-y-auto max-h-[320px]",children:(0,l.jsx)(S.A,{checkable:!0,blockNode:!0,treeData:tu,checkedKeys:t,expandedKeys:eT.trim()?th:eB,onExpand:e=>eM(e),onCheck:(l,s)=>{if(!e)return;let n=new Set(t.filter(e=>!r.has(e)));for(let e of s.checkedNodes)e.isFolder?eo([e]).forEach(e=>n.add(e)):n.add(e.key);tX(e,Array.from(n))}})})]})]})})()]}),(0,l.jsx)(k.A,{type:"info",showIcon:!0,message:"文档规范由后台根据模板、提示词和角色绑定自动生成,无需手动维护规范包。",className:"mb-4 bg-[var(--colorBgHover)] border-0"})]})})]})}}},e=>{e.O(0,[433,576,787,195,375,455,506,651,636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{16403:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return r(19562)}])},19562:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ed});var l=r(65321),s=r(97109),n=r(7576),a=r(35292),o=r(33442),i=r(11702),c=r(17807),d=r(63455),u=r(88762),p=r(85114),m=r(68787),h=r(84253),x=r(38332),g=r(26171),f=r(34052),v=r(42700),j=r(58569),y=r(2256),w=r(38770),A=r(76506),b=r(57271),S=r(49604),k=r(85493),I=r(23216),C=r(26619),T=r(8263),z=r(16285),R=r(8579),E=r(75548),B=r(7851),M=r(84742),N=r(29071),_=r(63552),F=r(26631),D=r(7225),P=r(83914),L=r(58209),W=r(54746),G=r(71330),O=r(64068),H=r(93051),q=r(38762),K=r(64629),V=r(67547),U=r(76830),X=r(1310),Q=r(6578),J=r(48321);let{TextArea:Y}=n.A,{Text:Z}=a.A;function $(e){let{type:t="info",title:r,children:s,style:n}=e,a="error"===t?"var(--colorError)":"warning"===t?"var(--colorWarning)":"success"===t?"var(--colorSuccess)":"var(--colorInfo)";return(0,l.jsxs)("div",{style:{border:"1px solid ".concat(a),background:"error"===t?"var(--colorErrorBg)":"warning"===t?"var(--colorWarningBg)":"success"===t?"var(--colorSuccessBg)":"var(--colorInfoBg)",borderRadius:8,padding:"9px 12px",...n},children:[(0,l.jsx)(Z,{strong:!0,style:{color:a},children:r}),s&&(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:s})]})}function ee(e){let{children:t,gap:r=12,style:s}=e;return(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:r,...s},children:t})}let et=null;function er(){null==et||et.listeners.forEach(e=>e())}let el={role_binding:(0,l.jsx)(I.A,{}),knowledge_retrieval:(0,l.jsx)(C.A,{}),file_understanding:(0,l.jsx)(T.A,{}),fact_extraction:(0,l.jsx)(z.A,{}),chapter_generation:(0,l.jsx)(R.A,{}),asset_generation:(0,l.jsx)(E.A,{}),validation:(0,l.jsx)(B.A,{}),formatting:(0,l.jsx)(M.A,{}),llm_review:(0,l.jsx)(N.A,{}),export_ready:(0,l.jsx)(_.A,{}),reference:(0,l.jsx)(E.A,{})},es={施工组织设计:(0,l.jsx)(B.A,{}),投标文件:(0,l.jsx)(_.A,{}),技术方案:(0,l.jsx)(z.A,{}),报告:(0,l.jsx)(F.A,{}),自定义:(0,l.jsx)(R.A,{})};function en(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function ea(e){return e?e.split(/[\\/]/u).pop()||e:""}function eo(e){let t=[],r=e=>{for(let l of e)l.isFolder?l.children&&r(l.children):t.push(l.key)};return r(e),t}let ei={role_binding:"角色配置绑定",knowledge_retrieval:"知识库检索",file_understanding:"多模态文件理解",fact_extraction:"LLM 事实抽取",chapter_generation:"LLM 章节生成",asset_generation:"多模态资源生成",validation:"规则校验",formatting:"格式化排版",llm_review:"LLM 审查优化",export_ready:"导出就绪",reference:"参考资源处理"},ec={"knowledge-base":"知识库","document-readiness":"生成准备度检查","quality-repair":"质量补写","export-gate":"导出门禁","context-memory":"项目上下文","final-format":"正式排版","multimodal-files":"多模态文件理解",tender_announcement:"招标公告"};function ed(){var e,t,r,a,E;let ed=(0,J.Vr)(),{message:eu}=c.A.useApp(),[ep]=d.A.useForm(),em=(0,s.useRef)(null),[eh,ex]=(0,s.useState)([]),[eg,ef]=(0,s.useState)("construction-organization-design"),[ev,ej]=(0,s.useState)([]),[ey,ew]=(0,s.useState)([]),[eA,eb]=(0,s.useState)([]),[eS,ek]=(0,s.useState)([]),[eI,eC]=(0,s.useState)(!1),[eT,ez]=(0,s.useState)(""),[eR,eE]=(0,s.useState)(),[eB,eM]=(0,s.useState)([]),[eN,e_]=(0,s.useState)(!0),[eF,eD]=(0,s.useState)(!1),[eP,eL]=(0,s.useState)(null),[eW,eG]=(0,s.useState)(""),[eO,eH]=(0,s.useState)([]),[eq,eK]=(0,s.useState)(null),[eV,eU]=(0,s.useState)(null),[eX,eQ]=(0,s.useState)(""),[eJ,eY]=(0,s.useState)(!1),[eZ,e$]=(0,s.useState)("idle"),[e0,e1]=(0,s.useState)(null),[e2,e6]=(0,s.useState)(null),[e8,e4]=(0,s.useState)({start:0,end:0}),[e3,e5]=(0,s.useState)([]),[e7,e9]=(0,s.useState)(!1),[te,tt]=(0,s.useState)(!1),[tr,tl]=(0,s.useState)({}),ts=d.A.useWatch("projectRoleConfigId",ep),tn=(0,s.useMemo)(()=>ey.find(e=>e.id===ts),[ey,ts]),ta=(0,s.useMemo)(()=>new Set(((null==tn?void 0:tn.fileRoles)||[]).map(e=>e.roleId)),[tn]),to=(0,s.useMemo)(()=>ev.filter(e=>"file"===e.type&&(!ts||ta.has(e.id))).map(e=>({label:e.name,value:e.id})),[ev,ta,ts]),ti=(0,s.useMemo)(()=>to.find(e=>e.value===eR)||to[0],[eR,to]),tc=d.A.useWatch("fileBindingGroups",ep)||{},td=(0,s.useMemo)(()=>(function(e){let t={};for(let s of[...e].sort((e,t)=>e.relativePath.localeCompare(t.relativePath,"zh-CN"))){let e=s.relativePath.split("/").filter(Boolean),n="";for(let a=0;a<e.length;a++){let i=e[a],c=n;n=n?"".concat(n,"/").concat(i):i;let d=a===e.length-1;if(!t[n]){var r;t[n]={key:n,rawTitle:i,title:d?(0,l.jsx)("span",{title:s.relativePath,children:i}):(0,l.jsxs)(o.A,{size:4,children:[(0,l.jsx)(D.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:i})]}),isFolder:!d,fileCount:+!!d,...d?{}:{children:[]}},c&&(null==(r=t[c])?void 0:r.children)&&t[c].children.push(t[n])}d&&(t[n].fileCount=1)}}let s=e=>{for(let r of e){var t;(null==(t=r.children)?void 0:t.length)&&(s(r.children),r.fileCount=r.children.reduce((e,t)=>e+t.fileCount,0),r.title=(0,l.jsxs)(o.A,{size:4,children:[(0,l.jsx)(D.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:r.rawTitle}),(0,l.jsx)(i.A,{style:{margin:0},children:r.fileCount})]}))}},n=Object.values(t).filter(e=>!e.key.includes("/"));return s(n),n.filter(e=>!e.isFolder||e.fileCount>0)})(eS),[eS]),tu=(0,s.useMemo)(()=>(function e(t,r){let l=r.trim().toLowerCase();return l?t.flatMap(t=>{let r=t.children?e(t.children,l):void 0;return t.key.toLowerCase().includes(l)||t.rawTitle.toLowerCase().includes(l)||(null==r?void 0:r.length)?[{...t,children:r}]:[]}):t})(td,eT),[td,eT]),tp=(0,s.useMemo)(()=>eo(td),[td]),tm=(0,s.useMemo)(()=>{var e,t,r;return(null==(e=eA.find(e=>e.selected))?void 0:e.projectRoot)||(null==(t=eA.find(e=>e.isCurrent))?void 0:t.projectRoot)||(null==(r=eA[0])?void 0:r.projectRoot)||""},[eA]),th=(0,s.useMemo)(()=>{let e=[],t=r=>{for(let l of r)e.push(l.key),l.children&&t(l.children)};return t(td),e},[td]);(0,s.useEffect)(()=>{if(!te||!ts)return;let e=ep.getFieldValue("fileBindingGroups")||{},t=Object.fromEntries(Object.entries(e).filter(e=>{let[t]=e;return ta.has(t)}));Object.keys(t).length!==Object.keys(e).length&&ep.setFieldValue("fileBindingGroups",t)},[ep,ta,ts,te]),(0,s.useEffect)(()=>{if(te){if(0===to.length)return void eE(void 0);eR&&to.some(e=>e.value===eR)||eE(to[0].value)}},[eR,to,te]);let[tx,tg]=(0,s.useState)([]),[tf,tv]=(0,s.useState)(null),[tj,ty]=(0,s.useState)(null),[tw,tA]=(0,s.useState)("templates"),[tb,tS]=(0,s.useState)(!1),[tk,tI]=(0,s.useState)("workflow"),tC=(0,s.useRef)(null),tT=(0,s.useRef)(null),tz=(0,s.useRef)(0),tR=(0,s.useMemo)(()=>"activeGenDocId:".concat(tm||"default"),[tm]),tE=async()=>{try{eH((await (0,Q.cQ)(tm||void 0)).documents)}catch(e){eH([])}};(0,s.useEffect)(()=>{let e=()=>{et&&(tg(et.flowSteps),tv(et.activeFlowKey),eD(et.loading),et.documentId&&eK(et.documentId),et.draft&&eL(et.draft),void 0!==et.content&&eG(et.content))},t=et;return null==t||t.listeners.add(e),e(),()=>{null==t||t.listeners.delete(e)}},[]),(0,s.useEffect)(()=>{e_(!0),Promise.all([(0,Q.Dl)().then(e=>{var t,r;ex(e.templates),ef(null!=(r=null==(t=e.templates[0])?void 0:t.id)?r:"construction-organization-design")}),(0,Q.lv)().then(e=>{ej(e.roles),ew(e.configs)}),(0,Q.dx)().then(e=>eb(e))]).catch(()=>eu.error(ed("common.error"))).finally(()=>e_(!1))},[eu,ed]),(0,s.useEffect)(()=>{tm&&(localStorage.removeItem("activeGenDocId"),tE())},[tm]),(0,s.useEffect)(()=>{if(0===eO.length)return;let e=localStorage.getItem(tR);if(!e)return;if(!eO.find(t=>t.id===e&&"generating"===t.status))return void localStorage.removeItem(tR);let t=setInterval(()=>{(async()=>{try{let{document:r}=await (0,Q.v7)(e,!1,tm||void 0);await tE(),"generating"!==r.status&&(localStorage.removeItem(tR),clearInterval(t))}catch(e){clearInterval(t)}})()},3e3);return()=>clearInterval(t)},[eO]);let tB=(0,s.useMemo)(()=>eh.find(e=>e.id===eg),[eh,eg]),tM=ey.map(e=>({label:e.name,value:e.id})),tN=Math.max(0,tx.findIndex(e=>e.key===tf)),t_=e=>{var t;return e?(null==(t=ev.find(t=>t.id===e))?void 0:t.name)||ec[e]||"未知角色":""},tF=e=>e.subtitle||e.roleName||t_(e.roleId)||ei[e.type]||e.type,tD=e=>{var t,r,l;return e.promptName||((t=e.promptId)?(null==(r=eA.find(e=>e.id===t))?void 0:r.projectName)||(null==(l=ev.find(e=>e.id===t))?void 0:l.name)||ec[t]||"未知提示词":"")},tP=()=>{tz.current+=1,eQ(""),e1(null),e6(null),e5([]),e9(!1),eY(!1),e$("idle")},tL=e=>{ef(e),eK(null),eL(null),eG(""),tP(),tI("workflow"),tS(!0),tA("drafts")},tW=async e=>{eK(e.id),ef(e.templateId);let t=tG(e.status);if(t||"failed"===e.status||"aborted"===e.status){tP(),ty(e),eL(null),eG(""),eD(t),tI("workflow"),tS(!0);try{let{document:t}=await (0,Q.v7)(e.id,!1,e.projectRoot||tm||void 0);tq(t),tG(t.status)?tK(t.id,t.projectRoot||e.projectRoot||tm||void 0):await tE()}catch(t){tq(e)}return}tI("editor"),tg([]),tv(null),tP();try{let{document:t}=await (0,Q.v7)(e.id,!1,e.projectRoot||tm||void 0);eL(t.draft||null),eG(t.editedMarkdown||t.markdown)}catch(e){eu.error(ed("common.error"))}tS(!0)},tG=e=>"completed"!==e&&"warning"!==e&&"failed"!==e&&"aborted"!==e,tO=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eF;(null==et?void 0:et.loading)&&(et.flowSteps=e,et.activeFlowKey=t,et.loading=r,er())},tH=e=>{var t,r,s,n,a;let o=e.executionStages||(null==(t=e.draft)?void 0:t.executionStages)||[];if(o.length>0){let t=o.map((t,r)=>{var s;let n,a=("failed"===e.status||"aborted"===e.status)&&"running"===t.status||"failed"===(n=t.status)?"error":"running"===n?"process":"fallback"===n?"warning":"finish";return{key:"".concat(t.type,"-").concat(r),title:t.title||ei[t.type]||t.type,subtitle:tF(t),description:t.message||"",status:a,icon:"role_binding"===(s=t.type)?(0,l.jsx)(I.A,{}):"knowledge_retrieval"===s?(0,l.jsx)(C.A,{}):"file_understanding"===s?(0,l.jsx)(T.A,{}):"fact_extraction"===s?(0,l.jsx)(z.A,{}):"chapter_generation"===s?(0,l.jsx)(R.A,{}):"llm_review"===s?(0,l.jsx)(N.A,{}):"validation"===s?(0,l.jsx)(B.A,{}):"formatting"===s?(0,l.jsx)(M.A,{}):"export_ready"===s?(0,l.jsx)(_.A,{}):(0,l.jsx)(F.A,{}),subSteps:((e,t,r)=>{let l=Array.isArray(e.details)?e.details.filter(Boolean):[],s=e.progress?"".concat(e.progress.label||"进度",":").concat(e.progress.current,"/").concat(e.progress.total):"",n=[...s?[s]:[],...l];return 0===n.length?[{key:"stage-".concat(r),title:tD(e)?"提示词:".concat(tD(e)):tF(e),status:t}]:n.slice(0,8).map((e,l)=>({key:"stage-".concat(r,"-").concat(l),title:e,status:"process"===t&&0===l?"process":"error"===t&&0===l?"error":"warning"===t?"warning":"process"===t?"finish":t}))})(t,a,r)}});"generating"===e.status&&t.length>0&&(null==(r=t.at(-1))?void 0:r.status)==="finish"&&(t[t.length-1]={...t[t.length-1],status:"process"});let i="generating"===e.status?(null==(s=t.at(-1))?void 0:s.key)||"prepare":"failed"===e.status||"aborted"===e.status?(null==(n=t.find(e=>"error"===e.status))?void 0:n.key)||(null==(a=t.at(-1))?void 0:a.key)||"prepare":"done";return{steps:t,activeKey:i}}return{steps:[],activeKey:null}},tq=e=>{ty(e);let{steps:t,activeKey:r}=tH(e);tg(t),tv(r),eD(tG(e.status)),tO(t,r,tG(e.status)),("failed"===e.status||"aborted"===e.status)&&tI("workflow"),("completed"===e.status||"warning"===e.status)&&e.draft&&(eL(e.draft),eG(e.editedMarkdown||e.markdown),tI("editor"),tg([]),tv(null))},tK=(e,t)=>{tC.current&&clearInterval(tC.current),tC.current=setInterval(()=>{(async()=>{try{let{document:r}=await (0,Q.v7)(e,!0,t||tm||void 0);tq(r),await tE(),tG(r.status)||(tC.current&&clearInterval(tC.current),tC.current=null,localStorage.removeItem(tR))}catch(e){}})()},2e3)};(0,s.useEffect)(()=>()=>{tC.current&&(clearInterval(tC.current),tC.current=null),tT.current&&(clearTimeout(tT.current),tT.current=null)},[]),(0,s.useEffect)(()=>{if(!eF||!tf)return;let e=window.setInterval(()=>tg(e=>{let t=e.map(e=>{if(e.key!==tf||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),r=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<r?{...e,status:"finish"}:t===r?{...e,status:"process"}:{...e,status:"wait"})}});return tO(t,tf),t}),1400);return()=>window.clearInterval(e)},[tf,eF]);let tV=async()=>{eC(!0);try{let e=await (0,Q.HT)({limit:5e3,projectRoot:tm||void 0});ek(e.files)}catch(e){eu.error("知识库文件加载失败")}finally{eC(!1)}},tU=e=>{var t,r,l;let s=null!=e?e:{id:"tpl-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,chapters:[],fileBindings:[]};ep.resetFields(),ep.setFieldsValue({...s,fileBindingGroups:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.reduce((e,t)=>(t.roleId&&t.filePath&&(e[t.roleId]=en([...e[t.roleId]||[],t.filePath])),e),{})}(s.fileBindings)}),eE(null==(l=ey.find(e=>e.id===s.projectRoleConfigId))||null==(r=l.fileRoles)||null==(t=r[0])?void 0:t.roleId),ez(""),tV(),tt(!0)},tX=(e,t)=>{let r=ep.getFieldValue("fileBindingGroups")||{};ep.setFieldValue("fileBindingGroups",{...r,[e]:en(t)})},tQ=async()=>{try{var e;await ep.validateFields();let t=ep.getFieldsValue(!0),r=new Set(((null==(e=ey.find(e=>e.id===t.projectRoleConfigId))?void 0:e.fileRoles)||[]).map(e=>e.roleId)),l=t.fileBindingGroups||{},s=Object.entries(l).filter(e=>{let[t]=e;return 0===r.size||r.has(t)}).flatMap(e=>{let[t,r]=e;return en(r||[]).map(e=>({roleId:t,filePath:e}))}),{fileBindingGroups:n,...a}=t,o={...a,chapters:[],fileBindings:s},i=await (0,Q.l2)(o);ex(i.templates),ef(i.template.id),tt(!1),await tE(),eu.success(ed("common.success"))}catch(e){e instanceof Error&&eu.error(e.message)}},tJ=async e=>{try{let t=await (0,Q.bV)(e);ex(t.templates),ef(t.template.id),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},tY=async e=>{try{var t,r;let l=await (0,Q.h0)(e);ex(l.templates),ef(null!=(r=null==(t=l.templates[0])?void 0:t.id)?r:""),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},tZ=async e=>{try{let{validation:t}=await (0,Q.SM)(e,tm||void 0);tl(r=>({...r,[e]:t}));let r=t.issues.filter(e=>"error"===e.level);if(ef(e),r.length>0)return void eu.warning("模板运行前检查未通过,请先处理阻断项");if(t.issues.length>0)return void eu.warning("模板存在警告,可在检查面板确认后继续运行");tL(e)}catch(e){eu.error(e instanceof Error?e.message:"模板运行前检查失败")}},t$=async e=>{try{await (0,Q.QG)(e.id,e.projectRoot||tm||void 0),eq===e.id&&(eK(null),eL(null),eG("")),await tE(),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},t0=async(e,t)=>{let r=Date.now(),l=0,s=Date.now();for(;;){let n;if(null==t?void 0:t.aborted)throw Error("用户中止");let a=new AbortController;t&&(t.pollController=a);try{({document:n}=await (0,Q.v7)(e,!0,tm||void 0,a.signal))}finally{(null==t?void 0:t.pollController)===a&&(t.pollController=void 0)}if(tq(n),n.updatedAt!==l&&(l=n.updatedAt,s=Date.now()),("completed"===n.status||"warning"===n.status)&&n.draft)return n;if("failed"===n.status||"aborted"===n.status)throw Error(n.error||("aborted"===n.status?"生成已中止":"生成失败"));if(Date.now()-r>75e5||Date.now()-s>96e4)throw Error("生成任务疑似卡住,请点击继续生成或重新生成");await new Promise(e=>window.setTimeout(e,1500))}},t1=async()=>{if(!eg)return;if((null==et?void 0:et.aborted)&&(et=null),null==et?void 0:et.loading){tg(et.flowSteps),tv(et.activeFlowKey),eD(!0);return}if(!tm)return void eu.error("未识别当前项目,请先选择或打开项目后再生成文件");eD(!0);let e=(0,Q.OX)({templateId:eg,projectRoot:tm});et={id:Date.now(),templateId:eg,loading:!0,flowSteps:[],activeFlowKey:null,promise:e,listeners:new Set},tg([]),tv(null);let t=[];try{let r=await e;r.documentId&&(localStorage.setItem(tR,r.documentId),eK(r.documentId),(null==et?void 0:et.promise)===e&&(et.documentId=r.documentId)),await tE();let l=r.documentId?await t0(r.documentId,(null==et?void 0:et.promise)===e?et:void 0):void 0,s=r.draft||(null==l?void 0:l.draft);if(!s)throw Error("生成结果为空");(r.documentId||(null==l?void 0:l.id))&&eK(r.documentId||l.id),t.forEach(e=>window.clearTimeout(e)),eL(s),eG((null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||s.markdown),(null==et?void 0:et.promise)===e&&(et.draft=s,et.content=(null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||s.markdown);let n=l||{id:r.documentId||"draft-".concat(Date.now()),templateId:eg,title:s.title,requirement:s.requirement,projectRoot:s.projectRoot||tm,projectId:s.projectId,markdown:s.markdown,status:s.validationIssues.some(e=>"error"===e.level||"warning"===e.level)||!s.exportGate.passed?"warning":"completed",draft:s,executionStages:s.executionStages,assets:s.assets||[],createdAt:s.generatedAt,updatedAt:Date.now()},{steps:a}=tH(n);tg(a),tO(a,"done",!1),tv("done"),(null==et?void 0:et.promise)===e&&(et.activeFlowKey="done",et.loading=!1,er(),et=null),localStorage.removeItem(tR),await tE(),eu.success(ed("common.success")),window.setTimeout(()=>{var e;return null==(e=em.current)?void 0:e.scrollIntoView({behavior:"smooth",block:"start"})},200)}catch(l){localStorage.removeItem(tR);let t=l instanceof Error?l.message:ed("common.error"),r=/用户中止|abort|aborted/i.test(t);r||tg(e=>{let r=e.map(e=>"process"===e.status?{...e,status:"error",description:t,subSteps:((e,t)=>{if("wait"===t)return e.subSteps.map(e=>({...e,status:"wait"}));if("finish"===t)return e.subSteps.map(e=>({...e,status:"finish"}));if("error"===t)return e.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}));let r=e.subSteps.findIndex(e=>"wait"===e.status);return e.subSteps.map((e,t)=>t<r||-1===r?{...e,status:"finish"}:t===r?{...e,status:"process"}:e)})(e,"error")}:e);return tO(r,tf,!1),r}),(null==et?void 0:et.promise)===e&&(et.loading=!1,et.error=t,er(),et=null),await tE().catch(()=>void 0),r||eu.error(t)}finally{t.forEach(e=>window.clearTimeout(e)),eD(!1),(null==et?void 0:et.promise)===e&&(et.loading=!1,er())}},t2=(0,s.useRef)(!1);(0,s.useEffect)(()=>(tT.current&&(clearTimeout(tT.current),tT.current=null),!tb||"workflow"!==tk||eq||t2.current||(null==et?void 0:et.loading)||null==tB||!tB.projectRoleConfigId||(t2.current=!0,tT.current=setTimeout(()=>{tT.current=null,tb&&"workflow"===tk&&!eq&&eg==eg&&t1()},300)),tb||(t2.current=!1),()=>{tT.current&&(clearTimeout(tT.current),tT.current=null)}),[tb,tk,eq,tB,eg]);let t6=async e=>{try{eK(e.id),ef(e.templateId),tI("workflow"),tS(!0),eD(!0);let t=await (0,Q.UQ)(e.id,e.projectRoot||tm||void 0);localStorage.setItem(tR,t.documentId),await tE();let r=await t0(t.documentId);r.draft&&(eL(r.draft),eG(r.editedMarkdown||r.markdown||r.draft.markdown),tI("editor")),localStorage.removeItem(tR),await tE(),eu.success("已继续生成并完成")}catch(e){eu.error(e instanceof Error?e.message:"继续生成失败")}finally{eD(!1)}},t8=async e=>{if((null==et?void 0:et.loading)&&et.documentId===e.id){var t;et.aborted=!0,null==(t=et.pollController)||t.abort(),et.loading=!1,et.error="用户中止",er(),et=null,eD(!1)}localStorage.removeItem(tR),tC.current&&(clearInterval(tC.current),tC.current=null);try{await (0,Q.r)(e.id,e.projectRoot||tm||void 0),eu.success("已中止生成任务")}catch(e){eu.info("任务已不在运行,已刷新状态")}finally{await tE(),eq===e.id&&(eK(null),ty(null),eL(null),eG(""))}},t4=async e=>{if(eP){eU(e);try{eP.exportGate.passed||eu.warning("导出门禁存在风险项,已允许导出,请下载后人工复核。");let t={documentId:eq||void 0,title:eP.title,markdown:eW,format:e,enforceGate:!1,exportGate:eP.exportGate,useClientMarkdown:!0,projectRoot:eP.projectRoot||tm||void 0},r=await (0,Q.UE)(t);((e,t,r)=>{let l=new Blob([e],{type:r}),s=URL.createObjectURL(l),n=document.createElement("a");n.href=s,n.download=t,n.target="_self",n.rel="noopener",n.style.display="none",document.body.appendChild(n),n.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),n.remove(),window.setTimeout(()=>URL.revokeObjectURL(s),1e3)})(r,"".concat(eP.title,".").concat("markdown"===e?"md":e),{markdown:"text/markdown;charset=utf-8",html:"text/html;charset=utf-8",pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}[e])}catch(e){eu.error(e instanceof Error?e.message:ed("common.error"))}finally{eU(null)}}},t3=async()=>{if(eP)try{if(eq)await (0,Q.a6)(eq,{editedMarkdown:eW,markdown:eW},eP.projectRoot||tm||void 0);else{let e=await (0,Q.Af)({...eP,markdown:eW});eL(e.draft)}await tE(),eu.success(ed("common.success"))}catch(e){eu.error(ed("common.error"))}},t5=(e,t)=>{e5(r=>[{id:"".concat(Date.now()),content:e,prompt:t,createdAt:Date.now()},...r].slice(0,12))},t7=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&eQ(""),e1(null),e6(null),e4({start:0,end:0})},t9=(e,t)=>{var r,l;return{title:(null==eP?void 0:eP.title)||"未命名文档",markdown:t,instruction:e,facts:null==eP||null==(r=eP.structuredFacts)?void 0:r.map(e=>"".concat(e.key,": ").concat(e.value)),chapters:null==eP||null==(l=eP.chapters)?void 0:l.map(e=>e.title),...(()=>{let e=e8.start,t=e8.end;return t>e?{selection:{start:e,end:t,text:eW.slice(e,t)},cursorOffset:e}:{cursorOffset:e}})()}},re=async()=>{let e=eX.trim();if(!eP||!e||eJ)return;let t=tz.current+1;tz.current=t,eY(!0),e$("planning"),e6(null);try{let r=await (0,Q.Gi)({mode:"plan",...t9(e,eW)});if(tz.current!==t||eq!=eq)return;if(!r.plan)throw Error("AI 未返回修改计划");e1(r.plan)}catch(e){tz.current===t&&eu.error(e instanceof Error?e.message:ed("common.error"))}finally{tz.current===t&&(eY(!1),e$("idle"))}},rt=async e=>{let t=eX.trim();if(!eP||!t||eJ)return;let r=tz.current+1;tz.current=r,eY(!0),e$("applying");try{let l=await (0,Q.Gi)({mode:"apply",...t9(t,eW),plan:e});if(tz.current!==r||eq!=eq)return;if(!l.markdown)throw Error("AI 未返回修改结果");e6({plan:l.plan||e,markdown:l.markdown,beforeSnippet:l.beforeSnippet,afterSnippet:l.afterSnippet,summary:l.summary,changedChars:l.changedChars,prompt:t,before:eW})}catch(e){tz.current===r&&eu.error(e instanceof Error?e.message:ed("common.error"))}finally{tz.current===r&&(eY(!1),e$("idle"))}};if(eN)return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsx)(u.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:2}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:8}})]});let rr="workflow"===tk?"工作流:".concat((null==tB?void 0:tB.name)||"选择模板"):"编辑:".concat((null==eP?void 0:eP.title)||(null==tB?void 0:tB.outputTitle)||"文档");return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"pageTitle",children:ed("documents.title")}),(0,l.jsx)("p",{className:"pageDesc",children:ed("documents.description")})]}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(W.A,{}),onClick:()=>tU(),children:ed("documents.newTemplate")})]}),(0,l.jsx)(m.A,{size:"small",tabList:[{key:"templates",label:"模板库 (".concat(eh.length,")")},{key:"drafts",label:"生成记录 (".concat(eO.length,")")}],activeTabKey:tw,onTabChange:tA,children:"templates"===tw?0===eh.length?(0,l.jsx)(h.A,{description:ed("common.noData")}):(0,l.jsx)(x.A,{dataSource:eh,renderItem:e=>{var t,r;return(0,l.jsx)(x.A.Item,{style:{cursor:"pointer",padding:"10px 0"},actions:[(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(G.A,{}),onClick:t=>{t.stopPropagation(),tU(e)},children:"配置"},"cfg"),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(O.A,{}),onClick:t=>{t.stopPropagation(),tZ(e.id)},children:"运行"},"run"),(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(H.A,{}),onClick:t=>{t.stopPropagation(),tJ(e.id)}},"copy"),(0,l.jsx)(g.A,{title:ed("documents.deleteTemplateConfirm"),onConfirm:t=>{null==t||t.stopPropagation(),tY(e.id)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})},"del")],onClick:()=>ef(e.id),children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,minWidth:0,flex:1},children:[function(e,t){let r=es[e]||(0,l.jsx)(F.A,{});return(0,l.jsx)("span",{style:{color:t?"var(--colorAccent)":"var(--colorTextSecondary)",fontSize:16,marginTop:2,flexShrink:0},children:r})}(e.category,eg===e.id),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,l.jsx)("span",{style:{fontWeight:eg===e.id?600:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),eg===e.id&&(0,l.jsx)(i.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:"当前"}),(0,l.jsx)(i.A,{style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:e.category}),tr[e.id]&&(0,l.jsxs)(i.A,{color:tr[e.id].issues.some(e=>"error"===e.level)?"error":tr[e.id].issues.length?"warning":"success",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:["检查 ",tr[e.id].fileDiagnostics.length," 文件 / ",tr[e.id].promptDiagnostics.length," 提示词"]})]}),e.description&&(0,l.jsx)(Z,{type:"secondary",style:{fontSize:12,lineHeight:"18px"},children:e.description}),tr[e.id]&&(0,l.jsx)("div",{onClick:e=>e.stopPropagation(),style:{marginTop:8,padding:10,border:"1px solid ".concat(tr[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBorder)":tr[e.id].issues.length?"var(--colorWarningBorder)":"var(--colorSuccessBorder)"),borderRadius:10,background:tr[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBg)":tr[e.id].issues.length?"var(--colorWarningBg)":"var(--colorSuccessBg)"},children:(0,l.jsxs)(ee,{gap:6,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(Z,{strong:!0,children:tr[e.id].issues.some(e=>"error"===e.level)?"运行前检查未通过":tr[e.id].issues.length?"运行前检查存在警告":"运行前检查通过"}),(0,l.jsxs)(i.A,{color:"blue",children:["文件角色 ",tr[e.id].fileDiagnostics.length]}),(0,l.jsxs)(i.A,{color:"purple",children:["提示词角色 ",tr[e.id].promptDiagnostics.length]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:tr[e.id].readiness.ready?"green":"error",children:["资料覆盖 ",Math.round(100*tr[e.id].readiness.materialCoverageRate),"%"]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:"cyan",children:["角色满足 ",Math.round(100*tr[e.id].readiness.roleSatisfactionRate),"%"]}),tr[e.id].readiness&&(0,l.jsxs)(i.A,{color:"geekblue",children:["规范完整 ",Math.round(100*tr[e.id].readiness.specCompletenessRate),"%"]})]}),null==(r=tr[e.id].readiness)||null==(t=r.chapterDiagnostics)?void 0:t.filter(e=>e.readinessRate<.7||e.missingFacts.length>0).slice(0,5).map(e=>(0,l.jsx)($,{type:e.readinessRate<.5?"warning":"info",title:"章节预检:".concat(e.title," \xb7 覆盖 ").concat(Math.round(100*e.readinessRate),"% \xb7 证据 ").concat(e.evidenceCount," 条").concat(e.missingFacts.length?" \xb7 缺失 ".concat(e.missingFacts.slice(0,4).join("、")):"")},e.chapterId)),tr[e.id].issues.length>0?tr[e.id].issues.map(e=>(0,l.jsx)($,{type:"error"===e.level?"error":"warning",title:e.message},e.message)):(0,l.jsx)($,{type:"success",title:"文件角色、提示词角色和后台自动规范检查通过,可以运行。"}),!tr[e.id].issues.some(e=>"error"===e.level)&&tr[e.id].issues.length>0&&(0,l.jsx)("div",{children:(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(O.A,{}),onClick:()=>tL(e.id),children:"忽略警告并继续运行"})})]})})]})]})})}}):0===eO.length?(0,l.jsx)(h.A,{description:ed("common.noData")}):(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:eO.slice(0,15).map((e,t)=>{var r,s,n,a,c;let d,u;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",border:"1px solid var(--colorBorderSecondary)",borderRadius:10,cursor:"pointer",background:eq===e.id?"var(--colorFillAlter)":void 0,minWidth:0},onClick:()=>{tW(e)},children:["completed"===e.status?(0,l.jsx)(M.A,{style:{fontSize:18,color:"var(--colorOk)",flexShrink:0,marginTop:2}}):"failed"===e.status||"aborted"===e.status?(0,l.jsx)(q.A,{style:{fontSize:18,color:"var(--colorDanger)",flexShrink:0,marginTop:2}}):"warning"===e.status?(0,l.jsx)(B.A,{style:{fontSize:18,color:"var(--colorWarning)",flexShrink:0,marginTop:2}}):(0,l.jsx)(K.A,{spin:!0,style:{fontSize:18,color:"#1677ff",flexShrink:0,marginTop:2}}),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:3},children:e.title}),(0,l.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 10px",color:"var(--colorTextSecondary)",fontSize:11},children:[(0,l.jsx)("span",{children:new Date(e.updatedAt).toLocaleString()}),(0,l.jsxs)("span",{children:["耗时 ",(e=>{let t=Math.max(0,Math.round(((e.completedAt||e.updatedAt)-e.createdAt)/1e3));if(t<60)return"".concat(t," 秒");let r=Math.floor(t/60),l=t%60;if(r<60)return l?"".concat(r," 分 ").concat(l," 秒"):"".concat(r," 分");let s=Math.floor(r/60),n=r%60;return n?"".concat(s," 小时 ").concat(n," 分"):"".concat(s," 小时")})(e)]})]}),e.partialChapters&&e.partialChapters.length>0&&(0,l.jsxs)("div",{style:{marginTop:3,fontSize:11,color:"var(--colorTextSecondary)"},children:["已完成章节 ",e.partialChapters.filter(e=>"completed"===e.status).length,"/",e.partialChapters.length," \xb7 ",e.partialChapters.reduce((e,t)=>e+t.chars,0).toLocaleString()," 字"]}),("warning"===e.status||"failed"===e.status||"aborted"===e.status)&&(0,l.jsx)("div",{style:{marginTop:3,color:"failed"===e.status||"aborted"===e.status?"var(--colorError)":"var(--colorWarning)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.error||(null==(r=e.warningIssues)?void 0:r[0])||(null==(n=e.draft)||null==(s=n.validationIssues.find(e=>"error"===e.level||"warning"===e.level))?void 0:s.message)||"需复核"})]}),(0,l.jsxs)(o.A,{size:4,align:"center",children:[(0,l.jsx)(i.A,{color:"completed"===(d=e.status)?"success":"warning"===d?"warning":"failed"===d?"error":"aborted"===d?"default":"processing",style:{margin:0,fontSize:10,lineHeight:"18px"},children:"completed"===(u=e.status)?"已完成":"warning"===u?"需复核":"failed"===u?"失败":"aborted"===u?"已中止":"生成中"}),(0,l.jsxs)(i.A,{style:{margin:0,fontSize:10,lineHeight:"18px"},children:["#",t+1]}),(0,l.jsx)(g.A,{title:"确认删除?",onConfirm:t=>{null==t||t.stopPropagation(),t$(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})}),tG(e.status)&&(0,l.jsx)(g.A,{title:"确定中止此生成任务?",onConfirm:t=>{null==t||t.stopPropagation(),t8(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,onClick:e=>e.stopPropagation(),children:"中止"})}),("failed"===e.status||"aborted"===e.status||"warning"===e.status&&!!(null==(a=e.checkpointChapters)?void 0:a.length)&&/继续生成|重新生成|中断|卡住|未完成/u.test(e.error||(null==(c=e.warningIssues)?void 0:c.join(";"))||""))&&(0,l.jsx)(p.Ay,{size:"small",onClick:t=>{t.stopPropagation(),t6(e)},children:"继续"}),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:tG(e.status)?(0,l.jsx)(K.A,{spin:!0}):(0,l.jsx)(O.A,{}),onClick:t=>{t.stopPropagation(),tW(e)},children:"打开"})]})]},e.id)})})}),(0,l.jsx)(f.A,{title:rr,open:tb,onClose:()=>{tS(!1),tC.current&&(clearInterval(tC.current),tC.current=null)},size:800,mask:{closable:!1},style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:eP?(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(V.A,{}),disabled:eJ,onClick:()=>{t3()},children:ed("documents.saveDraft")}),(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(U.A,{}),disabled:eJ,loading:"markdown"===eV,onClick:()=>{t4("markdown")},children:"MD"}),(0,l.jsx)(p.Ay,{disabled:eJ,loading:"html"===eV,onClick:()=>{t4("html")},children:"HTML"}),(0,l.jsx)(p.Ay,{disabled:eJ,loading:"docx"===eV,onClick:()=>{t4("docx")},children:"DOCX"}),(0,l.jsx)(p.Ay,{type:"primary",disabled:eJ,loading:"pdf"===eV,onClick:()=>{t4("pdf")},children:"PDF"})]}):eF&&"workflow"===tk?(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{(async()=>{if(eq&&await (0,Q.r)(eq,tm||void 0).catch(()=>void 0),et){var e;et.aborted=!0,null==(e=et.pollController)||e.abort(),et.loading=!1,et.error="用户中止",er(),et=null}localStorage.removeItem(tR),tC.current&&(clearInterval(tC.current),tC.current=null),eD(!1),tg([]),tv(null),tS(!1),await tE(),eu.info("已中止生成任务")})()},children:"中止任务"}):void 0,children:(0,l.jsxs)(ee,{style:{width:"100%"},gap:16,children:["workflow"===tk&&tx.length>0&&(0,l.jsx)(ee,{gap:10,children:tx.map((e,t)=>{let r;return(0,l.jsxs)("div",{style:{display:"flex",gap:10,padding:10,border:"1px solid var(--colorBorderSecondary)",borderRadius:10,background:t===tN?"var(--colorFillAlter)":"var(--colorBgContainer)"},children:[(0,l.jsx)("span",{children:"process"===e.status?(0,l.jsx)(P.A,{}):"warning"===e.status?(0,l.jsx)(B.A,{style:{color:"var(--colorWarning)"}}):e.icon}),(0,l.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(Z,{strong:!0,children:e.title}),(0,l.jsx)(i.A,{color:"finish"===e.status?"success":"error"===e.status?"error":"warning"===e.status?"warning":"process"===e.status?"processing":"default",children:"warning"===(r=e.status)?"finish":r})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12,whiteSpace:"pre-wrap"},children:(0,l.jsxs)("div",{children:[e.subtitle&&(0,l.jsx)("div",{style:{marginBottom:4},children:(0,l.jsx)(i.A,{children:e.subtitle})}),(0,l.jsx)("div",{children:e.description}),(0,l.jsx)("div",{style:{marginTop:4},children:e.subSteps.map(e=>{var t;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,fontSize:12,color:"process"===e.status?"var(--colorPrimary)":"var(--colorTextSecondary)"},children:["process"===(t=e.status)?(0,l.jsx)(P.A,{}):"finish"===t?(0,l.jsx)(M.A,{}):"warning"===t?(0,l.jsx)(B.A,{style:{color:"var(--colorWarning)"}}):"error"===t?(0,l.jsx)(L.A,{}):(0,l.jsx)("span",{style:{display:"inline-block",height:6,width:6,borderRadius:"50%",background:"var(--colorTextTertiary)"}}),(0,l.jsx)("span",{children:e.title})]},e.key)})})]})})]})]},e.key)})}),"workflow"===tk&&(null==tj?void 0:tj.partialChapters)&&tj.partialChapters.length>0&&(0,l.jsx)(m.A,{size:"small",title:"章节进度",extra:(0,l.jsxs)(i.A,{color:"blue",children:[tj.partialChapters.filter(e=>"completed"===e.status).length,"/",tj.partialChapters.length]}),children:(0,l.jsx)(ee,{gap:6,style:{width:"100%"},children:tj.partialChapters.map(e=>(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8,fontSize:12},children:[(0,l.jsx)(Z,{ellipsis:!0,style:{maxWidth:480},children:e.title}),(0,l.jsxs)(o.A,{size:6,children:[(0,l.jsx)(i.A,{color:"failed"===e.status?"error":"success",children:"failed"===e.status?"失败":"完成"}),(0,l.jsxs)(Z,{type:"secondary",children:[e.chars.toLocaleString()," 字"]})]})]},e.id))})}),"workflow"===tk&&(null==tj||null==(e=tj.reviewMetadata)?void 0:e.diagnostics)&&(0,l.jsx)($,{type:"info",title:"后台自动优化",children:"策略:".concat(tj.reviewMetadata.diagnostics.strategy.mode,";LLM 调用 ").concat(tj.reviewMetadata.diagnostics.llm.calls," 次;噪声过滤 ").concat((null==(t=tj.reviewMetadata.diagnostics.evidence)?void 0:t.filteredNoise)||0," 条;质量门禁 阻断").concat((null==(r=tj.reviewMetadata.diagnostics.quality)?void 0:r.blockingCount)||0,"/重要").concat((null==(a=tj.reviewMetadata.diagnostics.quality)?void 0:a.importantCount)||0,"/轻微").concat((null==(E=tj.reviewMetadata.diagnostics.quality)?void 0:E.minorCount)||0,";自动限流调整 ").concat(tj.reviewMetadata.diagnostics.llm.limitAdjustments," 次。审查与诊断信息仅用于系统修复,不会写入正文或导出文件。")}),"workflow"===tk&&eF&&0===tx.length&&(0,l.jsxs)("div",{style:{textAlign:"center",padding:40},children:[(0,l.jsx)(v.A,{}),(0,l.jsx)("div",{style:{marginTop:12,color:"var(--colorTextSecondary)"},children:"正在准备生成…"})]}),eP&&(0,l.jsx)("div",{ref:em,children:(0,l.jsx)(j.A,{items:[{key:"edit",label:ed("documents.edit"),children:(0,l.jsxs)(ee,{gap:16,style:{width:"100%"},children:[(0,l.jsx)(Y,{rows:28,value:eW,disabled:eJ,onSelect:e=>{var t,r,l;return e4({start:null!=(t=e.currentTarget.selectionStart)?t:0,end:null!=(l=null!=(r=e.currentTarget.selectionEnd)?r:e.currentTarget.selectionStart)?l:0})},onChange:e=>{var t,r,l;eG(e.target.value),e1(null),e6(null),e4({start:null!=(t=e.target.selectionStart)?t:0,end:null!=(l=null!=(r=e.target.selectionEnd)?r:e.target.selectionStart)?l:0})}}),(0,l.jsx)(m.A,{size:"small",style:{borderRadius:12,background:"linear-gradient(135deg, var(--colorFillAlter), var(--colorBgContainer))"},children:(0,l.jsxs)(ee,{gap:16,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{align:"start",style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(o.A,{size:6,children:[(0,l.jsx)(N.A,{style:{color:"var(--colorAccent)"}}),(0,l.jsx)(Z,{strong:!0,children:"精准修改"}),(0,l.jsx)(i.A,{color:"blue",children:"AI 辅助"})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:"针对当前编辑内容补充更具体的要求,AI 会保留文档结构并按你的提示细化修改。"})]}),(0,l.jsxs)(p.Ay,{size:"small",icon:(0,l.jsx)(X.A,{}),onClick:()=>e9(e=>!e),disabled:0===e3.length,children:["历史版本 ",e3.length>0?e3.length:""]})]}),(0,l.jsx)($,{type:"info",title:"系统只负责识别修改范围,不改写你的提示词;选中文字后优先只改选区,没有选区时按光标所在小节/章节定位。"}),(0,l.jsx)(Y,{rows:4,value:eX,disabled:eJ,onChange:e=>{eQ(e.target.value),e1(null),e6(null)},placeholder:"例如:写细一点;润色这段;第七章补充高处作业和临电安全措施;把安全检查频次改成每周一次。"}),(0,l.jsxs)(o.A,{wrap:!0,style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsx)(o.A,{wrap:!0,children:["写细一点","更专业","只润色选区","补充可执行措施"].map(e=>(0,l.jsx)(p.Ay,{size:"small",disabled:eJ,onClick:()=>eQ(t=>t?"".concat(t,";").concat(e):e),children:e},e))}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(N.A,{}),loading:eJ&&"planning"===eZ,disabled:!eX.trim()||eJ,onClick:()=>{re()},children:"识别修改范围"})]}),e0&&!e2&&(0,l.jsx)(m.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorAccent)"},children:(0,l.jsxs)(ee,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(i.A,{color:"purple",children:e0.scope}),(0,l.jsx)(i.A,{color:"blue",children:e0.action}),(0,l.jsxs)(i.A,{color:e0.confidence>=.8?"green":"orange",children:["置信度 ",Math.round(100*e0.confidence),"%"]}),e0.targetTitle&&(0,l.jsx)(Z,{strong:!0,children:e0.targetTitle})]}),(0,l.jsx)(Z,{children:e0.summary}),(0,l.jsx)(Z,{type:"secondary",style:{fontSize:12},children:"将按你的原始提示词执行,不添加额外编辑任务。"}),(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",loading:eJ&&"applying"===eZ,onClick:()=>{rt(e0)},children:"执行并预览"}),(0,l.jsx)(p.Ay,{disabled:eJ,onClick:()=>e1(null),children:"取消"})]})]})}),e2&&(0,l.jsx)(m.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorSuccess)"},children:(0,l.jsxs)(ee,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(o.A,{wrap:!0,children:[(0,l.jsx)(i.A,{color:"green",children:"修改预览"}),(0,l.jsx)(Z,{children:e2.summary||e2.plan.summary}),(0,l.jsxs)(i.A,{children:[e2.changedChars&&e2.changedChars>0?"+".concat(e2.changedChars):e2.changedChars," 字符"]})]}),(0,l.jsxs)(y.A,{gutter:12,children:[(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Z,{strong:!0,children:"修改前"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e2.beforeSnippet||"无片段预览"})]}),(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Z,{strong:!0,children:"修改后"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e2.afterSnippet||"无片段预览"})]})]}),(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{e2&&(t5(e2.before,e2.prompt),eG(e2.markdown),t7(!0),eu.success("已应用精准修改"))},children:"应用到文档"}),(0,l.jsx)(p.Ay,{onClick:()=>e6(null),children:"返回计划"}),(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{e1(null),e6(null)},children:"放弃"})]})]})}),e7&&(0,l.jsx)("div",{style:{borderTop:"1px solid var(--colorBorderSecondary)",paddingTop:12},children:(0,l.jsx)(x.A,{size:"small",dataSource:e3,locale:{emptyText:"暂无历史版本"},renderItem:e=>(0,l.jsx)(x.A.Item,{actions:[(0,l.jsx)(p.Ay,{size:"small",disabled:eJ,onClick:()=>{t5(eW,"恢复前版本"),eG(e.content),t7(!0),eu.success("已恢复历史版本")},children:"恢复"},"restore")],children:(0,l.jsx)(x.A.Item.Meta,{title:(0,l.jsxs)(o.A,{children:[(0,l.jsx)(Z,{children:new Date(e.createdAt).toLocaleString()}),(0,l.jsx)(i.A,{children:e.prompt})]}),description:(0,l.jsx)(Z,{type:"secondary",ellipsis:!0,children:e.content.replace(/\s+/gu," ").slice(0,120)})})})})})]})})]})},{key:"chapters-facts",label:"章节与事实",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[eP.chapters.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["章节 (",eP.chapters.length,")"]}),(0,l.jsx)(x.A,{size:"small",dataSource:eP.chapters,renderItem:e=>(0,l.jsx)(x.A.Item,{children:(0,l.jsx)(x.A.Item.Meta,{title:e.title,description:"证据: ".concat(e.evidence.length," \xb7 缺失: ").concat(e.missingFacts.length)})})})]}),eP.structuredFacts.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["结构化事实 (",eP.structuredFacts.length,")"]}),(0,l.jsx)(A.A,{size:"small",column:1,bordered:!0,children:eP.structuredFacts.map((e,t)=>(0,l.jsxs)(A.A.Item,{label:e.key,children:[(0,l.jsx)("span",{children:e.value}),(0,l.jsx)(i.A,{style:{marginLeft:8},children:e.confidence.toFixed(2)}),(0,l.jsx)(Z,{type:"secondary",style:{fontSize:11,marginLeft:8},children:e.sourceFile})]},t))})]})]})},{key:"sources-missing",label:"来源与缺失",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["引用来源 (",eP.sources.length,")"]}),0===eP.sources.length?(0,l.jsx)(h.A,{description:"暂无"}):(0,l.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:eP.sources.map(e=>(0,l.jsxs)(i.A,{color:"blue",children:[e.filePath," (",e.count,")"]},e.filePath))})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["缺失项 (",eP.missingItems.length,")"]}),0===eP.missingItems.length?(0,l.jsx)(h.A,{description:"无缺失"}):(0,l.jsx)(x.A,{size:"small",dataSource:eP.missingItems,renderItem:e=>(0,l.jsx)(x.A.Item,{children:e})})]})]})},{key:"validation",label:"校验 (".concat(eP.validationIssues.length,")"),children:0===eP.validationIssues.length?(0,l.jsx)(h.A,{description:"校验通过"}):(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[eP.validationIssues.map(e=>(0,l.jsxs)("div",{style:{border:"1px solid var(--colorBorderSecondary)",borderRadius:8,padding:12},children:[(0,l.jsx)(i.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:e.level}),(0,l.jsx)("div",{style:{marginTop:6,whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all",lineHeight:1.6},children:e.message}),e.suggestion&&(0,l.jsx)("div",{style:{marginTop:6,color:"var(--colorTextSecondary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all"},children:e.suggestion})]},"".concat(e.level,"-").concat(e.message))),eP.exportGate.checklist.length>0&&(0,l.jsxs)("div",{style:{marginTop:8},children:[(0,l.jsx)(Z,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:"导出门禁"}),(0,l.jsx)(x.A,{size:"small",dataSource:eP.exportGate.checklist,renderItem:e=>(0,l.jsxs)(x.A.Item,{children:[(0,l.jsx)(Z,{style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:e.label}),(0,l.jsx)(i.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})]})]})},{key:"stages",label:"执行阶段 (".concat(eP.executionStages.length,")"),children:(0,l.jsx)(x.A,{size:"small",dataSource:eP.executionStages,renderItem:e=>(0,l.jsxs)(x.A.Item,{children:[(0,l.jsx)(x.A.Item.Meta,{avatar:el[e.type]||(0,l.jsx)(F.A,{}),title:(0,l.jsx)(Z,{title:e.roleId,style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:"".concat(ei[e.type]||e.type," \xb7 ").concat(e.roleName||t_(e.roleId))}),description:(0,l.jsx)(Z,{type:"secondary",style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-word"},children:e.message})}),(0,l.jsx)(i.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"skipped"===e.status?"default":"warning",children:e.status})]})})}]})})]})}),(0,l.jsx)(f.A,{title:ed("documents.templateEditor"),open:te,onClose:()=>tt(!1),size:860,mask:{closable:!1},styles:{body:{padding:20,overflow:"auto"},header:{borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,l.jsxs)(o.A,{children:[(0,l.jsx)(p.Ay,{onClick:()=>tt(!1),children:ed("common.cancel")}),(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{tQ()},children:ed("common.save")})]}),children:(0,l.jsxs)(d.A,{form:ep,layout:"vertical",requiredMark:"optional",children:[(0,l.jsxs)(y.A,{gutter:12,children:[(0,l.jsx)(d.A.Item,{name:"id",hidden:!0,children:(0,l.jsx)(n.A,{})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"name",label:ed("documents.templateName"),rules:[{required:!0}],children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"category",label:ed("documents.templateCategory"),children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"outputTitle",label:ed("documents.outputTitle"),children:(0,l.jsx)(n.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:12,children:(0,l.jsx)(d.A.Item,{name:"description",label:ed("documents.templateDescription"),children:(0,l.jsx)(n.A,{})})})]}),(0,l.jsx)(d.A.Item,{name:"projectRoleConfigId",label:ed("documents.projectRoleConfig"),rules:[{required:!0,message:ed("documents.projectRoleConfigRequired")}],children:(0,l.jsx)(b.A,{showSearch:!0,placeholder:ed("documents.projectRoleConfigRequired"),options:tM})}),(0,l.jsxs)("div",{className:"mb-6",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)(Z,{strong:!0,className:"text-base text-[var(--colorText)] block mb-1",children:"项目文件绑定"}),(0,l.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)]",children:"每个文件角色可直接勾选文件或文件夹;勾选文件夹会自动绑定该文件夹下所有文件。"})]}),(0,l.jsx)(i.A,{color:"blue",bordered:!1,children:"按文件角色多选"})]}),(0,l.jsx)(n.A.Search,{allowClear:!0,placeholder:"搜索文件或文件夹",value:eT,onChange:e=>ez(e.target.value),className:"mb-4"}),eI?(0,l.jsxs)("div",{className:"text-center py-8",children:[(0,l.jsx)(v.A,{}),(0,l.jsx)("div",{className:"mt-3 text-[var(--colorTextSecondary)] text-xs",children:"正在加载知识库文件…"})]}):0===to.length?(0,l.jsx)(h.A,{image:h.A.PRESENTED_IMAGE_SIMPLE,description:ts?"当前项目角色未配置文件角色":"请先选择项目角色"}):0===td.length?(0,l.jsx)(h.A,{image:h.A.PRESENTED_IMAGE_SIMPLE,description:"暂无知识库文件"}):(()=>{let e=null==ti?void 0:ti.value,t=e?en(tc[e]||[]).filter(e=>tp.includes(e)):[],r=new Set(eo(tu));return(0,l.jsxs)("div",{className:"flex flex-col md:flex-row gap-4 border border-[var(--borderColor)] rounded-xl overflow-hidden bg-[var(--colorBg)]",children:[(0,l.jsxs)("div",{className:"w-full md:w-[240px] border-b md:border-b-0 md:border-r border-[var(--borderColor)] bg-[var(--colorBgHover)] flex flex-col",children:[(0,l.jsx)("div",{className:"p-3 border-b border-[var(--borderColor)] text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)]",children:"文件角色"}),(0,l.jsx)("div",{className:"flex-1 overflow-y-auto max-h-[200px] md:max-h-[400px] p-2 space-y-1",children:to.map(t=>{let r=en(tc[t.value]||[]).filter(e=>tp.includes(e)).length,s=t.value===e;return(0,l.jsxs)("div",{onClick:()=>eE(t.value),className:"flex items-center justify-between p-2 rounded-lg cursor-pointer transition-all duration-200 ".concat(s?"bg-[var(--colorBgSelected)] text-[var(--colorAccent)] font-medium shadow-sm":"text-[var(--colorText)] hover:bg-[var(--colorBgElevated)]"),children:[(0,l.jsx)("span",{className:"truncate flex-1 mr-2 text-sm",children:t.label}),(0,l.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full ".concat(s?"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400":"bg-[var(--colorFillAlter)] text-[var(--colorTextTertiary)]"),children:r})]},t.value)})})]}),(0,l.jsxs)("div",{className:"flex-1 flex flex-col bg-[var(--colorBgContainer)]",children:[(0,l.jsxs)("div",{className:"p-3 border-b border-[var(--borderColor)] flex items-center justify-between bg-[var(--colorBgHover)]",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"font-medium text-sm text-[var(--colorText)]",children:null==ti?void 0:ti.label}),(0,l.jsxs)(i.A,{color:"blue",bordered:!1,className:"m-0 text-[10px] leading-[18px]",children:["已选 ",t.length]})]}),(0,l.jsx)(p.Ay,{type:"text",size:"small",danger:!0,disabled:!e||0===t.length,onClick:()=>e&&tX(e,[]),children:"清空"})]}),e&&(0,l.jsx)(d.A.Item,{name:["fileBindingGroups",e],hidden:!0,children:(0,l.jsx)(n.A,{})}),(0,l.jsx)("div",{className:"px-4 py-2 border-b border-[var(--borderColor)] bg-blue-50/30 dark:bg-blue-900/10",children:(0,l.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)] truncate",children:t.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("span",{className:"text-blue-500 mr-1",children:"●"})," ",t.slice(0,4).map(ea).join("、")," ",t.length>4?" 等 ".concat(t.length," 个文件"):""]}):(0,l.jsx)("span",{className:"text-[var(--colorTextTertiary)]",children:"请在下方勾选要绑定的文件..."})})}),(0,l.jsx)("div",{className:"flex-1 p-3 overflow-y-auto max-h-[320px]",children:(0,l.jsx)(S.A,{checkable:!0,blockNode:!0,treeData:tu,checkedKeys:t,expandedKeys:eT.trim()?th:eB,onExpand:e=>eM(e),onCheck:(l,s)=>{if(!e)return;let n=new Set(t.filter(e=>!r.has(e)));for(let e of s.checkedNodes)e.isFolder?eo([e]).forEach(e=>n.add(e)):n.add(e.key);tX(e,Array.from(n))}})})]})]})})()]}),(0,l.jsx)(k.A,{type:"info",showIcon:!0,message:"文档规范由后台根据模板、提示词和角色绑定自动生成,无需手动维护规范包。",className:"mb-4 bg-[var(--colorBgHover)] border-0"})]})})]})}}},e=>{e.O(0,[433,576,375,787,195,455,506,651,636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{14569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCard:"style_statusCard__H7Mee",statusSummary:"style_statusSummary__7KavF",statusSummaryText:"style_statusSummaryText__Shw3j",statusClearBtn:"style_statusClearBtn__uJ9bE",statusExpandBtn:"style_statusExpandBtn__HhgIj",statusFilters:"style_statusFilters__g_LbG",filterPill:"style_filterPill__1pjFW",filterPillActive:"style_filterPillActive___UZVi",statusPanel:"style_statusPanel__9arTu",statusEmpty:"style_statusEmpty__8LWzH",timelineList:"style_timelineList__dqJrz",timelineItem:"style_timelineItem__dbuL_",timelineStatusIcon:"style_timelineStatusIcon__SkRwb",timelinePercent:"style_timelinePercent__pEyH4",timelineRow:"style_timelineRow__EDOVa",timelineTitle:"style_timelineTitle__Yujr8",timelineClose:"style_timelineClose__Byx_9",timelineDetail:"style_timelineDetail__nALei",timelineDesc:"style_timelineDesc__FMjWE",timelinePath:"style_timelinePath__C9VQI",timelineMeta:"style_timelineMeta__u_pCn",timelineMetaTag:"style_timelineMetaTag__G3jF1",timelineExpandArrow:"style_timelineExpandArrow__xIBdF",timelineExpandArrowOpen:"style_timelineExpandArrowOpen__TWWDC",fileNameCell:"style_fileNameCell__EHsnt",folderName:"style_folderName__VhLXP",folderRow:"style_folderRow__d7k9S",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},37690:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return l(48200)}])},45551:(e,t,l)=>{"use strict";function n(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),l=e/Math.pow(1024,t);return"".concat(l.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let l=Math.floor(Math.floor((Date.now()-e)/1e3)/60),n=Math.floor(l/60),a=Math.floor(n/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):n>0?"".concat(n,"h ago"):l>0?"".concat(l,"m ago"):"Just now":a>0?"".concat(a," 天前"):n>0?"".concat(n," 小时前"):l>0?"".concat(l," 分钟前"):"刚刚"}l.d(t,{Jm:()=>s,fw:()=>a,z3:()=>n});let r={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},i={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function s(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===l?i:r)[e])?t:e}},48200:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>M});var n=l(65321),a=l(97109),r=l(1873),i=l.n(r),s=l(86109),o=l(35292),c=l(76506),d=l(33442),u=l(11702),h=l(9137),m=l(21289),g=l(68787),p=l(56985),x=l(49604),y=l(88762),_=l(85493),f=l(84253),w=l(85114),j=l(58569),A=l(7576),k=l(47210),C=l(6578),v=l(48321),S=l(45551),P=l(14569),b=l.n(P);let{Paragraph:I}=o.A;function N(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function R(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function z(e,t){let l=t.trim()?[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length):[];if(0===l.length)return e;let a=RegExp("(".concat(l.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(a).map((e,t)=>l.some(t=>t.toLowerCase()===e.toLowerCase())?(0,n.jsx)("mark",{children:e},t):e)}function D(e,t,l){return null==t||""===t||Array.isArray(t)&&0===t.length?null:(0,n.jsx)(c.A.Item,{label:e,children:Array.isArray(t)?(0,n.jsx)(d.A,{wrap:!0,children:t.map(e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>null==l?void 0:l(String(e)),children:String(e)},String(e)))}):String(t)})}function O(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,l)=>({key:"".concat(t,"-").concat(l),name:e}))}function M(){var e,t,l,r,o;let P=(0,v.Vr)(),M=(0,s.useRouter)(),L="string"==typeof M.query.relativePath?M.query.relativePath:"",[T,E]=(0,a.useState)(),[F,B]=(0,a.useState)(!1),[J,K]=(0,a.useState)(""),[V,H]=(0,a.useState)(!1),[U,W]=(0,a.useState)(""),[X,G]=(0,a.useState)([]);(0,a.useEffect)(()=>{L&&(B(!0),K(""),(0,C.xC)(L).then(E).catch(e=>{E(void 0),K(e instanceof Error?e.message:"文件详情加载失败")}).finally(()=>B(!1)))},[L]);let $=(0,a.useMemo)(()=>(function(e){let t=N(null==e?void 0:e.file.metadataJson);return"object"==typeof t.extraction&&t.extraction?t.extraction:t})(T),[T]),q=R($.layerNames);(0,a.useEffect)(()=>{G(q)},[null==T?void 0:T.file.relativePath,q.join("|")]);let Z=U.trim().toLowerCase(),Q=(0,a.useMemo)(()=>{var e;return T&&Z?T.chunks.filter(e=>{let t=N(e.metadataJson);return[e.content,e.sectionTitle,t.rowRange,t.chunkKind,t.parentId,JSON.stringify(t)].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))}):null!=(e=null==T?void 0:T.chunks)?e:[]},[T,Z]),Y=(0,a.useMemo)(()=>{var e;return T&&Z?T.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))):null!=(e=null==T?void 0:T.parents)?e:[]},[T,Z]),ee=async()=>{if(L){H(!0);try{let e=await (0,C.HC)(L);e.detail&&E(e.detail),h.Ay.success("文件索引已重建")}finally{H(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),h.Ay.success("已复制"))},el=async e=>{L&&(await (0,C.tn)(L,e),h.Ay.success("file"===e?"已请求打开文件":"已请求打开目录"))},en=(0,a.useMemo)(()=>{var e,t,l,a,r,s;let o=[],h=R($.sheetNames),y=R($.columnNames),_=R($.layerNames),f=R($.blockNames),w=R($.entityTypes),j=R($.productNames),A=R($.materialNames),k=R($.entityNames),C=R($.dataPaths),v=h.length>0||y.length>0||null!=$.rowCount||null!=$.columnCount||null!=$.formulaCount||null!=$.mergeCount,S=O(y,"column"),P=(null!=(e=null==T?void 0:T.chunks)?e:[]).map(e=>N(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,t)=>({key:"row-".concat(t),name:e})),z=(null!=(t=null==T?void 0:T.chunks)?t:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,t)=>({key:"grid-".concat(t),cells:e.split("|").map(e=>e.trim()).filter(Boolean)}));(v||S.length>0||P.length>0||z.length>0)&&o.push({key:"table",label:"表格",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[v&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("Sheet",h,W),D("表头",y,W),D("行数",$.rowCount),D("列数",$.columnCount),D("公式数",$.formulaCount),D("合并单元格",$.mergeCount)]}),S.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:S,columns:[{title:"列名",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]}),P.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:P,columns:[{title:"行范围",dataIndex:"name",render:e=>(0,n.jsxs)(u.A,{color:"gold",className:"cursor-pointer",onClick:()=>W(String(e)),children:["行 ",String(e)]})}]}),z.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:z,pagination:{pageSize:10},columns:[{title:"表格网格预览",dataIndex:"cells",render:e=>(0,n.jsx)(d.A,{wrap:!0,children:e.map((e,t)=>(0,n.jsx)(u.A,{children:e},"".concat(e,"-").concat(t)))})}]})]})});let M=_.length>0||f.length>0||w.length>0||j.length>0||A.length>0||k.length>0,L=[...O(_,"layer").map(e=>({...e,type:"图层"})),...O(w,"entity").map(e=>({...e,type:"实体类型"})),...O(f,"block").map(e=>({...e,type:"块/符号"}))];(M||_.length>0||L.length>0)&&o.push({key:"drawing",label:"图纸",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[M&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("图层",_,W),D("块/符号",f,W),D("实体类型",w,W),D("产品/零件",j,W),D("材料",A,W),D("实体名称",k,W)]}),_.length>0&&(0,n.jsxs)(g.A,{size:"small",title:"图层开关 / 图纸预览",children:[(0,n.jsx)(p.A.Group,{value:X,options:_.map(e=>({label:e,value:e})),onChange:e=>G(e.map(String))}),(0,n.jsx)("div",{className:b().drawingPreview,children:X.map(e=>(0,n.jsx)(u.A,{color:"blue",children:e},e))})]}),L.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:L,columns:[{title:"类型",dataIndex:"type",width:120},{title:"名称",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]})]})});let E=(null!=(l=null==T?void 0:T.chunks)?l:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,t)=>{var l,n,a,r;let i=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(t),path:null!=(a=null==i||null==(l=i[1])?void 0:l.trim())?a:e,value:null!=(r=null==i||null==(n=i[2])?void 0:n.trim())?r:""}});(C.length>0||E.length>0)&&o.push({key:"data",label:"数据路径",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[C.length>0&&(0,n.jsx)(x.A,{defaultExpandAll:!0,treeData:function(e){let t=new Map;for(let l of e){let e=t;for(let t of l.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(t)||e.set(t,new Map),e=e.get(t)}let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[n,a]=e;return{title:n,key:t?"".concat(t,".").concat(n):n,children:l(a,t?"".concat(t,".").concat(n):n)}})};return l(t)}(C),onSelect:e=>{var t;return W(String(null!=(t=e[0])?t:""))}}),E.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:E,pagination:{pageSize:20},columns:[{title:"Path",dataIndex:"path",width:260,render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})},{title:"Value",dataIndex:"value",render:e=>(0,n.jsx)("span",{className:"break-all",children:String(e)})}]})]})});let F=[$.ocrRecommended,$.ocrReason,$.ocrProvider,$.ocrLanguages,$.ocrTextLength,$.pdfPageOcrSupported,$.ocrPageCount,$.pdfOcrPageLimit,$.pdfRenderer,$.pdfPageCount,$.textPages,$.ocrAugmented,$.ocrPages,$.failedPages,$.imagePreprocessor].some(e=>null!=e),B=(null!=(a=null==T?void 0:T.chunks)?a:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,t,l,n)=>{var a,r,i;return l%2==0&&e.push({key:"page-".concat(t),page:t,text:null!=(i=null==(r=n[l+1])||null==(a=r.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:a.trim())?i:""}),e},[]),J=(null==T?void 0:T.file.format)==="pdf";return(F||J||B.length>0)&&o.push({key:"ocr",label:"OCR/PDF",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[F&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("OCR 建议",$.ocrRecommended),D("OCR 原因",$.ocrReason),D("OCR 引擎",$.ocrProvider),D("OCR 语言",$.ocrLanguages),D("OCR 文本长度",$.ocrTextLength),D("PDF 总页数",$.pdfPageCount),D("PDF 文本页数",$.textPages),D("PDF 已 OCR 增强",$.ocrAugmented),D("PDF OCR 页码",Array.isArray($.ocrPages)?$.ocrPages.join(", "):$.ocrPages),D("PDF 失败页",Array.isArray($.failedPages)?$.failedPages.map(e=>JSON.stringify(e)).join("; "):$.failedPages),D("PDF 页面 OCR 支持",$.pdfPageOcrSupported),D("PDF OCR 页数",$.ocrPageCount),D("PDF OCR 页数上限",$.pdfOcrPageLimit),D("PDF 渲染器",$.pdfRenderer),D("图像预处理",$.imagePreprocessor)]}),J&&(0,n.jsx)("div",{className:b().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(s=null!=(r=$.pdfPageCount)?r:$.ocrPageCount)?s:1)||1,6)},(e,t)=>(0,n.jsx)(i(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(T.file.relativePath),"&page=").concat(t+1),alt:"PDF 第 ".concat(t+1," 页"),unoptimized:!0},t))}),B.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:B,pagination:{pageSize:10},columns:[{title:"页码",dataIndex:"page",width:90},{title:"OCR 文本",dataIndex:"text",render:e=>(0,n.jsx)(I,{ellipsis:{rows:4,expandable:!0,symbol:"展开"},children:String(e)})}]})]})}),o},[$,T,X]),ea=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:P("knowledge.chunkIndex"),dataIndex:"chunkIndex",width:90,render:e=>String(e)},{title:P("knowledge.chunkType"),width:110,render:(e,t)=>{var l;return(0,n.jsx)(u.A,{children:String(null!=(l=N(t.metadataJson).chunkKind)?l:t.category)})}},{title:P("knowledge.sectionOrRange"),width:220,render:(e,t)=>{let l=N(t.metadataJson),a="string"==typeof l.rowRange?l.rowRange:void 0;return(0,n.jsxs)(d.A,{wrap:!0,children:[t.sectionTitle?(0,n.jsx)(u.A,{color:"cyan",children:t.sectionTitle}):null,a?(0,n.jsxs)(u.A,{color:"gold",children:["行 ",a]}):null]})}},{title:"Token",dataIndex:"tokenCount",width:90},{title:P("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:b().searchContent,children:z(t.content,U)})}],er=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:P("knowledge.parentChunkId"),dataIndex:"parentId",width:260,render:e=>(0,n.jsx)("span",{className:"break-all",children:e})},{title:"切片数",dataIndex:"chunkCount",width:90},{title:"章节",dataIndex:"sectionTitle",width:220},{title:P("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:b().searchContent,children:z(t.content,U)})}];return F?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsx)(y.A,{active:!0,paragraph:{rows:1}}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:6}})}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:4}})})]}):J?(0,n.jsx)(_.A,{type:"error",showIcon:!0,message:"文件详情加载失败",description:J}):T?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(w.Ay,{icon:(0,n.jsx)(k.A,{}),href:"/knowledge/files",size:"small",style:{marginBottom:12},children:"返回文件列表"}),(0,n.jsxs)("div",{className:b().searchResultHeader,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:"文件详情"}),(0,n.jsx)("p",{className:"pageDesc",children:"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。"})]}),(0,n.jsxs)(d.A,{children:[(0,n.jsx)(w.Ay,{onClick:()=>{et(null==T?void 0:T.absolutePath)},children:"复制原文件路径"}),(0,n.jsx)(w.Ay,{onClick:()=>{et(null==T?void 0:T.directory)},children:"复制所在目录"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("file")},children:"打开文件"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("directory")},children:"打开目录"}),"pdf"===T.file.format?(0,n.jsx)(w.Ay,{loading:V,onClick:()=>{ee()},children:"重新 OCR"}):null,(0,n.jsx)(w.Ay,{type:"primary",loading:V,onClick:()=>{ee()},children:"重建该文件索引"})]})]})]}),(0,n.jsx)(g.A,{size:"small",title:"基础信息",children:(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[(0,n.jsx)(c.A.Item,{label:"路径",children:T.file.relativePath}),(0,n.jsx)(c.A.Item,{label:"原文件",children:null!=(e=T.absolutePath)?e:"-"}),(0,n.jsx)(c.A.Item,{label:"所在目录",children:null!=(t=T.directory)?t:"-"}),(0,n.jsxs)(c.A.Item,{label:"分类",children:[(0,n.jsx)(u.A,{children:(0,S.Jm)(T.file.category)})," ",(0,n.jsx)(u.A,{children:T.file.format})]}),(0,n.jsx)(c.A.Item,{label:"大小",children:(0,S.z3)(T.file.fileSize)}),(0,n.jsx)(c.A.Item,{label:"切片数",children:T.file.chunkCount}),(0,n.jsx)(c.A.Item,{label:"状态",children:T.file.status}),(0,n.jsx)(c.A.Item,{label:"解析模式",children:String(null!=(l=$.extractionMode)?l:"-")}),(0,n.jsx)(c.A.Item,{label:"覆盖范围",children:String(null!=(r=$.contentCoverage)?r:"-")}),(0,n.jsx)(c.A.Item,{label:"正文长度",children:String(null!=(o=$.textLength)?o:"-")})]})}),en.length>0&&(0,n.jsx)(g.A,{size:"small",title:"结构化信息",children:(0,n.jsx)(j.A,{items:en})}),(0,n.jsx)(g.A,{size:"small",title:"详情筛选",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[(0,n.jsx)(A.A,{allowClear:!0,value:U,onChange:e=>W(e.target.value),placeholder:"筛选 rowRange、图层、实体、data path、section、chunk 内容"}),U?(0,n.jsxs)(d.A,{wrap:!0,children:[(0,n.jsxs)(u.A,{color:"blue",children:[P("knowledge.parentMatches")," ",Y.length]}),(0,n.jsxs)(u.A,{color:"green",children:[P("knowledge.childMatches")," ",Q.length]}),(0,n.jsxs)(u.A,{color:"purple",children:[P("knowledge.filterTerm")," ",U]})]}):null]})}),(0,n.jsxs)(g.A,{size:"small",title:"".concat(P("knowledge.parentChunks")," (").concat(Y.length,"/").concat(T.parents.length,")"),children:[(0,n.jsx)(_.A,{type:"info",showIcon:!0,message:P("knowledge.parentChunkHint"),style:{marginBottom:12}}),(0,n.jsx)(m.A,{rowKey:"id",columns:er,dataSource:Y,pagination:{pageSize:10},size:"small"})]}),(0,n.jsx)(g.A,{size:"small",title:"".concat(P("knowledge.childChunks")," (").concat(Q.length,"/").concat(T.chunks.length,")"),children:(0,n.jsx)(m.A,{rowKey:"id",columns:ea,dataSource:Q,pagination:{pageSize:20},size:"small"})})]}):(0,n.jsx)(f.A,{description:"请选择文件"})}}},e=>{e.O(0,[433,576,787,985,375,102,289,506,850,636,593,792],()=>e(e.s=37690)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{14569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCard:"style_statusCard__H7Mee",statusSummary:"style_statusSummary__7KavF",statusSummaryText:"style_statusSummaryText__Shw3j",statusClearBtn:"style_statusClearBtn__uJ9bE",statusExpandBtn:"style_statusExpandBtn__HhgIj",statusFilters:"style_statusFilters__g_LbG",filterPill:"style_filterPill__1pjFW",filterPillActive:"style_filterPillActive___UZVi",statusPanel:"style_statusPanel__9arTu",statusEmpty:"style_statusEmpty__8LWzH",timelineList:"style_timelineList__dqJrz",timelineItem:"style_timelineItem__dbuL_",timelineStatusIcon:"style_timelineStatusIcon__SkRwb",timelinePercent:"style_timelinePercent__pEyH4",timelineRow:"style_timelineRow__EDOVa",timelineTitle:"style_timelineTitle__Yujr8",timelineClose:"style_timelineClose__Byx_9",timelineDetail:"style_timelineDetail__nALei",timelineDesc:"style_timelineDesc__FMjWE",timelinePath:"style_timelinePath__C9VQI",timelineMeta:"style_timelineMeta__u_pCn",timelineMetaTag:"style_timelineMetaTag__G3jF1",timelineExpandArrow:"style_timelineExpandArrow__xIBdF",timelineExpandArrowOpen:"style_timelineExpandArrowOpen__TWWDC",fileNameCell:"style_fileNameCell__EHsnt",folderName:"style_folderName__VhLXP",folderRow:"style_folderRow__d7k9S",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},37690:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return l(48200)}])},45551:(e,t,l)=>{"use strict";function n(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),l=e/Math.pow(1024,t);return"".concat(l.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let l=Math.floor(Math.floor((Date.now()-e)/1e3)/60),n=Math.floor(l/60),a=Math.floor(n/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):n>0?"".concat(n,"h ago"):l>0?"".concat(l,"m ago"):"Just now":a>0?"".concat(a," 天前"):n>0?"".concat(n," 小时前"):l>0?"".concat(l," 分钟前"):"刚刚"}l.d(t,{Jm:()=>s,fw:()=>a,z3:()=>n});let r={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},i={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function s(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===l?i:r)[e])?t:e}},48200:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>M});var n=l(65321),a=l(97109),r=l(1873),i=l.n(r),s=l(86109),o=l(35292),c=l(76506),d=l(33442),u=l(11702),h=l(9137),m=l(21289),g=l(68787),p=l(56985),x=l(49604),y=l(88762),_=l(85493),f=l(84253),w=l(85114),j=l(58569),A=l(7576),k=l(47210),C=l(6578),v=l(48321),S=l(45551),P=l(14569),b=l.n(P);let{Paragraph:I}=o.A;function N(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function R(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function z(e,t){let l=t.trim()?[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length):[];if(0===l.length)return e;let a=RegExp("(".concat(l.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(a).map((e,t)=>l.some(t=>t.toLowerCase()===e.toLowerCase())?(0,n.jsx)("mark",{children:e},t):e)}function D(e,t,l){return null==t||""===t||Array.isArray(t)&&0===t.length?null:(0,n.jsx)(c.A.Item,{label:e,children:Array.isArray(t)?(0,n.jsx)(d.A,{wrap:!0,children:t.map(e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>null==l?void 0:l(String(e)),children:String(e)},String(e)))}):String(t)})}function O(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,l)=>({key:"".concat(t,"-").concat(l),name:e}))}function M(){var e,t,l,r,o;let P=(0,v.Vr)(),M=(0,s.useRouter)(),L="string"==typeof M.query.relativePath?M.query.relativePath:"",[T,E]=(0,a.useState)(),[F,B]=(0,a.useState)(!1),[J,K]=(0,a.useState)(""),[V,H]=(0,a.useState)(!1),[U,W]=(0,a.useState)(""),[X,G]=(0,a.useState)([]);(0,a.useEffect)(()=>{L&&(B(!0),K(""),(0,C.xC)(L).then(E).catch(e=>{E(void 0),K(e instanceof Error?e.message:"文件详情加载失败")}).finally(()=>B(!1)))},[L]);let $=(0,a.useMemo)(()=>(function(e){let t=N(null==e?void 0:e.file.metadataJson);return"object"==typeof t.extraction&&t.extraction?t.extraction:t})(T),[T]),q=R($.layerNames);(0,a.useEffect)(()=>{G(q)},[null==T?void 0:T.file.relativePath,q.join("|")]);let Z=U.trim().toLowerCase(),Q=(0,a.useMemo)(()=>{var e;return T&&Z?T.chunks.filter(e=>{let t=N(e.metadataJson);return[e.content,e.sectionTitle,t.rowRange,t.chunkKind,t.parentId,JSON.stringify(t)].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))}):null!=(e=null==T?void 0:T.chunks)?e:[]},[T,Z]),Y=(0,a.useMemo)(()=>{var e;return T&&Z?T.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))):null!=(e=null==T?void 0:T.parents)?e:[]},[T,Z]),ee=async()=>{if(L){H(!0);try{let e=await (0,C.HC)(L);e.detail&&E(e.detail),h.Ay.success("文件索引已重建")}finally{H(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),h.Ay.success("已复制"))},el=async e=>{L&&(await (0,C.tn)(L,e),h.Ay.success("file"===e?"已请求打开文件":"已请求打开目录"))},en=(0,a.useMemo)(()=>{var e,t,l,a,r,s;let o=[],h=R($.sheetNames),y=R($.columnNames),_=R($.layerNames),f=R($.blockNames),w=R($.entityTypes),j=R($.productNames),A=R($.materialNames),k=R($.entityNames),C=R($.dataPaths),v=h.length>0||y.length>0||null!=$.rowCount||null!=$.columnCount||null!=$.formulaCount||null!=$.mergeCount,S=O(y,"column"),P=(null!=(e=null==T?void 0:T.chunks)?e:[]).map(e=>N(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,t)=>({key:"row-".concat(t),name:e})),z=(null!=(t=null==T?void 0:T.chunks)?t:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,t)=>({key:"grid-".concat(t),cells:e.split("|").map(e=>e.trim()).filter(Boolean)}));(v||S.length>0||P.length>0||z.length>0)&&o.push({key:"table",label:"表格",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[v&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("Sheet",h,W),D("表头",y,W),D("行数",$.rowCount),D("列数",$.columnCount),D("公式数",$.formulaCount),D("合并单元格",$.mergeCount)]}),S.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:S,columns:[{title:"列名",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]}),P.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:P,columns:[{title:"行范围",dataIndex:"name",render:e=>(0,n.jsxs)(u.A,{color:"gold",className:"cursor-pointer",onClick:()=>W(String(e)),children:["行 ",String(e)]})}]}),z.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:z,pagination:{pageSize:10},columns:[{title:"表格网格预览",dataIndex:"cells",render:e=>(0,n.jsx)(d.A,{wrap:!0,children:e.map((e,t)=>(0,n.jsx)(u.A,{children:e},"".concat(e,"-").concat(t)))})}]})]})});let M=_.length>0||f.length>0||w.length>0||j.length>0||A.length>0||k.length>0,L=[...O(_,"layer").map(e=>({...e,type:"图层"})),...O(w,"entity").map(e=>({...e,type:"实体类型"})),...O(f,"block").map(e=>({...e,type:"块/符号"}))];(M||_.length>0||L.length>0)&&o.push({key:"drawing",label:"图纸",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[M&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("图层",_,W),D("块/符号",f,W),D("实体类型",w,W),D("产品/零件",j,W),D("材料",A,W),D("实体名称",k,W)]}),_.length>0&&(0,n.jsxs)(g.A,{size:"small",title:"图层开关 / 图纸预览",children:[(0,n.jsx)(p.A.Group,{value:X,options:_.map(e=>({label:e,value:e})),onChange:e=>G(e.map(String))}),(0,n.jsx)("div",{className:b().drawingPreview,children:X.map(e=>(0,n.jsx)(u.A,{color:"blue",children:e},e))})]}),L.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:L,columns:[{title:"类型",dataIndex:"type",width:120},{title:"名称",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]})]})});let E=(null!=(l=null==T?void 0:T.chunks)?l:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,t)=>{var l,n,a,r;let i=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(t),path:null!=(a=null==i||null==(l=i[1])?void 0:l.trim())?a:e,value:null!=(r=null==i||null==(n=i[2])?void 0:n.trim())?r:""}});(C.length>0||E.length>0)&&o.push({key:"data",label:"数据路径",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[C.length>0&&(0,n.jsx)(x.A,{defaultExpandAll:!0,treeData:function(e){let t=new Map;for(let l of e){let e=t;for(let t of l.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(t)||e.set(t,new Map),e=e.get(t)}let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[n,a]=e;return{title:n,key:t?"".concat(t,".").concat(n):n,children:l(a,t?"".concat(t,".").concat(n):n)}})};return l(t)}(C),onSelect:e=>{var t;return W(String(null!=(t=e[0])?t:""))}}),E.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:E,pagination:{pageSize:20},columns:[{title:"Path",dataIndex:"path",width:260,render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})},{title:"Value",dataIndex:"value",render:e=>(0,n.jsx)("span",{className:"break-all",children:String(e)})}]})]})});let F=[$.ocrRecommended,$.ocrReason,$.ocrProvider,$.ocrLanguages,$.ocrTextLength,$.pdfPageOcrSupported,$.ocrPageCount,$.pdfOcrPageLimit,$.pdfRenderer,$.pdfPageCount,$.textPages,$.ocrAugmented,$.ocrPages,$.failedPages,$.imagePreprocessor].some(e=>null!=e),B=(null!=(a=null==T?void 0:T.chunks)?a:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,t,l,n)=>{var a,r,i;return l%2==0&&e.push({key:"page-".concat(t),page:t,text:null!=(i=null==(r=n[l+1])||null==(a=r.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:a.trim())?i:""}),e},[]),J=(null==T?void 0:T.file.format)==="pdf";return(F||J||B.length>0)&&o.push({key:"ocr",label:"OCR/PDF",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[F&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("OCR 建议",$.ocrRecommended),D("OCR 原因",$.ocrReason),D("OCR 引擎",$.ocrProvider),D("OCR 语言",$.ocrLanguages),D("OCR 文本长度",$.ocrTextLength),D("PDF 总页数",$.pdfPageCount),D("PDF 文本页数",$.textPages),D("PDF 已 OCR 增强",$.ocrAugmented),D("PDF OCR 页码",Array.isArray($.ocrPages)?$.ocrPages.join(", "):$.ocrPages),D("PDF 失败页",Array.isArray($.failedPages)?$.failedPages.map(e=>JSON.stringify(e)).join("; "):$.failedPages),D("PDF 页面 OCR 支持",$.pdfPageOcrSupported),D("PDF OCR 页数",$.ocrPageCount),D("PDF OCR 页数上限",$.pdfOcrPageLimit),D("PDF 渲染器",$.pdfRenderer),D("图像预处理",$.imagePreprocessor)]}),J&&(0,n.jsx)("div",{className:b().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(s=null!=(r=$.pdfPageCount)?r:$.ocrPageCount)?s:1)||1,6)},(e,t)=>(0,n.jsx)(i(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(T.file.relativePath),"&page=").concat(t+1),alt:"PDF 第 ".concat(t+1," 页"),unoptimized:!0},t))}),B.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:B,pagination:{pageSize:10},columns:[{title:"页码",dataIndex:"page",width:90},{title:"OCR 文本",dataIndex:"text",render:e=>(0,n.jsx)(I,{ellipsis:{rows:4,expandable:!0,symbol:"展开"},children:String(e)})}]})]})}),o},[$,T,X]),ea=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:P("knowledge.chunkIndex"),dataIndex:"chunkIndex",width:90,render:e=>String(e)},{title:P("knowledge.chunkType"),width:110,render:(e,t)=>{var l;return(0,n.jsx)(u.A,{children:String(null!=(l=N(t.metadataJson).chunkKind)?l:t.category)})}},{title:P("knowledge.sectionOrRange"),width:220,render:(e,t)=>{let l=N(t.metadataJson),a="string"==typeof l.rowRange?l.rowRange:void 0;return(0,n.jsxs)(d.A,{wrap:!0,children:[t.sectionTitle?(0,n.jsx)(u.A,{color:"cyan",children:t.sectionTitle}):null,a?(0,n.jsxs)(u.A,{color:"gold",children:["行 ",a]}):null]})}},{title:"Token",dataIndex:"tokenCount",width:90},{title:P("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:b().searchContent,children:z(t.content,U)})}],er=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:P("knowledge.parentChunkId"),dataIndex:"parentId",width:260,render:e=>(0,n.jsx)("span",{className:"break-all",children:e})},{title:"切片数",dataIndex:"chunkCount",width:90},{title:"章节",dataIndex:"sectionTitle",width:220},{title:P("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:b().searchContent,children:z(t.content,U)})}];return F?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsx)(y.A,{active:!0,paragraph:{rows:1}}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:6}})}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:4}})})]}):J?(0,n.jsx)(_.A,{type:"error",showIcon:!0,message:"文件详情加载失败",description:J}):T?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(w.Ay,{icon:(0,n.jsx)(k.A,{}),href:"/knowledge/files",size:"small",style:{marginBottom:12},children:"返回文件列表"}),(0,n.jsxs)("div",{className:b().searchResultHeader,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:"文件详情"}),(0,n.jsx)("p",{className:"pageDesc",children:"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。"})]}),(0,n.jsxs)(d.A,{children:[(0,n.jsx)(w.Ay,{onClick:()=>{et(null==T?void 0:T.absolutePath)},children:"复制原文件路径"}),(0,n.jsx)(w.Ay,{onClick:()=>{et(null==T?void 0:T.directory)},children:"复制所在目录"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("file")},children:"打开文件"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("directory")},children:"打开目录"}),"pdf"===T.file.format?(0,n.jsx)(w.Ay,{loading:V,onClick:()=>{ee()},children:"重新 OCR"}):null,(0,n.jsx)(w.Ay,{type:"primary",loading:V,onClick:()=>{ee()},children:"重建该文件索引"})]})]})]}),(0,n.jsx)(g.A,{size:"small",title:"基础信息",children:(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[(0,n.jsx)(c.A.Item,{label:"路径",children:T.file.relativePath}),(0,n.jsx)(c.A.Item,{label:"原文件",children:null!=(e=T.absolutePath)?e:"-"}),(0,n.jsx)(c.A.Item,{label:"所在目录",children:null!=(t=T.directory)?t:"-"}),(0,n.jsxs)(c.A.Item,{label:"分类",children:[(0,n.jsx)(u.A,{children:(0,S.Jm)(T.file.category)})," ",(0,n.jsx)(u.A,{children:T.file.format})]}),(0,n.jsx)(c.A.Item,{label:"大小",children:(0,S.z3)(T.file.fileSize)}),(0,n.jsx)(c.A.Item,{label:"切片数",children:T.file.chunkCount}),(0,n.jsx)(c.A.Item,{label:"状态",children:T.file.status}),(0,n.jsx)(c.A.Item,{label:"解析模式",children:String(null!=(l=$.extractionMode)?l:"-")}),(0,n.jsx)(c.A.Item,{label:"覆盖范围",children:String(null!=(r=$.contentCoverage)?r:"-")}),(0,n.jsx)(c.A.Item,{label:"正文长度",children:String(null!=(o=$.textLength)?o:"-")})]})}),en.length>0&&(0,n.jsx)(g.A,{size:"small",title:"结构化信息",children:(0,n.jsx)(j.A,{items:en})}),(0,n.jsx)(g.A,{size:"small",title:"详情筛选",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[(0,n.jsx)(A.A,{allowClear:!0,value:U,onChange:e=>W(e.target.value),placeholder:"筛选 rowRange、图层、实体、data path、section、chunk 内容"}),U?(0,n.jsxs)(d.A,{wrap:!0,children:[(0,n.jsxs)(u.A,{color:"blue",children:[P("knowledge.parentMatches")," ",Y.length]}),(0,n.jsxs)(u.A,{color:"green",children:[P("knowledge.childMatches")," ",Q.length]}),(0,n.jsxs)(u.A,{color:"purple",children:[P("knowledge.filterTerm")," ",U]})]}):null]})}),(0,n.jsxs)(g.A,{size:"small",title:"".concat(P("knowledge.parentChunks")," (").concat(Y.length,"/").concat(T.parents.length,")"),children:[(0,n.jsx)(_.A,{type:"info",showIcon:!0,message:P("knowledge.parentChunkHint"),style:{marginBottom:12}}),(0,n.jsx)(m.A,{rowKey:"id",columns:er,dataSource:Y,pagination:{pageSize:10},size:"small"})]}),(0,n.jsx)(g.A,{size:"small",title:"".concat(P("knowledge.childChunks")," (").concat(Q.length,"/").concat(T.chunks.length,")"),children:(0,n.jsx)(m.A,{rowKey:"id",columns:ea,dataSource:Q,pagination:{pageSize:20},size:"small"})})]}):(0,n.jsx)(f.A,{description:"请选择文件"})}}},e=>{e.O(0,[433,576,985,375,787,289,506,850,636,593,792],()=>e(e.s=37690)),_N_E=e.O()}]);
|